pax_global_header00006660000000000000000000000064133527056040014517gustar00rootroot0000000000000052 comment=deacfb7b5535157548db219b66f7b6f61cd033dd sweble-wikitext-sweble-wikitext-3.1.9/000077500000000000000000000000001335270560400200055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/.gitignore000066400000000000000000000001171335270560400217740ustar00rootroot00000000000000**/.project **/.classpath **/.settings/ **/target/ **/.idea/ **/*.iml **/*.log sweble-wikitext-sweble-wikitext-3.1.9/CHANGELOG.md000066400000000000000000000130341335270560400216170ustar00rootroot00000000000000# Change Log [A guide to writing change logs][keepachangelog] ## 3.1.10 - unreleased ### Changed ### Added ### Fixed - ## 3.1.9 - 2018-09-26 ### Fixed - Parser extension groups are not added if required aliases are missing in LanguageConfigGenerator ## 3.1.8 - 2018-09-11 ### Changed - Transclusion statements without ':' and having arguments can also be parser function calls. - Ignoring repeated registration of alias names (not IDs). ### Added - Implemented number parser functions. ### Fixed - Fixed missing EngNowiki visit method in AstToWomConverter ## 3.1.7 - 2017-12-11 ### Changed - Fixed missing RTD information on tbody element and added it to list of elements that cancel a semipre block - *StringConverter classes in AstTextUtilsImpl and EngineAstTextUtilsImpl are now public ### Added - New formatting option for non standard elements: LIKE_FORMATTING - New option preserveSemiPreLeadingSpace which allows to recognize and remove leading spaces in semi pre blocks ### Fixed - Fixed wrong default enwp configuration: protocol mail -> mailto ## 3.1.6 - 2017-09-14 ### Changed - Added jenkins profile which generates coverage reports when build in Jenkins. - Bumped version of tooling parent pom and osr-common dependencies to 3.0.7-SNAPSHOT. - HtmlRenderer.visit(EngProcessedPage n) properly implemented. - HtmlRenderer.visit(WtRedirect n) properly implemented. - Ignoring IntelliJ project files and directories. - Bumped osr-common version number to 3.0.8 to fix problem with signed artifacts. ## 3.1.5 - 2017-06-14 ### Changed - Pre-processing stage now replaced entities. - Refactored internal link parsing: - Deleted INTERNAL_LINK_ALT scope - Allowed EXTERNAL_LINK in IMAGE_LINK_ALT scope. - Allowed EXTERNAL_LINK and PLAIN_EXTERNAL_LINK in IMAGE_LINK_TITLE scope. - Removed what I believe to be unnecessary complexity from internal link grammar. - LanguageConfigGenerate automatically prefixes a magic word with "#" or adds the postfix ":" if the same magic word is prefixed or postfixed in DefaultConfigEnWp. ### Added - Added containsIllegalCodePoints() to class ValidatedWikitext. - Added convertIllegalCodePoints option to ParserConfig which affect encoding validation stage. ### Removed - Removed xml-apis dependencies. ### Fixed - Fixed '|' parsing in external link URLs. - Framed image links force all block elements inside their title to close when the title scope closes. - Added missing descriptions to pom.xml files. The release to oss.sonatype.org was failing with a validation error that complained about the missing descriptions. ## 3.1.4 - 2017-02-09 ### Added - Added missing setter methods ing ParserConfigImpl. ### Changed - ParserConfigImpl now has proper fields for nonStandardElementBehavior, fosterParenting, and fosterParentingForTransclusions and loads/saves those fields from the XML configuration. - Intermediate paragraph tags are no longer subject to foster parenting during post-processing. - Improved parser grammer to improve performance. - Updated to osr-common 3.0.5. ### Fixed - Fixed bug in pre-processor which resulted in exception when encountering wiki markup similar to this: "<". - Improved parser grammar to avoid case where illegally nested internal links caused a recursive cascade that practically never finished. ## 3.1.3 - 2017-02-06 ### Changed - More fine grained engine integration test helper functions - Implemented switch langConvTagsEnabled to help with issue #48 Too aggressive parsing of `-{ }-` Language Converter tags - Added switch tagExtensionNamesCaseSensitive to help with issue #43: pre tag support is case sensitive - Automatically expanding `{{!}}` to `|` thus fixing issue #47 ### Fixed - Changed order of processing in LinkTargetParser to fix issue #45 and perform link title sanity check with underscores replaced by spaces. The title `Template:Did you know nominations/Steve Taylor & The Perfect Foil; Wow to the Deadness' contains invalid entities: &_The_Perfect_Foil; - Fixed InternalError during postprocessing when encountering a
 tag all
  caps by treating it as startTagR14.
- Replaced throw new InternalError by AssertionError to fix bug
  #35 Internal Error
- Ignoring virtual xml tags in WtPrettyPrinter (Caused problems in issue #44)
- Differentiating between italic/bold started by html tag or ticks thus partly
  fixing issue #44

## 3.1.2 - 2017-01-16
### Changed
- Bumped version of tooling parent pom and osr-common dependencies to 3.0.4

## 3.1.1 - 2016-08-12
### Changed
- Made ScopeStack class and methods public (including inner class Scope)

## 3.1.0 - 2016-06-13
### Changed
- Document automatically generated during deserialization in 
  sweble-wom3-json-tools if not doc is explicitly set does not contain article 
  element by default any more.
- Generalized sweble-wom3-json-tools code to work with w3c docs as well (BREAKS INTERFACE)
- Generalized sweble-engine-serialization code to work with w3c docs as well (BREAKS INTERFACE)
- Generalized Wom3Toolbox code to work with w3c docs as well (BREAKS INTERFACE)

### Added
- WomToolbox.{isWomElement, isRtd, isText, isRtdOrText} methods
- WomSerializer.setDocumentImplClassName method

## 3.0.2 - 2016-06-07
### Changed
- Bumped version of tooling parent pom and osr-common dependencies to 3.0.3

## 3.0.1 - 2016-05-03
### Fixed
- Illegal characters had no rtd assigned

### Added
- Added parser configuration options to turn off foster parenting in 
  post-processing

### Changed
- Bumped version of tooling parent pom and osr-common dependencies to 3.0.2

[keepachangelog]: http://keepachangelog.com/
sweble-wikitext-sweble-wikitext-3.1.9/etc/000077500000000000000000000000001335270560400205605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/etc/agpl-v3-header-no-copyright.txt000066400000000000000000000011671335270560400264450ustar00rootroot00000000000000This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

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

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see http://www.gnu.org/licenses/.
sweble-wikitext-sweble-wikitext-3.1.9/etc/agpl-v3-header.txt000066400000000000000000000013271335270560400240230ustar00rootroot00000000000000Copyright 2011 The Open Source Research Group,
               University of Erlangen-Nürnberg

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

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

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see http://www.gnu.org/licenses/.
sweble-wikitext-sweble-wikitext-3.1.9/etc/apache-license-v2-header-no-copyright.txt000066400000000000000000000010131335270560400303500ustar00rootroot00000000000000Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.sweble-wikitext-sweble-wikitext-3.1.9/etc/apache-license-v2-header.txt000066400000000000000000000011531335270560400257350ustar00rootroot00000000000000Copyright 2011 The Open Source Research Group,
               University of Erlangen-Nürnberg

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.sweble-wikitext-sweble-wikitext-3.1.9/etc/checkstyle.xml000066400000000000000000000244741335270560400234530ustar00rootroot00000000000000





    

    

    
    
    
        
            
        

    
        
        
            
            
            
        
        
            
            
            
        
        
            
            
        
        
        
        
        
            
            
        
        
        
            
        
        
        
            
            
        
        
            
            
            
            
            
             
        
        
        
        
        
        
        
        
        
            
        
        
            
            
        
        
            
            
        
        
            
            
        
        
            
        
        
            
            
        
        
            
            
        
        
        
            
            
            
            
        
        
            
            
        
        
            
            
        
        
            
            
        
        
        
            
             
             
             
        
        
            
            
            
            
            
            
        
        
            
            
        
        
        
        
            
            
            
        
        
        
            
            
        
        
            
        
        
            
            
        
        
        
        
            
        
        
        
            
            
        
        
            
            
            
            
            
            
            
        
        
            
            
        
        
            
        
        
            
        
        
    
sweble-wikitext-sweble-wikitext-3.1.9/etc/forbiddenapis.txt000066400000000000000000000000711335270560400241300ustar00rootroot00000000000000
# Deprecated. Use org.junit instead.
junit.framework.**
sweble-wikitext-sweble-wikitext-3.1.9/icon/000077500000000000000000000000001335270560400207355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/icon/sweble.png000066400000000000000000000307071335270560400227330ustar00rootroot00000000000000PNG


IHDRXۘsBIT|d	pHYs''\!tEXtSoftwarewww.inkscape.org< IDATx{x]Wy߻nƶlcb]HB!ĒC0P.R0z	ah)RLt&!Kv1 $.N:"Y->HHsJy%'iإ۽_?:
o\ߒY2sؓDVK-*umh\4L1gQ{{ʩf9<疉ܸ7e4LDmǛ\W<Ӳb1ߢĆ{تp5ܲ'Z<{P|̉IOwSF~{LBY>J2}圻sY=32?fQt 2ЎznO}XSf钉Ƨd8/<:%{Xl[,IcEZAdc㉃3i_̆η0~c֠#9'64GGN=gGܢN}kR9ӟϲHAEߩG'`ֳHv.7
p&?2`&czv
EQy@A~ODnHջUhtϖ٥:l1IL7<
ny{"cj\<<5ca.Jj5U=i͒r
.IysA9A4u) /*TCKtaC3Wo+96H7wzRݩe5g]H$K7a6XM̚0zS+,q&5¾\Sёoľ-re_`-rFoe;ZI64ސ|BNmJ%^>a4&d/ŋm;@O^!Y2(^2~lL'$.DǕֻ:Y7d0~	ᱫR2'?i';O5A}YGzPf'{p}_Ols35亭sGFeý#U\ɉ̉^R.Pov)r
;?Evw0U8ܾr7yk!k4Vy2m4cfp~~egT{۞ ^xwOw:;.s;7oó19ГzI[\oؑ$4S1cqd&[1.qj2T_-$s'zI_)qS0|yw{+V_4$ ^WgGH+Rߖ8]rWԡ%"ѭ֨2j\/En{by5a62:eoj9r:!Y&W\2mV4B6C$(PG8qixI*.lvwgHѯSLͶJG(iY˒$Y^弅>ZMc)I_??PCKEנ{_\2
Ŝ4a߬f{AuŬ脰'Q:$KI:CqKWXiEXJRG-IҲfzZʿdkhG7cc)I@‘?puԹ3}gcN/tSm9I?3R9`'KekbOfM,ӏ+fhמ;xD
i>I?S6cw
2ڝ: niiK?~3QܕSq
G醾OK^-ⵈfܿL2Wnpy޵%Ymgݝ޷$
7'F>w̡ISF%:v.B=^%/q!.z[3en5o\"^.׳QH5
_&i{f6#Rl'QCա]{#^/Ҥ)ݽ]Ɵ^9 [Vbrߩ#"$\LIt1Q+{tb'eV(O'4V۾}&%{9/UihX
e,ZgE"GU828ۦ(&g{r,Wim;"FѮ :$Ἳ
<4^}JIeMȉ.Y.}eVe/uXv]+yS :沛g.sճؗ6P$ݽJ
'N%h3;`.kG=pI/3kRM?pΎj:oߤq4\}\6diibe%mM'^[mKIڛ琅տwE/ݽ¤냹$w=Jw!3*|*OB%a찬>,km`n}a)CnёϦzd$E򼳅Mו[uA\tU0uH+;}[%+Ӥ(,xt|VeH)I֘E/{N৒be}j>1i:.I3#Yu
(`0|/D#/U7San]e%B]g&MpY]PQܰgИQòX
yYS*}ǾK3+a.
A[)Xh%^IʤE+j|aCȏ%
Ox@B6Z-^XmkK>'˺Z/ӼȽ]'n̬S{]f'y!PYdcTt{MsJY7$u⎯QT%R6n3ges*YB#,`j	%}'6e30_kU$"/ElO=@hc?2k1)s\D=7kw%yΝSK*6%1Q]7$7ԳI\U(>;Vmq0<}ͯL?ٟ~Cv!~+U]^ִwIQPξCr*foƥZ%$ڙ~@3'$Zr<\z3H޻EGo.m[iZ{!1zס^zblf߯Au0OtZ^T+*#ns<=[6':ѺbeK͎U2~y,V#I8)&+\5ihӪ_tv,
{>4KG)@Q[~eM%-KnJzsjN+gq˦n9Cuf涗G-GbR(&,PatfN?Spvcn?4k5c{|;ݽ6!+&$PY%v͢[yc%)j9I3RLFA`2L[}#%^V\v8
1_Ӻ>u]~
~fOw*W%)p@X1FRhg:)|[gL2sF
{Zyy6G[\YۯnURg[%}OMe4i?+O.aաJOKyRg_=)_LoibC>u|ݺLoʽWMBJkf_~RY_ڲKTܺIRkgM_IsCGԡ"fƫ0fowowEP>wc7DZl
\gf
$u?6۶WW@5ݙPoI}*7s-VD7R	k~s7-u9o7pb'u[ɥ*R4.@9L,=H9iK?Г+0|@c:yeiCdFOZۚ'
;wuSHE\T{beMò-~Nφqʅ
}OHR&֘jd+`Lǖ゛iNʤ7m}=?6{̽	U:];*{g*7{zZ?+~]KY
m7iVdg?5u__R)٦0Er;cE%eIK3U?q#%Ty=nVHefГ^?Л\Rab.{O.شڮc˃sKa/URhߖu2Bo`oN~ڹ+9;6fLhY[42/z#erYQC@~k${*oo^?ԝ/j]>SlW_otșdoTzvz͕ݵ6{VJZUi٩]<*j0dz͚I/.d7e]ZW[y
wL(F]_t/,}\,GeiQHZ>]S8ܳv}dUYnPO懚Mghs飝}WRxV۪_Ќ$Y<|:G߬@H^˽\n#W=N39!~Xvj=eټh:s8,nX6^qXh8t#c;Fj*3/aMJw*
}ҷ
O㦡s$(>;tlO?ؘ+͜E`?zGڨxy
MѢ{)V;r^:J$+۾c1 IϬG]暎#Ux,;>yg>QPbN7']27
(,uo|Tj*E_5އ^*>ދle*=)_֧xa0s%7.5±~93sLirbT$e^2zEUl1x.\Y'IoRuZ&MIթ7miXٯwdV(++=i*,=N墢KYJcC#;E??ܳ?KR5;fO'Mۙƃ=&{/N[E&52
Ζ=wѪWj2=r:9Toܲbo^[6|*9kךMy_5x|s17l1\npkLZɮ1_̛\m7.}{r|IWZ/v;r3>ؓK+/mشfI=(

	ƗmZQU'jIyx!9Se0׹fgLY

/Q̈
k*S۬ek+f0Ojߵg<S	k~qu/vXv 
]*#Z
w7%bò±"±kȀ'%Zm)My>t}Y/if/y
^&,V7m3T
v/gI$]yu)IAsFiL%_ݱ\ӳE2=	8IDATWޛ]Чx	|<ѓ4,aU±G'V9	Wgy`vÐ'E$b]5|pt²/OZwǾ1t%[乐/QŝwPdX})IgÆkilKqòמTҥw`0-elfBicQ%cSy,,Uϒ}p&0=xr'OlݻSݢW[[TSU96w/ս'TQ8Ң ^4
wH_;i'v?pS`A{K֐k%-*p/Fg_^UES\*JIY~%pV_%stJIOb&P(?-n1Y[]$I{9ewb-sSI؎8e]Hn[yq⍳>cfǚf±rr%=Ј~\ԍ٦IUV`31)^>m$VX{&{6yY
:+0nn>zWw@J2T4d3_M1t~4	XkxOUukxӝo]^٬WBqdue&N|be]oT/I+vPЇK_\x;nYw$2WY;5w"í3<Uu,SkI7T{Q:LKx*SsnO1)VX&T1;FKT.+Ir{[ܢfV5}%ߘH`׮ÔL7zvI 3]?/Pl^W=ig}I]O	ߪPf{0flxs%2f&
u|':5-G[Wҹ3WPS'/s7M)phu؇~9(@gJD}Mò=aD_vbӆ~[
09ޣ̱/T1<4ԭ3fD.Ds;7+tn_v7fڻErm+peZP=k%]`l瓭c1i]ch06\^$0'-p)],Z{T0̓_IsK&,k$>t<((n6I]Sj.CW(Bzw=IEtڦ i}[q;)Pݽ]Q?ВHUpI>Do}Vu)W؜]DyV)38ؤ
uL/|Fo^*+Va[cUI׫zm/n߸iw?W~f*eysLi*em{w"5դulX=\ývDՅeM_oyMqs+&{W]淩Xh#U5|9ZU1{{N,O+:)fNIp{w3Iz✛~7+KT>=αbJ"{9IC-&{ͣ*d pIIe}^c8|vzINZ>e^]ouVbU)m{w]W,›L-Y\	UC#T'hqYBT.l7rYsrDzى4پ2N/>	:
t*>-IfV(sbeM7RUe{Fޓ%iu'۲n@wE3KRmU
zۮ/cs*9dE=55onJ
I}\-d=oֳFJY~'uJc&=gSqQ=M{IRdgN6{KˑeC@G_Jo˺cHdNxo;|x'
Qj;2$ywk(ژ\	5.k7XffVv#fa.@oo1첡#[u=RVzUjY	{ɻ%_ޒ#2{ogI*.S+im=ܓk
JodȃvIKzd\'f%IG߯؂NN!Ld0m5v]+s;HJl734*lsuPOj_ܝ^նCn,3Imn-Ŷ*,Wݱ`okܮUw۲nL浊r7I#w	)%_txo/j'mQ[{R3[.-i%ujB]2v}$+ՊӚb{`K0W$
Lnkq
lZuYr^o&V#r4lnԂʣ.ml7L-Ork=Cn/|m?zWǎbZ2_O7ITa?{c}¡#m,mZ$=s,3qޖl,t;5^
kXfy
+_ 邧|7yֿFfLbxbwoW,M|O.X=
E^նAa!%yNh&KdPyb"GMyS(ify^}-H_|rN%>7[?\?WfEP:ŕ(|VVOP|}Go)]G-n6E%zίʹYR"%`NyRR䏺ydY3d~PN&?L
Q3];i.V2헎}m|{ӜsuW<9ʤz!G$/i#/0冾|֠xiKy\'\$nUuP/7-]X/pȭK2uHZ<[qDO%vϽC	j{usʟvC׎|!WP{mnor*2ܳv}&\_sCW^m09-qoʌMDanݻ3rɂtL=+h.0?&ʽIENDB`sweble-wikitext-sweble-wikitext-3.1.9/icon/sweble.svg000066400000000000000000000210511335270560400227360ustar00rootroot00000000000000



  
  
    
    
  
  
    
      
        image/svg+xml
        
        
      
    
  
  
    
    
      
      
      
      
      
      
    
    
    
  

sweble-wikitext-sweble-wikitext-3.1.9/pom.xml000066400000000000000000000237461335270560400213360ustar00rootroot00000000000000


	4.0.0

	
		de.fau.cs.osr
		tooling
		3.0.8
	

	org.sweble
	sweble-parent
	3.1.9
	pom
	Sweble Parent
	2010
	
		The next generation Wiki platform project.
	

	
		sweble-engine-parent
		sweble-wikitext-components-parent
		sweble-wom3-parent
	

	
	
	

	
		${project.basedir}
		${sweble-parent.path}/etc
		${sweble-parent.etc-path}

		
		true

		
		3.0.9-SNAPSHOT
		
		3.1.9
	

	
	
	

	
		

			
			
			

			
			
				de.fau.cs.osr.utils
				utils
				3.0.8
			

			
			
				de.fau.cs.osr.utils
				utils-testing
				3.0.8
			

			
			
				de.fau.cs.osr.utils
				utils-getopt
				3.0.8
			

			
			
				de.fau.cs.osr.ptk
				ptk-common
				3.0.8
			

			
			
				de.fau.cs.osr.ptk
				ptk-xpath
				3.0.8
			

			
			
				de.fau.cs.osr.ptk
				ptk-xml-tools
				3.0.8
			

			
			
				de.fau.cs.osr.ptk
				ptk-json-tools
				3.0.8
			

			
			
			

			
			
				org.sweble.wikitext
				swc-parser-lazy
				${sweble.version}
			

			
			
				org.sweble.wikitext
				swc-engine
				${sweble.version}
			

			
			
				org.sweble.wikitext
				swc-dumpreader
				${sweble.version}
			

			
			
				org.sweble.wikitext
				swc-article-cruncher
				${sweble.version}
			

			
			
			

			
			
				org.sweble.wom3
				sweble-wom3-core
				${sweble.version}
			

			
			
				org.sweble.wom3
				sweble-wom3-json-tools
				${sweble.version}
			

			
			
				org.sweble.wom3
				sweble-wom3-swc-adapter
				${sweble.version}
			
			
			
			
			
			
			
			
				org.sweble.engine
				sweble-engine-serialization
				${sweble.version}
			

		
	

	

		
		
		

		
			

				
				
					com.mycila
					license-maven-plugin
					
						
${sweble-parent.etc-path}/apache-license-v2-header.txt
${sweble-parent.etc-path}/apache-license-v2-header-no-copyright.txt etc/apache-license-v2-header-no-copyright.txt etc/agpl-v3-header.txt etc/agpl-v3-header-no-copyright.txt sweble*/**
The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo GitHub https://github.com/sweble/sweble-parent/issues scm:git://git@github.com/sweble/sweble-parent.git scm:git://git@mojo-forge.cs.fau.de/sweble-public/sweble-parent.git https://github.com/sweble/sweble-parent sweble-wikitext-3.1.9 true true daily warn osr-public-repo OSR Public Repository http://mojo-maven.cs.fau.de/content/repositories/public jenkins env.BUILD_NUMBER org.codehaus.mojo cobertura-maven-plugin ${cobertura-maven-plugin.version} xml true true package cobertura
sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/000077500000000000000000000000001335270560400240205ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/LICENSE000066400000000000000000000261361335270560400250350ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/pom.xml000066400000000000000000000061671335270560400253470ustar00rootroot00000000000000 4.0.0 org.sweble sweble-parent 3.1.9 org.sweble.engine sweble-engine-parent pom Sweble Engine Parent 2013 The Sweble Engine modules provide components required to build a wiki engine. sweble-engine-serialization sweble-engine-serialization-eval ${project.basedir} ${sweble-engine-parent.path}/../ com.mycila license-maven-plugin
${sweble-parent.etc-path}/agpl-v3-header.txt
${sweble-parent.etc-path}/agpl-v3-header-no-copyright.txt
GNU Affero General Public License http://www.gnu.org/licenses/agpl-3.0.txt repo
sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/000077500000000000000000000000001335270560400323445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/pom.xml000066400000000000000000000140471335270560400336670ustar00rootroot00000000000000 4.0.0 org.sweble.engine sweble-engine-parent 3.1.9 sweble-engine-serialization-eval jar Sweble Engine Serialization Evaluation 2013 A module for evaluating the serialization module's performance. ../ true true true true org.apache.commons commons-math3 commons-io commons-io xerces xercesImpl net.sf.saxon Saxon-HE com.google.code.gson gson de.fau.cs.osr.utils utils org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine org.sweble.wom3 sweble-wom3-core org.sweble.wom3 sweble-wom3-swc-adapter org.sweble.engine sweble-engine-serialization de.fau.cs.osr.utils utils-testing junit junit com.mycila license-maven-plugin src/test/resources/**/*.wikitext org.apache.maven.plugins maven-dependency-plugin analyze-dependency-usage net.sf.saxon:Saxon-HE xml-apis:xml-apis de.thetaphi forbiddenapis commons-io-unsafe-1.4 sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/000077500000000000000000000000001335270560400331335ustar00rootroot00000000000000main/000077500000000000000000000000001335270560400340005ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/srcjava/000077500000000000000000000000001335270560400347215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/mainorg/000077500000000000000000000000001335270560400355105ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/javasweble/000077500000000000000000000000001335270560400367715ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/java/orgengine/000077500000000000000000000000001335270560400402365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/java/org/swebleserialization/000077500000000000000000000000001335270560400431135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/java/org/sweble/engineSerializationTestBase.java000066400000000000000000000043651335270560400502360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; import de.fau.cs.osr.utils.TestResourcesFixture; import de.fau.cs.osr.utils.WrappedException; public abstract class SerializationTestBase extends SerializationLabToolbox { private final TestResourcesFixture resources; private WtWom3Toolbox wtWomToolbox = new WtWom3Toolbox(); // ========================================================================= protected static TestResourcesFixture getTestResourcesFixture() { try { File path = TestResourcesFixture.resourceNameToFile( SerializationTestBase.class, "/"); return new TestResourcesFixture(path); } catch (FileNotFoundException e) { throw new WrappedException(e); } } // ========================================================================= protected SerializationTestBase(TestResourcesFixture resources) { this.resources = resources; } // ========================================================================= protected TestResourcesFixture getResources() { return resources; } public Artifacts wmToWom(File wmFile) throws LinkTargetException, IOException, EngineException { return wtWomToolbox.wmToWom(wmFile, "UTF8"); } } TimeSerialization.java000066400000000000000000000306441335270560400474210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.math3.stat.descriptive.moment.Mean; import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; import org.apache.commons.math3.stat.descriptive.rank.Median; import org.sweble.engine.serialization.CompressorFactory.CompressionFormat; import org.sweble.engine.serialization.WomSerializer.SerializationFormat; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; import de.fau.cs.osr.utils.SimpleConsoleOutput; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.TestResourcesFixture; import de.fau.cs.osr.utils.WrappedException; public class TimeSerialization extends SerializationTestBase { private static final int WARM_UP = 100; private static final int ITERATIONS = 100; private static final String INPUT_SUB_DIR = "/various"; private static final String FILTER_RX = ".*?\\.wikitext"; private static final CompressionFormat[] compressionFormats = { CompressionFormat.BZIP2, CompressionFormat.GZIP, CompressionFormat.XZ }; private static final SerializationFormat[] serializationFormats = { SerializationFormat.JAVA, SerializationFormat.JSON, SerializationFormat.XML }; private static final Charset CHARSET = Charset.forName("UTF8"); // ========================================================================= public static void main(String[] args) throws IOException, CompressionException, SerializationException, DeserializationException, LinkTargetException, EngineException { new TimeSerialization(SerializationTestBase.getTestResourcesFixture()).run(); } // ========================================================================= private final WomSerializer serializer = new WomSerializer(); public TimeSerialization(TestResourcesFixture resources) { super(resources); } private void run() throws IOException, CompressionException, SerializationException, DeserializationException, LinkTargetException, EngineException { TestResourcesFixture resources = getTestResourcesFixture(); List inputs = resources.gather(INPUT_SUB_DIR, FILTER_RX, false); for (File file : inputs) { String title = file.getName(); SimpleConsoleOutput.printBigSep(title); Artifacts af = timeParsing(file); Wom3Document wom = af.womDoc; System.out.println(); long uncompressedWikiMarkupSize = getSize(af.wm); printSize(2, "wiki markup", uncompressedWikiMarkupSize); for (CompressionFormat compressionFormat : compressionFormats) { System.out.println(); System.out.println(" Compression format: " + compressionFormat); System.out.println(); long compressedWikiMarkupSize = getSize(compress(af.wm, compressionFormat)); printSize(4, "compressed wiki markup", compressedWikiMarkupSize, "uncompressed wiki markup", uncompressedWikiMarkupSize); for (SerializationFormat serializationFormat : serializationFormats) { System.out.println(); SimpleConsoleOutput.printSep(4, "Serialization format: " + serializationFormat); for (int format = 0; format < 4; ++format) { boolean compact = ((format & 1) == 1); boolean pretty = ((format & 2) == 2); if (!compact || pretty) continue; System.out.println(); System.out.println(" " + "Compact: " + compact + "; " + "Pretty: " + pretty); System.out.println(); byte[] serialized = timeSerialization(wom, serializationFormat, compact, pretty); timeDeserialization(serialized, serializationFormat, compact, pretty); if (!serializationFormat.equals("JAVA")) saveSerialized(title, serializationFormat, compact, pretty, serialized); System.out.println(); printSize(8, "serialized WOM document", getSize(serialized), "uncompressed wiki markup", uncompressedWikiMarkupSize); System.out.println(); byte[] compressed = timeCompression(serialized, compressionFormat); timeDecompression(compressed, compressionFormat); System.out.println(); printSize(8, "compressed WOM document", getSize(compressed), "compressed wiki markup", compressedWikiMarkupSize); System.out.println(); compressed = timeCompressedSerialization(wom, compressionFormat, serializationFormat, compact, pretty); timeCompressedDeserialization(compressed, compressionFormat, serializationFormat, compact, pretty); } } } } } private void saveSerialized( String title, SerializationFormat serializationFormat, boolean compact, boolean pretty, byte[] serialized) throws IOException { String fname = title + "-" + serializationFormat; if (compact) fname += "-compact"; if (pretty) fname += "-pretty"; fname += "." + serializationFormat.toString().toLowerCase(); FileUtils.writeByteArrayToFile(new File(fname), serialized); } private Artifacts timeParsing(final File file) throws LinkTargetException, IOException, EngineException { RunMe runMe = new RunMe() { @Override public void run() throws LinkTargetException, IOException, EngineException { parse(file); } }; print(2, "Parsing", timeIt(runMe, WARM_UP, ITERATIONS)); return parse(file); } private byte[] timeSerialization( final Wom3Document wom, final SerializationFormat serializationFormat, final boolean compact, final boolean pretty) throws IOException, SerializationException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, SerializationException { serializer.serialize(wom, serializationFormat, compact, pretty); } }; print(8, "Serialization", timeIt(runMe, WARM_UP, ITERATIONS)); return serializer.serialize(wom, serializationFormat, compact, pretty); } private void timeDeserialization( final byte[] serialized, final SerializationFormat serializationFormat, final boolean compact, final boolean pretty) throws IOException, DeserializationException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, DeserializationException { serializer.deserialize(serialized, serializationFormat, compact); } }; print(8, "Deserialization", timeIt(runMe, WARM_UP, ITERATIONS)); serializer.deserialize(serialized, serializationFormat, compact); } private byte[] timeCompression( final byte[] serialized, final CompressionFormat compressionFormat) throws IOException, CompressionException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, CompressionException { serializer.compress(serialized, compressionFormat); } }; print(8, "Compression", timeIt(runMe, WARM_UP, ITERATIONS)); return serializer.compress(serialized, compressionFormat); } private void timeDecompression( final byte[] compressed, final CompressionFormat compressionFormat) throws IOException, CompressionException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, CompressionException { serializer.decompress(compressed, compressionFormat); } }; print(8, "Decompression", timeIt(runMe, WARM_UP, ITERATIONS)); serializer.decompress(compressed, compressionFormat); } private byte[] timeCompressedSerialization( final Wom3Document wom, final CompressionFormat compressionFormat, final SerializationFormat serializationFormat, final boolean compact, final boolean pretty) throws IOException, CompressionException, SerializationException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, CompressionException, SerializationException { serializer.serializeAndCompress(wom, compressionFormat, serializationFormat, compact, pretty); } }; print(8, "Serialization & Compression", timeIt(runMe, WARM_UP, ITERATIONS)); return serializer.serializeAndCompress(wom, compressionFormat, serializationFormat, compact, pretty); } private void timeCompressedDeserialization( final byte[] compressed, final CompressionFormat compressionFormat, final SerializationFormat serializationFormat, final boolean compact, final boolean pretty) throws IOException, DeserializationException, CompressionException { RunMe runMe = new RunMe() { @Override public void run() throws IOException, DeserializationException, CompressionException { serializer.decompressAndDeserialize(compressed, compressionFormat, serializationFormat, compact); } }; print(8, "Decompression and deserialization", timeIt(runMe, WARM_UP, ITERATIONS)); serializer.decompressAndDeserialize(compressed, compressionFormat, serializationFormat, compact); } // ========================================================================= private Artifacts parse(final File file) throws LinkTargetException, IOException, EngineException { return wmToWom(file); } // ========================================================================= private void print(int indent, String header, TimingResults timings) { String msg = String.format("" + "Mean: % 7.2f ms\n" + "Median: % 7.2f ms\n" + "StdDev: % 7.2f ms", timings.mean.evaluate() * 1000.0, timings.median.evaluate() * 1000.0, timings.stddev.evaluate() * 1000.0); System.out.println(StringTools.indent(header + ":", StringTools.strrep(' ', indent))); System.out.println(StringTools.indent(msg, StringTools.strrep(' ', indent + 2))); } private long getSize(byte[] bytes) { return bytes.length; } private long getSize(String str) { return getSize(str.getBytes(CHARSET)); } private void printSize(int indent, String what, long bytes) { String msg = String.format("Size of %s: %d Bytes", what, bytes); System.out.println(StringTools.indent(msg, StringTools.strrep(' ', indent))); } private void printSize( int indent, String what, long bytes, String comparedTo, long comparedToBytes) { final double percent = (double) bytes / (double) comparedToBytes * 100.; String msg = String.format( "Size of %s: %d Bytes (% 3.1f %% of the size of %s)", what, bytes, percent, comparedTo); System.out.println(StringTools.indent(msg, StringTools.strrep(' ', indent))); } // ========================================================================= private byte[] compress(String str, CompressionFormat compressionFormat) throws IOException, CompressionException { return serializer.compress(str.getBytes(CHARSET), compressionFormat); } // ========================================================================= private TimingResults timeIt(RunMe runMe, int warmUp, int iterations) { timeIt(runMe, warmUp); return timeIt(runMe, iterations); } private TimingResults timeIt(RunMe runMe, int iterations) { double[] values = new double[iterations]; for (int i = 0; i < iterations; ++i) values[i] = timeIt(runMe); TimingResults results = new TimingResults(); results.mean.setData(values); results.median.setData(values); results.stddev.setData(values); return results; } private double timeIt(RunMe runMe) { long startTime = System.nanoTime(); try { runMe.run(); } catch (Exception e) { throw new WrappedException(e); } long endTime = System.nanoTime(); return ((double) (endTime - startTime)) / 1000000000.; } private static interface RunMe { public void run() throws Exception; } private static final class TimingResults { public final Mean mean = new Mean(); public final Median median = new Median(); public final StandardDeviation stddev = new StandardDeviation(); } } test/000077500000000000000000000000001335270560400340335ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/srcjava/000077500000000000000000000000001335270560400347545ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/testorg/000077500000000000000000000000001335270560400355435ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/javasweble/000077500000000000000000000000001335270560400370245ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/java/orgengine/000077500000000000000000000000001335270560400402715ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/java/org/swebleserialization/000077500000000000000000000000001335270560400431465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/java/org/sweble/engineLoadWomFromJsonTest.java000066400000000000000000000057571335270560400477070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; import com.google.gson.Gson; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class LoadWomFromJsonTest extends SerializationTestBase { private static final String INPUT_SUB_DIR = "/various"; private static final String FILTER_RX = ".*?\\.wikitext"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private Wom3Document wom; private File inputFile; // ========================================================================= public LoadWomFromJsonTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Before public void before() throws Exception { Artifacts af = wmToWom(inputFile); this.wom = af.womDoc; } @Test public void testLoadWomFromCompactJson() throws Exception { doIt(true, true); doIt(true, false); } @Test public void testLoadWomFromVerboseJson() throws Exception { doIt(false, true); doIt(false, false); } private void doIt(boolean compact, boolean pretty) { Gson gson = createWom3Gson(compact, pretty); String womJson = gson.toJson(wom); //System.out.println(womJson); Wom3Node loadedWomJsonDoc = gson.fromJson(womJson, Wom3Node.class); // Unpack article from document fragment loadedWomJsonDoc = loadedWomJsonDoc.getFirstChild(); String loadedWomXml = gson.toJson(loadedWomJsonDoc); Assert.assertEquals(womJson, loadedWomXml); } } LoadWomFromXmlTest.java000066400000000000000000000063041335270560400475230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.io.StringReader; import java.util.List; import org.apache.xerces.parsers.DOMParser; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; import org.sweble.wom3.util.SaxonWomTransformations; import org.xml.sax.InputSource; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class LoadWomFromXmlTest extends SerializationTestBase { private static final String INPUT_SUB_DIR = "/various"; private static final String FILTER_RX = ".*?\\.wikitext"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private Wom3Document wom; private File inputFile; // ========================================================================= public LoadWomFromXmlTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Before public void before() throws Exception { Artifacts af = wmToWom(inputFile); this.wom = af.womDoc; } @Test public void testLoadWomFromXml() throws Exception { String womXml = SaxonWomTransformations.printWom(this.wom); //System.out.println(womXml); StringReader reader = new StringReader(womXml); InputSource is = new InputSource(reader); DOMParser parser = new DOMParser(); //System.out.println(parser.getXMLParserConfiguration().getFeature( // "http://xml.org/sax/features/namespaces")); parser.setProperty( "http://apache.org/xml/properties/" + "dom/document-class-name", "org.sweble.wom3.impl.DocumentImpl"); parser.parse(is); Wom3Document loadedWomXmlDoc = (Wom3Document) parser.getDocument(); String loadedWomXml = SaxonWomTransformations.printWom(loadedWomXmlDoc); //System.out.println(loadedWomXml); Assert.assertEquals(womXml, loadedWomXml); } } resources/000077500000000000000000000000001335270560400360455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/testvarious/000077500000000000000000000000001335270560400375355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/resourcesNOTICE000066400000000000000000000011101335270560400404320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/resources/variousThe articles in this directory are taken from the English, French and Spanish Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 Expansion is done using the script bin/enwp-expand.php. dogs.wikitext000066400000000000000000000000101335270560400422520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/resources/various[[Dog]]sraw-Germany.wikitext000066400000000000000000004650111335270560400435270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/resources/various{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=
[[File:Deutschlandlied played by USAREUR Band.ogg]]

The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;"| [[States of Germany|State]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²)!! style="width:85px;"| Population |- | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"|35,752|| style="text-align:right"|10,717,000 |- | [[Bavaria]] || [[Munich]] || style="text-align:right"|70,549|| style="text-align:right"|12,444,000 |- | Berlin || Berlin ||style="text-align:right"|892|| style="text-align:right"|3,400,000 |- | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"|29,477|| style="text-align:right"|2,568,000 |- | [[Bremen (state)|Bremen]] || [[Bremen]] || style="text-align:right"|404|| style="text-align:right"|663,000 |- | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"|755|| style="text-align:right"|1,735,000 |- | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"|21,115|| style="text-align:right"|6,098,000 |- | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"|23,174|| style="text-align:right"|1,720,000 |- | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"|47,618|| style="text-align:right"|8,001,000 |- | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"|34,043|| style="text-align:right"|18,075,000 |- | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"|19,847|| style="text-align:right"|4,061,000 |- | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"|2,569|| style="text-align:right"|1,056,000 |- | [[Saxony]] || [[Dresden]] || style="text-align:right"|18,416|| style="text-align:right"|4,296,000 |- | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"|20,445|| style="text-align:right"|2,494,000 |- | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"|15,763|| style="text-align:right"|2,829,000 |- | [[Thuringia]] || [[Erfurt]] || style="text-align:right"|16,172|| style="text-align:right"|2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;"| Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.|| style="text-align:center;"| Name|| style="text-align:center;"| Headquarters|| style="text-align:center;"| Revenue
(Mil. €) || style="text-align:center;"| Profit
(Mil. €) || style="text-align:center;"| Employees
(World) |- | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 || 329,305 |- | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 || 272,382 |- | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]]/Berlin || 72,488 || 3,806 || 398,200 |- | 4. || style="text-align:left;"| [[E.ON|E.ON AG]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 || 87,815 |- | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 || 242,378 |- | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 || 475,100 |- | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 || 241,426 |- | 8. || style="text-align:left;"| [[BASF|BASF SE]] || style="text-align:left;"| [[Ludwigshafen am Rhein|Ludwigshafen]] || 57,951 || 4,065 || 95,175 |- | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 || 107,539 |- | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]]/[[Duisburg]] || 51,723 || 2,102 || 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
{{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
[[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" !colspan=9 style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan=11 align=center valign=top | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
[[Berlin]]
[[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
[[Hamburg]]
[[File:München Panorama.JPG|border|160px|Munich]]
[[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 width="50" |   ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 align=center valign=top | [[File:Köln Panorama.jpg|border|160px|Cologne]]
[[Cologne|Cologne (Köln)]]
[[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
[[Frankfurt am Main|Frankfurt]]
[[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
[[Stuttgart]] |- | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right | 3,442,675 | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right | 520,966 |- | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right | 1,774,224 | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right | 518,862 |- | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right | 1,330,440 | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right | 517,052 |- | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right | 998,105 | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right | 503,673 |- | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main|Frankfurt]] || align=right | 671,927 | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right | 491,931 |- | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right | 601,646 | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right | 376,319 |- | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right | 586,217 | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right | 351,050 |- | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right | 581,308 | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right | 323,084 |- | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right | 576,259 | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right | 319,841 |- | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right | 547,685 | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right | 311,969 |- | colspan=9 align=center | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
(1749–1832) ! align=center |[[Friedrich Schiller]]
(1759–1805) ! align=center |[[Brothers Grimm]]
(1785–1863) ! align=center |[[Thomas Mann]]
(1875–1955) ! align=center |[[Hermann Hesse]]
(1877–1962) |- | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]]|| align=left | [[File:Grimm1.jpg|125px]]|| align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[J.S.Bach]]
[[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align=center |[[Ludwig van Beethoven|L.v. Beethoven]]
[[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align=center |[[Richard Wagner|R. Wagner]]
[[Die Walküre]] ! align=center |[[Kraftwerk]]
[[Computer World|Computerwelt Pt. 2]] ! align=center |[[Modern Talking]]
[[Brother Louie (Modern Talking song)|Brother Louie]] ! align=center |[[Rammstein]]
[[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]]|| style="text-align:left; background:silver;"|[[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]]|| style="text-align:left; background:dimGrey;"| [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
{{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
{{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
{{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]sweble.wikitext000066400000000000000000000005071335270560400426120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization-eval/src/test/resources/variousThe '''Sweble''' Wikitext parser is an [[Open-source software|open-source tool]] to [[Parsing|parse]] the [[Wikitext]] [[markup language]] used by [[MediaWiki]], the software behind [[Wikipedia]]. == The current state of parsing == * list item 1 * list item 2 == How Sweble works == another section [[Category:Parsing]]sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/000077500000000000000000000000001335270560400314175ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/pom.xml000066400000000000000000000113111335270560400327310ustar00rootroot00000000000000 4.0.0 org.sweble.engine sweble-engine-parent 3.1.9 sweble-engine-serialization jar Sweble Engine Serialization 2013 A module for serializing and deserializing WOM as JSON or XML. ../ org.apache.commons commons-compress commons-io commons-io xerces xercesImpl com.google.code.gson gson org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine org.sweble.wom3 sweble-wom3-core org.sweble.wom3 sweble-wom3-json-tools org.sweble.wom3 sweble-wom3-swc-adapter com.mycila license-maven-plugin src/test/resources/**/*.wikitext de.thetaphi forbiddenapis commons-io-unsafe-1.4 org.apache.maven.plugins maven-dependency-plugin xml-apis:xml-apis sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/000077500000000000000000000000001335270560400322065ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/000077500000000000000000000000001335270560400331325ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400337745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/mainorg/000077500000000000000000000000001335270560400345635ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/javasweble/000077500000000000000000000000001335270560400360445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/orgengine/000077500000000000000000000000001335270560400373115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/swebleserialization/000077500000000000000000000000001335270560400421665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engineCompressionException.java000066400000000000000000000022611335270560400472120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; public class CompressionException extends Exception { private static final long serialVersionUID = 1L; public CompressionException() { } public CompressionException(String message, Throwable cause) { super(message, cause); } public CompressionException(String message) { super(message); } public CompressionException(Throwable cause) { super(cause); } } CompressorFactory.java000066400000000000000000000064601335270560400465230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.compress.compressors.CompressorException; import org.apache.commons.compress.compressors.CompressorStreamFactory; public class CompressorFactory { public static enum CompressionFormat { BZIP2 { @Override public OutputStream createCompressorOutputStream(OutputStream out) throws CompressorException { return (new CompressorStreamFactory()).createCompressorOutputStream( CompressorStreamFactory.BZIP2, out); } @Override public InputStream createCompressorInputStream(InputStream in) throws CompressorException { return (new CompressorStreamFactory()).createCompressorInputStream( CompressorStreamFactory.BZIP2, in); } }, GZIP { @Override public OutputStream createCompressorOutputStream(OutputStream out) throws CompressorException { return (new CompressorStreamFactory()).createCompressorOutputStream( CompressorStreamFactory.GZIP, out); } @Override public InputStream createCompressorInputStream(InputStream in) throws CompressorException { return (new CompressorStreamFactory()).createCompressorInputStream( CompressorStreamFactory.GZIP, in); } }, XZ { @Override public OutputStream createCompressorOutputStream(OutputStream out) throws CompressorException { return (new CompressorStreamFactory()).createCompressorOutputStream( CompressorStreamFactory.XZ, out); } @Override public InputStream createCompressorInputStream(InputStream in) throws CompressorException { return (new CompressorStreamFactory()).createCompressorInputStream( CompressorStreamFactory.XZ, in); } }; public abstract OutputStream createCompressorOutputStream( OutputStream out) throws CompressorException; public abstract InputStream createCompressorInputStream( InputStream in) throws CompressorException; } public static OutputStream createCompressorOutputStream( CompressionFormat compressionFormat, OutputStream out) throws CompressorFactoryException { try { return compressionFormat.createCompressorOutputStream(out); } catch (Exception e) { throw new CompressorFactoryException(e); } } public static InputStream createCompressorInputStream( CompressionFormat compressionFormat, InputStream in) throws CompressorFactoryException { try { return compressionFormat.createCompressorInputStream(in); } catch (Exception e) { throw new CompressorFactoryException(e); } } } CompressorFactoryException.java000066400000000000000000000023171335270560400503770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; public class CompressorFactoryException extends Exception { private static final long serialVersionUID = 1L; public CompressorFactoryException() { } public CompressorFactoryException(String message, Throwable cause) { super(message, cause); } public CompressorFactoryException(String message) { super(message); } public CompressorFactoryException(Throwable cause) { super(cause); } } DeserializationException.java000066400000000000000000000023051335270560400500360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; public class DeserializationException extends Exception { private static final long serialVersionUID = 1L; public DeserializationException() { } public DeserializationException(String message, Throwable cause) { super(message, cause); } public DeserializationException(String message) { super(message); } public DeserializationException(Throwable cause) { super(cause); } } SerializationException.java000066400000000000000000000022731335270560400475310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; public class SerializationException extends Exception { private static final long serialVersionUID = 1L; public SerializationException() { } public SerializationException(String message, Throwable cause) { super(message, cause); } public SerializationException(String message) { super(message); } public SerializationException(Throwable cause) { super(cause); } } SerializationLabToolbox.java000066400000000000000000000042551335270560400476420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.serialization.Wom3JsonTypeAdapterInterface; import org.sweble.wom3.serialization.Wom3NodeCompactJsonTypeAdapter; import org.sweble.wom3.serialization.Wom3NodeJsonTypeAdapter; import org.w3c.dom.Node; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class SerializationLabToolbox { public static Wom3JsonTypeAdapterInterface createWom3JsonTypeAdapter( boolean compact) { return (compact ? (new Wom3NodeCompactJsonTypeAdapter()) : (new Wom3NodeJsonTypeAdapter())); } public static GsonBuilder registerWom3GsonAdapter( GsonBuilder builder, boolean compact) { Wom3JsonTypeAdapterInterface converter = createWom3JsonTypeAdapter(compact); builder.registerTypeHierarchyAdapter(Node.class, converter); builder.serializeNulls(); return builder; } public static Gson createWom3Gson(boolean compact, boolean pretty) { GsonBuilder builder = registerWom3GsonAdapter(new GsonBuilder(), compact); if (pretty) builder.setPrettyPrinting(); return builder.create(); } public static String womToJson( Wom3Node what, boolean compact, boolean pretty) { return createWom3Gson(compact, pretty).toJson(what); } public static Wom3Node jsonToWom( String json, boolean compact, boolean pretty) { return createWom3Gson(compact, pretty).fromJson(json, Wom3Node.class); } } WmToWomJsonApp.java000066400000000000000000000052661335270560400457060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.serialization.Wom3NodeCompactJsonTypeAdapter; import org.sweble.wom3.serialization.Wom3NodeJsonTypeAdapter; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; import org.w3c.dom.Node; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonSerializer; public class WmToWomJsonApp extends SerializationLabToolbox { public static void main(String[] args) throws LinkTargetException, IOException, EngineException { new WmToWomJsonApp().run(args); } private void run(String[] args) throws LinkTargetException, IOException, EngineException { if (args.length < 1) { System.err.println("Usage: java -cp JAR-with-dependencies.jar " + getClass().getName() + " WIKITEXT-FILE [compact|pretty]"); return; } boolean pretty = false; boolean compact = false; for (int i = 1; i < args.length; ++i) { if (args[i].compareToIgnoreCase("pretty") == 0) pretty = true; else if (args[i].compareToIgnoreCase("compact") == 0) compact = true; else System.err.println("Unknown command line option: '" + args[i] + "'"); } WtWom3Toolbox wtWomToolbox = new WtWom3Toolbox(); Artifacts af = wtWomToolbox.wmToWom(new File(args[0]), Charset.defaultCharset().name()); JsonSerializer converter = compact ? new Wom3NodeCompactJsonTypeAdapter() : new Wom3NodeJsonTypeAdapter(); GsonBuilder builder = new GsonBuilder(); builder.registerTypeHierarchyAdapter(Node.class, converter); builder.serializeNulls(); if (pretty) builder.setPrettyPrinting(); Gson gson = builder.create(); gson.toJson(af.womDoc, System.out); } } WmToWomXmlApp.java000066400000000000000000000056571335270560400455410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox.Artifacts; public class WmToWomXmlApp extends SerializationLabToolbox { public static void main(String[] args) throws TransformerException, LinkTargetException, IOException, EngineException { new WmToWomXmlApp().run(args); } private void run(String[] args) throws TransformerException, LinkTargetException, IOException, EngineException { if (args.length < 1) { System.err.println("Usage: java -cp JAR-with-dependencies.jar " + getClass().getName() + " WIKITEXT-FILE [pretty]"); return; } boolean pretty = false; for (int i = 1; i < args.length; ++i) { if (args[i].compareToIgnoreCase("pretty") == 0) pretty = true; else System.err.println("Unknown command line option: '" + args[i] + "'"); } WtWom3Toolbox wtWomToolbox = new WtWom3Toolbox(); Artifacts af = wtWomToolbox.wmToWom(new File(args[0]), Charset.defaultCharset().name()); Transformer transformer; if (pretty) { TransformerFactory tf = TransformerFactory.newInstance( "org.apache.xalan.processor.TransformerFactoryImpl", null); InputStream xslt = getClass().getResourceAsStream("/org/sweble/wom3/pretty-print.xslt"); Transformer prettyXmlTransformer = tf.newTransformer(new StreamSource(xslt)); transformer = prettyXmlTransformer; } else { TransformerFactory tf = TransformerFactory.newInstance(); Transformer normalXmlTransformer = tf.newTransformer(); transformer = normalXmlTransformer; } transformer.transform( new DOMSource(af.womDoc), new StreamResult(System.out)); } } WomSerializer.java000066400000000000000000000316641335270560400456370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-engine-parent/sweble-engine-serialization/src/main/java/org/sweble/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.engine.serialization; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.apache.commons.io.IOUtils; import org.apache.xerces.parsers.DOMParser; import org.sweble.engine.serialization.CompressorFactory.CompressionFormat; import org.sweble.wom3.serialization.Wom3JsonTypeAdapterBase; import org.sweble.wom3.serialization.Wom3NodeCompactJsonTypeAdapter; import org.sweble.wom3.serialization.Wom3NodeJsonTypeAdapter; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; import org.w3c.dom.Node; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.SAXNotSupportedException; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class WomSerializer { private static final Charset CHARSET = Charset.forName("UTF8"); // ========================================================================= public static enum SerializationFormat { JAVA, JSON, XML } // ========================================================================= private Transformer prettyXmlTransformer; private Transformer normalXmlTransformer; private String documentImplClassName = org.sweble.wom3.impl.DocumentImpl.class.getName(); // ========================================================================= public WomSerializer() { } // ========================================================================= public String getDocumentImplClassName() { return documentImplClassName; } public void setDocumentImplClassName(String documentImplClassName) { this.documentImplClassName = documentImplClassName; } // ========================================================================= public byte[] serialize( Document wom, SerializationFormat serializationFormat, boolean compact, boolean pretty) throws IOException, SerializationException { final byte[] result; switch (serializationFormat) { case JAVA: { ByteArrayOutputStream baos = null; ObjectOutputStream oos = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(wom); } finally { IOUtils.closeQuietly(baos); IOUtils.closeQuietly(oos); } result = baos.toByteArray(); break; } case JSON: { result = getGson(createDocumentForSerialization(), compact, pretty) .toJson(wom) .getBytes(CHARSET); break; } case XML: { ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); getXmlTransformer(pretty).transform( new DOMSource(wom), new StreamResult(baos)); } catch (TransformerException e) { throw new SerializationException(e); } finally { IOUtils.closeQuietly(baos); } result = baos.toByteArray(); break; } default: throw new IllegalArgumentException(); } return result; } public Document deserialize( byte[] serialized, SerializationFormat serializationFormat, boolean compact) throws IOException, DeserializationException { Document result; switch (serializationFormat) { case JAVA: { ByteArrayInputStream bais = null; ObjectInputStream ois = null; try { bais = new ByteArrayInputStream(serialized); ois = new ObjectInputStream(bais); result = (Document) ois.readObject(); } catch (ClassNotFoundException e) { throw new DeserializationException(e); } finally { IOUtils.closeQuietly(bais); IOUtils.closeQuietly(ois); } break; } case JSON: { DocumentFragment fragment = (DocumentFragment) getGson(createDocumentForDeserialization(), compact, false) .fromJson(new String(serialized, CHARSET), Node.class); Node firstChild = fragment.getFirstChild(); if (firstChild.getParentNode() != null) firstChild.getParentNode().removeChild(firstChild); Document doc = (Document) fragment.getOwnerDocument(); if (doc.getDocumentElement() != null) doc.removeChild(doc.getDocumentElement()); doc.appendChild(firstChild); result = doc; break; } case XML: { ByteArrayInputStream bais = null; try { bais = new ByteArrayInputStream(serialized); InputSource is = new InputSource(bais); DOMParser parser = getXmlParser(); parser.parse(is); result = parser.getDocument(); } catch (SAXException e) { throw new DeserializationException(e); } finally { IOUtils.closeQuietly(bais); } break; } default: throw new IllegalArgumentException(); } return result; } public byte[] compress( byte[] serialized, CompressionFormat compressionFormat) throws IOException, CompressionException { ByteArrayOutputStream out = null; OutputStream cos = null; InputStream in = null; try { out = new ByteArrayOutputStream(); cos = CompressorFactory.createCompressorOutputStream(compressionFormat, out); in = new ByteArrayInputStream(serialized); IOUtils.copy(in, cos); } catch (CompressorFactoryException e) { throw new CompressionException(e); } finally { IOUtils.closeQuietly(in); IOUtils.closeQuietly(cos); IOUtils.closeQuietly(out); } return out.toByteArray(); } public byte[] decompress( byte[] compressed, CompressionFormat compressionFormat) throws IOException, CompressionException { InputStream in = null; InputStream cin = null; ByteArrayOutputStream out = null; try { in = new ByteArrayInputStream(compressed); cin = CompressorFactory.createCompressorInputStream(compressionFormat, in); out = new ByteArrayOutputStream(compressed.length * 2); IOUtils.copy(cin, out); } catch (CompressorFactoryException e) { throw new CompressionException(e); } finally { IOUtils.closeQuietly(out); IOUtils.closeQuietly(cin); IOUtils.closeQuietly(in); } return out.toByteArray(); } public byte[] serializeAndCompress( Document wom, CompressionFormat compressionFormat, SerializationFormat serializationFormat, boolean compact, boolean pretty) throws IOException, CompressionException, SerializationException { ByteArrayOutputStream out = null; OutputStream cos = null; try { out = new ByteArrayOutputStream(); cos = CompressorFactory.createCompressorOutputStream(compressionFormat, out); switch (serializationFormat) { case JAVA: { ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(cos); oos.writeObject(wom); } finally { IOUtils.closeQuietly(oos); } break; } case JSON: { OutputStreamWriter osw = null; try { osw = new OutputStreamWriter(cos, CHARSET); Gson gson = getGson(createDocumentForSerialization(), compact, pretty); gson.toJson(wom, osw); } finally { IOUtils.closeQuietly(osw); } break; } case XML: { getXmlTransformer(pretty).transform( new DOMSource(wom), new StreamResult(cos)); break; } default: throw new IllegalArgumentException(); } } catch (CompressorFactoryException e) { throw new CompressionException(e); } catch (TransformerException e) { throw new SerializationException(e); } finally { IOUtils.closeQuietly(cos); IOUtils.closeQuietly(out); } return out.toByteArray(); } public Document decompressAndDeserialize( byte[] compressed, CompressionFormat compressionFormat, SerializationFormat serializationFormat, boolean compact) throws IOException, DeserializationException, CompressionException { ByteArrayInputStream in = null; InputStream cin = null; try { in = new ByteArrayInputStream(compressed); cin = CompressorFactory.createCompressorInputStream(compressionFormat, in); Document result; switch (serializationFormat) { case JAVA: { ObjectInputStream ois = null; try { ois = new ObjectInputStream(cin); result = (Document) ois.readObject(); } catch (ClassNotFoundException e) { throw new DeserializationException(e); } finally { IOUtils.closeQuietly(ois); } break; } case JSON: { InputStreamReader isr = null; try { isr = new InputStreamReader(cin, CHARSET); Gson gson = getGson(createDocumentForDeserialization(), compact, false); result = gson.fromJson(isr, Document.class); } finally { IOUtils.closeQuietly(isr); } break; } case XML: { InputSource is = new InputSource(cin); DOMParser parser = getXmlParser(); parser.parse(is); result = parser.getDocument(); break; } default: throw new IllegalArgumentException(); } return result; } catch (CompressorFactoryException e) { throw new CompressionException(e); } catch (SAXException e) { throw new DeserializationException(e); } finally { IOUtils.closeQuietly(cin); IOUtils.closeQuietly(in); } } // ========================================================================= private Transformer getNormalXmlTransformer() throws TransformerConfigurationException { if (normalXmlTransformer == null) { TransformerFactory tf = TransformerFactory.newInstance(); normalXmlTransformer = tf.newTransformer(); } return normalXmlTransformer; } private Transformer getPrettyXmlTransformer() throws TransformerConfigurationException { if (prettyXmlTransformer == null) { TransformerFactory tf = TransformerFactory.newInstance( "net.sf.saxon.TransformerFactoryImpl", null); InputStream xslt = getClass().getResourceAsStream("/org/sweble/wom3/pretty-print.xslt"); prettyXmlTransformer = tf.newTransformer(new StreamSource(xslt)); } return prettyXmlTransformer; } private Transformer getXmlTransformer(boolean pretty) throws TransformerConfigurationException { return pretty ? getPrettyXmlTransformer() : getNormalXmlTransformer(); } private DOMParser getXmlParser() throws SAXNotRecognizedException, SAXNotSupportedException { DOMParser parser = new DOMParser(); parser.setProperty( "http://apache.org/xml/properties/" + "dom/document-class-name", documentImplClassName); return parser; } // ========================================================================= private Gson getGson(Document doc, boolean compact, boolean pretty) { GsonBuilder builder = new GsonBuilder(); Wom3JsonTypeAdapterBase typeAdapter = compact ? (new Wom3NodeCompactJsonTypeAdapter()) : (new Wom3NodeJsonTypeAdapter()); typeAdapter.setDoc(doc); builder.registerTypeHierarchyAdapter(Node.class, typeAdapter); builder.serializeNulls(); if (pretty) builder.setPrettyPrinting(); return builder.create(); } private Document createDocumentForDeserialization() throws DeserializationException { try { return (Document) Class.forName(documentImplClassName).newInstance(); } catch (InstantiationException e) { throw new DeserializationException(e); } catch (IllegalAccessException e) { throw new DeserializationException(e); } catch (ClassNotFoundException e) { throw new DeserializationException(e); } } private Document createDocumentForSerialization() throws SerializationException { try { return (Document) Class.forName(documentImplClassName).newInstance(); } catch (InstantiationException e) { throw new SerializationException(e); } catch (IllegalAccessException e) { throw new SerializationException(e); } catch (ClassNotFoundException e) { throw new SerializationException(e); } } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/000077500000000000000000000000001335270560400266065ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/LICENSE000066400000000000000000000261361335270560400276230ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/pom.xml000066400000000000000000000161001335270560400301210ustar00rootroot00000000000000 4.0.0 org.sweble sweble-parent 3.1.9 org.sweble.wikitext sweble-wikitext-components-parent pom Sweble Wikitext Components Parent 2009 The Sweble Wikitext Components module provides a parser for MediaWiki's wikitext and an engine trying to emulate the behavior of a MediaWiki. swc-parser-lazy swc-engine swc-dumpreader swc-article-cruncher swc-example-basic swc-example-dumpcruncher swc-example-serialization swc-example-xpath ${project.basedir} ${swc-parent.path}/../ 0.8.0 1.4.3 1.3.0.1 4.3 1.15.0 1.4.8 net.sf.jopt-simple jopt-simple ${jopt-simple.version} xtc rats-runtime ${rats-runtime.version} com.thoughtworks.xstream xstream ${xstream.version} com.mycila license-maven-plugin JAVADOC_STYLE JAVADOC_STYLE SCRIPT_STYLE org.jvnet.jaxb2.maven2 maven-jaxb2-plugin ${maven-jaxb2-plugin.version} de.jflex maven-jflex-plugin ${maven-jflex-plugin.version} jflex-generate generate-sources generate de.fau.cs.osr.maven.plugins maven-rats-plugin ${maven-rats-plugin.version} rats-generate generate-sources generate org.eclipse.m2e lifecycle-mapping 1.0.0 com.google.code.maven-replacer-plugin maven-replacer-plugin [1.0.0,) replace de.fau.cs.osr.maven.plugins maven-rats-plugin [1.0.0,) generate de.jflex maven-jflex-plugin [1.0.0,) generate Daniel Naber naber@danielnaber.de Developer sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/000077500000000000000000000000001335270560400326325ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/pom.xml000066400000000000000000000047661335270560400341640ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-article-cruncher jar SWC - Sweble Article Cruncher 2012 A framework for multi-threaded processing of lots of articles. ../ org.slf4j slf4j-api de.fau.cs.osr.utils utils junit junit test sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/000077500000000000000000000000001335270560400334215ustar00rootroot00000000000000main/000077500000000000000000000000001335270560400342665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/srcjava/000077500000000000000000000000001335270560400352075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/mainorg/000077500000000000000000000000001335270560400357765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/javasweble/000077500000000000000000000000001335270560400372575ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/orgwikitext/000077500000000000000000000000001335270560400411275ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweblearticlecruncher/000077500000000000000000000000001335270560400443045ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitextGatherer.java000066400000000000000000000041151335270560400467110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public class Gatherer extends WorkerBase { private final BlockingQueue inTray; private final BlockingQueue processedJobs; private final BlockingQueue outTray; // ========================================================================= public Gatherer( AbortHandler abortHandler, BlockingQueue inTray, BlockingQueue processedJobs, BlockingQueue outTray) { super(getClassName(), abortHandler); Thread.currentThread().setName(getClassName()); this.inTray = inTray; this.processedJobs = processedJobs; this.outTray = outTray; } private static String getClassName() { return Gatherer.class.getSimpleName(); } // ========================================================================= private int count = 0; @Override protected void work() throws Throwable { while (true) { Job processed = processedJobs.take(); ++count; processed.signOff(getClass(), null); // TODO: Decide what to do with it. boolean tryAgain = false; if (tryAgain) { inTray.put(processed); } else { outTray.put(processed); } } } @Override protected void after() { info(getClass().getSimpleName() + " counts " + count + " items"); } } Job.java000066400000000000000000000104671335270560400456710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.List; import org.sweble.wikitext.articlecruncher.JobTrace.Signer; /** * A job with a history and a trace. * * A job is one unit of work that is generated by a job generator (see also * {@link JobGeneratorFactory}). It is then processed in a processing node (see * also {@link ProcessingNodeFactory}) and finally its result is stored by a * storer (see also {@link StorerFactory}). * * To generate a job first inherit from this class and add a payload to your job * class. This payload is then processed by a processing node. * * A job starts with a trace (and a job ID stored in that trace), no result or * exception and in the UNPROCESSED state. * * After processing a job can have a result if processing was successful or an * exception can be associated with the job in case of failure. It will then be * in the HAS_RESULT or FAILED state. It will further have a single history * element in its history chain. The state of a job as well as its result or an * exception are actually stored in that history element. The Job class offers * delegating getters for convenience. * * Further history elements can be present if a job failed multiple times and * was retried. */ public abstract class Job { private final JobTrace trace; private JobHistory history; // ========================================================================= public Job() { this.trace = new JobTrace(); } public Job(JobTrace trace) { this.trace = trace; } // ========================================================================= public JobTrace getTrace() { return trace; } public long getJobId() { return trace.getJobId(); } public List getSigners() { return trace.getSigners(); } public void signOff(Class signer, String signature) { trace.signOff(signer, signature); } // ========================================================================= /** * Retrieve the latest history element of the job. The history of a job * forms a chain. The head element (the element returned by this getter) * represents the latest processing attempt. * * @return Return the latest history element. */ public JobHistory getHistory() { return history; } /** * Set the result of a successfully processed job. */ public synchronized void processed(Object result) { history = new JobHistory(history, result); } /** * Set the exception of a job for which processing failed. * * Such a job can be re-submitted. */ public synchronized void failed(Exception exception) { history = new JobHistory(history, exception); } // ========================================================================= /** * Returns the state of this job. */ public synchronized JobProcessingState getState() { return history != null ? history.getState() : JobProcessingState.UNPROCESSED; } /** * Returns the result produced in the last processing run. * * @return The result produced in the last processing run or * null if the last processing run failed or if the job * has not yet been processed. */ public synchronized Object getResult() { return (getState() == JobProcessingState.HAS_RESULT) ? history.getResult() : null; } /** * Returns the exception that occurred in the last processing run. * * @return The exception that occurred in the last processing run or * null if that last processing run succeeded or if the * job has not yet been processed. */ public synchronized Exception getException() { return (getState() == JobProcessingState.FAILED) ? history.getException() : null; } } JobGeneratorFactory.java000066400000000000000000000020071335270560400510570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public interface JobGeneratorFactory { WorkerBase create( AbortHandler abortHandler, BlockingQueue inTray, JobTraceSet jobTraces); } JobHistory.java000066400000000000000000000050471335270560400472510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; public class JobHistory { private final JobHistory previous; private final JobProcessingState state; private final Object result; private final Exception exception; // ========================================================================= /** * Construct a history element for a successful processing run. */ public JobHistory(JobHistory previous, Object result) { this.previous = previous; this.state = JobProcessingState.HAS_RESULT; this.result = result; this.exception = null; } /** * Construct a history element for a failed processing run. */ public JobHistory(JobHistory previous, Exception exception) { this.previous = previous; this.state = JobProcessingState.FAILED; this.result = null; this.exception = exception; } // ========================================================================= /** * Return the history of the processing run preceding this processing run. * * @return Returns the previous processing run or null if there * was no previous processing run. */ public JobHistory getPrevious() { return previous; } /** * Get the processing state of the processing run represented by this * history element. */ public JobProcessingState getState() { return state; } /** * Get the result of the processing run represented by this history element. * * @return Returns the result if the processing run was successful. * Otherwise, if processing failed, null is returned. */ public Object getResult() { return result; } /** * Get the exception of the processing run represented by this history * element. * * @return Returns the exception if the processing run failed. Otherwise, if * processing was successful, null is returned. */ public Exception getException() { return exception; } } JobProcessingState.java000066400000000000000000000015611335270560400507220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; public enum JobProcessingState { /** Processing ended with a result. */ HAS_RESULT, /** Processing failed. */ FAILED, /** Not yet processed. */ UNPROCESSED, } JobTrace.java000066400000000000000000000054771335270560400466550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicLong; public class JobTrace { public static final class Signer { private Class signer; private String message; public Signer(Class signer, String message) { super(); this.signer = signer; this.message = message; } public Class getSigner() { return signer; } public String getMessage() { return message; } @Override public String toString() { String str = signer.getSimpleName(); if (message != null) str += " <" + message + ">"; return str; } } // ========================================================================= private static AtomicLong jobIdCounter = new AtomicLong(0); private final long jobId = jobIdCounter.incrementAndGet(); private List signers; // ========================================================================= public void signOff(Class signer, String signature) { if (signers == null) signers = new ArrayList(); signers.add(new Signer(signer, signature)); } public long getJobId() { return jobId; } public List getSigners() { return signers; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (jobId ^ (jobId >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; JobTrace other = (JobTrace) obj; if (jobId != other.jobId) return false; return true; } // ========================================================================= @Override public String toString() { StringBuilder b = new StringBuilder(); b.append(String.format("[ Job Trace: Job Id = %9d", jobId)); boolean first = true; b.append("; Signed by = "); for (Signer signer : signers) { if (!first) b.append(", "); b.append(signer.toString()); first = false; } b.append(" ]"); return b.toString(); } } JobTraceSet.java000066400000000000000000000026251335270560400473210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.Collections; import java.util.HashSet; import java.util.Set; public class JobTraceSet { private Set traces = new HashSet(); // ========================================================================= public synchronized void add(JobTrace trace) { traces.add(trace); } public synchronized boolean remove(JobTrace trace) { boolean removed = traces.remove(trace); notifyAll(); return removed; } public synchronized Set getTraces() { return Collections.unmodifiableSet(traces); } public synchronized void waitForCompletion(int timeoutInSeconds) throws InterruptedException { while (!traces.isEmpty()) wait(timeoutInSeconds * 1000); } } Nexus.java000066400000000000000000000210161335270560400462510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingDeque; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.ExecutorType; import org.sweble.wikitext.articlecruncher.utils.MyExecutorService; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import org.sweble.wikitext.articlecruncher.utils.WorkerLauncher; import org.sweble.wikitext.articlecruncher.utils.WorkerSynchronizer; public class Nexus { public static enum NexusState { INITIALIZED, RUNNING, SHUTDOWN } // ========================================================================= private static final Logger logger = LoggerFactory.getLogger(Nexus.class); private static final int COMPLETION_TIMEOUT_IN_SECONDS = 60 * 5; // ========================================================================= private BlockingQueue inTray; private BlockingQueue processedJobs; private BlockingQueue outTray; private JobTraceSet jobTraces = new JobTraceSet(); private MyExecutorService executor; private Throwable emergencyCause; private WorkerLauncher gatherer; private NexusState state; private AbortHandler abortHandler; private WorkerSynchronizer synchronizer = new WorkerSynchronizer(); private List jobGenerators = new ArrayList(); private List processingNodes = new ArrayList(); private List storers = new ArrayList(); // ========================================================================= public Nexus() { } // ========================================================================= public void setUp( int inTrayCapacity, int processedJobsCapacity, int outTrayCapacity) throws Throwable { synchronized (synchronizer.getMonitor()) { if (state != null) throw new IllegalStateException("Can only set-up Nexus once"); try { logger.info("Nexus starting"); inTray = new LinkedBlockingDeque(inTrayCapacity); processedJobs = new LinkedBlockingDeque(processedJobsCapacity); outTray = new LinkedBlockingDeque(outTrayCapacity); executor = new MyExecutorService(ExecutorType.CACHED_THREAD_POOL, logger); abortHandler = new AbortHandler() { @Override public void notify(Throwable t) { emergencyShutdown(t); } }; gatherer = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { return new Gatherer(abortHandler, inTray, processedJobs, outTray); } }, abortHandler); state = NexusState.INITIALIZED; } catch (Throwable t) { logger.error("Nexus hit by exception", t); setEmergencyCause(t); nexusStopped(); } } } public void start() throws Throwable { try { synchronized (synchronizer.getMonitor()) { if (state != NexusState.INITIALIZED) throw new IllegalStateException("Can only start Nexus after initialization"); state = NexusState.RUNNING; try { logger.info("Nexus starting workers"); gatherer.start(executor); logger.info("Nexus waiting for end of input stream"); synchronizer.waitForAll(1); } catch (InterruptedException e) { logger.error("Nexus interrupted unexpectedly", e); setEmergencyCause(e); } catch (Throwable t) { logger.error("Nexus hit by exception", t); setEmergencyCause(t); } } if (emergencyCause == null) { logger.info("Nexus waiting for processing to finish"); jobTraces.waitForCompletion(COMPLETION_TIMEOUT_IN_SECONDS); } } finally { MyExecutorService exec = null; synchronized (synchronizer.getMonitor()) { logger.info("Nexus shutting down"); exec = stopAll(); } if (exec != null) exec.shutdownAndAwaitTermination(); nexusStopped(); } } public void addJobGenerator(final JobGeneratorFactory factory) { synchronized (synchronizer.getMonitor()) { switch (state) { case INITIALIZED: case RUNNING: { logger.info("Adding job generator"); WorkerLauncher wl = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { return factory.create(abortHandler, inTray, jobTraces); } }, abortHandler); jobGenerators.add(wl); wl.start(executor, synchronizer); break; } default: throw new IllegalStateException("Can only add job generators to initialized/running Nexus"); } } } public void addProcessingNode(final ProcessingNodeFactory factory) { synchronized (synchronizer.getMonitor()) { switch (state) { case INITIALIZED: case RUNNING: { logger.info("Adding processing node"); WorkerLauncher wl = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { return factory.create( abortHandler, inTray, processedJobs); } }, abortHandler); processingNodes.add(wl); wl.start(executor); break; } default: throw new IllegalStateException("Can only add processing nodes to initialized/running Nexus"); } } } public void addStorer(final StorerFactory factory) { synchronized (synchronizer.getMonitor()) { switch (state) { case INITIALIZED: case RUNNING: { logger.info("Adding storer"); WorkerLauncher wl = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { return factory.create(abortHandler, jobTraces, outTray); } }, abortHandler); storers.add(wl); wl.start(executor); break; } default: throw new IllegalStateException("Can only add storers to initialized/running Nexus"); } } } public Set getJobTraces() { return jobTraces.getTraces(); } public BlockingQueue getInTray() { return inTray; } public BlockingQueue getOutTray() { return outTray; } public/*static*/void shutdown() { internalShutdown(null); } public/*static*/void emergencyShutdown(Throwable t) { internalShutdown(t); } // ========================================================================= private/*static*/void internalShutdown(Throwable t) { synchronized (/*get().*/synchronizer.getMonitor()) { switch (/*get().*/state) { case RUNNING: { WorkerSynchronizer sync = /*get().*/synchronizer; if (!sync.isSynchronized() && !sync.isAborted()) { /*get().*/setEmergencyCause(t); logger.info(t == null ? "Nexus performing orderly shutdown" : "Nexus performing emergency shutdown"); sync.abort(); } break; } default: throw new IllegalStateException("Can only shutdown running Nexus"); } } } private void setEmergencyCause(Throwable t) { // Don't overwrite original cause if (emergencyCause == null) emergencyCause = t; } private MyExecutorService stopAll() { synchronized (synchronizer.getMonitor()) { MyExecutorService exec = null; // TODO: We should wait for them to complete their work ... // if it's not an emergency shutdown logger.info("Stopping workers"); for (WorkerLauncher jg : jobGenerators) jg.stop(); for (WorkerLauncher pn : processingNodes) pn.stop(); if (gatherer != null) gatherer.stop(); for (WorkerLauncher s : storers) s.stop(); if (executor != null) { exec = executor; executor = null; } return exec; } } private void nexusStopped() throws Throwable { state = NexusState.SHUTDOWN; logger.info("Nexus stopped"); if (emergencyCause != null) throw emergencyCause; } } ProcessingNode.java000066400000000000000000000020741335270560400500740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public abstract class ProcessingNode extends WorkerBase { public ProcessingNode(String workerName, AbortHandler abortHandler) { super(workerName, abortHandler); } public ProcessingNode(String workerName) { super(workerName); } } ProcessingNodeFactory.java000066400000000000000000000020261335270560400514210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public interface ProcessingNodeFactory { WorkerBase create( AbortHandler abortHandler, BlockingQueue inTray, BlockingQueue processedJobs); } Processor.java000066400000000000000000000016421335270560400471310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; public interface Processor { /** * Process a job and return the result. * * @param job * The job to process. * @return The result of the processed job. */ public Object process(Job job); } StorerFactory.java000066400000000000000000000020021335270560400477470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public interface StorerFactory { WorkerBase create( AbortHandler abortHandler, JobTraceSet jobTraces, BlockingQueue outTray); } WorkerInstantiator.java000066400000000000000000000015131335270560400510200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public interface WorkerInstantiator { WorkerBase instantiate(); } pnodes/000077500000000000000000000000001335270560400455745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncherLocalProcessingNode.java000066400000000000000000000100261335270560400523330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/pnodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.pnodes; import java.util.concurrent.BlockingQueue; import java.util.concurrent.CompletionService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.Semaphore; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.ProcessingNode; import org.sweble.wikitext.articlecruncher.WorkerInstantiator; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.ExecutorType; import org.sweble.wikitext.articlecruncher.utils.MyExecutorService; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import org.sweble.wikitext.articlecruncher.utils.WorkerLauncher; import org.sweble.wikitext.articlecruncher.utils.WorkerSynchronizer; public class LocalProcessingNode extends ProcessingNode { private final BlockingQueue inTray; private final BlockingQueue processedJobs; private final int numWorkers; private final LpnJobProcessorFactory jobProcessorFactory; private MyExecutorService executor; private Semaphore backPressure; private WorkerLauncher distributor; private WorkerLauncher gatherer; // ========================================================================= public LocalProcessingNode( AbortHandler abortHandler, BlockingQueue inTray, BlockingQueue processedJobs, LpnJobProcessorFactory jobProcessorFactory, int numWorkers) { super(getClassName(), abortHandler); Thread.currentThread().setName(getClassName()); this.inTray = inTray; this.processedJobs = processedJobs; this.jobProcessorFactory = jobProcessorFactory; this.numWorkers = numWorkers; } private static String getClassName() { return LocalProcessingNode.class.getSimpleName(); } // ========================================================================= @Override protected void work() throws Throwable { try { executor = new MyExecutorService( ExecutorType.CACHED_THREAD_POOL, getLogger()); final AbortHandler abortHandler = new AbortHandler() { @Override public void notify(Throwable t) { stop(); } }; WorkerSynchronizer synchronizer = new WorkerSynchronizer(); backPressure = new Semaphore(numWorkers); final BlockingQueue> ecsQueue = new LinkedBlockingQueue>(); distributor = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { LpnDistributor d = new LpnDistributor( abortHandler, inTray, executor.getThreadGroup(), numWorkers, jobProcessorFactory, backPressure); ecsQueue.add(d.getEcs()); return d; } }, abortHandler); distributor.start(executor, synchronizer); final CompletionService ecs = ecsQueue.take(); gatherer = new WorkerLauncher(new WorkerInstantiator() { @Override public WorkerBase instantiate() { return new LpnGatherer( abortHandler, ecs, processedJobs, backPressure); } }, abortHandler); gatherer.start(executor, synchronizer); synchronizer.waitForAny(); } finally { info("Sending kill signal to workers"); if (distributor != null) distributor.stop(); if (gatherer != null) gatherer.stop(); if (executor != null) executor.shutdownAndAwaitTermination(); } } } LpnDistributor.java000066400000000000000000000075531335270560400514350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/pnodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.pnodes; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.Semaphore; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.MyExecutorCompletionService; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import de.fau.cs.osr.utils.WrappedException; public class LpnDistributor extends WorkerBase { private final BlockingQueue inTray; private final MyExecutorCompletionService execComplServ; private final Semaphore backPressure; private final LpnJobProcessorFactory jobProcessorFactory; private int count = 0; // ========================================================================= public LpnDistributor( AbortHandler abortHandler, BlockingQueue inTray, ThreadGroup fatherThreadGroup, int numWorkers, LpnJobProcessorFactory jobProcessorFactory, Semaphore backPressure) { super(getClassName(), abortHandler); Thread.currentThread().setName(getClassName()); this.inTray = inTray; this.backPressure = backPressure; this.jobProcessorFactory = jobProcessorFactory; int corePoolSize = numWorkers; int maximumPoolSize = numWorkers; info(getClass().getSimpleName() + " starts with a pool of " + numWorkers + " workers"); execComplServ = new MyExecutorCompletionService( getLogger(), corePoolSize, maximumPoolSize, 60, TimeUnit.SECONDS, new SynchronousQueue(), new RejectedExecutionHandlerImpl()); execComplServ.setThreadNameTemplate(jobProcessorFactory.getProcessorNameTemplate()); } protected static String getClassName() { return LpnDistributor.class.getSimpleName(); } // ========================================================================= @Override protected void work() throws Throwable { while (true) { // Prevent a accumulation of processed jobs in the gatherer. backPressure.acquire(); final Job job = inTray.take(); ++count; job.signOff(getClass(), null); Callable worker = new LpnWorker(jobProcessorFactory, job); execComplServ.submit(worker); } } @Override protected void after() { if (execComplServ != null) execComplServ.shutdownAndAwaitTermination(); info(getClass().getSimpleName() + " counts " + count + " items"); } // ========================================================================= public CompletionService getEcs() { return execComplServ; } // ========================================================================= private final class RejectedExecutionHandlerImpl implements RejectedExecutionHandler { @Override public void rejectedExecution( Runnable r, ThreadPoolExecutor executor) { if (executor.isShutdown()) return; try { executor.getQueue().put(r); } catch (InterruptedException e) { throw new WrappedException(e); } } } } LpnGatherer.java000066400000000000000000000056021335270560400506550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/pnodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.pnodes; import java.util.concurrent.BlockingQueue; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.Semaphore; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public class LpnGatherer extends WorkerBase { private final CompletionService execCompServ; private final BlockingQueue processedJobs; private final Semaphore backPressure; private int count = 0; private int failureCount = 0; private int successCount = 0; // ========================================================================= public LpnGatherer( AbortHandler abortHandler, CompletionService execCompServ, BlockingQueue processedJobs, Semaphore backPressure) { super(getClassName(), abortHandler); Thread.currentThread().setName(getClassName()); this.execCompServ = execCompServ; this.processedJobs = processedJobs; this.backPressure = backPressure; } private static String getClassName() { return LpnGatherer.class.getSimpleName(); } // ========================================================================= @Override protected void work() throws Throwable { while (true) { Future f = execCompServ.take(); ++count; try { Job processedJob = f.get(); switch (processedJob.getState()) { case FAILED: ++failureCount; break; case HAS_RESULT: ++successCount; break; default: throw new AssertionError(); } processedJobs.put(processedJob); backPressure.release(); } catch (ExecutionException e) { error(LpnWorker.class.getSimpleName() + " failed with unhandled expection", e.getCause()); abort(e.getCause()); } } } @Override protected void after() { info(getClass().getSimpleName() + " counts " + count + " items"); info(getClass().getSimpleName() + " counts " + failureCount + " items for which processing failed"); info(getClass().getSimpleName() + " counts " + successCount + " items which were successfully processed"); } } LpnJobProcessorFactory.java000066400000000000000000000016051335270560400530550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/pnodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.pnodes; import org.sweble.wikitext.articlecruncher.Processor; public interface LpnJobProcessorFactory { public Processor createProcessor(); public String getProcessorNameTemplate(); } LpnWorker.java000066400000000000000000000033641335270560400503700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/pnodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.pnodes; import java.util.concurrent.Callable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.Processor; final class LpnWorker implements Callable { private static final Logger logger = LoggerFactory.getLogger(LpnWorker.class.getSimpleName()); private final LpnJobProcessorFactory jobProcessorFactory; private final Job job; // ========================================================================= LpnWorker(LpnJobProcessorFactory jobProcessorFactory, Job jobHistory) { this.jobProcessorFactory = jobProcessorFactory; this.job = jobHistory; } // ========================================================================= @Override public Job call() { try { job.signOff(getClass(), null); Processor processor = jobProcessorFactory.createProcessor(); job.processed(processor.process(job)); } catch (Exception t) { logger.warn("Processing failed with exception", t); job.failed(t); } return job; } } storers/000077500000000000000000000000001335270560400460055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncherDummyStorer.java000066400000000000000000000037141335270560400511470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/storers/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.storers; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.JobTraceSet; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public class DummyStorer extends WorkerBase { private final JobTraceSet jobTraces; private final BlockingQueue outTray; // ========================================================================= public DummyStorer( AbortHandler abortHandler, JobTraceSet jobTraces, BlockingQueue outTray) { super(DummyStorer.class.getSimpleName(), abortHandler); this.outTray = outTray; this.jobTraces = jobTraces; } // ========================================================================= int count = 0; @Override protected void work() throws Throwable { while (true) { Job job = outTray.take(); ++count; // Do nothing JobTrace trace = job.getTrace(); trace.signOff(getClass(), null); if (!jobTraces.remove(trace)) throw new AssertionError("Missing job trace"); } } @Override protected void after() { info(getClass().getSimpleName() + " counts " + count + " items"); } } utils/000077500000000000000000000000001335270560400454445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncherAbortHandler.java000066400000000000000000000014151335270560400506550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; public interface AbortHandler { void notify(Throwable t); } DaemonThreadFactory.java000066400000000000000000000041241335270560400521730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public class DaemonThreadFactory implements ThreadFactory { private final AtomicInteger threadNumber = new AtomicInteger(1); private final ThreadGroup group; private String threadNameTemplate; // ========================================================================= public DaemonThreadFactory(String poolName) { this(poolName, Thread.currentThread().getThreadGroup()); } public DaemonThreadFactory(String poolName, ThreadGroup group) { if (group == null) group = new ThreadGroup(poolName); this.group = group; this.threadNameTemplate = String.format("%s-%%02d", poolName); } // ========================================================================= public void setThreadNameTemplate(String threadNameTemplate) { this.threadNameTemplate = threadNameTemplate; } // ========================================================================= @Override public Thread newThread(Runnable runnable) { String name = String.format(threadNameTemplate, threadNumber.getAndIncrement()); Thread thread = new Thread(group, runnable, name); if (!thread.isDaemon()) thread.setDaemon(true); if (thread.getPriority() != Thread.NORM_PRIORITY) thread.setPriority(Thread.NORM_PRIORITY); return thread; } public ThreadGroup getThreadGroup() { return group; } } ExecutorType.java000066400000000000000000000014011335270560400507430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; public enum ExecutorType { CACHED_THREAD_POOL } MyExecutorCompletionService.java000066400000000000000000000101011335270560400537570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; public class MyExecutorCompletionService implements CompletionService { private final ExecutorCompletionService execComplServ; private final MyExecutorService executor; // ========================================================================= public MyExecutorCompletionService(ExecutorType type, Logger logger) { this(type, logger, null); } public MyExecutorCompletionService( ExecutorType type, Logger logger, ThreadGroup threadGroup) { executor = new MyExecutorService(type, logger, threadGroup); execComplServ = new ExecutorCompletionService(executor); } public MyExecutorCompletionService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue) { this(logger, corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, (ThreadGroup) null); } public MyExecutorCompletionService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedExecutionHandler handler) { this(logger, corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, null, handler); } public MyExecutorCompletionService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadGroup threadGroup) { executor = new MyExecutorService( logger, maximumPoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadGroup); execComplServ = new ExecutorCompletionService(executor); } public MyExecutorCompletionService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadGroup threadGroup, RejectedExecutionHandler handler) { executor = new MyExecutorService( logger, maximumPoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadGroup, handler); execComplServ = new ExecutorCompletionService(executor); } // ========================================================================= public MyExecutorService getExecutor() { return executor; } public void shutdownAndAwaitTermination() { executor.shutdownAndAwaitTermination(); } public void setThreadNameTemplate(String threadNameTemplate) { executor.setThreadNameTemplate(threadNameTemplate); } // ========================================================================= public Future submit(Callable task) { return execComplServ.submit(task); } public Future submit(Runnable task, V result) { return execComplServ.submit(task, result); } public Future take() throws InterruptedException { return execComplServ.take(); } public Future poll() { return execComplServ.poll(); } public Future poll(long timeout, TimeUnit unit) throws InterruptedException { return execComplServ.poll(timeout, unit); } } MyExecutorService.java000066400000000000000000000147311335270560400517420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import java.util.Collection; import java.util.List; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.slf4j.Logger; public class MyExecutorService implements ExecutorService { private static final long SHUTDOWN_TIMEOUT_IN_SECONDS = 60 * 5; // ========================================================================= private final Logger logger; private final ExecutorService executor; private final DaemonThreadFactory threadFactory; // ========================================================================= public MyExecutorService(ExecutorType type, Logger logger) { this(type, logger, null); } public MyExecutorService( ExecutorType type, Logger logger, ThreadGroup threadGroup) { this.logger = logger; this.threadFactory = new DaemonThreadFactory( logger.getName(), threadGroup); switch (type) { case CACHED_THREAD_POOL: this.executor = Executors.newCachedThreadPool(threadFactory); break; default: throw new IllegalArgumentException("Invalid executor type"); } } public MyExecutorService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue) { this(logger, corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, null); } public MyExecutorService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadGroup threadGroup) { this.logger = logger; this.threadFactory = new DaemonThreadFactory( logger.getName(), threadGroup); this.executor = new ThreadPoolExecutor( corePoolSize, maximumPoolSize, 60, TimeUnit.SECONDS, workQueue, threadFactory); } public MyExecutorService( Logger logger, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadGroup threadGroup, RejectedExecutionHandler handler) { this.logger = logger; this.threadFactory = new DaemonThreadFactory( logger.getName(), threadGroup); this.executor = new ThreadPoolExecutor( corePoolSize, maximumPoolSize, 60, TimeUnit.SECONDS, workQueue, threadFactory, handler); } // ========================================================================= public ExecutorService getExecutor() { return executor; } public ThreadGroup getThreadGroup() { return threadFactory.getThreadGroup(); } public void setThreadNameTemplate(String threadNameTemplate) { this.threadFactory.setThreadNameTemplate(threadNameTemplate); } // ========================================================================= /* * Taken from usage example from: * http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html */ public synchronized void shutdownAndAwaitTermination() { logger.info("Shutting down workers"); // Disable new tasks from being submitted executor.shutdown(); try { logger.info("Waiting for workers to terminate"); if (!executor.awaitTermination(SHUTDOWN_TIMEOUT_IN_SECONDS, TimeUnit.SECONDS)) { logger.error("Workers are not responding to shutdown! Forcing shutdown."); // Cancel currently executing tasks executor.shutdownNow(); // Wait a while for tasks to respond to being cancelled if (!executor.awaitTermination(SHUTDOWN_TIMEOUT_IN_SECONDS, TimeUnit.SECONDS)) logger.error("Workers did not terminate!"); } } catch (InterruptedException ie) { logger.error("Worker shutdown interrupted! Forcing shutdown."); // (Re-)Cancel if current thread also interrupted executor.shutdownNow(); // Preserve interrupt status Thread.currentThread().interrupt(); } } // ========================================================================= @Override public void execute(Runnable command) { executor.execute(command); } @Override public void shutdown() { executor.shutdown(); } @Override public List shutdownNow() { return executor.shutdownNow(); } @Override public boolean isShutdown() { return executor.isShutdown(); } @Override public boolean isTerminated() { return executor.isTerminated(); } @Override public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { return executor.awaitTermination(timeout, unit); } @Override public Future submit(Callable task) { return executor.submit(task); } @Override public Future submit(Runnable task, T result) { return executor.submit(task, result); } @Override public Future submit(Runnable task) { return executor.submit(task); } @Override public List> invokeAll(Collection> tasks) throws InterruptedException { return executor.invokeAll(tasks); } @Override public List> invokeAll( Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException { return executor.invokeAll(tasks, timeout, unit); } @Override public T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException { return executor.invokeAny(tasks); } @Override public T invokeAny( Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return executor.invokeAny(tasks, timeout, unit); } } SpeedMeter.java000066400000000000000000000062571335270560400503560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import de.fau.cs.osr.utils.RingBuffer; public class SpeedMeter { private final RingBuffer speedBuffer; private final float progressUpdateInterval; private final float speedUpdateInterval; private long lastProgressUpdate = System.currentTimeMillis(); private long lastSpeedUpdate = lastProgressUpdate; private long lastBytesRead = 0; private float currentProgress; private float currentSpeed = Float.NaN; private float avgSpeed = Float.NaN; private float eta = Float.POSITIVE_INFINITY; // ========================================================================= public SpeedMeter( float progressUpdateIntervalInSeconds, float speedUpdateIntervalInSeconds, float etaWindowLengthInSeconds) { this.progressUpdateInterval = progressUpdateIntervalInSeconds; this.speedUpdateInterval = speedUpdateIntervalInSeconds; int capacity = (int) (etaWindowLengthInSeconds / speedUpdateInterval); if (capacity <= 0 || capacity > 4096) throw new IllegalArgumentException("Cannot realize ETA configuration"); this.speedBuffer = new RingBuffer( capacity); } // ========================================================================= public void update(long bytesRead, long fileLength) { long thisTime = System.currentTimeMillis(); updateSpeed(thisTime, bytesRead, fileLength); updateProgress(thisTime, bytesRead, fileLength); } public float getCurrentProgress() { return currentProgress; } public float getCurrentSpeed() { return currentSpeed; } public float getAvgSpeed() { return avgSpeed; } public float getEta() { return eta; } // ========================================================================= private void updateProgress(long now, long bytesRead, long fileLength) { float elapsed = (now - lastProgressUpdate) / 1000.f; if (elapsed > progressUpdateInterval) { lastProgressUpdate = now; currentProgress = (float) bytesRead / fileLength * 100.0f; } } private void updateSpeed(long now, long bytesRead, long fileLength) { float elapsed = (now - lastSpeedUpdate) / 1000.f; if (elapsed > speedUpdateInterval) { lastSpeedUpdate = now; long processed = bytesRead - lastBytesRead; lastBytesRead = bytesRead; currentSpeed = processed / elapsed; speedBuffer.add(currentSpeed); avgSpeed = 0; for (float speed : speedBuffer) avgSpeed += speed; avgSpeed /= speedBuffer.size(); if (speedBuffer.size() > 10) eta = (fileLength - bytesRead) / avgSpeed / 60.0f; } } } WorkerBase.java000066400000000000000000000052561335270560400503630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class WorkerBase { private final String workerName; private final AbortHandler abortHandler; private final Logger logger; private WorkerLauncher launcher; // ========================================================================= public WorkerBase(String workerName) { this(workerName, new AbortHandler() { @Override public void notify(Throwable e) { // Does nothing } }); } public WorkerBase(String workerName, AbortHandler abortHandler) { this.workerName = workerName; this.abortHandler = abortHandler; this.logger = LoggerFactory.getLogger(workerName); } // ========================================================================= protected abstract void work() throws Throwable; protected void after() { } protected void abort(Throwable e) { abortHandler.notify(e); } protected void stop() { launcher.stop(); } // ========================================================================= protected void setLauncher(WorkerLauncher launcher) { this.launcher = launcher; } protected String getWorkerName() { return workerName; } protected Logger getLogger() { return logger; } protected void trace(String message) { logger.trace(message); } protected void trace(String message, Throwable t) { logger.trace(message, t); } protected void debug(String message) { logger.debug(message); } protected void debug(String message, Throwable t) { logger.debug(message, t); } protected void info(String message) { logger.info(message); } protected void info(String message, Throwable t) { logger.info(message, t); } protected void warn(String message) { logger.warn(message); } protected void warn(String message, Throwable t) { logger.warn(message, t); } protected void error(String message) { logger.error(message); } protected void error(String message, Throwable t) { logger.error(message, t); } } WorkerLauncher.java000066400000000000000000000125361335270560400512510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.articlecruncher.WorkerInstantiator; import de.fau.cs.osr.utils.WrappedException; public class WorkerLauncher { public enum WorkerState { INITIALIZED, RUNNING, POISONED, STOPPED, } private static final Logger logger = LoggerFactory.getLogger(WorkerLauncher.class.getName()); private final Object kickOffLock = new Object(); private final WorkerInstantiator workerInstantiator; private final AbortHandler abortHandler; private String workerName; private Future future; private WorkerState state; private WorkerSynchronizer synchronizer; // ========================================================================= public WorkerLauncher( WorkerInstantiator workerInstantiator, AbortHandler abortHandler) { this.workerInstantiator = workerInstantiator; this.abortHandler = abortHandler; //this.logger = Logger.getLogger(workerName); this.state = WorkerState.INITIALIZED; } // ========================================================================= public final synchronized void start(ExecutorService executor) { start(executor, null); } public final synchronized void start( ExecutorService executor, WorkerSynchronizer synchronizer) { synchronized (state) { if (state != WorkerState.INITIALIZED) { throw new IllegalStateException("start() can be called only once"); } else { // Make sure that this.future is set before the worker can kick-off synchronized (kickOffLock) { this.state = WorkerState.RUNNING; this.synchronizer = synchronizer; this.future = executor.submit(new WorkerRunnable()); } } } } public final synchronized void stop() { synchronized (state) { switch (state) { case RUNNING: logger.info("Sending stop signal to worker " + workerName); state = WorkerState.POISONED; future.cancel(true); break; /* case POISONED: logger.warn("Already sent stop signal to worker " + workerName); break; case STOPPED: logger.warn("Worker " + workerName + " already terminated"); break; case INITIALIZED: throw new IllegalStateException("stop() can only be called after start()"); */ default: break; } } } public final synchronized void await() throws InterruptedException, ExecutionException { await(Long.MAX_VALUE, null); } public final synchronized boolean await(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException { Future f; synchronized (state) { if (state == WorkerState.INITIALIZED) throw new IllegalStateException("await() can only be called after start()"); f = future; } if (f != null) { try { if (timeout == Long.MAX_VALUE && unit == null) { future.get(); } else { future.get(timeout, unit); } } catch (TimeoutException e) { // timed out return false; } } else { logger.warn("Worker " + workerName + " already terminated"); } // joined with future return true; } // ========================================================================= private final class WorkerRunnable implements Runnable { @Override public void run() { synchronized (kickOffLock) { } WorkerBase worker = workerInstantiator.instantiate(); workerName = worker.getWorkerName(); worker.setLauncher(WorkerLauncher.this); try { if (synchronizer != null) synchronizer.oneStarted(); logger.info(workerName + " starting"); try { worker.work(); } catch (WrappedException e) { throw e.getCause(); } } catch (InterruptedException e) { boolean unexpected = false; synchronized (state) { // Don't call abort inside lock! if (state != WorkerState.POISONED) unexpected = true; } if (unexpected) { logger.error(workerName + " interrupted unexpectedly", e); abortHandler.notify(e); } } catch (Throwable t) { logger.error(workerName + " terminated by exception", t); abortHandler.notify(t); } finally { try { worker.after(); } catch (Throwable t) { logger.error(workerName + ".after() threw exception", t); } synchronized (state) { state = WorkerState.STOPPED; } logger.info(workerName + " stopped"); if (synchronizer != null) synchronizer.oneStopped(); } } } } WorkerSynchronizer.java000066400000000000000000000044171335270560400522040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/main/java/org/sweble/wikitext/articlecruncher/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.articlecruncher.utils; public class WorkerSynchronizer { private final Object lock = new Object(); private final Object goLock = new Object(); private int running = 0; private boolean oneStopped = false; private boolean abort = false; private boolean isSync = false; private boolean go = false; // ========================================================================= public WorkerSynchronizer() { } // ========================================================================= public void oneStarted() throws InterruptedException { synchronized (lock) { ++running; lock.notify(); } synchronized (goLock) { while (!go) goLock.wait(); } } public void oneStopped() { synchronized (lock) { --running; oneStopped = true; lock.notify(); } } public void abort() { synchronized (lock) { abort = true; lock.notify(); } } public void waitForAll(int numWaitingFor) throws InterruptedException { synchronized (lock) { while (running < numWaitingFor) lock.wait(); } synchronized (goLock) { go = true; goLock.notifyAll(); } synchronized (lock) { while (running > 0 && !abort) lock.wait(); isSync = true; } } public void waitForAny() throws InterruptedException { synchronized (goLock) { go = true; goLock.notifyAll(); } synchronized (lock) { while (!oneStopped && !abort) lock.wait(); isSync = true; } } public boolean isSynchronized() { return isSync; } public boolean isAborted() { return abort; } public Object getMonitor() { return lock; } } test/000077500000000000000000000000001335270560400343215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/srcjava/000077500000000000000000000000001335270560400352425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/testCruncherTest.java000066400000000000000000000077401335270560400405260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/test/java/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.atomic.AtomicLong; import org.junit.Before; import org.junit.Test; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobGeneratorFactory; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.Nexus; import org.sweble.wikitext.articlecruncher.ProcessingNodeFactory; import org.sweble.wikitext.articlecruncher.StorerFactory; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public class CruncherTest extends CruncherTestBase { private Nexus nexus; private AtomicLong processed = new AtomicLong(0); private long failAfter = -1; // ========================================================================= @Before public void before() throws Throwable { nexus = new Nexus(); nexus.setUp( 16, /* in tray capacity */ 16, /* processed jobs capacity */ 16 /* out tray capacity */); JobGeneratorFactory jobFactory = createJobFactory(); nexus.addJobGenerator(jobFactory); ProcessingNodeFactory pnFactory = createPnFactory(); nexus.addProcessingNode(pnFactory); StorerFactory storerFactory = createStorerFactory(); nexus.addStorer(storerFactory); } // ========================================================================= @Test public void testWithoutFailing() throws Throwable { nexus.start(); assertEquals(NUM_JOBS_TO_GENERATE, generated.get()); assertEquals(NUM_JOBS_TO_GENERATE, processed.get()); assertEquals(NUM_JOBS_TO_GENERATE, stored.get()); Set jobTraces = nexus.getJobTraces(); assertTrue(jobTraces.isEmpty()); } @Test public void testWithFailing() throws Throwable { failAfter = (NUM_JOBS_TO_GENERATE * 3) / 4; try { nexus.start(); } catch (RuntimeException e) { assertEquals("Die!", e.getMessage()); } Set jobTraces = nexus.getJobTraces(); assertEquals(generated.get(), processed.get() + jobTraces.size()); assertEquals(generated.get(), stored.get() + jobTraces.size()); /* System.out.println("numJobsToGenerate: " + NUM_JOBS_TO_GENERATE); System.out.println("generated: " + generated.get()); System.out.println("processed: " + processed.get()); System.out.println("stored: " + stored.get()); System.out.println("job traces left: " + jobTraces.size()); */ } // ========================================================================= private ProcessingNodeFactory createPnFactory() { return new ProcessingNodeFactory() { @Override public WorkerBase create( final AbortHandler abortHandler, final BlockingQueue inTray, final BlockingQueue processedJobs) { return new WorkerBase("ProcessingNode", abortHandler) { @Override protected void work() throws InterruptedException { while (true) { Job job = inTray.take(); job.signOff(getClass(), null); // do process. if (failAfter >= 0 && generated.get() > failAfter) throw new RuntimeException("Die!"); processed.incrementAndGet(); job.processed((Object) null); processedJobs.put(job); } } }; } }; } } CruncherTestBase.java000066400000000000000000000061761335270560400413230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/test/java/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.concurrent.BlockingQueue; import java.util.concurrent.atomic.AtomicLong; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobGeneratorFactory; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.JobTraceSet; import org.sweble.wikitext.articlecruncher.StorerFactory; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import de.fau.cs.osr.utils.WrappedException; public class CruncherTestBase { protected static final long NUM_JOBS_TO_GENERATE = (long) Math.pow(2, 20); protected AtomicLong generated = new AtomicLong(0); protected AtomicLong stored = new AtomicLong(0); // ========================================================================= protected static final class TestJob extends Job { } // ========================================================================= protected JobGeneratorFactory createJobFactory() { return new JobGeneratorFactory() { @Override public WorkerBase create( final AbortHandler abortHandler, final BlockingQueue inTray, final JobTraceSet jobTraces) { try { return new WorkerBase("JobGenerator", abortHandler) { @Override protected void work() throws InterruptedException { for (long i = 0; i < NUM_JOBS_TO_GENERATE; ++i) { // generate jobs out of thin air. Job job = new TestJob(); generated.incrementAndGet(); JobTrace trace = job.getTrace(); trace.signOff(getClass(), null); jobTraces.add(trace); inTray.put(job); } } }; } catch (Exception e) { throw new WrappedException(e); } } }; } protected StorerFactory createStorerFactory() { return new StorerFactory() { @Override public WorkerBase create( final AbortHandler abortHandler, final JobTraceSet jobTraces, final BlockingQueue outTray) { return new WorkerBase("Storer", abortHandler) { @Override protected void work() throws InterruptedException { while (true) { TestJob job = (TestJob) outTray.take(); JobTrace trace = job.getTrace(); trace.signOff(getClass(), null); // do store. stored.incrementAndGet(); if (!jobTraces.remove(trace)) throw new AssertionError("Missing job trace"); } } }; } }; } } LpnCruncherTest.java000066400000000000000000000071001335270560400411660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-article-cruncher/src/test/java/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.atomic.AtomicLong; import org.junit.Before; import org.junit.Test; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobGeneratorFactory; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.Nexus; import org.sweble.wikitext.articlecruncher.ProcessingNodeFactory; import org.sweble.wikitext.articlecruncher.Processor; import org.sweble.wikitext.articlecruncher.StorerFactory; import org.sweble.wikitext.articlecruncher.pnodes.LocalProcessingNode; import org.sweble.wikitext.articlecruncher.pnodes.LpnJobProcessorFactory; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; public class LpnCruncherTest extends CruncherTestBase { private Nexus nexus; private static final int NUM_WORKERS = 256; private AtomicLong processed = new AtomicLong(0); // ========================================================================= @Before public void before() throws Throwable { nexus = new Nexus(); nexus.setUp( 16, /* in tray capacity */ 16, /* processed jobs capacity */ 16 /* out tray capacity */); JobGeneratorFactory jobFactory = createJobFactory(); nexus.addJobGenerator(jobFactory); ProcessingNodeFactory pnFactory = createPnFactory(); nexus.addProcessingNode(pnFactory); StorerFactory storerFactory = createStorerFactory(); nexus.addStorer(storerFactory); } // ========================================================================= @Test public void test() throws Throwable { nexus.start(); assertEquals(NUM_JOBS_TO_GENERATE, generated.get()); assertEquals(NUM_JOBS_TO_GENERATE, processed.get()); assertEquals(NUM_JOBS_TO_GENERATE, stored.get()); Set jobTraces = nexus.getJobTraces(); assertTrue(jobTraces.isEmpty()); } // ========================================================================= private ProcessingNodeFactory createPnFactory() { return new ProcessingNodeFactory() { @Override public WorkerBase create( AbortHandler abortHandler, BlockingQueue inTray, BlockingQueue processedJobs) { return new LocalProcessingNode( abortHandler, inTray, processedJobs, createLpnFactory(), NUM_WORKERS); } }; } private LpnJobProcessorFactory createLpnFactory() { return new LpnJobProcessorFactory() { @Override public Processor createProcessor() { return new Processor() { @Override public Object process(Job job) { job.signOff(getClass(), null); processed.incrementAndGet(); return null; } }; } @Override public String getProcessorNameTemplate() { return "Processor-%02d"; } }; } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/000077500000000000000000000000001335270560400315305ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/pom.xml000066400000000000000000000210001335270560400330360ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-dumpreader jar SWC - Sweble Dump Reader 2012 A small library for reading in Wikipedia dumps. ../ src/main/schema ${project.build.directory}/generated-sources org.aspectj aspectjrt org.apache.commons commons-compress commons-io commons-io joda-time joda-time org.slf4j slf4j-api de.fau.cs.osr.utils utils junit junit test ${schema-sources.directory} com.mycila license-maven-plugin src/main/schema/xml.xsd src/main/schema/export-*.xsd org.codehaus.mojo build-helper-maven-plugin add-source generate-sources add-source ${schema-sources.directory} ${generated-sources.directory} org.jvnet.jaxb2.maven2 maven-jaxb2-plugin ${schema-sources.directory} ${generated-sources.directory} ${schema-sources.directory}/catalog.xml true true compile-mw-schema-0.5 generate export-0.5.xsd org.sweble.wikitext.dumpreader.export_0_5 compile-mw-schema-0.6 generate export-0.6-fixed.xsd org.sweble.wikitext.dumpreader.export_0_6 compile-mw-schema-0.7 generate export-0.7.xsd org.sweble.wikitext.dumpreader.export_0_7 compile-mw-schema-0.8 generate export-0.8.xsd org.sweble.wikitext.dumpreader.export_0_8 compile-mw-schema-0.9 generate export-0.9.xsd org.sweble.wikitext.dumpreader.export_0_9 compile-mw-schema-0.10 generate export-0.10.xsd org.sweble.wikitext.dumpreader.export_0_10 org.codehaus.mojo aspectj-maven-plugin false maven-eclipse-plugin false 1.5 de.thetaphi forbiddenapis commons-io-unsafe-1.4 maven-shade-plugin package shade true jar-with-dependencies sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/000077500000000000000000000000001335270560400323175ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/000077500000000000000000000000001335270560400332435ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400341055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/mainorg/000077500000000000000000000000001335270560400346745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/javasweble/000077500000000000000000000000001335270560400361555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/orgwikitext/000077500000000000000000000000001335270560400400255ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/swebledumpreader/000077500000000000000000000000001335270560400421555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitextCountingInputStream.java000066400000000000000000000042621335270560400470060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.io.IOException; import java.io.InputStream; public final class CountingInputStream extends InputStream { private InputStream in; private long count; // ========================================================================= public CountingInputStream(InputStream inputStream) { this.in = inputStream; this.count = 0; } // ========================================================================= public long getCount() { return count; } // ========================================================================= @Override public int read() throws IOException { int read = in.read(); if (read != -1) ++count; return read; } @Override public int read(byte[] b) throws IOException { int read = in.read(b); if (read != -1) count += read; return read; } @Override public int read(byte[] b, int off, int len) throws IOException { int read = in.read(b, off, len); if (read != -1) count += read; return read; } @Override public long skip(long n) throws IOException { long skipped = in.skip(n); if (skipped != -1) ++count; return skipped; } @Override public int available() throws IOException { return in.available(); } @Override public void close() throws IOException { in.close(); } @Override public void mark(int readlimit) { in.mark(readlimit); } @Override public void reset() throws IOException { in.reset(); } @Override public boolean markSupported() { return in.markSupported(); } } DumpReader.java000066400000000000000000000253411335270560400450550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.io.BufferedInputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URL; import java.nio.charset.Charset; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventHandler; import javax.xml.bind.ValidationEventLocator; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.xml.sax.SAXException; import de.fau.cs.osr.utils.WrappedException; public abstract class DumpReader implements Closeable { private final InputStream dumpInputStream; private final String dumpUri; private final Logger logger; private final XMLStreamReader xmlStreamReader; private final Unmarshaller unmarshaller; private final ExportSchemaVersion schemaVersion; private CountingInputStream decompressedInputStream; private CountingInputStream compressedInputStream; private long fileLength; private long parsedCount; private boolean decompress; private static final int LOOKAHEAD = 4096; // ========================================================================= /** * Use a constructor that expects an encoding to prevent bug in xerces * parser code. * * @deprecated */ public DumpReader(File dumpFile, Logger logger) throws JAXBException, FactoryConfigurationError, XMLStreamException, IOException, SAXException { this(new FileInputStream(dumpFile), dumpFile.getAbsolutePath(), logger); fileLength = dumpFile.length(); } /** * Use a constructor that expects an encoding to prevent bug in xerces * parser code. * * @deprecated */ public DumpReader(InputStream is, String url, Logger logger) throws JAXBException, FactoryConfigurationError, XMLStreamException, IOException, SAXException { this(is, null, url, logger, true); } /** * Use a constructor that expects an encoding to prevent bug in xerces * parser code. * * @deprecated */ public DumpReader( InputStream is, String url, Logger logger, boolean useSchema) throws JAXBException, FactoryConfigurationError, XMLStreamException, IOException, SAXException { this(is, null, url, logger, useSchema); } public DumpReader( InputStream is, Charset encoding, String url, Logger logger, boolean useSchema) throws JAXBException, FactoryConfigurationError, XMLStreamException, IOException, SAXException { this.dumpInputStream = is; this.dumpUri = url; this.logger = logger; logger.info("Setting up parser for file " + dumpUri); getDumpInputStream(); schemaVersion = determineExportVersion(); unmarshaller = createUnmarshaller(schemaVersion.getContextPath()); installCallbacks(); if (useSchema) setSchema(DumpReader.class.getResource(schemaVersion.getSchema())); xmlStreamReader = getXmlStreamReader(encoding); fileLength = -1; parsedCount = 0; } // ========================================================================= public void unmarshal() throws JAXBException, XMLStreamException { try { unmarshaller.unmarshal(xmlStreamReader); } finally { closeStreams(); } } @Override public void close() throws IOException { closeStreams(); } private void closeStreams() { IOUtils.closeQuietly(decompressedInputStream); IOUtils.closeQuietly(compressedInputStream); IOUtils.closeQuietly(dumpInputStream); } public long getFileSize() { return fileLength; } public long getDecompressedBytesRead() throws IOException { return decompressedInputStream.getCount(); } public long getCompressedBytesRead() throws IOException { if (decompress) { return compressedInputStream.getCount(); } else { return getDecompressedBytesRead(); } } public long getParsedCount() { return parsedCount; } // ========================================================================= protected abstract void processPage(Object mediaWiki, Object page); protected boolean processRevision(Object page, Object revision) { // Add by default return true; } protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { logger.warn(String.format( "%s:%d:%d: %s", dumpUri, vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return true; } // ========================================================================= private void handlePage(Object mediaWiki, Object page) { ++parsedCount; processPage(mediaWiki, page); } private boolean handleRevision(Object page, Object revision) { return processRevision(page, revision); } protected boolean handleEvent(ValidationEvent ve, ValidationEventLocator vel) { return processEvent(ve, vel); } // ========================================================================= private void getDumpInputStream() throws IOException { InputStream decomp; if (dumpUri.endsWith(".bz2")) { decompress = true; compressedInputStream = new CountingInputStream(dumpInputStream); decomp = new BZip2CompressorInputStream(compressedInputStream, true); } else if (dumpUri.endsWith(".gz")) { decompress = true; compressedInputStream = new CountingInputStream(dumpInputStream); decomp = new GzipCompressorInputStream(compressedInputStream); } else { decompress = false; decomp = dumpInputStream; } decompressedInputStream = new CountingInputStream( new BufferedInputStream(decomp, LOOKAHEAD)); } private ExportSchemaVersion determineExportVersion() throws IOException { byte[] b = new byte[LOOKAHEAD]; decompressedInputStream.mark(LOOKAHEAD); int read = decompressedInputStream.read(b, 0, LOOKAHEAD); decompressedInputStream.reset(); String header = new String(b, 0, read); if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.5/\"")) { return ExportSchemaVersion.V0_5; } else if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.6/\"")) { return ExportSchemaVersion.V0_6; } else if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.7/\"")) { return ExportSchemaVersion.V0_7; } else if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.8/\"")) { return ExportSchemaVersion.V0_8; } else if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.9/\"")) { return ExportSchemaVersion.V0_9; } else if (header.contains("xmlns=\"http://www.mediawiki.org/xml/export-0.10/\"")) { return ExportSchemaVersion.V0_10; } else { throw new IllegalArgumentException("Unknown xmlns"); } } /** * The xerces UTF8Reader is broken. If the xerces XML parser is given an * input stream, it will instantiate a reader for the encoding found in the * XML file, a UTF8Reader in case of an UTF8 encoded XML file. Sadly, this * UTF8Reader crashes for certain input (not sure why exactly). * * On the other hand, when given a reader, which is forced to work with a * certain encoding, the xerces XML parser does not have this freedom and * will apparently process Wikipedia dumps just fine. * * Therefore, in case you have trouble to parse a XML file, by specifying an * encoding, you force the use of a Reader and can circumvent the crash. */ private XMLStreamReader getXmlStreamReader(Charset encoding) throws FactoryConfigurationError, XMLStreamException, UnsupportedEncodingException { XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); if (encoding != null) { InputStreamReader isr = new InputStreamReader(decompressedInputStream, encoding); return xmlInputFactory.createXMLStreamReader(isr); } else { return xmlInputFactory.createXMLStreamReader(decompressedInputStream); } } private void setSchema(URL schemaUrl) throws SAXException, JAXBException { SchemaFactory sf = SchemaFactory.newInstance( javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); sf.setResourceResolver(new LSResourceResolverImplementation()); Schema schema = sf.newSchema(schemaUrl); unmarshaller.setSchema(schema); unmarshaller.setEventHandler( new ValidationEventHandler() { public boolean handleEvent(ValidationEvent ve) { try { return DumpReader.this.handleEvent(ve, ve.getLocator()); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new WrappedException(e); } } }); } private void installCallbacks() { final DumpReaderListener pageListener = new DumpReaderListener() { @Override public void handlePage(Object mediaWiki, Object page) { try { DumpReader.this.handlePage(mediaWiki, page); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new WrappedException(e); } } @Override public boolean handleRevisionOrUploadOrLogitem( Object page, Object revision) { try { return DumpReader.this.handleRevision(page, revision); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new WrappedException(e); } } }; unmarshaller.setListener(new Unmarshaller.Listener() { public void beforeUnmarshal(Object target, Object parent) { schemaVersion.setPageListener(target, pageListener); } public void afterUnmarshal(Object target, Object parent) { schemaVersion.setPageListener(target, pageListener); } }); } private Unmarshaller createUnmarshaller(String contextPath) throws JAXBException { JAXBContext context = JAXBContext.newInstance(contextPath); return context.createUnmarshaller(); } } DumpReaderListener.java000066400000000000000000000017351335270560400465640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; public interface DumpReaderListener { void handlePage(Object mediaWiki, Object page); /** * @return Return true to add the item to the page's list or false if you * handled it yourself. */ boolean handleRevisionOrUploadOrLogitem(Object page, Object revision); } DumpReaderWithHandler.java000066400000000000000000000035021335270560400472020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import javax.xml.bind.JAXBException; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLStreamException; import org.slf4j.Logger; import org.xml.sax.SAXException; public class DumpReaderWithHandler extends DumpReader { private final DumpReaderListener listener; // ========================================================================= public DumpReaderWithHandler( InputStream is, Charset encoding, DumpReaderListener listener, String url, Logger logger, boolean useSchema) throws JAXBException, FactoryConfigurationError, XMLStreamException, IOException, SAXException { super(is, encoding, url, logger, useSchema); this.listener = listener; } // ========================================================================= @Override protected void processPage(Object mediaWiki, Object page) { listener.handlePage(mediaWiki, page); } @Override protected boolean processRevision(Object page, Object revision) { return listener.handleRevisionOrUploadOrLogitem(page, revision); } } DumpUnmarshaller.java000066400000000000000000000267241335270560400463160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.io.File; import java.io.InputStream; import java.io.Reader; import java.net.URL; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.PropertyException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.UnmarshallerHandler; import javax.xml.bind.ValidationEventHandler; import javax.xml.bind.annotation.adapters.XmlAdapter; import javax.xml.bind.attachment.AttachmentUnmarshaller; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.Source; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import org.sweble.wikitext.dumpreader.model.DumpConverter; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.w3c.dom.Node; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class DumpUnmarshaller implements Unmarshaller { public static final String CATALOG = "/catalog.xml"; private final Unmarshaller unmarshaller; private final ExportSchemaVersion version; private final JAXBContext context; private DumpConverter converter; // ========================================================================= public DumpUnmarshaller(ExportSchemaVersion version, boolean enableSchema) throws JAXBException, SAXException { this.version = version; this.context = JAXBContext.newInstance( version.getContextPath()); this.unmarshaller = context.createUnmarshaller(); if (enableSchema) setSchema(getClass().getResource(version.getFragmentsSchema())); } // ========================================================================= public ExportSchemaVersion getVersion() { return version; } public JAXBContext getContext() { return context; } public Unmarshaller getUnmarshaller() { return unmarshaller; } public DumpConverter getConverter() { if (converter == null) converter = new DumpConverter(); return converter; } public void setSchema(URL schemaUrl) throws SAXException { if (schemaUrl == null) throw new IllegalArgumentException(); SchemaFactory sf = SchemaFactory .newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); sf.setResourceResolver(new LSResourceResolverImplementation()); unmarshaller.setSchema(sf.newSchema(schemaUrl)); } // ========================================================================= public T unmarshalToPageType(Node node, Class pageType) throws JAXBException { if (pageType != version.getPageType()) throw new IllegalArgumentException("Expected pageType == " + version.getPageType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(node, version.getPageType()).getValue(); return value; } public T unmarshalToPageType(Source source, Class pageType) throws JAXBException { if (pageType != version.getPageType()) throw new IllegalArgumentException("Expected pageType == " + version.getPageType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(source, version.getPageType()).getValue(); return value; } public T unmarshalToPageType(XMLStreamReader reader, Class pageType) throws JAXBException { if (pageType != version.getPageType()) throw new IllegalArgumentException("Expected pageType == " + version.getPageType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(reader, version.getPageType()).getValue(); return value; } public T unmarshalToPageType(XMLEventReader reader, Class pageType) throws JAXBException { if (pageType != version.getPageType()) throw new IllegalArgumentException("Expected pageType == " + version.getPageType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(reader, version.getPageType()).getValue(); return value; } // ========================================================================= public Page unmarshalToPage(Node node) throws JAXBException { return getConverter().convertPage( unmarshaller.unmarshal(node, version.getPageType()).getValue()); } public Page unmarshalToPage(Source source) throws JAXBException { return getConverter().convertPage( unmarshaller.unmarshal(source, version.getPageType()).getValue()); } public Page unmarshalToPage(XMLStreamReader reader) throws JAXBException { return getConverter().convertPage( unmarshaller.unmarshal(reader, version.getPageType()).getValue()); } public Page unmarshalToPage(XMLEventReader reader) throws JAXBException { return getConverter().convertPage( unmarshaller.unmarshal(reader, version.getPageType()).getValue()); } // ========================================================================= public T unmarshalToRevisionType(Node node, Class revisionType) throws JAXBException { if (revisionType != version.getRevisionType()) throw new IllegalArgumentException("Expected revisionType == " + version.getRevisionType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(node, version.getRevisionType()).getValue(); return value; } public T unmarshalToRevisionType(Source source, Class revisionType) throws JAXBException { if (revisionType != version.getRevisionType()) throw new IllegalArgumentException("Expected revisionType == " + version.getRevisionType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(source, version.getRevisionType()).getValue(); return value; } public T unmarshalToRevisionType( XMLStreamReader reader, Class revisionType) throws JAXBException { if (revisionType != version.getRevisionType()) throw new IllegalArgumentException("Expected revisionType == " + version.getRevisionType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(reader, version.getRevisionType()).getValue(); return value; } public T unmarshalToRevisionType( XMLEventReader reader, Class revisionType) throws JAXBException { if (revisionType != version.getRevisionType()) throw new IllegalArgumentException("Expected revisionType == " + version.getRevisionType().getName()); @SuppressWarnings("unchecked") T value = (T) unmarshaller.unmarshal(reader, version.getRevisionType()).getValue(); return value; } // ========================================================================= public Revision unmarshalToRevision(Node node) throws JAXBException { return getConverter().convertRevision( unmarshaller.unmarshal(node, version.getRevisionType()).getValue()); } public Revision unmarshalToRevision(Source source) throws JAXBException { return getConverter().convertRevision( unmarshaller.unmarshal(source, version.getRevisionType()).getValue()); } public Revision unmarshalToRevision(XMLStreamReader reader) throws JAXBException { return getConverter().convertRevision( unmarshaller.unmarshal(reader, version.getRevisionType()).getValue()); } public Revision unmarshalToRevision(XMLEventReader reader) throws JAXBException { return getConverter().convertRevision( unmarshaller.unmarshal(reader, version.getRevisionType()).getValue()); } // ========================================================================= public Object unmarshal(File f) throws JAXBException { return unmarshaller.unmarshal(f); } public Object unmarshal(InputStream is) throws JAXBException { return unmarshaller.unmarshal(is); } public Object unmarshal(Reader reader) throws JAXBException { return unmarshaller.unmarshal(reader); } public Object unmarshal(URL url) throws JAXBException { return unmarshaller.unmarshal(url); } public Object unmarshal(InputSource source) throws JAXBException { return unmarshaller.unmarshal(source); } public Object unmarshal(Node node) throws JAXBException { return unmarshaller.unmarshal(node); } public JAXBElement unmarshal(Node node, Class declaredType) throws JAXBException { return unmarshaller.unmarshal(node, declaredType); } public Object unmarshal(Source source) throws JAXBException { return unmarshaller.unmarshal(source); } public JAXBElement unmarshal(Source source, Class declaredType) throws JAXBException { return unmarshaller.unmarshal(source, declaredType); } public Object unmarshal(XMLStreamReader reader) throws JAXBException { return unmarshaller.unmarshal(reader); } public JAXBElement unmarshal( XMLStreamReader reader, Class declaredType) throws JAXBException { return unmarshaller.unmarshal(reader, declaredType); } public Object unmarshal(XMLEventReader reader) throws JAXBException { return unmarshaller.unmarshal(reader); } public JAXBElement unmarshal( XMLEventReader reader, Class declaredType) throws JAXBException { return unmarshaller.unmarshal(reader, declaredType); } public UnmarshallerHandler getUnmarshallerHandler() { return unmarshaller.getUnmarshallerHandler(); } /** * @deprecated since JAXB2.0, please see * {@link #setSchema(javax.xml.validation.Schema)} */ public void setValidating(boolean validating) throws JAXBException { throw new UnsupportedOperationException(); } /** * @deprecated since JAXB2.0, please see * {@link #setSchema(javax.xml.validation.Schema)} */ public boolean isValidating() throws JAXBException { throw new UnsupportedOperationException(); } public void setEventHandler(ValidationEventHandler handler) throws JAXBException { unmarshaller.setEventHandler(handler); } public ValidationEventHandler getEventHandler() throws JAXBException { return unmarshaller.getEventHandler(); } public void setProperty(String name, Object value) throws PropertyException { unmarshaller.setProperty(name, value); } public Object getProperty(String name) throws PropertyException { return unmarshaller.getProperty(name); } public void setSchema(Schema schema) { unmarshaller.setSchema(schema); } public Schema getSchema() { return unmarshaller.getSchema(); } public void setAdapter(@SuppressWarnings("rawtypes") XmlAdapter adapter) { unmarshaller.setAdapter(adapter); } @SuppressWarnings("rawtypes") public void setAdapter(Class type, A adapter) { unmarshaller.setAdapter(type, adapter); } @SuppressWarnings("rawtypes") public A getAdapter(Class type) { return unmarshaller.getAdapter(type); } public void setAttachmentUnmarshaller(AttachmentUnmarshaller au) { unmarshaller.setAttachmentUnmarshaller(au); } public AttachmentUnmarshaller getAttachmentUnmarshaller() { return unmarshaller.getAttachmentUnmarshaller(); } public void setListener(Listener listener) { unmarshaller.setListener(listener); } public Listener getListener() { return unmarshaller.getListener(); } } ExportSchemaVersion.java000066400000000000000000000155301335270560400467740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.lang.reflect.Method; import de.fau.cs.osr.utils.WrappedException; public enum ExportSchemaVersion { V0_5 { @Override public String getSchema() { return "/export-0.5.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.5-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_5"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.5/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_5.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_5.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_5.RevisionType.class; } }, // ========================================================================= V0_6 { @Override public String getSchema() { return "/export-0.6-fixed.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.6-fixed-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_6"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.6/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_6.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_6.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_6.RevisionType.class; } }, // ========================================================================= V0_7 { @Override public String getSchema() { return "/export-0.7.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.7-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_7"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.7/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_7.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_7.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_7.RevisionType.class; } }, // ========================================================================= V0_8 { @Override public String getSchema() { return "/export-0.8.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.8-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_8"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.8/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_8.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_8.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_8.RevisionType.class; } }, // ========================================================================= V0_9 { @Override public String getSchema() { return "/export-0.9.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.9-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_9"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.9/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_9.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_9.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_9.RevisionType.class; } }, // ========================================================================= V0_10 { @Override public String getSchema() { return "/export-0.10.xsd"; } @Override public String getFragmentsSchema() { return "/export-0.10-fragments.xsd"; } @Override public String getContextPath() { return "org.sweble.wikitext.dumpreader.export_0_10"; } @Override public String getMediaWikiNamespace() { return "http://www.mediawiki.org/xml/export-0.10/"; } @Override public Class getMediaWikiType() { return org.sweble.wikitext.dumpreader.export_0_10.MediaWikiType.class; } @Override public Class getPageType() { return org.sweble.wikitext.dumpreader.export_0_10.PageType.class; } @Override public Class getRevisionType() { return org.sweble.wikitext.dumpreader.export_0_10.RevisionType.class; } }; // ========================================================================= public abstract String getSchema(); public abstract String getFragmentsSchema(); public abstract String getContextPath(); public abstract String getMediaWikiNamespace(); public abstract Class getMediaWikiType(); public abstract Class getPageType(); public abstract Class getRevisionType(); // ========================================================================= public void setPageListener(Object target, DumpReaderListener listener) { try { Method m = null; if (getMediaWikiType().isInstance(target)) { m = getMediaWikiType().getMethod( "setPageListener", DumpReaderListener.class); } else if (getPageType().isInstance(target)) { m = getPageType().getMethod( "setRevisionListener", DumpReaderListener.class); } if (m != null) m.invoke(target, listener); } catch (Exception e) { throw new WrappedException(e); } } } LSResourceResolverImplementation.java000066400000000000000000000104051335270560400514760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import java.io.InputStream; import java.io.Reader; import org.w3c.dom.ls.LSInput; import org.w3c.dom.ls.LSResourceResolver; final class LSResourceResolverImplementation implements LSResourceResolver { @Override public LSInput resolveResource( String type, String namespaceURI, String publicId, final String systemId, final String baseURI) { if ("http://www.w3.org/2001/XMLSchema".equals(type) && (publicId == null) && isExportXsd(getClass(), systemId)) { return new LSInputImplementation( getExportXsdFileNameIfExists(getClass(), systemId), systemId, baseURI); } else if ("http://www.w3.org/2001/XMLSchema".equals(type) && (publicId == null) && "http://www.w3.org/2001/xml.xsd".equals(systemId)) { return new LSInputImplementation( "/xml.xsd", systemId, baseURI); } else { System.err.println(String.format( "Cannot resolve: type = '''%s''', namespaceURI = '''%s''', publicId = '''%s''', systemId = '''%s''', baseURI = '''%s'''", type, namespaceURI, publicId, systemId, baseURI)); return null; } } private static boolean isExportXsd(Class clazz, String systemId) { return (getExportXsdFileNameIfExists(clazz, systemId) != null); } private static String getExportXsdFileNameIfExists( Class clazz, String systemId) { if (systemId != null) { String string = "http://www.mediawiki.org/xml"; if (systemId.startsWith(string + "/export-") && systemId.endsWith(".xsd")) { String fileName = systemId.substring(string.length()); if (clazz.getResource(fileName) != null) return fileName; } } return null; } // ========================================================================= private final class LSInputImplementation implements LSInput { private final String xsdPath; private final String systemId; private final String baseURI; private LSInputImplementation( String xsdPath, String systemId, String baseURI) { this.xsdPath = xsdPath; this.systemId = systemId; this.baseURI = baseURI; } @Override public void setSystemId(String systemId) { throw new UnsupportedOperationException(); } @Override public void setStringData(String stringData) { throw new UnsupportedOperationException(); } @Override public void setPublicId(String publicId) { throw new UnsupportedOperationException(); } @Override public void setEncoding(String encoding) { throw new UnsupportedOperationException(); } @Override public void setCharacterStream(Reader characterStream) { throw new UnsupportedOperationException(); } @Override public void setCertifiedText(boolean certifiedText) { throw new UnsupportedOperationException(); } @Override public void setByteStream(InputStream byteStream) { throw new UnsupportedOperationException(); } @Override public void setBaseURI(String baseURI) { throw new UnsupportedOperationException(); } @Override public String getSystemId() { return systemId; } @Override public String getStringData() { return null; } @Override public String getPublicId() { return null; } @Override public String getEncoding() { return "UTF-8"; } @Override public Reader getCharacterStream() { return null; } @Override public boolean getCertifiedText() { return false; } @Override public InputStream getByteStream() { return getClass().getResourceAsStream(xsdPath); } @Override public String getBaseURI() { return baseURI; } } } export_0_10/000077500000000000000000000000001335270560400442155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022311335270560400503740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_10/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_10; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000036161335270560400474150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_10/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_10; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUpload != null) && (this.revisionOrUpload instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUpload).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUpload = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUpload = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUpload) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUpload)) return super.add(revisionOrUpload); return false; } } } export_0_5/000077500000000000000000000000001335270560400441415ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022301335270560400503170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_5/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_5; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000037251335270560400473420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_5/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_5; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUploadOrLogitem != null) && (this.revisionOrUploadOrLogitem instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUploadOrLogitem).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUploadOrLogitem = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUploadOrLogitem = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUploadOrLogitem) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUploadOrLogitem)) return super.add(revisionOrUploadOrLogitem); return false; } } } export_0_6/000077500000000000000000000000001335270560400441425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022301335270560400503200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_6/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_6; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000037251335270560400473430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_6/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_6; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUploadOrLogitem != null) && (this.revisionOrUploadOrLogitem instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUploadOrLogitem).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUploadOrLogitem = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUploadOrLogitem = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUploadOrLogitem) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUploadOrLogitem)) return super.add(revisionOrUploadOrLogitem); return false; } } } export_0_7/000077500000000000000000000000001335270560400441435ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022301335270560400503210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_7/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_7; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000036151335270560400473420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_7/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_7; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUpload != null) && (this.revisionOrUpload instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUpload).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUpload = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUpload = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUpload) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUpload)) return super.add(revisionOrUpload); return false; } } } export_0_8/000077500000000000000000000000001335270560400441445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022301335270560400503220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_8/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_8; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000036151335270560400473430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_8/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_8; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUpload != null) && (this.revisionOrUpload instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUpload).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUpload = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUpload = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUpload) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUpload)) return super.add(revisionOrUpload); return false; } } } export_0_9/000077500000000000000000000000001335270560400441455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderMediaWikiTypeAspect.aj000066400000000000000000000022301335270560400503230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_9/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_9; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect MediaWikiTypeAspect { public void MediaWikiType.setPageListener(final DumpReaderListener listener) { page = (listener == null) ? null : new ArrayList() { private static final long serialVersionUID = 1L; public boolean add(PageType page) { listener.handlePage(MediaWikiType.this, page); return false; } }; } } PageTypeAspect.aj000066400000000000000000000036151335270560400473440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/export_0_9/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.export_0_9; import java.util.ArrayList; import org.sweble.wikitext.dumpreader.DumpReaderListener; public aspect PageTypeAspect { public void PageType.setRevisionListener(final DumpReaderListener listener) { DumpReaderListener oldListener = null; if ((this.revisionOrUpload != null) && (this.revisionOrUpload instanceof MyArrayList)) oldListener = ((MyArrayList) this.revisionOrUpload).getListener(); if (listener != null) { if (oldListener != listener) { this.revisionOrUpload = new MyArrayList(PageType.this, listener); } } else { this.revisionOrUpload = null; } } public static final class MyArrayList extends ArrayList { private static final long serialVersionUID = 1L; private final DumpReaderListener listener; private PageType page; public MyArrayList( final PageType page, final DumpReaderListener listener) { this.page = page; this.listener = listener; } public DumpReaderListener getListener() { return listener; } public boolean add(Object revisionOrUpload) { if (listener.handleRevisionOrUploadOrLogitem(page, revisionOrUpload)) return super.add(revisionOrUpload); return false; } } } model/000077500000000000000000000000001335270560400432555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreaderContributor.java000066400000000000000000000031771335270560400464420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/model/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.model; import java.io.Serializable; import java.math.BigInteger; public class Contributor implements Serializable { private static final long serialVersionUID = 1L; private final BigInteger id; private final boolean deleted; private final String username; // ========================================================================= public Contributor(BigInteger id, boolean deleted, String username) { super(); this.id = id; this.deleted = deleted; this.username = username; } // ========================================================================= public BigInteger getId() { return id; } public boolean isDeleted() { return deleted; } public String getUsername() { return username; } // ========================================================================= @Override public String toString() { return "Contributor [id=" + id + ", deleted=" + deleted + ", username=" + username + "]"; } } DumpConverter.java000066400000000000000000000501571335270560400467250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/model/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.model; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import javax.xml.datatype.XMLGregorianCalendar; import org.joda.time.DateTime; public class DumpConverter { public Page convertPage(Object page) throws UnsupportedDumpFormat { if (page instanceof org.sweble.wikitext.dumpreader.export_0_5.PageType) return convertToPage_0_5((org.sweble.wikitext.dumpreader.export_0_5.PageType) page); else if (page instanceof org.sweble.wikitext.dumpreader.export_0_6.PageType) return convertToPage_0_6((org.sweble.wikitext.dumpreader.export_0_6.PageType) page); else if (page instanceof org.sweble.wikitext.dumpreader.export_0_7.PageType) return convertToPage_0_7((org.sweble.wikitext.dumpreader.export_0_7.PageType) page); else if (page instanceof org.sweble.wikitext.dumpreader.export_0_8.PageType) return convertToPage_0_8((org.sweble.wikitext.dumpreader.export_0_8.PageType) page); else if (page instanceof org.sweble.wikitext.dumpreader.export_0_9.PageType) return convertToPage_0_9((org.sweble.wikitext.dumpreader.export_0_9.PageType) page); else if (page instanceof org.sweble.wikitext.dumpreader.export_0_10.PageType) return convertToPage_0_10((org.sweble.wikitext.dumpreader.export_0_10.PageType) page); else throw new UnsupportedDumpFormat(); } public Revision convertRevision(Object rev) throws UnsupportedDumpFormat { if (rev instanceof org.sweble.wikitext.dumpreader.export_0_5.RevisionType) return convertToRevision_0_5((org.sweble.wikitext.dumpreader.export_0_5.RevisionType) rev); else if (rev instanceof org.sweble.wikitext.dumpreader.export_0_6.RevisionType) return convertToRevision_0_6((org.sweble.wikitext.dumpreader.export_0_6.RevisionType) rev); else if (rev instanceof org.sweble.wikitext.dumpreader.export_0_7.RevisionType) return convertToRevision_0_7((org.sweble.wikitext.dumpreader.export_0_7.RevisionType) rev); else if (rev instanceof org.sweble.wikitext.dumpreader.export_0_8.RevisionType) return convertToRevision_0_8((org.sweble.wikitext.dumpreader.export_0_8.RevisionType) rev); else if (rev instanceof org.sweble.wikitext.dumpreader.export_0_9.RevisionType) return convertToRevision_0_9((org.sweble.wikitext.dumpreader.export_0_9.RevisionType) rev); else if (rev instanceof org.sweble.wikitext.dumpreader.export_0_10.RevisionType) return convertToRevision_0_10((org.sweble.wikitext.dumpreader.export_0_10.RevisionType) rev); else throw new UnsupportedDumpFormat(); } // ========================================================================= private Page convertToPage_0_5( org.sweble.wikitext.dumpreader.export_0_5.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUploadOrLogitem(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_5.RevisionType) { revisions.add(convertToRevision_0_5(item)); } // We're ignoring: // - UploadItem // - LogItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() return new Page( page.getId(), null, page.getTitle(), (page.getRedirect() != null) ? "" : null, revisions); } private Revision convertToRevision_0_5(Object item) { org.sweble.wikitext.dumpreader.export_0_5.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_5.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_5.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_5.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_5.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_5.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_5.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_5.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); return new Revision( revision.getId(), new BigInteger("-1"), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, null, textDeleted, null, null); } // ========================================================================= private Page convertToPage_0_6( org.sweble.wikitext.dumpreader.export_0_6.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUploadOrLogitem(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_6.RevisionType) { revisions.add(convertToRevision_0_6(item)); } // We're ignoring: // - UploadItem // - LogItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() // - getSha1() String redirectTitle = null; if (page.getRedirect() != null) redirectTitle = page.getRedirect().getTitle(); return new Page( page.getId(), page.getNs(), page.getTitle(), redirectTitle, revisions); } private Revision convertToRevision_0_6(Object item) { org.sweble.wikitext.dumpreader.export_0_6.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_6.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_6.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_6.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_6.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_6.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_6.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_6.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); return new Revision( revision.getId(), new BigInteger("-1"), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, revision.getSha1(), textDeleted, null, null); } // ========================================================================= private Page convertToPage_0_7( org.sweble.wikitext.dumpreader.export_0_7.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUpload(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_7.RevisionType) { revisions.add(convertToRevision_0_7(item)); } // We're ignoring: // - UploadItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() String redirectTitle = null; if (page.getRedirect() != null) redirectTitle = page.getRedirect().getTitle(); return new Page( page.getId(), page.getNs(), page.getTitle(), redirectTitle, revisions); } private Revision convertToRevision_0_7(Object item) { org.sweble.wikitext.dumpreader.export_0_7.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_7.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_7.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_7.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_7.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_7.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_7.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_7.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); return new Revision( revision.getId(), revision.getParentid(), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, revision.getSha1(), textDeleted, null, null); } // ========================================================================= private Page convertToPage_0_8( org.sweble.wikitext.dumpreader.export_0_8.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUpload(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_8.RevisionType) { revisions.add(convertToRevision_0_8(item)); } // We're ignoring: // - UploadItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() String redirectTitle = null; if (page.getRedirect() != null) redirectTitle = page.getRedirect().getTitle(); return new Page( page.getId(), page.getNs(), page.getTitle(), redirectTitle, revisions); } private Revision convertToRevision_0_8(Object item) { org.sweble.wikitext.dumpreader.export_0_8.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_8.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_8.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_8.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_8.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_8.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_8.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_8.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); /* if (!"text/x-wiki".equalsIgnoreCase(revision.getFormat())) throw new UnsupportedDumpFormat("revision/format = " + revision.getFormat()); if (!"wikitext".equalsIgnoreCase(revision.getModel())) throw new UnsupportedDumpFormat("revision/model = " + revision.getModel()); */ String format = revision.getFormat(); String model = revision.getModel(); return new Revision( revision.getId(), revision.getParentid(), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, revision.getSha1(), textDeleted, format, model); } private Page convertToPage_0_9( org.sweble.wikitext.dumpreader.export_0_9.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUpload(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_9.RevisionType) { revisions.add(convertToRevision_0_9(item)); } // We're ignoring: // - UploadItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() String redirectTitle = null; if (page.getRedirect() != null) redirectTitle = page.getRedirect().getTitle(); return new Page( page.getId(), page.getNs(), page.getTitle(), redirectTitle, revisions); } private Revision convertToRevision_0_9(Object item) { org.sweble.wikitext.dumpreader.export_0_9.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_9.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_9.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_9.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_9.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_9.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_9.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_9.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); /* if (!"text/x-wiki".equalsIgnoreCase(revision.getFormat())) throw new UnsupportedDumpFormat("revision/format = " + revision.getFormat()); if (!"wikitext".equalsIgnoreCase(revision.getModel())) throw new UnsupportedDumpFormat("revision/model = " + revision.getModel()); */ String format = revision.getFormat(); String model = revision.getModel(); return new Revision( revision.getId(), revision.getParentid(), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, revision.getSha1(), textDeleted, format, model); } private Page convertToPage_0_10( org.sweble.wikitext.dumpreader.export_0_10.PageType page) { List revisions = new ArrayList(); List items = page.getRevisionOrUpload(); for (Object item : items) { if (item instanceof org.sweble.wikitext.dumpreader.export_0_10.RevisionType) { revisions.add(convertToRevision_0_10(item)); } // We're ignoring: // - UploadItem } // We're ignoring: // - getDiscussionthreadinginfo() // - getRestrictions() String redirectTitle = null; if (page.getRedirect() != null) redirectTitle = page.getRedirect().getTitle(); return new Page( page.getId(), page.getNs(), page.getTitle(), redirectTitle, revisions); } private Revision convertToRevision_0_10(Object item) { org.sweble.wikitext.dumpreader.export_0_10.RevisionType revision = (org.sweble.wikitext.dumpreader.export_0_10.RevisionType) item; org.sweble.wikitext.dumpreader.export_0_10.ContributorType contributor = revision.getContributor(); org.sweble.wikitext.dumpreader.export_0_10.CommentType comment = revision.getComment(); org.sweble.wikitext.dumpreader.export_0_10.TextType text = revision.getText(); Contributor contributor_ = null; String contributorIp = null; if (contributor != null) { if (contributor.getIp() == null) { contributor_ = new Contributor( contributor.getId(), contributor.getDeleted() == org.sweble.wikitext.dumpreader.export_0_10.DeletedFlagType.DELETED, contributor.getUsername()); } else { contributorIp = contributor.getIp(); } } boolean commentDeleted = false; String commentText = null; if (comment != null) { commentDeleted = comment.getDeleted() == org.sweble.wikitext.dumpreader.export_0_10.DeletedFlagType.DELETED; commentText = comment.getValue(); } boolean textDeleted = false; String textText = null; if (text != null) { // We ignore: // - getBytes // - getId // - getSpace textDeleted = text.getDeleted() == org.sweble.wikitext.dumpreader.export_0_10.DeletedFlagType.DELETED; textText = text.getValue(); } DateTime revisionTimestampDt = null; XMLGregorianCalendar revisionTimestamp = revision.getTimestamp(); if (revisionTimestamp != null) revisionTimestampDt = new DateTime(revisionTimestamp.toGregorianCalendar()); /* if (!"text/x-wiki".equalsIgnoreCase(revision.getFormat())) throw new UnsupportedDumpFormat("revision/format = " + revision.getFormat()); if (!"wikitext".equalsIgnoreCase(revision.getModel())) throw new UnsupportedDumpFormat("revision/model = " + revision.getModel()); */ String format = revision.getFormat(); String model = revision.getModel(); return new Revision( revision.getId(), revision.getParentid(), revisionTimestampDt, revision.getMinor() != null, contributor_, contributorIp, commentText, commentDeleted, textText, revision.getSha1(), textDeleted, format, model); } } Page.java000066400000000000000000000041371335270560400450010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/model/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.model; import java.io.Serializable; import java.math.BigInteger; import java.util.List; public class Page implements Serializable { private static final long serialVersionUID = 1L; private final BigInteger id; private final BigInteger namespace; private final String title; private final String redirectTitle; private final List revisions; // ========================================================================= public Page( BigInteger id, BigInteger namespace, String title, String redirectTitle, List revisions) { super(); this.id = id; this.namespace = namespace; this.title = title; this.redirectTitle = redirectTitle; this.revisions = revisions; } // ========================================================================= public BigInteger getId() { return id; } public BigInteger getNamespace() { return namespace; } public String getTitle() { return title; } public boolean isRedirect() { return redirectTitle != null; } public String getRedirectTitle() { return redirectTitle; } public List getRevisions() { return revisions; } // ========================================================================= @Override public String toString() { return "Page [id=" + id + ", namespace=" + namespace + ", title=" + title + ", redirectTitle=" + redirectTitle + ", revisions=" + revisions + "]"; } } Revision.java000066400000000000000000000064741335270560400457310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/model/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.model; import java.io.Serializable; import java.math.BigInteger; import org.joda.time.DateTime; public class Revision implements Serializable { private static final long serialVersionUID = 1L; private final BigInteger id; private final BigInteger parentId; private final DateTime timestamp; private final boolean minor; private final Contributor contributor; private final String contributorIp; private final String commentText; private final boolean commentDeleted; private final String text; private final String textSha1; private final boolean textDeleted; private final String format; private final String model; // ========================================================================= public Revision( BigInteger id, BigInteger parentId, DateTime timestamp, boolean minor, Contributor contributor, String contributorIp, String commentText, boolean commentDeleted, String text, String textSha1, boolean textDeleted, String format, String model) { this.id = id; this.parentId = parentId; this.timestamp = timestamp; this.minor = minor; this.contributor = contributor; this.contributorIp = contributorIp; this.commentText = commentText; this.commentDeleted = commentDeleted; this.text = text; this.textSha1 = textSha1; this.textDeleted = textDeleted; this.format = format; this.model = model; } // ========================================================================= public BigInteger getId() { return id; } public BigInteger getParentId() { return parentId; } public DateTime getTimestamp() { return timestamp; } public boolean isMinor() { return minor; } public Contributor getContributor() { return contributor; } public String getContributorIp() { return contributorIp; } public String getCommentText() { return commentText; } public boolean isCommentDeleted() { return commentDeleted; } public String getText() { return text; } public String getTextSha1() { return textSha1; } public boolean isTextDeleted() { return textDeleted; } public String getFormat() { return format; } public String getModel() { return model; } // ========================================================================= @Override public String toString() { return "Revision [id=" + id + ", parentId=" + parentId + ", timestamp=" + timestamp + ", minor=" + minor + ", contributor=" + contributor + ", contributorIp=" + contributorIp + ", commentText=" + commentText + ", commentDeleted=" + commentDeleted + ", text=" + text + ", textSha1=" + textSha1 + ", textDeleted=" + textDeleted + "]"; } } UnsupportedDumpFormat.java000066400000000000000000000021371335270560400504520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/java/org/sweble/wikitext/dumpreader/model/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader.model; public class UnsupportedDumpFormat extends RuntimeException { private static final long serialVersionUID = 1L; public UnsupportedDumpFormat() { super(); } public UnsupportedDumpFormat(String message, Throwable cause) { super(message, cause); } public UnsupportedDumpFormat(String message) { super(message); } public UnsupportedDumpFormat(Throwable cause) { super(cause); } } schema/000077500000000000000000000000001335270560400344245ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/maincatalog.xml000066400000000000000000000027021335270560400365610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema export-0.10-fragments.xsd000066400000000000000000000011201335270560400410170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.10.xsd000066400000000000000000000236711335270560400370520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.5-fragments.xsd000066400000000000000000000011151335270560400407470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.5.xsd000066400000000000000000000165361335270560400370000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.6-fixed-fragments.xsd000066400000000000000000000011161335270560400420460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.6-fixed.xsd000066400000000000000000000175651335270560400401010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.6.xsd000066400000000000000000000172361335270560400367770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.7-fragments.xsd000066400000000000000000000011151335270560400407510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.7.xsd000066400000000000000000000222161335270560400367720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.8-fragments.xsd000066400000000000000000000011151335270560400407520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.8.xsd000066400000000000000000000233531335270560400367760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format export-0.9-fragments.xsd000066400000000000000000000011151335270560400407530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format extended with a page element export-0.9.xsd000066400000000000000000000235531335270560400370010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema MediaWiki's page export format xml.xsd000066400000000000000000000212041335270560400357430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/main/schema

About the XML namespace

This schema document describes the XML namespace, in a form suitable for import by other schema documents.

See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this namespace.

Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or its subgroups. The names currently defined in this namespace are listed below. They should not be used with conflicting semantics by any Working Group, specification, or document instance.

See further below in this document for more information about how to refer to this schema document from your own XSD schema documents and about the namespace-versioning policy governing this schema document.

lang (as an attribute name)

denotes an attribute whose value is a language code for the natural language of the content of any element; its value is inherited. This name is reserved by virtue of its definition in the XML specification.

Notes

Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible values is probably never going to be a realistic possibility.

See BCP 47 at http://www.rfc-editor.org/rfc/bcp/bcp47.txt and the IANA language subtag registry at http://www.iana.org/assignments/language-subtag-registry for further information.

The union allows for the 'un-declaration' of xml:lang with the empty string.

space (as an attribute name)

denotes an attribute whose value is a keyword indicating what whitespace processing discipline is intended for the content of the element; its value is inherited. This name is reserved by virtue of its definition in the XML specification.

base (as an attribute name)

denotes an attribute whose value provides a URI to be used as the base for interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This name is reserved by virtue of its definition in the XML Base specification.

See http://www.w3.org/TR/xmlbase/ for information about this attribute.

id (as an attribute name)

denotes an attribute whose value should be interpreted as if declared to be of type ID. This name is reserved by virtue of its definition in the xml:id specification.

See http://www.w3.org/TR/xml-id/ for information about this attribute.

Father (in any context at all)

denotes Jon Bosak, the chair of the original XML Working Group. This name is reserved by the following decision of the W3C XML Plenary and XML Coordination groups:

In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February, 2000, reserves for Jon Bosak in perpetuity the XML name "xml:Father".

About this schema document

This schema defines attributes and an attribute group suitable for use by schemas wishing to allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define.

To enable this, such a schema must import this schema for the XML namespace, e.g. as follows:

          <schema . . .>
           . . .
           <import namespace="http://www.w3.org/XML/1998/namespace"
                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
     

or

           <import namespace="http://www.w3.org/XML/1998/namespace"
                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
     

Subsequently, qualified reference to any of the attributes or the group defined below will have the desired effect, e.g.

          <type . . .>
           . . .
           <attributeGroup ref="xml:specialAttrs"/>
     

will define a type which will schema-validate an instance element with any of those attributes.

Versioning policy for this schema document

In keeping with the XML Schema WG's standard versioning policy, this schema document will persist at http://www.w3.org/2009/01/xml.xsd.

At the date of issue it can also be found at http://www.w3.org/2001/xml.xsd.

The schema document at that URI may however change in the future, in order to remain compatible with the latest version of XML Schema itself, or with the XML namespace itself. In other words, if the XML Schema or XML namespaces change, the version of this document at http://www.w3.org/2001/xml.xsd will change accordingly; the version at http://www.w3.org/2009/01/xml.xsd will not change.

Previous dated (and unchanging) versions of this schema document are at:

sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/000077500000000000000000000000001335270560400332765ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400341405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/testorg/000077500000000000000000000000001335270560400347275ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/javasweble/000077500000000000000000000000001335270560400362105ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/orgwikitext/000077500000000000000000000000001335270560400400605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/swebledumpreader/000077500000000000000000000000001335270560400422105ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitextTestDumpReader_0_10.java000066400000000000000000000144201335270560400464630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.util.List; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventLocator; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.dumpreader.export_0_10.CaseType; import org.sweble.wikitext.dumpreader.export_0_10.CommentType; import org.sweble.wikitext.dumpreader.export_0_10.ContributorType; import org.sweble.wikitext.dumpreader.export_0_10.MediaWikiType; import org.sweble.wikitext.dumpreader.export_0_10.NamespaceType; import org.sweble.wikitext.dumpreader.export_0_10.PageType; import org.sweble.wikitext.dumpreader.export_0_10.RevisionType; import org.sweble.wikitext.dumpreader.export_0_10.SiteInfoType; import org.sweble.wikitext.dumpreader.export_0_10.TextType; import de.fau.cs.osr.utils.StringTools; public class TestDumpReader_0_10 { private Logger logger; @Before public void setUp() { logger = LoggerFactory.getLogger(getClass()); } @Test public void testExport() throws Throwable { URL resource = getClass().getResource("/input-0.10.xml"); String path = StringTools.decodeUsingDefaultCharset(resource.getFile()); final File file = new File(path); DumpReader dr = null; FileInputStream is = null; try { is = new FileInputStream(file); dr = new DumpReaderExtension(file, is, logger, file); dr.unmarshal(); } finally { try { if (dr != null) dr.close(); } finally { if (is != null) is.close(); } } } private final class DumpReaderExtension extends DumpReader { private final File file; private DumpReaderExtension( File dumpFile, InputStream is, Logger logger, File file) throws Exception { super(is, null, dumpFile.getAbsolutePath(), logger, true); this.file = file; } @Override protected void processPage(Object mediaWiki, Object page) { { MediaWikiType mw = (MediaWikiType) mediaWiki; assertEquals("0.10", mw.getVersion()); { SiteInfoType siteinfo = mw.getSiteinfo(); assertEquals("BASE", siteinfo.getBase()); assertEquals(CaseType.FIRST_LETTER, siteinfo.getCase()); assertEquals("GENERATOR", siteinfo.getGenerator()); assertEquals("SITENAME", siteinfo.getSitename()); assertEquals("DBNAME", siteinfo.getDbname()); { List namespaces = siteinfo.getNamespaces().getNamespace(); assertEquals(3, namespaces.size()); { NamespaceType ns = namespaces.get(0); assertEquals(BigInteger.valueOf(-1), ns.getKey()); assertEquals("NEGATIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(1); assertEquals(BigInteger.valueOf(0), ns.getKey()); assertEquals("", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(2); assertEquals(BigInteger.valueOf(+1), ns.getKey()); assertEquals("POSITIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } } } } PageType p = (PageType) page; assertEquals("TITLE", p.getTitle()); assertNull(p.getDiscussionthreadinginfo()); assertEquals(BigInteger.valueOf(10), p.getId()); assertNotNull(p.getRedirect()); assertNull(p.getRestrictions()); assertEquals(BigInteger.valueOf(0), p.getNs()); { List items = p.getRevisionOrUpload(); assertEquals(1, items.size()); { RevisionType item = (RevisionType) items.get(0); assertEquals(BigInteger.valueOf(123456789), item.getId()); assertEquals(BigInteger.valueOf(987654321), item.getParentid()); assertNotNull(item.getMinor()); { CommentType comment = item.getComment(); assertNull(comment.getDeleted()); assertEquals("COMMENT", comment.getValue()); } { ContributorType contrib = item.getContributor(); assertNull(contrib.getDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertNull(contrib.getIp()); assertEquals("USERNAME", contrib.getUsername()); } { TextType text = item.getText(); assertNull(text.getBytes()); assertNull(text.getDeleted()); assertNull(text.getId()); assertEquals("TEXT", text.getValue()); } assertNotNull(item.getSha1()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", new String(item.getSha1().getBytes())); assertNotNull(item.getModel()); assertEquals("wikitext", item.getModel()); assertNotNull(item.getFormat()); assertEquals("text/x-wiki", item.getFormat()); { XMLGregorianCalendar ts = item.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonth()); assertEquals(21, ts.getDay()); assertEquals(11, ts.getHour()); assertEquals(11, ts.getMinute()); assertEquals(11, ts.getSecond()); assertEquals(0, ts.getTimezone()); } } } } @Override protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { Assert.fail(String.format( "%s:%d:%d: %s", file.getAbsolutePath(), vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return super.processEvent(ve, vel); } } } TestDumpReader_0_10_Fragments.java000066400000000000000000000112241335270560400504700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.util.List; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; import org.sweble.wikitext.dumpreader.model.Contributor; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.xml.sax.SAXException; public class TestDumpReader_0_10_Fragments { private static final ExportSchemaVersion EXPORT_VERSION = ExportSchemaVersion.V0_10; private static final String PAGE_INPUT = "/input-0.10-page.xml"; private static final String REVISION_INPUT = "/input-0.10-revision.xml"; // ========================================================================= @Test public void testPageImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalPage(dr)); } @Test public void testPageImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalPage(dr)); } private Page unmarshalPage(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(PAGE_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToPage(source); } finally { xmlInputStream.close(); } } private void compare(Page page) { assertEquals("TITLE", page.getTitle()); assertEquals(BigInteger.valueOf(10), page.getId()); assertTrue(page.isRedirect()); assertEquals(BigInteger.valueOf(0), page.getNamespace()); List revisions = page.getRevisions(); assertEquals(1, revisions.size()); compare(revisions.get(0)); } // ========================================================================= @Test public void testRevisionImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalRevision(dr)); } @Test public void testRevisionImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalRevision(dr)); } private Revision unmarshalRevision(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(REVISION_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToRevision(source); } finally { xmlInputStream.close(); } } private void compare(Revision rev) { assertEquals(BigInteger.valueOf(123456789), rev.getId()); assertEquals(BigInteger.valueOf(987654321), rev.getParentId()); assertTrue(rev.isMinor()); assertFalse(rev.isCommentDeleted()); assertEquals("COMMENT", rev.getCommentText()); assertFalse(rev.isTextDeleted()); assertEquals("TEXT", rev.getText()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", rev.getTextSha1()); assertEquals("text/x-wiki", rev.getFormat()); assertEquals("wikitext", rev.getModel()); assertNull(rev.getContributorIp()); { Contributor contrib = rev.getContributor(); assertFalse(contrib.isDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertEquals("USERNAME", contrib.getUsername()); } { DateTime ts = rev.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonthOfYear()); assertEquals(21, ts.getDayOfMonth()); assertEquals(11, ts.getHourOfDay()); assertEquals(11, ts.getMinuteOfHour()); assertEquals(11, ts.getSecondOfMinute()); assertEquals(DateTimeZone.UTC, ts.getZone()); } } } TestDumpReader_0_5.java000066400000000000000000000134531335270560400464140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.util.List; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventLocator; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.dumpreader.export_0_5.CaseType; import org.sweble.wikitext.dumpreader.export_0_5.CommentType; import org.sweble.wikitext.dumpreader.export_0_5.ContributorType; import org.sweble.wikitext.dumpreader.export_0_5.MediaWikiType; import org.sweble.wikitext.dumpreader.export_0_5.NamespaceType; import org.sweble.wikitext.dumpreader.export_0_5.PageType; import org.sweble.wikitext.dumpreader.export_0_5.RevisionType; import org.sweble.wikitext.dumpreader.export_0_5.SiteInfoType; import org.sweble.wikitext.dumpreader.export_0_5.TextType; import de.fau.cs.osr.utils.StringTools; public class TestDumpReader_0_5 { private Logger logger; @Before public void setUp() { logger = LoggerFactory.getLogger(getClass()); } @Test public void testExport() throws Throwable { URL resource = getClass().getResource("/input-0.5.xml"); String path = StringTools.decodeUsingDefaultCharset(resource.getFile()); final File file = new File(path); DumpReader dr = null; FileInputStream is = null; try { is = new FileInputStream(file); dr = new DumpReaderExtension(file, is, logger, file); dr.unmarshal(); } finally { try { if (dr != null) dr.close(); } finally { if (is != null) is.close(); } } } private final class DumpReaderExtension extends DumpReader { private final File file; private DumpReaderExtension( File dumpFile, InputStream is, Logger logger, File file) throws Exception { super(is, null, dumpFile.getAbsolutePath(), logger, true); this.file = file; } @Override protected void processPage(Object mediaWiki, Object page) { { MediaWikiType mw = (MediaWikiType) mediaWiki; assertEquals("0.5", mw.getVersion()); { SiteInfoType siteinfo = mw.getSiteinfo(); assertEquals("BASE", siteinfo.getBase()); assertEquals(CaseType.FIRST_LETTER, siteinfo.getCase()); assertEquals("GENERATOR", siteinfo.getGenerator()); assertEquals("SITENAME", siteinfo.getSitename()); { List namespaces = siteinfo.getNamespaces().getNamespace(); assertEquals(3, namespaces.size()); { NamespaceType ns = namespaces.get(0); assertEquals(BigInteger.valueOf(-1), ns.getKey()); assertEquals("NEGATIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(1); assertEquals(BigInteger.valueOf(0), ns.getKey()); assertEquals("", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(2); assertEquals(BigInteger.valueOf(+1), ns.getKey()); assertEquals("POSITIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } } } } PageType p = (PageType) page; assertEquals("TITLE", p.getTitle()); assertNull(p.getDiscussionthreadinginfo()); assertEquals(BigInteger.valueOf(10), p.getId()); assertNotNull(p.getRedirect()); assertNull(p.getRestrictions()); { List items = p.getRevisionOrUploadOrLogitem(); assertEquals(1, items.size()); { RevisionType item = (RevisionType) items.get(0); assertEquals(BigInteger.valueOf(123456789), item.getId()); assertNotNull(item.getMinor()); { CommentType comment = item.getComment(); assertNull(comment.getDeleted()); assertEquals("COMMENT", comment.getValue()); } { ContributorType contrib = item.getContributor(); assertNull(contrib.getDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertNull(contrib.getIp()); assertEquals("USERNAME", contrib.getUsername()); } { TextType text = item.getText(); assertNull(text.getBytes()); assertNull(text.getDeleted()); assertNull(text.getId()); assertEquals("TEXT", text.getValue()); } { XMLGregorianCalendar ts = item.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonth()); assertEquals(21, ts.getDay()); assertEquals(11, ts.getHour()); assertEquals(11, ts.getMinute()); assertEquals(11, ts.getSecond()); assertEquals(0, ts.getTimezone()); } } } } @Override protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { Assert.fail(String.format( "%s:%d:%d: %s", file.getAbsolutePath(), vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return super.processEvent(ve, vel); } } } TestDumpReader_0_5_Fragments.java000066400000000000000000000106171335270560400504210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.util.List; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; import org.sweble.wikitext.dumpreader.model.Contributor; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.xml.sax.SAXException; public class TestDumpReader_0_5_Fragments { private static final ExportSchemaVersion EXPORT_VERSION = ExportSchemaVersion.V0_5; private static final String PAGE_INPUT = "/input-0.5-page.xml"; private static final String REVISION_INPUT = "/input-0.5-revision.xml"; // ========================================================================= @Test public void testPageImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalPage(dr)); } @Test public void testPageImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalPage(dr)); } private Page unmarshalPage(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(PAGE_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToPage(source); } finally { xmlInputStream.close(); } } private void compare(Page page) { assertEquals("TITLE", page.getTitle()); assertEquals(BigInteger.valueOf(10), page.getId()); assertTrue(page.isRedirect()); List revisions = page.getRevisions(); assertEquals(1, revisions.size()); compare(revisions.get(0)); } // ========================================================================= @Test public void testRevisionImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalRevision(dr)); } @Test public void testRevisionImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalRevision(dr)); } private Revision unmarshalRevision(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(REVISION_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToRevision(source); } finally { xmlInputStream.close(); } } private void compare(Revision rev) { assertEquals(BigInteger.valueOf(123456789), rev.getId()); assertTrue(rev.isMinor()); assertFalse(rev.isCommentDeleted()); assertEquals("COMMENT", rev.getCommentText()); assertFalse(rev.isTextDeleted()); assertEquals("TEXT", rev.getText()); assertNull(rev.getTextSha1()); assertNull(rev.getContributorIp()); { Contributor contrib = rev.getContributor(); assertFalse(contrib.isDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertEquals("USERNAME", contrib.getUsername()); } { DateTime ts = rev.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonthOfYear()); assertEquals(21, ts.getDayOfMonth()); assertEquals(11, ts.getHourOfDay()); assertEquals(11, ts.getMinuteOfHour()); assertEquals(11, ts.getSecondOfMinute()); assertEquals(DateTimeZone.UTC, ts.getZone()); } } } TestDumpReader_0_6.java000066400000000000000000000137271335270560400464210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.util.List; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventLocator; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.dumpreader.export_0_6.CaseType; import org.sweble.wikitext.dumpreader.export_0_6.CommentType; import org.sweble.wikitext.dumpreader.export_0_6.ContributorType; import org.sweble.wikitext.dumpreader.export_0_6.MediaWikiType; import org.sweble.wikitext.dumpreader.export_0_6.NamespaceType; import org.sweble.wikitext.dumpreader.export_0_6.PageType; import org.sweble.wikitext.dumpreader.export_0_6.RevisionType; import org.sweble.wikitext.dumpreader.export_0_6.SiteInfoType; import org.sweble.wikitext.dumpreader.export_0_6.TextType; import de.fau.cs.osr.utils.StringTools; public class TestDumpReader_0_6 { private Logger logger; @Before public void setUp() { logger = LoggerFactory.getLogger(getClass()); } @Test public void testExport() throws Throwable { URL resource = getClass().getResource("/input-0.6.xml"); String path = StringTools.decodeUsingDefaultCharset(resource.getFile()); final File file = new File(path); DumpReader dr = null; FileInputStream is = null; try { is = new FileInputStream(file); dr = new DumpReaderExtension(file, is, logger, file); dr.unmarshal(); } finally { try { if (dr != null) dr.close(); } finally { if (is != null) is.close(); } } } private final class DumpReaderExtension extends DumpReader { private final File file; private DumpReaderExtension( File dumpFile, InputStream is, Logger logger, File file) throws Exception { super(is, null, dumpFile.getAbsolutePath(), logger, true); this.file = file; } @Override protected void processPage(Object mediaWiki, Object page) { { MediaWikiType mw = (MediaWikiType) mediaWiki; assertEquals("0.6", mw.getVersion()); { SiteInfoType siteinfo = mw.getSiteinfo(); assertEquals("BASE", siteinfo.getBase()); assertEquals(CaseType.FIRST_LETTER, siteinfo.getCase()); assertEquals("GENERATOR", siteinfo.getGenerator()); assertEquals("SITENAME", siteinfo.getSitename()); { List namespaces = siteinfo.getNamespaces().getNamespace(); assertEquals(3, namespaces.size()); { NamespaceType ns = namespaces.get(0); assertEquals(BigInteger.valueOf(-1), ns.getKey()); assertEquals("NEGATIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(1); assertEquals(BigInteger.valueOf(0), ns.getKey()); assertEquals("", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(2); assertEquals(BigInteger.valueOf(+1), ns.getKey()); assertEquals("POSITIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } } } } PageType p = (PageType) page; assertEquals("TITLE", p.getTitle()); assertNull(p.getDiscussionthreadinginfo()); assertEquals(BigInteger.valueOf(10), p.getId()); assertNotNull(p.getRedirect()); assertNull(p.getRestrictions()); assertEquals(BigInteger.valueOf(0), p.getNs()); assertNotNull(p.getSha1()); assertEquals("", new String(p.getSha1().getBytes())); { List items = p.getRevisionOrUploadOrLogitem(); assertEquals(1, items.size()); { RevisionType item = (RevisionType) items.get(0); assertEquals(BigInteger.valueOf(123456789), item.getId()); assertNotNull(item.getMinor()); assertNull(item.getSha1()); { CommentType comment = item.getComment(); assertNull(comment.getDeleted()); assertEquals("COMMENT", comment.getValue()); } { ContributorType contrib = item.getContributor(); assertNull(contrib.getDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertNull(contrib.getIp()); assertEquals("USERNAME", contrib.getUsername()); } { TextType text = item.getText(); assertNull(text.getBytes()); assertNull(text.getDeleted()); assertNull(text.getId()); assertEquals("TEXT", text.getValue()); } { XMLGregorianCalendar ts = item.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonth()); assertEquals(21, ts.getDay()); assertEquals(11, ts.getHour()); assertEquals(11, ts.getMinute()); assertEquals(11, ts.getSecond()); assertEquals(0, ts.getTimezone()); } } } } @Override protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { Assert.fail(String.format( "%s:%d:%d: %s", file.getAbsolutePath(), vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return super.processEvent(ve, vel); } } } TestDumpReader_0_6_Fragments.java000066400000000000000000000106771335270560400504300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.util.List; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; import org.sweble.wikitext.dumpreader.model.Contributor; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.xml.sax.SAXException; public class TestDumpReader_0_6_Fragments { private static final ExportSchemaVersion EXPORT_VERSION = ExportSchemaVersion.V0_6; private static final String PAGE_INPUT = "/input-0.6-page.xml"; private static final String REVISION_INPUT = "/input-0.6-revision.xml"; // ========================================================================= @Test public void testPageImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalPage(dr)); } @Test public void testPageImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalPage(dr)); } private void compare(Page page) { assertEquals("TITLE", page.getTitle()); assertEquals(BigInteger.valueOf(10), page.getId()); assertTrue(page.isRedirect()); assertEquals(BigInteger.valueOf(0), page.getNamespace()); List items = page.getRevisions(); assertEquals(1, items.size()); compare(items.get(0)); } private Page unmarshalPage(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(PAGE_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToPage(source); } finally { xmlInputStream.close(); } } // ========================================================================= @Test public void testRevisionImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalRevision(dr)); } @Test public void testRevisionImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalRevision(dr)); } private Revision unmarshalRevision(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(REVISION_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToRevision(source); } finally { xmlInputStream.close(); } } private void compare(Revision rev) { assertEquals(BigInteger.valueOf(123456789), rev.getId()); assertTrue(rev.isMinor()); assertFalse(rev.isCommentDeleted()); assertEquals("COMMENT", rev.getCommentText()); assertFalse(rev.isTextDeleted()); assertEquals("TEXT", rev.getText()); assertNull(rev.getTextSha1()); assertNull(rev.getContributorIp()); { Contributor contrib = rev.getContributor(); assertFalse(contrib.isDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertEquals("USERNAME", contrib.getUsername()); } { DateTime ts = rev.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonthOfYear()); assertEquals(21, ts.getDayOfMonth()); assertEquals(11, ts.getHourOfDay()); assertEquals(11, ts.getMinuteOfHour()); assertEquals(11, ts.getSecondOfMinute()); assertEquals(DateTimeZone.UTC, ts.getZone()); } } } TestDumpReader_0_8.java000066400000000000000000000143211335270560400464120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.util.List; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventLocator; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.dumpreader.export_0_8.CaseType; import org.sweble.wikitext.dumpreader.export_0_8.CommentType; import org.sweble.wikitext.dumpreader.export_0_8.ContributorType; import org.sweble.wikitext.dumpreader.export_0_8.MediaWikiType; import org.sweble.wikitext.dumpreader.export_0_8.NamespaceType; import org.sweble.wikitext.dumpreader.export_0_8.PageType; import org.sweble.wikitext.dumpreader.export_0_8.RevisionType; import org.sweble.wikitext.dumpreader.export_0_8.SiteInfoType; import org.sweble.wikitext.dumpreader.export_0_8.TextType; import de.fau.cs.osr.utils.StringTools; public class TestDumpReader_0_8 { private Logger logger; @Before public void setUp() { logger = LoggerFactory.getLogger(getClass()); } @Test public void testExport() throws Throwable { URL resource = getClass().getResource("/input-0.8.xml"); String path = StringTools.decodeUsingDefaultCharset(resource.getFile()); final File file = new File(path); DumpReader dr = null; FileInputStream is = null; try { is = new FileInputStream(file); dr = new DumpReaderExtension(file, is, logger, file); dr.unmarshal(); } finally { try { if (dr != null) dr.close(); } finally { if (is != null) is.close(); } } } private final class DumpReaderExtension extends DumpReader { private final File file; private DumpReaderExtension( File dumpFile, InputStream is, Logger logger, File file) throws Exception { super(is, null, dumpFile.getAbsolutePath(), logger, true); this.file = file; } @Override protected void processPage(Object mediaWiki, Object page) { { MediaWikiType mw = (MediaWikiType) mediaWiki; assertEquals("0.8", mw.getVersion()); { SiteInfoType siteinfo = mw.getSiteinfo(); assertEquals("BASE", siteinfo.getBase()); assertEquals(CaseType.FIRST_LETTER, siteinfo.getCase()); assertEquals("GENERATOR", siteinfo.getGenerator()); assertEquals("SITENAME", siteinfo.getSitename()); { List namespaces = siteinfo.getNamespaces().getNamespace(); assertEquals(3, namespaces.size()); { NamespaceType ns = namespaces.get(0); assertEquals(BigInteger.valueOf(-1), ns.getKey()); assertEquals("NEGATIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(1); assertEquals(BigInteger.valueOf(0), ns.getKey()); assertEquals("", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(2); assertEquals(BigInteger.valueOf(+1), ns.getKey()); assertEquals("POSITIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } } } } PageType p = (PageType) page; assertEquals("TITLE", p.getTitle()); assertNull(p.getDiscussionthreadinginfo()); assertEquals(BigInteger.valueOf(10), p.getId()); assertNotNull(p.getRedirect()); assertNull(p.getRestrictions()); assertEquals(BigInteger.valueOf(0), p.getNs()); { List items = p.getRevisionOrUpload(); assertEquals(1, items.size()); { RevisionType item = (RevisionType) items.get(0); assertEquals(BigInteger.valueOf(123456789), item.getId()); assertEquals(BigInteger.valueOf(987654321), item.getParentid()); assertNotNull(item.getMinor()); { CommentType comment = item.getComment(); assertNull(comment.getDeleted()); assertEquals("COMMENT", comment.getValue()); } { ContributorType contrib = item.getContributor(); assertNull(contrib.getDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertNull(contrib.getIp()); assertEquals("USERNAME", contrib.getUsername()); } { TextType text = item.getText(); assertNull(text.getBytes()); assertNull(text.getDeleted()); assertNull(text.getId()); assertEquals("TEXT", text.getValue()); } assertNotNull(item.getSha1()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", new String(item.getSha1().getBytes())); assertNotNull(item.getModel()); assertEquals("wikitext", item.getModel()); assertNotNull(item.getFormat()); assertEquals("text/x-wiki", item.getFormat()); { XMLGregorianCalendar ts = item.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonth()); assertEquals(21, ts.getDay()); assertEquals(11, ts.getHour()); assertEquals(11, ts.getMinute()); assertEquals(11, ts.getSecond()); assertEquals(0, ts.getTimezone()); } } } } @Override protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { Assert.fail(String.format( "%s:%d:%d: %s", file.getAbsolutePath(), vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return super.processEvent(ve, vel); } } } TestDumpReader_0_8_Fragments.java000066400000000000000000000112201335270560400504130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.util.List; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; import org.sweble.wikitext.dumpreader.model.Contributor; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.xml.sax.SAXException; public class TestDumpReader_0_8_Fragments { private static final ExportSchemaVersion EXPORT_VERSION = ExportSchemaVersion.V0_8; private static final String PAGE_INPUT = "/input-0.8-page.xml"; private static final String REVISION_INPUT = "/input-0.8-revision.xml"; // ========================================================================= @Test public void testPageImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalPage(dr)); } @Test public void testPageImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalPage(dr)); } private Page unmarshalPage(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(PAGE_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToPage(source); } finally { xmlInputStream.close(); } } private void compare(Page page) { assertEquals("TITLE", page.getTitle()); assertEquals(BigInteger.valueOf(10), page.getId()); assertTrue(page.isRedirect()); assertEquals(BigInteger.valueOf(0), page.getNamespace()); List revisions = page.getRevisions(); assertEquals(1, revisions.size()); compare(revisions.get(0)); } // ========================================================================= @Test public void testRevisionImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalRevision(dr)); } @Test public void testRevisionImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalRevision(dr)); } private Revision unmarshalRevision(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(REVISION_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToRevision(source); } finally { xmlInputStream.close(); } } private void compare(Revision rev) { assertEquals(BigInteger.valueOf(123456789), rev.getId()); assertEquals(BigInteger.valueOf(987654321), rev.getParentId()); assertTrue(rev.isMinor()); assertFalse(rev.isCommentDeleted()); assertEquals("COMMENT", rev.getCommentText()); assertFalse(rev.isTextDeleted()); assertEquals("TEXT", rev.getText()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", rev.getTextSha1()); assertEquals("text/x-wiki", rev.getFormat()); assertEquals("wikitext", rev.getModel()); assertNull(rev.getContributorIp()); { Contributor contrib = rev.getContributor(); assertFalse(contrib.isDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertEquals("USERNAME", contrib.getUsername()); } { DateTime ts = rev.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonthOfYear()); assertEquals(21, ts.getDayOfMonth()); assertEquals(11, ts.getHourOfDay()); assertEquals(11, ts.getMinuteOfHour()); assertEquals(11, ts.getSecondOfMinute()); assertEquals(DateTimeZone.UTC, ts.getZone()); } } } TestDumpReader_0_9.java000066400000000000000000000144041335270560400464150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.util.List; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventLocator; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.dumpreader.export_0_9.CaseType; import org.sweble.wikitext.dumpreader.export_0_9.CommentType; import org.sweble.wikitext.dumpreader.export_0_9.ContributorType; import org.sweble.wikitext.dumpreader.export_0_9.MediaWikiType; import org.sweble.wikitext.dumpreader.export_0_9.NamespaceType; import org.sweble.wikitext.dumpreader.export_0_9.PageType; import org.sweble.wikitext.dumpreader.export_0_9.RevisionType; import org.sweble.wikitext.dumpreader.export_0_9.SiteInfoType; import org.sweble.wikitext.dumpreader.export_0_9.TextType; import de.fau.cs.osr.utils.StringTools; public class TestDumpReader_0_9 { private Logger logger; @Before public void setUp() { logger = LoggerFactory.getLogger(getClass()); } @Test public void testExport() throws Throwable { URL resource = getClass().getResource("/input-0.9.xml"); String path = StringTools.decodeUsingDefaultCharset(resource.getFile()); final File file = new File(path); DumpReader dr = null; FileInputStream is = null; try { is = new FileInputStream(file); dr = new DumpReaderExtension(file, is, logger, file); dr.unmarshal(); } finally { try { if (dr != null) dr.close(); } finally { if (is != null) is.close(); } } } private final class DumpReaderExtension extends DumpReader { private final File file; private DumpReaderExtension( File dumpFile, InputStream is, Logger logger, File file) throws Exception { super(is, null, dumpFile.getAbsolutePath(), logger, true); this.file = file; } @Override protected void processPage(Object mediaWiki, Object page) { { MediaWikiType mw = (MediaWikiType) mediaWiki; assertEquals("0.9", mw.getVersion()); { SiteInfoType siteinfo = mw.getSiteinfo(); assertEquals("BASE", siteinfo.getBase()); assertEquals(CaseType.FIRST_LETTER, siteinfo.getCase()); assertEquals("GENERATOR", siteinfo.getGenerator()); assertEquals("SITENAME", siteinfo.getSitename()); assertEquals("DBNAME", siteinfo.getDbname()); { List namespaces = siteinfo.getNamespaces().getNamespace(); assertEquals(3, namespaces.size()); { NamespaceType ns = namespaces.get(0); assertEquals(BigInteger.valueOf(-1), ns.getKey()); assertEquals("NEGATIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(1); assertEquals(BigInteger.valueOf(0), ns.getKey()); assertEquals("", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } { NamespaceType ns = namespaces.get(2); assertEquals(BigInteger.valueOf(+1), ns.getKey()); assertEquals("POSITIVE", ns.getValue()); assertEquals(CaseType.FIRST_LETTER, ns.getCase()); } } } } PageType p = (PageType) page; assertEquals("TITLE", p.getTitle()); assertNull(p.getDiscussionthreadinginfo()); assertEquals(BigInteger.valueOf(10), p.getId()); assertNotNull(p.getRedirect()); assertNull(p.getRestrictions()); assertEquals(BigInteger.valueOf(0), p.getNs()); { List items = p.getRevisionOrUpload(); assertEquals(1, items.size()); { RevisionType item = (RevisionType) items.get(0); assertEquals(BigInteger.valueOf(123456789), item.getId()); assertEquals(BigInteger.valueOf(987654321), item.getParentid()); assertNotNull(item.getMinor()); { CommentType comment = item.getComment(); assertNull(comment.getDeleted()); assertEquals("COMMENT", comment.getValue()); } { ContributorType contrib = item.getContributor(); assertNull(contrib.getDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertNull(contrib.getIp()); assertEquals("USERNAME", contrib.getUsername()); } { TextType text = item.getText(); assertNull(text.getBytes()); assertNull(text.getDeleted()); assertNull(text.getId()); assertEquals("TEXT", text.getValue()); } assertNotNull(item.getSha1()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", new String(item.getSha1().getBytes())); assertNotNull(item.getModel()); assertEquals("wikitext", item.getModel()); assertNotNull(item.getFormat()); assertEquals("text/x-wiki", item.getFormat()); { XMLGregorianCalendar ts = item.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonth()); assertEquals(21, ts.getDay()); assertEquals(11, ts.getHour()); assertEquals(11, ts.getMinute()); assertEquals(11, ts.getSecond()); assertEquals(0, ts.getTimezone()); } } } } @Override protected boolean processEvent( ValidationEvent ve, ValidationEventLocator vel) { Assert.fail(String.format( "%s:%d:%d: %s", file.getAbsolutePath(), vel.getLineNumber(), vel.getColumnNumber(), ve.getMessage())); return super.processEvent(ve, vel); } } } TestDumpReader_0_9_Fragments.java000066400000000000000000000112201335270560400504140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/java/org/sweble/wikitext/dumpreader/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.dumpreader; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.util.List; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; import org.sweble.wikitext.dumpreader.model.Contributor; import org.sweble.wikitext.dumpreader.model.Page; import org.sweble.wikitext.dumpreader.model.Revision; import org.xml.sax.SAXException; public class TestDumpReader_0_9_Fragments { private static final ExportSchemaVersion EXPORT_VERSION = ExportSchemaVersion.V0_9; private static final String PAGE_INPUT = "/input-0.9-page.xml"; private static final String REVISION_INPUT = "/input-0.9-revision.xml"; // ========================================================================= @Test public void testPageImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalPage(dr)); } @Test public void testPageImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalPage(dr)); } private Page unmarshalPage(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(PAGE_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToPage(source); } finally { xmlInputStream.close(); } } private void compare(Page page) { assertEquals("TITLE", page.getTitle()); assertEquals(BigInteger.valueOf(10), page.getId()); assertTrue(page.isRedirect()); assertEquals(BigInteger.valueOf(0), page.getNamespace()); List revisions = page.getRevisions(); assertEquals(1, revisions.size()); compare(revisions.get(0)); } // ========================================================================= @Test public void testRevisionImportNoSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, false); compare(unmarshalRevision(dr)); } @Test public void testRevisionImportWithSchema() throws JAXBException, SAXException, IOException { DumpUnmarshaller dr = new DumpUnmarshaller(EXPORT_VERSION, true); compare(unmarshalRevision(dr)); } private Revision unmarshalRevision(DumpUnmarshaller dr) throws JAXBException, IOException { InputStream xmlInputStream = getClass().getResourceAsStream(REVISION_INPUT); Source source = new StreamSource(xmlInputStream); try { return dr.unmarshalToRevision(source); } finally { xmlInputStream.close(); } } private void compare(Revision rev) { assertEquals(BigInteger.valueOf(123456789), rev.getId()); assertEquals(BigInteger.valueOf(987654321), rev.getParentId()); assertTrue(rev.isMinor()); assertFalse(rev.isCommentDeleted()); assertEquals("COMMENT", rev.getCommentText()); assertFalse(rev.isTextDeleted()); assertEquals("TEXT", rev.getText()); assertEquals("abcdfeghijklmnopqrstuvwxyz01234", rev.getTextSha1()); assertEquals("text/x-wiki", rev.getFormat()); assertEquals("wikitext", rev.getModel()); assertNull(rev.getContributorIp()); { Contributor contrib = rev.getContributor(); assertFalse(contrib.isDeleted()); assertEquals(BigInteger.valueOf(987654321), contrib.getId()); assertEquals("USERNAME", contrib.getUsername()); } { DateTime ts = rev.getTimestamp(); assertEquals(2012, ts.getYear()); assertEquals(5, ts.getMonthOfYear()); assertEquals(21, ts.getDayOfMonth()); assertEquals(11, ts.getHourOfDay()); assertEquals(11, ts.getMinuteOfHour()); assertEquals(11, ts.getSecondOfMinute()); assertEquals(DateTimeZone.UTC, ts.getZone()); } } } resources/000077500000000000000000000000001335270560400352315ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/testinput-0.10-page.xml000066400000000000000000000023371335270560400404050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT wikitext text/x-wiki TEXT abcdfeghijklmnopqrstuvwxyz01234 input-0.10-revision.xml000066400000000000000000000021431335270560400413220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT wikitext text/x-wiki TEXT abcdfeghijklmnopqrstuvwxyz01234 input-0.10.xml000066400000000000000000000035651335270560400374770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources SITENAME DBNAME BASE GENERATOR first-letter NEGATIVE POSITIVE TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT wikitext text/x-wiki TEXT abcdfeghijklmnopqrstuvwxyz01234 input-0.5-page.xml000066400000000000000000000020621335270560400403240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources TITLE 10 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.5-revision.xml000066400000000000000000000017311335270560400412500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.5.xml000066400000000000000000000032251335270560400374140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources SITENAME BASE GENERATOR first-letter NEGATIVE POSITIVE TITLE 10 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.6-page.xml000066400000000000000000000021331335270560400403240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources TITLE 0 10 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.6-revision.xml000066400000000000000000000017311335270560400412510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.6.xml000066400000000000000000000033011335270560400374100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources SITENAME BASE GENERATOR first-letter NEGATIVE POSITIVE TITLE 0 10 123456789 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT input-0.8-page.xml000066400000000000000000000023361335270560400403330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki input-0.8-revision.xml000066400000000000000000000021421335270560400412500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki input-0.8.xml000066400000000000000000000035131335270560400374170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources SITENAME BASE GENERATOR first-letter NEGATIVE POSITIVE TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki input-0.9-page.xml000066400000000000000000000023361335270560400403340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki input-0.9-revision.xml000066400000000000000000000021421335270560400412510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki input-0.9.xml000066400000000000000000000035471335270560400374270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-dumpreader/src/test/resources SITENAME DBNAME BASE GENERATOR first-letter NEGATIVE POSITIVE TITLE 0 10 123456789 987654321 2012-05-21T11:11:11Z USERNAME 987654321 COMMENT TEXT abcdfeghijklmnopqrstuvwxyz01234 wikitext text/x-wiki sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/000077500000000000000000000000001335270560400306455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/NOTICE000066400000000000000000000006371335270560400315570ustar00rootroot00000000000000Some test cases used in this software rely on articles written in Wikitext that were taken from the English Wikipedia. These articles are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license which can be found at http://creativecommons.org/licenses/by-sa/3.0/. Each directory that contains such files holds a NOTICE file which gives detailed information about the origin of the articles. sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/doc/000077500000000000000000000000001335270560400314125ustar00rootroot00000000000000MediaWiki-parser-functions.md000066400000000000000000000023771335270560400370310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/doc# Wikipedia Markup Template Wikipeida contains two kinds of markup templates: * Magic Words * Extension Tags ## Magic Words [Magic Words] (https://www.mediawiki.org/wiki/Help:Magic_words) are build-in placeholders for site statistics and environment values. The [definition](https://doc.wikimedia.org/mediawiki-core/master/php/MagicWord_8php_source.html) of the tags is done directly in the WikiMedia code. ## Template Extension Additional template tags are handled by external parsers, which are included as extensions, and therefore are not in the default WikiMedia repository. A description on how to add those extensions could be found at the [Parser Functions Manual](https://www.mediawiki.org/wiki/Manual:Parser_functions). For example the [Coord](https://www.mediawiki.org/wiki/Template:Coord/doc) template which represents, translates and converts coordinates, is part of the [GeoData](https://phabricator.wikimedia.org/diffusion/EGDA/browse/master/) extension. This template tag is currently used in over 1 Million Wikipedia articles. Another common used template tag is [Cite web](https://meta.wikimedia.org/wiki/Template:Cite_web/doc) or the conversion for standard measurement units [Convert](https://en.wikipedia.org/wiki/Template:Convert/doc). sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/doc/ast-nodes.txt000066400000000000000000000112431335270560400340510ustar00rootroot00000000000000# # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # AstNode [I] AstNodeImpl [A] AstAbstractInnerNode [A] AstInnerNode? [A] AstNodeListImpl AstLeafNodeImpl [A] AstParserEntity AstStringNodeImpl [A] AstText AstInnerNode [I] (AstAbstractInnerNode [A]) ... AstNodeList [I] (AstNodeListImpl) AstLeafNode [I] (AstLeafNodeImpl [A]) ... AstStringNode [I] (AstStringNodeImpl) ... WtNode [I] WtEmptyImmutableNode [A] WtNullStringNode [A] =|> WtStringNode =|> AstStringNode WtNoTagExtensionBody WtAbsentContentNode [A] =|> WtContentNode =|> WtNodeList =|> AstNodeList WtNoBody WtNoLinkOptionAltText WtNoLinkTitle WtNoName WtNoValue WtEmptyContentNode [A] =|> WtContentNode =|> WtNodeList =|> AstNodeList WtEmptyBody WtEmptyLinkOptions WtEmptyNodeList WtEmptyTemplateArguments WtEmptyXmlAttributes WtNoLctFlags WtNoLink WtInnerNode? [A] =|> AstInnerNode? EngCompiledPage WtLctRule WtLinkOptionLinkTarget WtRedirect WtTableImplicitTableBody WtXmlAttribute WtXmlEmptyTag WtXmlStartTag WtImStartTag WtExternalLink WtInternalLink WtLctRuleConv WtLctVarConv WtSection WtTable WtTableCaption WtTableCell WtTableHeader WtTableRow WtTagExtension WtTemplate WtTemplateArgument WtXmlElement EngSoftErrorNode WtImageLink WtTemplateParameter WtLeafNode [A] =|> AstLeafNodeImpl WtHorizontalRule WtIllegalCodePoint WtLctFlagsImpl WtLinkOptionKeyword WtLinkOptionResize WtPageSwitch WtSignature WtTempNode ... WtTicks WtUrl WtXmlCharRef WtXmlEndTag WtImEndTag WtXmlEntityRef WtParserEntity =|> AstParserEntity EngNode [I] (EngCompiledPage) (EngNowiki) (EngPage) (EngSoftErrorNode) WtIntermediate [I] (WtNewline) (WtParserEntity) (WtSemiPreLine) (WtTicks) (WtWhitespace) (WtXmlEmptyTag) (WtXmlEndTag) ... (WtXmlStartTag) ... WtLctFlags [I] (WtLctFlagsImpl) (WtNoLctFlags) WtLinkTarget [I] (WtNoLink) (WtPageName) (WtUrl) WtNamedXmlElement [I] (WtXmlElement) ... (WtXmlEmptyTag) (WtXmlEndTag) ... (WtXmlStartTag) ... WtNodeList [I] (WtEmptyNodeList) WtNodeListImpl =|> AstNodeListImpl WtContentNodeImpl [A] EngPage WtBodyImpl WtBold WtDefinitionList WtDefinitionListDef WtDefinitionListTerm WtHeading WtItalics WtLctRules WtLctRuleText WtLinkOptionAltTextImpl WtLinkOptionsImpl WtLinkTitleImpl WtListItem WtNameImpl WtOnlyInclude WtOrderedList WtPage [A] WtParsedWikitextPage WtPreproWikitextPage WtParagraph WtSemiPre WtSemiPreLine WtTemplateArgumentsImpl WtUnorderedList WtValueImpl WtWhitespace WtXmlAttributesImpl WtContentNode [I] (WtAbsentContentNode [A]) ... (WtContentNodeImpl [A]) ... (WtEmptyContentNode [A]) ... WtBody [I] (WtBodyImpl) (WtEmptyBody) (WtNoBody) WtLinkOptionAltText [I] (WtLinkOptionAltTextImpl) (WtNoLinkOptionAltText) WtLinkOptions [I] (WtEmptyLinkOptions) (WtLinkOptionsImpl) WtLinkTitle [I] (WtLinkTitleImpl) (WtNoLinkTitle) WtName [I] (WtNameImpl) (WtNoName) WtTemplateArguments [I] (WtEmptyTemplateArguments) (WtTemplateArgumentsImpl) WtValue [I] (WtNoValue) (WtValueImpl) WtXmlAttributes [I] (WtEmptyXmlAttributes) (WtXmlAttributesImpl) WtPreproNode [I] (WtIgnored) (WtOnlyInclude) (WtPageSwitch) (WtPreproWikitextPage) (WtRedirect) (WtTagExtension) (WtTemplate) (WtTemplateArgument) (WtTemplateParameter) (WtXmlComment) (WtTagExtensionBody [I]) ... WtStringNode [I] =|> AstStringNode (WtNullStringNode [A]) ... WtStringNodeImpl [A] =|> AstStringNodeImpl EngNowiki WtIgnored WtLctRuleGarbage WtLinkOptionGarbage WtNewline WtPageName WtTagExtensionBodyImpl WtXmlAttributeGarbage WtXmlComment WtText =|> AstText WtTagExtensionBody [I] (WtNoTagExtensionBody) (WtTagExtensionBodyImpl) sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/pom.xml000066400000000000000000000124261335270560400321670ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-engine jar SWC - Sweble Engine 2010 A minimal engine using the Sweble Wikitext Parser to process articles in the context of a MediaWiki-like configuration. ../ commons-collections commons-collections commons-io commons-io org.apache.commons commons-lang3 xtc rats-runtime com.sun.xml.bind jaxb-impl org.slf4j slf4j-api de.fau.cs.osr.utils utils de.fau.cs.osr.ptk ptk-common org.sweble.wikitext swc-parser-lazy junit junit test de.fau.cs.osr.utils utils-testing test com.mycila license-maven-plugin **/catalog/xml.xsd src/test/resources/**/*.ast src/test/resources/**/*.wikitext src/test/resources/**/*.mwtest src/test/resources/**/Template%3* src/test/resources/**/index de.thetaphi forbiddenapis commons-io-unsafe-1.4 maven-shade-plugin package shade true jar-with-dependencies sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/000077500000000000000000000000001335270560400314345ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/000077500000000000000000000000001335270560400323605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/000077500000000000000000000000001335270560400333015ustar00rootroot00000000000000org/000077500000000000000000000000001335270560400340115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/javasweble/000077500000000000000000000000001335270560400352725ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/orgwikitext/000077500000000000000000000000001335270560400371425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/swebleengine/000077500000000000000000000000001335270560400404075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitextEngineException.java000066400000000000000000000041131335270560400443350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.engine.nodes.EngLogProcessingPass; public final class EngineException extends Exception { private static final long serialVersionUID = 1L; private final PageTitle pageTitle; private EngLogProcessingPass log; // ========================================================================= public EngineException( PageTitle pageTitle, String message, Throwable cause) { this(pageTitle, message, cause, null); } public EngineException( PageTitle pageTitle, String message, Throwable cause, EngLogProcessingPass log) { super(makeMessage(pageTitle, message), unwrap(cause)); this.pageTitle = pageTitle; this.log = log; } // ========================================================================= private static String makeMessage(PageTitle pageTitle, String message) { return String.format("%s (%s)", message, pageTitle.getDenormalizedFullTitle()); } private static Throwable unwrap(Throwable t) { while (t instanceof ExpansionException) t = t.getCause(); return t; } // ========================================================================= public void attachLog(EngLogProcessingPass log) { if (this.log != null) throw new IllegalStateException("Log already attached!"); this.log = log; } public PageTitle getPageTitle() { return pageTitle; } public EngLogProcessingPass getLog() { return log; } } ExpansionCallback.java000066400000000000000000000037421335270560400446410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; public interface ExpansionCallback { /** * Retrieves the latest revision of the article. * * @return The requested article or null if no such article could be found. */ FullPage retrieveWikitext(ExpansionFrame expansionFrame, PageTitle pageTitle); /** * Retrieve the full URL of a file. * * Example: * *
	 * File:En-us-Barack-Hussein-Obama.ogg
	 * 
* * Output: * *
	 * http://upload.wikimedia.org/wikipedia/commons/8/82/En-us-Barack-Hussein-Obama.ogg
	 * 
* * @param pageTitle * The title of the file. * @param width * Return a URL to the image scaled to this width. This parameter * is ignored if it is less than 1px. * @param height * Return a URL to the image scaled to this height. This * parameter is ignored if it is less than 1px. * @return The full URL. */ String fileUrl(PageTitle pageTitle, int width, int height); /* * Retrieves the specified revision of the article. * String retrieveWikitext(ExpansionFrame expansionFrame, PageId pageId); void cachePreprocessedPage(ExpansionFrame expansionFrame, FullPreprocessedPage page); FullPreprocessedPage retrievePreprocessedPage(ExpansionFrame expansionFrame, PageTitle pageTitle, boolean forInclusion); */ } ExpansionDebugHooks.java000066400000000000000000000101661335270560400451750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.util.List; import org.sweble.wikitext.engine.nodes.EngLogMagicWordResolution; import org.sweble.wikitext.engine.nodes.EngLogParameterResolution; import org.sweble.wikitext.engine.nodes.EngLogParserFunctionResolution; import org.sweble.wikitext.engine.nodes.EngLogRedirectResolution; import org.sweble.wikitext.engine.nodes.EngLogTagExtensionResolution; import org.sweble.wikitext.engine.nodes.EngLogTransclusionResolution; import org.sweble.wikitext.parser.nodes.WtLeafNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; public abstract class ExpansionDebugHooks { public static final WtNode PROCEED = new WtLeafNode() { private static final long serialVersionUID = 1L; }; // ========================================================================= public WtNode beforeResolveRedirect( ExpansionVisitor expansionVisitor, WtRedirect n, String target) { return PROCEED; } public WtNode afterResolveRedirect( ExpansionVisitor expansionVisitor, WtRedirect n, String target, WtNode result, EngLogRedirectResolution log) { return result; } public WtNode beforeResolveParserFunction( ExpansionVisitor expansionVisitor, WtTemplate n, ParserFunctionBase pfn, List argsValues) { return PROCEED; } public WtNode afterResolveParserFunction( ExpansionVisitor expansionVisitor, WtTemplate n, ParserFunctionBase pfn, List argsValues, WtNode result, EngLogParserFunctionResolution log) { return result; } public WtNode beforeResolveTransclusion( ExpansionVisitor expansionVisitor, WtTemplate n, String target, List args) { return PROCEED; } public WtNode afterResolveTransclusion( ExpansionVisitor expansionVisitor, WtTemplate n, String target, List args, WtNode result, EngLogTransclusionResolution log) { return result; } public WtNode beforeResolveParameter( ExpansionVisitor expansionVisitor, WtTemplateParameter n, String name) { return PROCEED; } public WtNode afterResolveParameter( ExpansionVisitor expansionVisitor, WtTemplateParameter n, String name, WtNode result, EngLogParameterResolution log) { return result; } public WtNode beforeResolveTagExtension( ExpansionVisitor expansionVisitor, WtTagExtension n, String name, WtNodeList attrs, WtTagExtensionBody wtTagExtensionBody) { return PROCEED; } public WtNode afterResolveTagExtension( ExpansionVisitor expansionVisitor, WtTagExtension n, String name, WtNodeList attributes, WtTagExtensionBody wtTagExtensionBody, WtNode result, EngLogTagExtensionResolution log) { return result; } public WtNode beforeResolvePageSwitch( ExpansionVisitor expansionVisitor, WtPageSwitch n, String word) { return PROCEED; } public WtNode afterResolvePageSwitch( ExpansionVisitor expansionVisitor, WtPageSwitch n, String word, WtNode result, EngLogMagicWordResolution log) { return result; } } ExpansionException.java000066400000000000000000000025141335270560400450770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import de.fau.cs.osr.utils.visitor.VisitingException; /** * A wrapper for exceptions that occurred during the expansion process. */ public class ExpansionException extends RuntimeException { private static final long serialVersionUID = 1L; // ========================================================================= public ExpansionException(Throwable cause) { super(unwrap(cause)); } // ========================================================================= private static Throwable unwrap(Throwable t) { while (t instanceof ExpansionException || t instanceof VisitingException) t = t.getCause(); return t; } } ExpansionFrame.java000066400000000000000000000117651335270560400442030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngLogContainer; import org.sweble.wikitext.engine.utils.UrlService; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import de.fau.cs.osr.ptk.common.Warning; public class ExpansionFrame { private final WtEngineImpl engine; private final ExpansionFrame rootFrame; private final ExpansionFrame parentFrame; private final PageTitle title; private final Map arguments; private final boolean forInclusion; private final EngLogContainer frameLog; private final ExpansionCallback callback; private final List warnings; private final WtEntityMap entityMap; private final boolean noRedirect; private ExpansionVisitor expansionVisitor; // FIXME: That should have been initialized from a request! // And only once for the whole expansion process! private UrlService urlService = new UrlService(); // ========================================================================= public ExpansionFrame( WtEngineImpl engine, ExpansionCallback callback, ExpansionDebugHooks hooks, PageTitle title, WtEntityMap entityMap, boolean noRedirect, List warnings, EngLogContainer frameLog, boolean timingEnabled, boolean catchAll) { this.engine = engine; this.callback = callback; this.title = title; this.entityMap = entityMap; this.arguments = new HashMap(); this.forInclusion = false; this.noRedirect = noRedirect; this.warnings = warnings; this.frameLog = frameLog; this.rootFrame = this; this.parentFrame = null; expansionVisitor = new ExpansionVisitor( this, frameLog, hooks, timingEnabled, catchAll); } public ExpansionFrame( WtEngineImpl engine, ExpansionCallback callback, ExpansionDebugHooks hooks, PageTitle title, WtEntityMap entityMap, Map arguments, boolean forInclusion, boolean noRedirect, ExpansionFrame rootFrame, ExpansionFrame parentFrame, List warnings, EngLogContainer frameLog, boolean timingEnabled, boolean catchAll) { this.engine = engine; this.callback = callback; this.title = title; this.entityMap = entityMap; this.arguments = arguments; this.forInclusion = forInclusion; this.noRedirect = noRedirect; this.warnings = warnings; this.frameLog = frameLog; this.rootFrame = rootFrame; this.parentFrame = parentFrame; expansionVisitor = new ExpansionVisitor( this, frameLog, hooks, timingEnabled, catchAll); } // ========================================================================= public WtEngineImpl getEngine() { return engine; } public ExpansionFrame getRootFrame() { return rootFrame; } public ExpansionFrame getParentFrame() { return parentFrame; } public PageTitle getTitle() { return title; } public Map getArguments() { return arguments; } public boolean isForInclusion() { return forInclusion; } public EngLogContainer getFrameLog() { return frameLog; } public WikiConfig getWikiConfig() { return engine.getWikiConfig(); } public void fileWarning(Warning warning) { warnings.add(warning); } public void addWarnings(Collection warnings) { this.warnings.addAll(warnings); } public List getWarnings() { return warnings; } public WtEntityMap getEntityMap() { return entityMap; } public ExpansionCallback getCallback() { return callback; } public boolean isNoRedirect() { return noRedirect; } public UrlService getUrlService() { return urlService; } // ========================================================================= public WtNode expand(WtNode ppAst) throws ExpansionException { try { return (WtNode) expansionVisitor.go(ppAst); } catch (Exception e) { throw new ExpansionException(e); } } // ========================================================================= public boolean existsPage(PageTitle pageTitle) { return (callback.retrieveWikitext(this, pageTitle) != null) || (callback.fileUrl(pageTitle, -1, -1) != null); } } ExpansionVisitor.java000066400000000000000000001116001335270560400445750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngLogContainer; import org.sweble.wikitext.engine.nodes.EngLogMagicWordResolution; import org.sweble.wikitext.engine.nodes.EngLogParameterResolution; import org.sweble.wikitext.engine.nodes.EngLogParserFunctionResolution; import org.sweble.wikitext.engine.nodes.EngLogRedirectResolution; import org.sweble.wikitext.engine.nodes.EngLogTagExtensionResolution; import org.sweble.wikitext.engine.nodes.EngLogTransclusionResolution; import org.sweble.wikitext.engine.nodes.EngNode; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.nodes.WtName; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtValue; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.AstTextUtils.PartialConversion; import org.sweble.wikitext.parser.utils.StringConversionException; import de.fau.cs.osr.utils.StopWatch; public final class ExpansionVisitor extends NodeTypeEngVisitor { private static final Pattern STARTS_WITH_BLOCK_ELEMENT = Pattern.compile("^(\\{\\||:|;|#|\\*)"); // ========================================================================= private static final String SKIP_ATTR_NAME = "__SKIP__"; private final ExpansionFrame expFrame; private final EngLogContainer frameLog; private final ExpansionDebugHooks hooks; private final boolean timingEnabled; private final boolean catchAll; private final EngineNodeFactory nf; private final EngineAstTextUtils tu; private boolean hadNewlineGlobal; // ========================================================================= public ExpansionVisitor( ExpansionFrame expFrame, EngLogContainer frameLog, ExpansionDebugHooks hooks, boolean timingEnabled, boolean catchAll) { this.expFrame = expFrame; this.frameLog = frameLog; this.hooks = hooks; this.timingEnabled = timingEnabled; this.catchAll = catchAll; this.nf = expFrame.getWikiConfig().getNodeFactory(); this.tu = expFrame.getWikiConfig().getAstTextUtils(); } // ========================================================================= /** * Visit a node which if of no intereset to the expansion process. * * Visits all it's children to see if there is something that has to be * expanded. If one of the children got expanded the child will be replaced * by the expanded AST. */ @Override protected WtNode visitUnspecific(WtNode n) { mapInPlace(n); return n; } @Override protected Object resolveAndVisit(WtNode n, int type) throws ExpansionException { switch (type) { // -- These set the hadNewline flag -- case EngNode.NT_TEXT: return visitText((WtText) n); case EngNode.NT_NEWLINE: return visitNewline((WtNewline) n); // -- We must NOT reset hadNewline for these elements! -- case EngNode.NT_SOFT_ERROR: return visitError(n); case EngNode.NT_IGNORED: case EngNode.NT_XML_COMMENT: case EngNode.NT_NODE_LIST: return visitUnspecific(n); // -- We MUST reset hadNewline for these elements! -- default: hadNewlineGlobal = false; switch (type) { case EngNode.NT_REDIRECT: return visit((WtRedirect) n); case EngNode.NT_TEMPLATE_PARAMETER: return visit((WtTemplateParameter) n); case EngNode.NT_TEMPLATE: return visit((WtTemplate) n); case EngNode.NT_TAG_EXTENSION: return visit((WtTagExtension) n); case EngNode.NT_PAGE_SWITCH: return visit((WtPageSwitch) n); default: return visitUnspecific(n); // We don't care about other node types than the ones handled above. //return super.resolveAndVisit(node, type); } } } // ========================================================================= // == // == Newlines // == // ========================================================================= private WtNewline visitNewline(WtNewline n) { hadNewlineGlobal = true; return n; } private WtText visitText(WtText n) { String text = n.getContent(); if (!text.isEmpty()) { hadNewlineGlobal = false; if (text.indexOf('\n') != -1) hadNewlineGlobal = true; } return n; } // ========================================================================= // == // == Error // == // ========================================================================= private Object visitError(WtNode n) { /* Don't descend into error nodes! */ return n; } // ========================================================================= // == // == R e d i r e c t // == // ========================================================================= private WtNode visit(WtRedirect n) throws ExpansionException { if (skip(n)) return n; if (expFrame.isNoRedirect()) return n; if (!n.getTarget().isResolved()) return markError(n); String target = n.getTarget().getAsString(); WtNode result = resolveRedirectWrapper(n, target); if (result == null) result = markError(n); return result; } /** * @return Returns null if the redirect target page cannot be found. Returns * the redirect node n itself, if an error occurred in the expansion * process. Otherwise the expanded form of the redirect target page * will be returned. */ private WtNode resolveRedirectWrapper(WtRedirect n, String target) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolveRedirect(this, n, target); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogRedirectResolution log = null; if (frameLog != null) { log = nf.logRedirectResolution(target, false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = expandRedirectionTargetPage(n, target, log); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolveRedirect(this, n, target, result, log) : result; } /** * Expands the target page of the redirect statement inside a NEW expansion * frame and returns the expanded AST. * * @return Returns null if the redirect target page cannot be found. Returns * the redirect node n itself, if an error occurred in the expansion * process. Otherwise the expanded form of the redirect target page * will be returned. */ private WtNode expandRedirectionTargetPage( WtRedirect n, String target, EngLogRedirectResolution log) throws EngineException { PageTitle title; try { title = PageTitle.make(getWikiConfig(), target); } catch (LinkTargetException e) { if (log != null) log.add(nf.logParserError(e.getMessage())); fileInvalidPageNameWarning(n, target); return n; } if (log != null) log.setCanonical(title.getDenormalizedFullTitle()); FullPage page = getWikitext(title); if (page != null) { /* Since we are redirecting some stuff is passed on from this frame * to the frame in which the target page is expanded: - The * forInclusion flag is passed on. * * - If the page we are redirecting from was thought for inclusion * so will be the replacement page. * * - The arguments that were passed to the page we are redirecting * from will also be passed to the replacement page. */ EngProcessedPage processedPage = getEngine().preprocessAndExpand( expFrame.getCallback(), page.getId(), page.getText(), expFrame.isForInclusion(), expFrame.getEntityMap(), expFrame.getArguments(), expFrame.getRootFrame(), expFrame); log.setSuccess(true); return mergeLogsAndWarnings(log, processedPage); } else { filePageNotFoundWarning(n, title); return null; } } // ========================================================================= // == // == T e m p l a t e // == // ========================================================================= /** * A template statement was found. * * First fully expand the name of the template. Then determine if this is a * call to a parser function, a transclusion or magic word. * * This method WILL ONLY EXPAND the parameters of the template statement if * it is a transclusion. If it is a call to a parser function or magic word, * the respective parser function can decide if it needs to expand * parameters. */ private WtNode visit(WtTemplate n) throws ExpansionException { if (skip(n)) return n; // Safe newline state! boolean hadNewline = this.hadNewlineGlobal; // First: Fully expand name. WtName name = (WtName) dispatch(n.getName()); //n.setName(name); PartialConversion nameConv = tu.astToTextPartial(name); // DO NOT expand parameters (yet) ArrayList args = new ArrayList(n.getArgs().size() + 1); for (Object arg : n.getArgs()) args.add((WtTemplateArgument) arg); // First see if it needs exceptional treatment WtNode result = resolveTemplateAsExceptional(n, nameConv.getText(), nameConv.getTail(), args, hadNewline); if (result == null) { // Then see if it is a parser function result = resolveTemplateAsPfn(n, nameConv.getText(), nameConv.getTail(), args, hadNewline); if (result == null) { // A template or magic word cannot be resolved if the name is not // fully convertable to a string if (nameConv.getTail().isEmpty()) { // If not see if it is a magic word // Magic Word calls cannot have arguments! if (args.isEmpty()) { result = resolveTemplateAsMagicWord(n, nameConv.getText(), hadNewline); } else { result = resolveTemplateAsPfn(n, nameConv.getText(), nameConv.getTail(), args, hadNewline); } // If not try to transclude if (result == null) result = resolveTemplateAsTransclusion(n, nameConv.getText(), args, hadNewline); } else { StringConversionException e = new StringConversionException(nameConv.getTail()); if (frameLog != null) frameLog.add(nf.logParserError(e.getMessage())); fileInvalidTemplateNameWarning(n, e); } } } if (result == null) result = markError(n); else if (result != n) this.hadNewlineGlobal = endedWithNewline(result); return result; } private boolean endedWithNewline(WtNode result) { // FIXME: IMPLEMENT! return false; } /** * Right now only identifies the special {{!}} => | */ private WtNode resolveTemplateAsExceptional( WtTemplate n, String title, WtNodeList tail, ArrayList args, boolean hadNewline) throws ExpansionException { if (title.equals("!") && tail.isEmpty() && args.isEmpty()) return nf.text("|"); return null; } /** * Try to resolve the template as parser function. * * A parser function looks like a transclusion, only that its name is * separated from the first argument by a colon. This method checks if the * template name contains a colon and then tries to look up the parser * function. * * @return Returns the expanded AST of produced by the parser function if * everything went fine. If the given template does not have parser * function syntax (no colon) or no matching parser function can be * found null is returned. If a parser function was found but an * error occurs afterwards, the template node itself is returned. */ private WtNode resolveTemplateAsPfn( WtTemplate n, String title, WtNodeList tail, ArrayList args, boolean hadNewline) throws ExpansionException { int i = title.indexOf(':'); String name; String arg0Prefix = null; if ((i == -1) && tail.isEmpty()) { name = title; } else if (i != -1) { /* title = title.trim(); boolean hash = !title.isEmpty() && title.charAt(0) == '#'; String name = hash ? (title.substring(1, i)) : (title.substring(0, i) + ":"); */ name = title.substring(0, i).trim() + ":"; arg0Prefix = title.substring(i + 1).trim(); } else { return null; } ParserFunctionBase pfn = getWikiConfig().getParserFunction(name); if (pfn == null) return null; List argsValues = preparePfnArguments( pfn.getArgMode(), arg0Prefix, tail, args); return invokePfn(n, pfn, argsValues, hadNewline); } /** * Prepare arguments to pass to parser function. * * While a parser function looks like a template it does not support * parameter names. Therefore, all `name "=" value' parameters of the * template will be converted into a single value `$name=$value'. * * Also the first argument begins after the colon, the first template * argument is actually the second argument to the parser function. To fix * this, the part after the colon is stitched together to form the first * argument to the parser function. * * The arguments of a parser function ARE NOT EXPANDED! This has to be done * by each parser function individually, IF the parser function requires it. * * @param pfnArgumentMode */ private List preparePfnArguments( PfnArgumentMode pfnArgumentMode, String arg0Prefix, WtNodeList tail, List args) { /* MediaWiki has two ways of invoking parser functions: 1) The arguments are passed in preprocessor DOM format. 2) The arguments are expanded and passed as text. In case 2) the expanded arguments are TRIMMED! before they are passed to the parser function. It is my understanding that, even though the arguments have been expanded and converted to text, there are still so-called markers in that text. Places in the code: includes/parser/Parser.php:3172-3186 (83b70491fd7cbe9f8a0eadec0f9500636742f6fd) */ switch (pfnArgumentMode) { case EXPANDED_AND_TRIMMED_VALUES: { ArrayList argValues; if (arg0Prefix != null) { argValues = new ArrayList(args.size() + 1); WtNode arg0 = nf.list(nf.text(arg0Prefix), tail); arg0 = tu.trim((WtNode) dispatch(arg0)); argValues.add(arg0); } else { argValues = new ArrayList(args.size()); } for (int j = 0; j < args.size(); ++j) { WtTemplateArgument tmplArg = args.get(j); WtNodeList arg = nf.list(); if (tmplArg.hasName()) { arg.addAll(tmplArg.getName()); arg.add(nf.text("=")); } arg.addAll(tmplArg.getValue()); argValues.add(tu.trim((WtNode) dispatch(arg))); } return argValues; } case TEMPLATE_ARGUMENTS: { ArrayList argsWithArg0; if (arg0Prefix != null) { argsWithArg0 = new ArrayList(args.size() + 1); argsWithArg0.add( nf.tmplArg(nf.value( nf.list(nf.text(arg0Prefix), tail)))); } else { argsWithArg0 = new ArrayList(args.size()); } for (WtTemplateArgument arg : args) argsWithArg0.add(arg); return argsWithArg0; } case UNEXPANDED_VALUES: { ArrayList argValues; if (arg0Prefix != null) { argValues = new ArrayList(args.size() + 1); argValues.add(nf.list(nf.text(arg0Prefix), tail)); } else { argValues = new ArrayList(args.size()); } for (int j = 0; j < args.size(); ++j) { WtTemplateArgument arg = args.get(j); WtNodeList value = nf.list(); if (arg.hasName()) { value.addAll(arg.getName()); value.add(nf.text("=")); } value.addAll(arg.getValue()); argValues.add(value); } return argValues; } default: throw new AssertionError(); } } /** * Try to resolve the template as magic word (and call the associated parser * function). * * A template that is not a call to a parser function (no colon in name) and * does not take any parameters can be a call to a parser function * identified solely by a magic word. * * @return Returns the expanded AST of produced by the parser function if * everything went fine. If the given template does not have parser * function syntax (no colon) or no matching parser function can be * found null is returned. If a parser function was found but an * error occurs afterwards, the template node itself is returned. */ private WtNode resolveTemplateAsMagicWord( WtTemplate n, String title, boolean hadNewline) throws ExpansionException { ParserFunctionBase pfn = getWikiConfig().getParserFunction(title); if (pfn == null) return null; List argsValues = Collections.emptyList(); return invokePfn(n, pfn, argsValues, hadNewline); } /** * Nothing left to do but call the actual parser function. */ private WtNode invokePfn( WtTemplate n, ParserFunctionBase pfn, List argsValues, boolean hadNewline) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolveParserFunction(this, n, pfn, argsValues); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogParserFunctionResolution log = null; if (frameLog != null) { log = nf.logParserFunctionResolution(pfn.getId(), false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = pfn.invoke(n, expFrame, argsValues); if (result == null) throw new NullPointerException("Parser function `" + pfn.getId() + "' returned null value!"); if (result != n) result = treatBlockElements(n, result); log.setSuccess(true); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolveParserFunction(this, n, pfn, argsValues, result, log) : result; } /** * Try to resolve the template as transclusion. * * @return Returns the expanded AST of the transcluded page if everything * went fine. If the page to transclude cannot be found, null is * returned. If the page was found but an error occurs afterwards, * the template node itself is returned. */ private WtNode resolveTemplateAsTransclusion( WtTemplate n, String title, ArrayList args, boolean hadNewline) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolveTransclusion(this, n, title, args); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogTransclusionResolution log = null; if (frameLog != null) { log = nf.logTransclusionResolution(title, false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = transcludePage(n, title, args, log); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolveTransclusion(this, n, title, args, result, log) : result; } /** * Expands the name of the template, the template parameters and then * preprocesses and expands the page to transclude. * * @return Returns the expanded AST of the transcluded page if everything * went fine. If the page to transclude cannot be found, null is * returned. If the page was found but an error occurs afterwards, * the template node itself is returned. */ private WtNode transcludePage( WtTemplate n, String target, List args, EngLogTransclusionResolution log) throws EngineException, RecursiveTransclusionException { Namespace tmplNs = getWikiConfig().getTemplateNamespace(); PageTitle title; try { title = PageTitle.make(getWikiConfig(), target, tmplNs); } catch (LinkTargetException e) { if (log != null) log.add(nf.logParserError(e.getMessage())); fileInvalidPageNameWarning(n, target); return n; } checkTransclusionRecursion(title); log.setCanonical(title.getDenormalizedFullTitle()); FullPage page = getWikitext(title); if (page != null) { // EXPANDS ARGUMENTS! Map tmplArgs = prepareTransclusionArguments(args, log); EngProcessedPage processedPage = getEngine().preprocessAndExpand( expFrame.getCallback(), page.getId(), page.getText(), true, expFrame.getEntityMap(), tmplArgs, expFrame.getRootFrame(), expFrame); log.setSuccess(true); WtNode tResult = mergeLogsAndWarnings(log, processedPage); return treatBlockElements(n, tResult); } else { filePageNotFoundWarning(n, title); return null; } } /** * Check if a page transcludes itself more than once (directly or * indirectly). */ private void checkTransclusionRecursion(PageTitle title) throws RecursiveTransclusionException { int count = 0; ExpansionFrame f = expFrame; while (f != null) { if (f.getTitle().equals(title)) { if (++count > 2) throw new RecursiveTransclusionException(title, count); } f = f.getParentFrame(); } } /** * Prepares the template argument list for transclusion. This encompasses * the expansion of name and value of each argument. * * Each argument is added to the mapping with its one-based index as key. * * If an argument has a name which can be resolved to a string, the argument * will additionally be put into the mapping with the resolved name as key. */ private Map prepareTransclusionArguments( List args, EngLogTransclusionResolution log) { HashMap transclArgs = new HashMap(); int index = 1; for (WtTemplateArgument arg : args) { // EXPAND VALUE! WtValue value = (WtValue) dispatch(arg.getValue()); boolean named = false; if (arg.hasName()) { // ONLY TRIM NAMED VALUES! value = (WtValue) tu.trim(value); // EXPAND NAME! WtName name = (WtName) dispatch(arg.getName()); try { String nameStr = tu.astToText(name).trim(); if (!nameStr.isEmpty()) { transclArgs.put(nameStr, nf.toList(value)); named = true; } } catch (StringConversionException e) { if (log != null) log.add(nf.logParserError(e.getMessage())); fileInvalidArgumentNameWarning(arg, e); } } if (!named) { String id = String.valueOf(index); WtNodeList prev = transclArgs.put(id, nf.toList(value)); // Automatic indices never overwrite! if (prev != null) transclArgs.put(id, prev); // Only unnamed arguments increase the index index++; } } return transclArgs; } // ========================================================================= // == // == T e m p l a t e P a r a m e t e r // == // ========================================================================= /** * A template parameter was found. * * First fully expand the name of the parameter. Then try to find the value * in the argument list that was passed to this frame. Otherwise try to use * the default value. * * This method WILL ONLY EXPAND the default value if no value could be found * among the frame arguments. */ private WtNode visit(WtTemplateParameter n) throws ExpansionException { if (skip(n)) return n; // Fully expand name! WtName name = (WtName) dispatch(n.getName()); String nameStr = null; try { nameStr = tu.astToText(name); } catch (StringConversionException e) { if (frameLog != null) frameLog.add(nf.logParserError(e.getMessage())); fileInvalidParameterNameWarning(n, e); } WtNode value = null; if (nameStr != null) value = resolveParameterWrapper(n, nameStr.trim()); if (value == null) value = markError(n); return value; } /** * Try to map the parameter to its value. * * @return Returns the expanded value to which the parameter resolved. If no * value can be found in the frame arguments and no default value is * given, null is returned. Otherwise, if an error occurs, the * parameter node itself is returned. */ private WtNode resolveParameterWrapper( WtTemplateParameter n, String name) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolveParameter(this, n, name); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogParameterResolution log = null; if (frameLog != null) { log = nf.logParameterResolution(name, false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = resolveParameter(n, name, log); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolveParameter(this, n, name, result, log) : result; } /** * Tries to get the parameter value from the list of arguments passed to * this frame. If no matching argument can be found, the default value is * used, if present. Otherwise, null is returned. */ private WtNodeList resolveParameter( WtTemplateParameter n, String name, EngLogParameterResolution log) { WtNodeList value = getFrameArgument(name); if (value == null && n.hasDefault()) { // Only the first value after the pipe is the default // value. The rest is ignored. // EXPAND DEFAULT VALUE! value = nf.toList((WtValue) dispatch(n.getDefault())); } if (value != null) { log.setSuccess(true); //value = treatBlockElements(n, value); } return value; } // ========================================================================= // == // == T A G E X T E N S I O N // == // ========================================================================= private WtNode visit(WtTagExtension n) throws ExpansionException { if (skip(n)) return n; WtNode result = resolveTagExtensionWrapper(n, n.getName(), n.getXmlAttributes(), n.getBody()); if (result == null) result = markError(n); return result; } private WtNode resolveTagExtensionWrapper( WtTagExtension n, String name, WtXmlAttributes attrs, WtTagExtensionBody wtTagExtensionBody) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolveTagExtension(this, n, name, attrs, wtTagExtensionBody); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogTagExtensionResolution log = null; if (frameLog != null) { log = nf.logTagExtensionResolution(name, false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = resolveTagExtension(n, name, attrs, wtTagExtensionBody, log); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolveTagExtension(this, n, name, attrs, wtTagExtensionBody, result, log) : result; } private WtNode resolveTagExtension( WtTagExtension n, String name, WtXmlAttributes attrs, WtTagExtensionBody wtTagExtensionBody, EngLogTagExtensionResolution log) { TagExtensionBase te = getWikiConfig().getTagExtension(name); if (te == null) /* This should not happen: If you register a tag extension with the * parser (which only then will produce this tag extension node) * there also has to be a tag extension object. * * That's not true any more: the #tag: pfn can also generate * tag extensions, whether they were registered or not. */ //throw new AssertionError("Cannot find tag extension: " + name); return null; HashMap attrMap = prepareTagExtensionAttributes(attrs); WtNode result = te.invoke(expFrame, n, attrMap, wtTagExtensionBody); log.setSuccess(true); return result; } /** * Converts the list of attributes into a map, ignoring any non-attribute * nodes and also ignoring attributes with unresolved names. */ private HashMap prepareTagExtensionAttributes( WtXmlAttributes attrs) { HashMap attrMap = new HashMap(); for (WtNode attr : attrs) { if (attr.isNodeType(WtNode.NT_XML_ATTRIBUTE)) { WtXmlAttribute a = (WtXmlAttribute) attr; if (a.getName().isResolved()) attrMap.put(a.getName().getAsString(), nf.toList(a.getValue())); } } return attrMap; } // ========================================================================= // == // == M A G I C W O R D // == // ========================================================================= private WtNode visit(WtPageSwitch n) throws ExpansionException { if (skip(n)) return n; WtNode result = resolveMagicWordWrapper(n, n.getName()); if (result == null) result = markError(n); return result; } private WtNode resolveMagicWordWrapper( WtPageSwitch n, String name) throws ExpansionException { if (hooks != null) { WtNode cont = hooks.beforeResolvePageSwitch(this, n, name); if (cont != ExpansionDebugHooks.PROCEED) return cont; } EngLogMagicWordResolution log = null; if (frameLog != null) { log = nf.logMagicWordResolution(name, false); frameLog.add(log); } StopWatch stopWatch = null; if (timingEnabled) { stopWatch = new StopWatch(); stopWatch.start(); } WtNode result = null; try { result = resolvePageSwitch(n, name, log); } catch (Exception e) { result = markError(n, e); if (log != null) logUnhandledException(log, e); if (!catchAll) throw new ExpansionException(e); } finally { if (timingEnabled && log != null) log.setTimeNeeded(stopWatch.getElapsedTime()); } return (hooks != null) ? hooks.afterResolvePageSwitch(this, n, name, result, log) : result; } private WtNode resolvePageSwitch( WtPageSwitch n, String name, EngLogMagicWordResolution log) { ParserFunctionBase mw = getWikiConfig().getPageSwitch("__" + name + "__"); if (mw == null) /* This should not happen: If you register a magic word with the * parser (which only then will produce this magic word node) * there also has to be a magic word object. */ throw new AssertionError("Cannot find tag extension: " + name); WtNode result = mw.invoke( n, expFrame, Collections. emptyList()); log.setSuccess(true); return result; } // ========================================================================= public ExpansionFrame getExpFrame() { return expFrame; } public boolean isHadNewline() { return hadNewlineGlobal; } private WikiConfig getWikiConfig() { return expFrame.getWikiConfig(); } private WtEngineImpl getEngine() { return expFrame.getEngine(); } private WtNodeList getFrameArgument(String name) { return expFrame.getArguments().get(name); } private FullPage getWikitext(PageTitle title) { return expFrame.getCallback().retrieveWikitext(expFrame, title); } private void logUnhandledException(EngLogContainer log, Exception e) { StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf.logUnhandledError(e, w.toString())); } private void fileInvalidPageNameWarning(WtNode n, String target) { expFrame.fileWarning(new InvalidPagenameWarning( WarningSeverity.FATAL, getClass(), n, target)); } private void fileInvalidTemplateNameWarning( WtTemplate n, StringConversionException e) { expFrame.fileWarning(new InvalidNameWarning( WarningSeverity.FATAL, getClass(), n)); } private void fileInvalidArgumentNameWarning( WtTemplateArgument n, StringConversionException e) { expFrame.fileWarning(new InvalidNameWarning( WarningSeverity.FATAL, getClass(), n)); } private void fileInvalidParameterNameWarning( WtTemplateParameter n, StringConversionException e) { expFrame.fileWarning(new InvalidNameWarning( WarningSeverity.FATAL, getClass(), n)); } private void filePageNotFoundWarning(WtNode n, PageTitle title) { expFrame.fileWarning(new PageNotFoundWarning( WarningSeverity.NORMAL, getClass(), n, title)); } private WtNodeList mergeLogsAndWarnings( EngLogContainer log, EngProcessedPage processedPage) { if (log != null) log.add(processedPage.getLog()); expFrame.addWarnings(processedPage.getWarnings()); return nf.unwrap(processedPage.getPage()); } private WtNode treatBlockElements(WtTemplate tmpl, WtNode result) { if (result != null) return treatBlockElements(tmpl, result, tmpl.isPrecededByNewline()); return null; } /* private WtNode treatBlockElements(TemplateParameter tmpl, WtNode result) { if (result != null) return treatBlockElements(tmpl, result, tmpl.getPrecededByNewline()); return null; } */ /** * If we don't had a newline before some template element but the template * resolved to a block level element, THEN we prepend a newline to make the * block level element start on a new line (so that it can be identified * correctly). */ private WtNode treatBlockElements( WtNode tmpl, WtNode result, boolean hadNewline) { if (result != null && !hadNewline) { PartialConversion split = tu.astToTextPartial( result, EngineAstTextUtils.FAIL_ON_UNRESOLVED_ENTITY_REF, EngineAstTextUtils.DO_NOT_CONVERT_NOWIKI); Matcher m = STARTS_WITH_BLOCK_ELEMENT.matcher(split.getText()); if (m.find()) result = nf.list(nf.text("\n" + split.getText()), split.getTail()); } return result; } /** * Returns if the expansion of the specified node should be skipped. This * would for example be the case when we already tried to expand the node * but failed. */ private boolean skip(WtNode n) { return n.hasAttribute(SKIP_ATTR_NAME); } /** * Called when something could not be resolved. This could happen if a * transclusion statement cannot find the target page. This method MUST NOT * BE CALLED when the expansion process for this element failed due to an * exception. */ private WtNode markError(WtNode n) { //return new SoftErrorNode(n); n.setAttribute(SKIP_ATTR_NAME, false); return n; } /** * Called when the expansion process for the specified element failed due to * an exception. */ private WtNode markError(WtNode n, Exception e) { //return new SoftErrorNode(n, e); n.setAttribute(SKIP_ATTR_NAME, e); return n; } } FullPage.java000066400000000000000000000021511335270560400427500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; public class FullPage { private final PageId id; private final String text; // ========================================================================= public FullPage(PageId id, String text) { super(); this.id = id; this.text = text; } // ========================================================================= public PageId getId() { return id; } public String getText() { return text; } } FullPreprocessedPage.java000066400000000000000000000026131335270560400453320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.engine.nodes.EngProcessedPage; public class FullPreprocessedPage { private final PageId id; private final boolean forInclusion; private final EngProcessedPage page; // ========================================================================= public FullPreprocessedPage( PageId pageId, boolean forInclusion, EngProcessedPage page) { super(); this.id = pageId; this.forInclusion = forInclusion; this.page = page; } // ========================================================================= public PageId getId() { return id; } public boolean isForInclusion() { return forInclusion; } public EngProcessedPage getPage() { return page; } } IllegalArgumentsWarning.java000066400000000000000000000024301335270560400460360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.parser.nodes.WtNode; public class IllegalArgumentsWarning extends OffendingNodeWarning { private static final long serialVersionUID = 1L; // ========================================================================= public IllegalArgumentsWarning( WarningSeverity severity, String origin, String message, WtNode template) { super(template, severity, origin, message); } public IllegalArgumentsWarning( WarningSeverity severity, Class origin, String message, WtNode template) { super(template, severity, origin, message); } } InvalidNameWarning.java000066400000000000000000000024641335270560400447750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.parser.nodes.WtNode; public class InvalidNameWarning extends OffendingNodeWarning { private static final long serialVersionUID = 1L; private static final String message = "The wikitext cannot be converted into a plain name"; // ========================================================================= public InvalidNameWarning( WarningSeverity severity, String origin, WtNode name) { super(name, severity, origin, message); } public InvalidNameWarning( WarningSeverity severity, Class origin, WtNode name) { super(name, severity, origin, message); } } InvalidPagenameWarning.java000066400000000000000000000044731335270560400456340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.parser.nodes.WtNode; public class InvalidPagenameWarning extends OffendingNodeWarning { private static final long serialVersionUID = 1L; private final String titleString; // ========================================================================= public InvalidPagenameWarning( WarningSeverity severity, String origin, WtNode titleNode, String titleString) { super(titleNode, severity, origin, makeMessage(titleString)); this.titleString = titleString; } public InvalidPagenameWarning( WarningSeverity severity, Class origin, WtNode titleNode, String titleString) { super(titleNode, severity, origin, makeMessage(titleString)); this.titleString = titleString; } private static String makeMessage(String titleString) { return "The given text `" + titleString + "' " + "does not constitute a valid page name"; } public String getTitleString() { return titleString; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((titleString == null) ? 0 : titleString.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; InvalidPagenameWarning other = (InvalidPagenameWarning) obj; if (titleString == null) { if (other.titleString != null) return false; } else if (!titleString.equals(other.titleString)) return false; return true; } } NodeTypeEngVisitor.java000066400000000000000000000047721335270560400450250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.engine.nodes.EngNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtParserEntity; import org.sweble.wikitext.parser.nodes.WtText; import de.fau.cs.osr.ptk.common.NodeTypeAstVisitor; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.ast.AstParserEntity; import de.fau.cs.osr.ptk.common.ast.AstText; public class NodeTypeEngVisitor extends NodeTypeAstVisitor { @Override protected Object resolveAndVisit(WtNode node, int type) { switch (type) { case EngNode.NT_TEXT: return visit((WtText) node); case EngNode.NT_NODE_LIST: return visit((WtNodeList) node); case EngNode.NT_PARSER_ENTITY: return visit((WtParserEntity) node); default: return visitUnspecific(node); } } // ========================================================================= protected Object visitUnspecific(WtNode node) { return node; } protected Object visit(WtText node) { return visitUnspecific(node); } protected Object visit(WtNodeList node) { return visitUnspecific(node); } protected Object visit(WtParserEntity node) { return visitUnspecific(node); } // ========================================================================= // Make the original methods unusable @Override protected final Object visitUnspecific(AstNode node) { throw new AssertionError(); } @Override protected final Object visit(AstText node) { throw new AssertionError(); } @Override protected final Object visit(AstNodeList node) { throw new AssertionError(); } @Override protected final Object visit(AstParserEntity node) { throw new AssertionError(); } } OffendingNodeWarning.java000066400000000000000000000045751335270560400453200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.parser.WikitextWarning; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import de.fau.cs.osr.ptk.common.ast.Span; public abstract class OffendingNodeWarning extends WikitextWarning { private static final long serialVersionUID = 1L; private final WtNode node; // ========================================================================= public OffendingNodeWarning( WtNode node, WarningSeverity severity, String origin, String message) { super(makeSpan(node), severity, origin, message); this.node = node; } public OffendingNodeWarning( WtNode node, WarningSeverity severity, Class origin, String message) { super(makeSpan(node), severity, origin, message); this.node = node; } private static Span makeSpan(WtNode node) { return new Span( node.getNativeLocation(), WtRtDataPrinter.print(node)); } // ========================================================================= public WtNode getNode() { return node; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((node == null) ? 0 : node.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; OffendingNodeWarning other = (OffendingNodeWarning) obj; if (node == null) { if (other.node != null) return false; } else if (!node.equals(other.node)) return false; return true; } } PageId.java000066400000000000000000000022221335270560400424010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; public class PageId { private final PageTitle title; private final long revision; // ========================================================================= public PageId(PageTitle title, long revision) { super(); this.title = title; this.revision = revision; } // ========================================================================= public PageTitle getTitle() { return title; } public long getRevision() { return revision; } } PageNotFoundWarning.java000066400000000000000000000043441335270560400451360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.parser.nodes.WtNode; public class PageNotFoundWarning extends OffendingNodeWarning { private static final long serialVersionUID = 1L; private final PageTitle title; // ========================================================================= public PageNotFoundWarning( WarningSeverity severity, String origin, WtNode titleNode, PageTitle title) { super(titleNode, severity, origin, makeMessage(title)); this.title = title; } public PageNotFoundWarning( WarningSeverity severity, Class origin, WtNode titleNode, PageTitle title) { super(titleNode, severity, origin, makeMessage(title)); this.title = title; } private static String makeMessage(PageTitle title) { return "The given text `" + title.getDenormalizedFullTitle() + "' " + "does not constitute a valid page name"; } public PageTitle getTitle() { return title; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((title == null) ? 0 : title.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; PageNotFoundWarning other = (PageNotFoundWarning) obj; if (title == null) { if (other.title != null) return false; } else if (!title.equals(other.title)) return false; return true; } } PageTitle.java000066400000000000000000000226311335270560400431340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.Serializable; import java.net.MalformedURLException; import java.net.URL; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.sweble.wikitext.engine.config.Interwiki; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.config.WikiConfigurationException; import org.sweble.wikitext.engine.utils.UrlService; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.parser.LinkTargetParser; public class PageTitle implements Serializable { private static final long serialVersionUID = 1L; // ========================================================================= private final WikiConfig config; // ========================================================================= private final String title; private final String fragment; private final Namespace namespace; private final String namespaceAlias; private final Interwiki interwiki; private final boolean initialColon; // ========================================================================= private final boolean isDefaultNs; // ========================================================================= /** * Returns the normalized title (" " replaced by "_"). */ public String getTitle() { return title; } public String getFragment() { return fragment; } public Namespace getNamespace() { return namespace; } /** * Returns the name of the namespace that was specified by the user. If an * alias or the canonical name was used, the alias or cannonical name is * returned. The alias or name as specified in the configuration is * returned, which might differ in case from what the user specified. */ public String getNamespaceAlias() { if (namespaceAlias == null) return namespace.getName(); return namespaceAlias; } public Interwiki getInterwikiLink() { return interwiki; } public boolean isLocal() { return interwiki == null; } public boolean isInterwiki() { return !isLocal(); } public boolean hasInitialColon() { return initialColon; } /** * Get the full title: * *
	 * "[IW_PREFIX:][NS_PREFIX:]TITLE"
	 * 
* * The TITLE itself will be in de-normalized form ("_" replaced by " "). */ public String getDenormalizedFullTitle() { String result = ""; if (interwiki != null) result += interwiki.getPrefix() + ":"; if (namespace != null && !isDefaultNs) result += getNamespaceAlias() + ":"; result += getDenormalizedTitle(); return result; } /** * Returns the de-normalized title ("_" replaced by " "). */ public String getDenormalizedTitle() { return title.replace('_', ' '); } /** * Get title string suitable for links: * *
	 * "[IW_PREFIX:][NS_PREFIX:]TITLE"
	 * 
* * The TITLE itself will be in normalized form (" " replaced by "_"). */ public String getNormalizedFullTitle() { String result = ""; if (interwiki != null) result += interwiki.getPrefix() + ":"; if (namespace != null && !isDefaultNs) result += getNamespaceAlias() + ":"; result += title; return result; } // ========================================================================= public URL getUrl() { if (this.interwiki != null) { return this.interwiki.getUrl(this); } else { try { return UrlService.makeUrlToArticle(this.config.getArticlePath(), this); } catch (MalformedURLException e) { /* This should not happen: If the URL is correctly formatted, * appending a title must not cause a MalformedURLException. */ throw new WikiConfigurationException(e); } } } public URL getUrl(String urlEncodedQuery) throws MalformedURLException { return (urlEncodedQuery != null) ? UrlService.appendQuery(getUrl(), urlEncodedQuery) : getUrl(); } public URL getUrl(Map query) throws MalformedURLException { return (query != null && !query.isEmpty()) ? UrlService.appendQuery(getUrl(), query) : getUrl(); } // ========================================================================= public PageTitle getBaseTitle() { if (!namespace.isCanHaveSubpages()) return this; int i = title.lastIndexOf('/'); if (i < 0) return this; String baseTitle = title.substring(0, i); return new PageTitle( config, baseTitle, null, namespace, namespaceAlias, interwiki, initialColon, isDefaultNs); } // ========================================================================= public PageTitle newWithNamespace(Namespace ns) { return new PageTitle( config, title, fragment, ns, null, interwiki, initialColon, ns.equals(config.getDefaultNamespace())); } public PageTitle newWithTitle(String title) { return new PageTitle( config, title, fragment, namespace, namespaceAlias, interwiki, initialColon, isDefaultNs); } // ========================================================================= protected PageTitle( WikiConfig config, String title, String fragment, Namespace namespace, String namespaceAlias, Interwiki interwiki, boolean initialColon, boolean isDefaultNs) { this.config = config; this.title = title; this.fragment = fragment; this.namespace = namespace; this.namespaceAlias = namespaceAlias; this.interwiki = interwiki; this.initialColon = initialColon; this.isDefaultNs = isDefaultNs; } public static PageTitle make( WikiConfig config, String target) throws LinkTargetException { return make(config, target, null); } public static PageTitle make( WikiConfig config, String target, Namespace defaultNamespace) throws LinkTargetException { // FIXME: Review the implementation! LinkTargetParser parser = new LinkTargetParser(); parser.parse(config.getParserConfig(), target); String title = parser.getTitle(); String fragment = parser.getFragment(); boolean initialColon = parser.isInitialColon(); Namespace namespace = null; if (parser.getNamespace() != null) namespace = config.getNamespace(parser.getNamespace()); if (namespace == null) { namespace = defaultNamespace; if (namespace == null) namespace = config.getDefaultNamespace(); } // If it's an alias, convert to the exact alias name. String namespaceAlias = null; if (namespace != null && parser.getNamespace() != null) { String lcNs = parser.getNamespace().toLowerCase(); if (!lcNs.equals(namespace.getName())) { for (String a : namespace.getAliases()) { if (lcNs.equals(a.toLowerCase())) { namespaceAlias = a; break; } } } } Interwiki interwiki = config.getInterwiki(parser.getInterwiki()); // TODO: MediaWiki limits the length of title names // Don't capitalize the first letter of a interwiki link if (interwiki == null) title = StringUtils.capitalize(title); // TODO: MediaWiki normalizes IPv6 titles boolean isDefaultNs = namespace.equals(config.getDefaultNamespace()); return new PageTitle( config, title, fragment, namespace, namespaceAlias, interwiki, initialColon, isDefaultNs); } // ========================================================================= @Override public String toString() { return getDenormalizedFullTitle(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((fragment == null) ? 0 : fragment.hashCode()); result = prime * result + (initialColon ? 1231 : 1237); result = prime * result + ((interwiki == null) ? 0 : interwiki.hashCode()); result = prime * result + (isDefaultNs ? 1231 : 1237); result = prime * result + ((namespace == null) ? 0 : namespace.hashCode()); result = prime * result + ((title == null) ? 0 : title.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; PageTitle other = (PageTitle) obj; if (fragment == null) { if (other.fragment != null) return false; } else if (!fragment.equals(other.fragment)) return false; if (initialColon != other.initialColon) return false; if (interwiki == null) { if (other.interwiki != null) return false; } else if (!interwiki.equals(other.interwiki)) return false; if (isDefaultNs != other.isDefaultNs) return false; if (namespace == null) { if (other.namespace != null) return false; } else if (!namespace.equals(other.namespace)) return false; if (title == null) { if (other.title != null) return false; } else if (!title.equals(other.title)) return false; return true; } } ParserFunctionBase.java000066400000000000000000000130431335270560400450100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.Serializable; import java.util.List; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.adapters.XmlAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.sweble.wikitext.engine.ParserFunctionBase.ParserFunctionAdapter; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.parser.nodes.WtNode; @XmlTransient @XmlJavaTypeAdapter(value = ParserFunctionAdapter.class) public abstract class ParserFunctionBase implements Serializable, Comparable { private static final long serialVersionUID = 1L; private final String id; private final PfnArgumentMode argMode; private final boolean pageSwitch; /** * Can't be final since it cannot be set during un-marshaling. */ private WikiConfig wikiConfig; private EngineAstTextUtils tu; private EngineNodeFactory nf; // ========================================================================= /** * For un-marshaling only. */ public ParserFunctionBase(String id) { this(PfnArgumentMode.UNEXPANDED_VALUES, false, id); } /** * For un-marshaling only. */ public ParserFunctionBase(PfnArgumentMode argMode, String id) { this(argMode, false, id); } /** * For un-marshaling only. */ public ParserFunctionBase( PfnArgumentMode argMode, boolean pageSwitch, String id) { if (id == null || id.isEmpty()) throw new IllegalArgumentException(); this.argMode = argMode; this.pageSwitch = pageSwitch; this.id = id; } public ParserFunctionBase(WikiConfig wikiConfig, String id) { this(wikiConfig, PfnArgumentMode.UNEXPANDED_VALUES, false, id); } public ParserFunctionBase( WikiConfig wikiConfig, PfnArgumentMode argMode, String id) { this(wikiConfig, argMode, false, id); } public ParserFunctionBase( WikiConfig wikiConfig, PfnArgumentMode argMode, boolean pageSwitch, String id) { this(argMode, pageSwitch, id); setWikiConfig(wikiConfig); } // ========================================================================= /** * For internal use only! */ public void setWikiConfig(WikiConfig wikiConfig) { if (wikiConfig == null) throw new IllegalArgumentException(); this.wikiConfig = wikiConfig; this.nf = wikiConfig.getNodeFactory(); this.tu = wikiConfig.getAstTextUtils(); } public WikiConfig getWikiConfig() { return wikiConfig; } public String getId() { return id; } public PfnArgumentMode getArgMode() { return argMode; } public boolean isPageSwitch() { return pageSwitch; } protected EngineNodeFactory nf() { return nf; } protected EngineAstTextUtils tu() { return tu; } /** * WtNode can either be a WtTemplate or a WtPageSwitch */ public abstract WtNode invoke( WtNode template, ExpansionFrame preprocessorFrame, List argsValues); // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; return true; } // ========================================================================= @Override public int compareTo(ParserFunctionBase o) { return this.id.compareTo(o.getId()); } // ========================================================================= @Override public String toString() { return "ParserFunctionBase [id=" + id + ", argMode=" + argMode + ", pageSwitch=" + pageSwitch + "]"; } // ========================================================================= protected static final class ParserFunctionRef { @XmlAttribute(name = "class") public String className; public ParserFunctionRef() { } public ParserFunctionRef(String name) { this.className = name; } } public static final class ParserFunctionAdapter extends XmlAdapter { public ParserFunctionAdapter() { } @Override public ParserFunctionRef marshal(ParserFunctionBase v) { return new ParserFunctionRef(v.getClass().getName()); } @Override public ParserFunctionBase unmarshal(ParserFunctionRef v) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Class clazz = Class.forName(v.className); /* Constructor ctor = clazz.getDeclaredConstructor(WikiConfig.class); // We don't have a wiki config object yet :( return (ParserFunctionBase) ctor.newInstance((WikiConfig) null); */ return (ParserFunctionBase) clazz.newInstance(); } } } PfnArgumentMode.java000066400000000000000000000022641335270560400443110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; public enum PfnArgumentMode { /** * This is the normal mode. The original template arguments (name, value) * will be collapsed into a single value of the form "$name=$value". No * expansion is done. */ UNEXPANDED_VALUES, /** * The original template arguments will be collapsed as is done by * UNEXPANDED_VALUES. Then the collapsed value is expanded and trimmed. */ EXPANDED_AND_TRIMMED_VALUES, /** * The original template arguments are left as is. */ TEMPLATE_ARGUMENTS, } RecursiveTransclusionException.java000066400000000000000000000020631335270560400475060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; public class RecursiveTransclusionException extends Exception { private static final long serialVersionUID = 1L; private final PageTitle title; public RecursiveTransclusionException(PageTitle title, int i) { super("Aborted recursive transclusion after " + i + " iterations"); this.title = title; } public PageTitle getTitle() { return title; } } TagExtensionBase.java000066400000000000000000000112641335270560400444610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.Serializable; import java.util.Map; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.adapters.XmlAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.sweble.wikitext.engine.TagExtensionBase.TagExtensionAdapter; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; @XmlTransient @XmlJavaTypeAdapter(value = TagExtensionAdapter.class) public abstract class TagExtensionBase implements Serializable, Comparable { private static final long serialVersionUID = 1L; private final String id; /** * Can't be final since it cannot be set during un-marshaling. */ private WikiConfig wikiConfig; private EngineAstTextUtils tu; private EngineNodeFactory nf; // ========================================================================= /** * For un-marshaling only. */ protected TagExtensionBase(String id) { if (id == null || id.isEmpty()) throw new IllegalArgumentException(); this.id = id; } protected TagExtensionBase(WikiConfig wikiConfig, String id) { this(id); setWikiConfig(wikiConfig); } // ========================================================================= /** * For internal use only! */ public void setWikiConfig(WikiConfig wikiConfig) { if (wikiConfig == null) throw new IllegalArgumentException(); this.wikiConfig = wikiConfig; this.nf = wikiConfig.getNodeFactory(); this.tu = wikiConfig.getAstTextUtils(); } public WikiConfig getWikiConfig() { return wikiConfig; } public String getId() { return id; } protected EngineNodeFactory nf() { return nf; } protected EngineAstTextUtils tu() { return tu; } public abstract WtNode invoke( ExpansionFrame preprocessorFrame, WtTagExtension wtTagExtension, Map attributes, WtTagExtensionBody wtTagExtensionBody); // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; return true; } // ========================================================================= @Override public int compareTo(TagExtensionBase o) { return this.id.compareTo(o.getId()); } // ========================================================================= @Override public String toString() { return "TagExtensionBase [id=" + id + "]"; } // ========================================================================= protected static final class TagExtensionRef { @XmlAttribute(name = "class") public String className; public TagExtensionRef() { } public TagExtensionRef(String name) { this.className = name; } } public static final class TagExtensionAdapter extends XmlAdapter { public TagExtensionAdapter() { } @Override public TagExtensionRef marshal(TagExtensionBase v) { return new TagExtensionRef(v.getClass().getName()); } @Override public TagExtensionBase unmarshal(TagExtensionRef v) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Class clazz = Class.forName(v.className); /* Constructor ctor = clazz.getDeclaredConstructor(WikiConfig.class); // We don't have a wiki config object yet :( return (TagExtensionBase) ctor.newInstance((WikiConfig) null); */ return (TagExtensionBase) clazz.newInstance(); } } } WtEngine.java000066400000000000000000000073711335270560400430020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; public interface WtEngine { public void setDebugHooks(ExpansionDebugHooks hooks); public void setNoRedirect(boolean noRedirect); public void setTimingEnabled(boolean timingEnabled); public void setCatchAll(boolean catchAll); public WikiConfig getWikiConfig(); public ExpansionDebugHooks getDebugHooks(); public boolean isNoRedirect(); public boolean isTimingEnabled(); public boolean isCatchAll(); public EngineNodeFactory nf(); /** * Takes wikitext and preprocesses the wikitext (without performing * expansion). The following steps are performed: *
    *
  • Validation
  • *
  • Preprocessing (for inclusion/viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
*/ public EngProcessedPage preprocess( PageId pageId, String wikitext, boolean forInclusion, ExpansionCallback callback) throws EngineException; /** * Takes wikitext and expands the wikitext. The following steps are * performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Expansion
  • *
*/ public EngProcessedPage expand( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException; /** * Takes wikitext and expands the wikitext. The following steps are * performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Expansion
  • *
*/ public EngProcessedPage expand( PageId pageId, String wikitext, boolean forInclusion, ExpansionCallback callback) throws EngineException; /** * Takes wikitext and parses the wikitext for viewing. The following steps * are performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
  • Parsing
  • *
  • Entity substitution
  • *
*/ public EngProcessedPage parse( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException; /** * Takes wikitext and parses the wikitext for viewing. The following steps * are performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
  • Parsing
  • *
  • Entity substitution
  • *
  • Postprocessing
  • *
*/ public EngProcessedPage postprocess( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException; /** * Takes an AST after preprocessing or after expansion and performs the * following steps: *
    *
  • Parsing
  • *
  • Entity substitution
  • *
  • Postprocessing
  • *
*/ public EngProcessedPage postprocessPpOrExpAst( PageId pageId, WtPreproWikitextPage pprAst) throws EngineException; } WtEngineImpl.java000066400000000000000000000550761335270560400436310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.config.EngineConfig; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngLogContainer; import org.sweble.wikitext.engine.nodes.EngLogExpansionPass; import org.sweble.wikitext.engine.nodes.EngLogParserPass; import org.sweble.wikitext.engine.nodes.EngLogPostprocessorPass; import org.sweble.wikitext.engine.nodes.EngLogPreprocessorPass; import org.sweble.wikitext.engine.nodes.EngLogProcessingPass; import org.sweble.wikitext.engine.nodes.EngLogValidatorPass; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WikitextEncodingValidator; import org.sweble.wikitext.parser.WikitextParser; import org.sweble.wikitext.parser.WikitextPostprocessor; import org.sweble.wikitext.parser.WikitextPreprocessor; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.WtEntityMapImpl; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.parser.PreprocessorToParserTransformer; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.utils.StopWatch; public class WtEngineImpl implements WtEngine { private static final Logger logger = LoggerFactory.getLogger(WtEngineImpl.class); // ========================================================================= private WikiConfig wikiConfig; private ParserConfig parserConfig; private EngineConfig engineConfig; private ExpansionDebugHooks hooks; private boolean noRedirect = false; private boolean timingEnabled = false; private boolean catchAll = true; // ========================================================================= public WtEngineImpl(WikiConfig wikiConfig) { super(); this.wikiConfig = wikiConfig; this.parserConfig = wikiConfig.getParserConfig(); this.engineConfig = wikiConfig.getEngineConfig(); } // ========================================================================= public void setDebugHooks(ExpansionDebugHooks hooks) { this.hooks = hooks; } public void setNoRedirect(boolean noRedirect) { this.noRedirect = noRedirect; } public void setTimingEnabled(boolean timingEnabled) { this.timingEnabled = timingEnabled; } public void setCatchAll(boolean catchAll) { this.catchAll = catchAll; } public WikiConfig getWikiConfig() { return wikiConfig; } public ExpansionDebugHooks getDebugHooks() { return hooks; } public boolean isNoRedirect() { return noRedirect; } public boolean isTimingEnabled() { return timingEnabled; } public boolean isCatchAll() { return catchAll; } public EngineNodeFactory nf() { return wikiConfig.getNodeFactory(); } // ========================================================================= /** * Takes wikitext and preprocesses the wikitext (without performing * expansion). The following steps are performed: *
    *
  • Validation
  • *
  • Preprocessing (for inclusion/viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
*/ public EngProcessedPage preprocess( PageId pageId, String wikitext, boolean forInclusion, ExpansionCallback callback) throws EngineException { if (pageId == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtPreproWikitextPage pprAst; try { ValidatedWikitext validatedWikitext = validate(title, wikitext, log, null); WtPreproWikitextPage ppAst = preprocess(title, validatedWikitext, forInclusion, log); pprAst = ppAst; if (callback != null) pprAst = expand(callback, title, ppAst, null, false, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pprAst), log, pprAst.getWarnings()); } /** * Takes wikitext and expands the wikitext. The following steps are * performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Expansion
  • *
*/ public EngProcessedPage expand( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException { return expand(pageId, wikitext, false, callback); } /** * Takes wikitext and expands the wikitext. The following steps are * performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Expansion
  • *
*/ public EngProcessedPage expand( PageId pageId, String wikitext, boolean forInclusion, ExpansionCallback callback) throws EngineException { if (pageId == null || callback == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtPreproWikitextPage pAst; try { ValidatedWikitext validatedWikitext = validate(title, wikitext, log, null); WtPreproWikitextPage ppAst = preprocess(title, validatedWikitext, forInclusion, log); WtPreproWikitextPage pprAst = ppAst; pprAst = expand(callback, title, ppAst, null, forInclusion, log); pAst = pprAst; } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pAst), log, pAst.getWarnings(), pAst.getEntityMap()); } /** * Takes wikitext and parses the wikitext for viewing. The following steps * are performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
  • Parsing
  • *
  • Entity substitution
  • *
*/ public EngProcessedPage parse( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException { if (pageId == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtParsedWikitextPage pAst; try { ValidatedWikitext validatedWikitext = validate(title, wikitext, log, null); WtPreproWikitextPage ppAst = preprocess(title, validatedWikitext, false, log); WtPreproWikitextPage pprAst = ppAst; if (callback != null) pprAst = expand(callback, title, ppAst, null, false, log); pAst = parse(title, pprAst, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pAst), log, pAst.getWarnings()); } /** * Takes wikitext and parses the wikitext for viewing. The following steps * are performed: *
    *
  • Parsing
  • *
  • Postprocessing
  • *
*/ public EngProcessedPage parseAndPostprocess( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException { if (pageId == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtParsedWikitextPage pAst; try { pAst = parse(title, wikitext, log); pAst = postprocess(title, pAst, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pAst), log, pAst.getWarnings()); } /** * Takes wikitext and parses the wikitext for viewing. The following steps * are performed: *
    *
  • Validation
  • *
  • Preprocessing (for viewing)
  • *
  • Entity substitution
  • *
  • Optional: Expansion
  • *
  • Parsing
  • *
  • Entity substitution
  • *
  • Postprocessing
  • *
*/ public EngProcessedPage postprocess( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException { if (pageId == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtParsedWikitextPage pAst; try { ValidatedWikitext validatedWikitext = validate(title, wikitext, log, null); WtPreproWikitextPage ppAst = preprocess(title, validatedWikitext, false, log); WtPreproWikitextPage pprAst = ppAst; if (callback != null) pprAst = expand(callback, title, ppAst, null, false, log); pAst = parse(title, pprAst, log); pAst = postprocess(title, pAst, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pAst), log, pAst.getWarnings()); } /** * Takes an AST after preprocessing or after expansion and performs the * following steps: *
    *
  • Parsing
  • *
  • Entity substitution
  • *
  • Postprocessing
  • *
*/ public EngProcessedPage postprocessPpOrExpAst( PageId pageId, WtPreproWikitextPage pprAst) throws EngineException { if (pageId == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtParsedWikitextPage pAst; try { pAst = parse(title, pprAst, log); pAst = postprocess(title, pAst, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pAst), log, pAst.getWarnings()); } // ========================================================================= /** * This function is only called by preprocessor frames to pull in pages for * transclusion or redirection. It takes wikitext and parses the wikitext * for inclusion or viewing. The following steps are performed: *
    *
  • Validation
  • *
  • Preprocessing (for inclusion/viewing)
  • *
  • Entity substitution
  • *
  • Expansion
  • *
*/ protected EngProcessedPage preprocessAndExpand( ExpansionCallback callback, PageId pageId, String wikitext, boolean forInclusion, WtEntityMap entityMap, Map arguments, ExpansionFrame rootFrame, ExpansionFrame parentFrame) throws EngineException { if (pageId == null) throw new NullPointerException(); if (wikitext == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtPreproWikitextPage pprAst; try { ValidatedWikitext validatedWikitext = validate(title, wikitext, log, entityMap); WtPreproWikitextPage ppAst = preprocess(title, validatedWikitext, forInclusion, log); pprAst = expand( callback, title, ppAst, arguments, forInclusion, rootFrame, parentFrame, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pprAst), log, pprAst.getWarnings()); } protected EngProcessedPage expand( ExpansionCallback callback, PageId pageId, WtPreproWikitextPage ppAst, WtEntityMap entityMap, boolean forInclusion, Map arguments, ExpansionFrame rootFrame, ExpansionFrame parentFrame) throws EngineException { if (pageId == null) throw new NullPointerException(); if (ppAst == null) throw new NullPointerException(); PageTitle title = pageId.getTitle(); EngLogProcessingPass log = nf().logProcessingPass(); log.setTitle(title.getDenormalizedFullTitle()); log.setRevision(pageId.getRevision()); WtPreproWikitextPage pprAst; try { pprAst = expand( callback, title, ppAst, arguments, forInclusion, rootFrame, parentFrame, log); } catch (EngineException e) { e.attachLog(log); throw e; } catch (Throwable e) { throw new EngineException(title, "Compilation failed!", e, log); } return nf().processedPage( nf().page(pprAst), log, pprAst.getWarnings()); } // ========================================================================= /** * Validates wikitext. */ private ValidatedWikitext validate( PageTitle title, String wikitext, EngLogContainer parentLog, WtEntityMap entityMap) throws EngineException { EngLogValidatorPass log = nf().logValidatorPass(); parentLog.add(log); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { WikitextEncodingValidator validator = new WikitextEncodingValidator(); if (entityMap == null) entityMap = new WtEntityMapImpl(); ValidatedWikitext validatedWikitext = validator.validate( parserConfig, entityMap, title.getDenormalizedFullTitle(), wikitext); return validatedWikitext; } catch (Exception e) { logger.error("Validation failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Validation failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } /** * Preprocesses validated wikitext and substitutes entities. */ private WtPreproWikitextPage preprocess( PageTitle title, ValidatedWikitext validatedWikitext, boolean forInclusion, EngLogContainer parentLog) throws EngineException { EngLogPreprocessorPass log = nf().logPreprocessorPass(); parentLog.add(log); log.setForInclusion(forInclusion); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { WikitextPreprocessor preprocessor = new WikitextPreprocessor(parserConfig); /** * Entities generated and inserted into the source by the encoding * validator are recognized by the preprocessor parser and replaced * with the entities from the entity map (if present). * * TODO: That's a lie I believe. In the preprocessor's State.rats * the getEntity() method always throws an AssertionError suggesting * that the preprocessor cannot handle entites... * * I think that's a bug! */ WtPreproWikitextPage preprocessedAst = (WtPreproWikitextPage) preprocessor.parseArticle( validatedWikitext, title.getDenormalizedFullTitle(), forInclusion); return preprocessedAst; } catch (xtc.parser.ParseException e) { log.add(nf().logParserError(e.getMessage())); throw new EngineException(title, "Preprocessing failed!", e); } catch (Exception e) { logger.error("Preprocessing failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Preprocessing failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } /** * Starts the expansion process of a preprocessed page with the preprocessed * page as root of the expansion process. */ private WtPreproWikitextPage expand( ExpansionCallback callback, PageTitle title, WtPreproWikitextPage ppAst, LinkedHashMap arguments, boolean forInclusion, EngLogContainer parentLog) throws EngineException { return expand( callback, title, ppAst, arguments, forInclusion, null, null, parentLog); } /** * Starts the expansion process of a preprocessed page. */ private WtPreproWikitextPage expand( ExpansionCallback callback, PageTitle title, WtPreproWikitextPage ppAst, Map arguments, boolean forInclusion, ExpansionFrame rootFrame, ExpansionFrame parentFrame, EngLogContainer parentLog) throws EngineException { EngLogExpansionPass log = nf().logExpansionPass(); parentLog.add(log); if (arguments == null) arguments = new HashMap(); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { // Copy in case ppAst stores an immutable (empty) warning list. List warnings = new LinkedList(ppAst.getWarnings()); ExpansionFrame frame; if (rootFrame != null) { frame = new ExpansionFrame( this, callback, hooks, title, ppAst.getEntityMap(), arguments, forInclusion, noRedirect, rootFrame, parentFrame, warnings, log, timingEnabled, catchAll); } else { frame = new ExpansionFrame( this, callback, hooks, title, ppAst.getEntityMap(), noRedirect, warnings, log, timingEnabled, catchAll); } WtPreproWikitextPage expanded = (WtPreproWikitextPage) frame.expand(ppAst); if (!warnings.isEmpty()) ppAst.setWarnings(warnings); return expanded; } catch (Exception e) { logger.error("Resolution failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Resolution failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } /** * Parses a preprocessed page. */ private WtParsedWikitextPage parse( PageTitle title, String wikitext, EngLogContainer parentLog) throws EngineException { EngLogParserPass log = nf().logParserPass(); parentLog.add(log); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { WikitextParser parser = new WikitextParser(parserConfig); WtParsedWikitextPage parsedAst = (WtParsedWikitextPage) parser.parseArticle( wikitext, title.getTitle()); return parsedAst; } catch (xtc.parser.ParseException e) { log.add(nf().logParserError(e.getMessage())); throw new EngineException(title, "Parsing failed!", e); } catch (Exception e) { logger.error("Parsing failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Parsing failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } /** * Parses a preprocessed page (wikitext+entities) and substitutes entities * afterwards. */ private WtParsedWikitextPage parse( PageTitle title, WtPreproWikitextPage ppAst, EngLogContainer parentLog) throws EngineException { EngLogParserPass log = nf().logParserPass(); parentLog.add(log); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { PreprocessedWikitext preprocessedWikitext = PreprocessorToParserTransformer.transform( ppAst, engineConfig.isTrimTransparentBeforeParsing()); WikitextParser parser = new WikitextParser(parserConfig); WtParsedWikitextPage parsedAst = (WtParsedWikitextPage) parser.parseArticle( preprocessedWikitext, title.getTitle()); // if there were no warnings we would try to add to the EMPTY_LIST if (parsedAst.getWarnings() == Collections.EMPTY_LIST) { parsedAst.setWarnings(ppAst.getWarnings()); } else { parsedAst.getWarnings().addAll(ppAst.getWarnings()); } return parsedAst; } catch (xtc.parser.ParseException e) { log.add(nf().logParserError(e.getMessage())); throw new EngineException(title, "Parsing failed!", e); } catch (Exception e) { logger.error("Parsing failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Parsing failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } private WtParsedWikitextPage postprocess( PageTitle title, WtParsedWikitextPage pAst, EngLogProcessingPass parentLog) throws EngineException { EngLogPostprocessorPass log = nf().logPostprocessorPass(); parentLog.add(log); StopWatch stopWatch = new StopWatch(); stopWatch.start(); try { WikitextPostprocessor lpp = new WikitextPostprocessor(parserConfig); pAst = (WtParsedWikitextPage) lpp.postprocess(pAst, title.getTitle()); return pAst; } catch (Exception e) { logger.error("Postprocessing failed!", e); StringWriter w = new StringWriter(); e.printStackTrace(new PrintWriter(w)); log.add(nf().logUnhandledError(e, w.toString())); throw new EngineException(title, "Postprocessing failed!", e); } finally { stopWatch.stop(); log.setTimeNeeded(stopWatch.getElapsedTime()); } } } config/000077500000000000000000000000001335270560400416545ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engineEngineConfig.java000066400000000000000000000014471335270560400450600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; public interface EngineConfig { public abstract boolean isTrimTransparentBeforeParsing(); } EngineConfigImpl.java000066400000000000000000000042141335270560400456750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement( name = "EngineConfig", namespace = "org.sweble.wikitext.engine") @XmlType(propOrder = { "trimTransparentBeforeParsing" }) @XmlAccessorType(XmlAccessType.NONE) public class EngineConfigImpl implements EngineConfig { @XmlElement() private boolean trimTransparentBeforeParsing; // ========================================================================= @Override public boolean isTrimTransparentBeforeParsing() { return trimTransparentBeforeParsing; } public void setTrimTransparentBeforeParsing( boolean trimTransparentBeforeParsing) { this.trimTransparentBeforeParsing = trimTransparentBeforeParsing; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (trimTransparentBeforeParsing ? 1231 : 1237); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; EngineConfigImpl other = (EngineConfigImpl) obj; if (trimTransparentBeforeParsing != other.trimTransparentBeforeParsing) return false; return true; } } I18nAlias.java000066400000000000000000000016541335270560400442160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.util.Set; public interface I18nAlias { public abstract String getId(); public abstract boolean isCaseSensitive(); public abstract Set getAliases(); public abstract boolean hasAlias(String alias); } I18nAliasImpl.java000066400000000000000000000111301335270560400450260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.Serializable; import java.util.Collection; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @XmlType( name = "alias", propOrder = { "id", "caseSensitive", "aliases" }) public class I18nAliasImpl implements I18nAlias, Serializable, Comparable { private static final long serialVersionUID = 1L; private String id; private Boolean caseSensitive; private Set aliases; // ========================================================================= /** * Only for de-serialization, not part of public API */ protected I18nAliasImpl() { } public I18nAliasImpl( String id, boolean caseSensitive, Collection aliases) { setId(id); setCaseSensitive(caseSensitive); setAliases(aliases); } // ========================================================================= @Override @XmlAttribute public String getId() { return id; } /** * Only for de-serialization, not part of public API */ public void setId(String id) { if (id == null) throw new IllegalArgumentException(); if (this.id != null) throw new UnsupportedOperationException(); this.id = id; } @Override @XmlAttribute public boolean isCaseSensitive() { return caseSensitive; } /** * Only for de-serialization, not part of public API */ public void setCaseSensitive(boolean caseSensitive) { if (this.caseSensitive != null) throw new UnsupportedOperationException(); this.caseSensitive = caseSensitive; } @Override @XmlElement(name = "alias") public Set getAliases() { if (aliases == null) aliases = new TreeSet(); // Cannot return immutable aliases set since de-serialization uses this // method's return value to add aliases to the set. return aliases; } /** * Only for de-serialization, not part of public API */ public void setAliases(Collection aliases) { if (aliases == null) throw new IllegalArgumentException(); this.aliases = new TreeSet( new Comparator() { @Override public int compare(String o1, String o2) { return I18nAliasImpl.this.caseSensitive ? o1.compareTo(o2) : o1.compareToIgnoreCase(o2); } }); this.aliases.addAll(aliases); } @Override public boolean hasAlias(String alias) { return aliases.contains(alias); } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((aliases == null) ? 0 : aliases.hashCode()); result = prime * result + ((caseSensitive == null) ? 0 : caseSensitive.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; I18nAliasImpl other = (I18nAliasImpl) obj; if (aliases == null) { if (other.aliases != null) return false; } else if (!aliases.equals(other.aliases)) return false; if (caseSensitive == null) { if (other.caseSensitive != null) return false; } else if (!caseSensitive.equals(other.caseSensitive)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } // ========================================================================= @Override public String toString() { return "I18nAliasImpl [name=" + id + ", caseSensitive=" + caseSensitive + ", aliases=" + aliases + "]"; } // ========================================================================= @Override public int compareTo(I18nAlias o) { return this.id.compareTo(o.getId()); } } Interwiki.java000066400000000000000000000017131335270560400444660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.net.URL; import org.sweble.wikitext.engine.PageTitle; public interface Interwiki { public abstract String getPrefix(); public abstract URL getUrl(PageTitle title); public abstract boolean isLocal(); public abstract boolean isTrans(); } InterwikiImpl.java000066400000000000000000000076421335270560400453170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.Serializable; import java.net.MalformedURLException; import java.net.URL; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlType; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.utils.UrlService; @XmlType( name = "interwiki", propOrder = { "prefix", "local", "trans", "url" }) public class InterwikiImpl implements Interwiki, Serializable, Comparable { private static final long serialVersionUID = 1L; private String prefix; private String url; private boolean local; private boolean trans; // ========================================================================= public InterwikiImpl() { } public InterwikiImpl(String prefix, String url, boolean local, boolean trans) { super(); this.prefix = prefix; this.url = url; this.local = local; this.trans = trans; } // ========================================================================= @Override @XmlAttribute public String getPrefix() { return prefix; } public void setPrefix(String prefix) { this.prefix = prefix; } @XmlAttribute public String getUrl() { return url; } @Override public URL getUrl(PageTitle title) { try { return UrlService.makeUrlToArticle(this.url, title); } catch (MalformedURLException e) { /* This should not happen: If the URL is correctly formatted, * appending a title must not cause a MalformedURLException. */ throw new WikiConfigurationException(e); } } public void setUrl(String url) { this.url = url; } @Override @XmlAttribute public boolean isLocal() { return local; } public void setLocal(boolean local) { this.local = local; } @Override @XmlAttribute public boolean isTrans() { return trans; } public void setTrans(boolean trans) { this.trans = trans; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (local ? 1231 : 1237); result = prime * result + ((prefix == null) ? 0 : prefix.hashCode()); result = prime * result + (trans ? 1231 : 1237); result = prime * result + ((url == null) ? 0 : url.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; InterwikiImpl other = (InterwikiImpl) obj; if (local != other.local) return false; if (prefix == null) { if (other.prefix != null) return false; } else if (!prefix.equals(other.prefix)) return false; if (trans != other.trans) return false; if (url == null) { if (other.url != null) return false; } else if (!url.equals(other.url)) return false; return true; } // ========================================================================= @Override public String toString() { return "InterwikiImpl [prefix=" + prefix + ", url=" + url + ", local=" + local + ", trans=" + trans + "]"; } // ========================================================================= @Override public int compareTo(Interwiki o) { return this.prefix.compareTo(o.getPrefix()); } } Namespace.java000066400000000000000000000023131335270560400444120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.util.TreeSet; public interface Namespace { public abstract int getId(); public abstract String getName(); public abstract boolean isCanHaveSubpages(); public abstract String getCanonical(); public abstract TreeSet getAliases(); public abstract boolean isFileNs(); public abstract boolean isMediaNs(); public abstract boolean isTalkNamespace(); public abstract boolean isSubjectNamespace(); public abstract int getTalkspaceId(); public abstract int getSubjectspaceId(); } NamespaceImpl.java000066400000000000000000000120721335270560400452370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.Serializable; import java.util.Collection; import java.util.TreeSet; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @XmlType( name = "namespace", propOrder = { "id", "name", "canonical", "canHaveSubpages", "fileNs", "aliases" }) public class NamespaceImpl implements Namespace, Serializable, Comparable { private static final long serialVersionUID = 1L; private int id; private String name; private String canonical; private boolean canHaveSubpages; private boolean fileNs; private TreeSet aliases = new TreeSet(); // ========================================================================= private static final int NS_MEDIA = -2; /* private static final int NS_SPECIAL = -1; private static final int NS_MAIN = 0; private static final int NS_TALK = 1; private static final int NS_USER = 2; private static final int NS_USER_TALK = 3; private static final int NS_PROJECT = 4; private static final int NS_PROJECT_TALK = 5; private static final int NS_FILE = 6; private static final int NS_FILE_TALK = 7; private static final int NS_MEDIAWIKI = 8; private static final int NS_MEDIAWIKI_TALK = 9; private static final int NS_TEMPLATE = 10; private static final int NS_TEMPLATE_TALK = 11; private static final int NS_HELP = 12; private static final int NS_HELP_TALK = 13; private static final int NS_CATEGORY = 14; private static final int NS_CATEGORY_TALK = 15; */ // ========================================================================= protected NamespaceImpl() { } public NamespaceImpl( int id, String name, String canonical, boolean subpages, boolean isFileNs, Collection aliases) { this.id = id; this.name = name; this.canHaveSubpages = subpages; this.canonical = canonical; this.fileNs = isFileNs; this.aliases.addAll(aliases); } // ========================================================================= @Override @XmlAttribute public String getName() { return name; } public void setName(String name) { this.name = name; } @Override @XmlAttribute public int getId() { return id; } public void setId(int id) { this.id = id; } @Override @XmlAttribute public boolean isCanHaveSubpages() { return canHaveSubpages; } public void setCanHaveSubpages(boolean canHaveSubpages) { this.canHaveSubpages = canHaveSubpages; } @Override @XmlAttribute public String getCanonical() { return canonical; } public void setCanonical(String canonical) { this.canonical = canonical; } @Override @XmlAttribute public boolean isFileNs() { return fileNs; } public void setFileNs(boolean fileNs) { this.fileNs = fileNs; } @Override public boolean isMediaNs() { return this.id == NS_MEDIA; } @Override @XmlElement(name = "alias") public TreeSet getAliases() { return aliases; } public void setAliases(TreeSet aliases) { this.aliases = aliases; } @Override public boolean isTalkNamespace() { return (id > 0) && (id % 2 == 1); } @Override public boolean isSubjectNamespace() { return (id >= 0) && (id % 2 == 0); } @Override public int getTalkspaceId() { if (isTalkNamespace()) return id; return id + 1; } @Override public int getSubjectspaceId() { if (isSubjectNamespace()) return id; return id - 1; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; NamespaceImpl other = (NamespaceImpl) obj; if (id != other.id) return false; return true; } // ========================================================================= @Override public String toString() { return "NamespaceImpl [id=" + id + ", name=" + name + ", canonical=" + canonical + ", canHaveSubpages=" + canHaveSubpages + ", fileNs=" + fileNs + ", aliases=" + aliases + "]"; } // ========================================================================= @Override public int compareTo(Namespace o) { return ((Integer) getId()).compareTo(o.getId()); } } ParserConfigImpl.java000066400000000000000000000451171335270560400457330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.parser.NonStandardElementBehavior; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.parser.LinkBuilder.LinkType; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.parser.LinkTargetParser; import org.sweble.wikitext.parser.utils.AstTextUtils; import javax.xml.bind.annotation.*; import java.util.*; import java.util.Map.Entry; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @XmlRootElement(name = "ParserConfig", namespace = "org.sweble.wikitext.engine") @XmlType(propOrder = { "convertIllegalCodePoints", "warningsEnabled", "minSeverity", "autoCorrect", "gatherRtData", "langConvTagsEnabled", "nonStandardElementBehavior", "fosterParenting", "fosterParentingForTransclusions", "preserveSemiPreLeadingSpace", "internalLinkPrefixPattern", "internalLinkPostfixPattern", "jaxbAllowedUrlProtocols", "jaxbXmlEntities", "jaxbLctFlagMappings", "jaxbLctVariantMappings" }) @XmlAccessorType(XmlAccessType.NONE) public class ParserConfigImpl implements ParserConfig { private static final Pattern URL_PROTOCOL_SYNTAX = Pattern.compile("^\\w+(:|://)$"); private transient WikiConfigImpl wikiConfig; private final Map xmlEntities = new HashMap(); @XmlElement private boolean convertIllegalCodePoints; @XmlElement private boolean warningsEnabled; @XmlElement private WarningSeverity minSeverity; @XmlElement private boolean autoCorrect; @XmlElement private boolean gatherRtData; @XmlElement private boolean langConvTagsEnabled = true /*be backward compatible*/; @XmlElement private NonStandardElementBehavior nonStandardElementBehavior = NonStandardElementBehavior.UNSPECIFIED /*be backward compatible*/; @XmlElement private boolean fosterParenting = true /*be backward compatible*/; @XmlElement private boolean fosterParentingForTransclusions = true /*be backward compatible*/; @XmlElement private boolean preserveSemiPreLeadingSpace = false /*be backward compatible*/; private final Set allowedUrlProtocols = new HashSet(); @XmlElement private String internalLinkPrefixPattern; @XmlElement private String internalLinkPostfixPattern; private final Map lctFlagMap = new HashMap(); private final Map lctVariantMap = new HashMap(); // ========================================================================= /** * This must only be used for de-serialization. Afterwards the wikiConfig * field has to be set explicitly! */ protected ParserConfigImpl() { } public ParserConfigImpl(WikiConfigImpl wikiConfig) { this(); setWikiConfig(wikiConfig); } /** * Fix ParserConfigImpl after de-serialization. */ protected void setWikiConfig(WikiConfigImpl wikiConfig) { if (wikiConfig == null) throw new IllegalArgumentException(); this.wikiConfig = wikiConfig; } // ==[ XML Entity resolution ]============================================== public void addXmlEntity(String name, String resolvesTo) { String old = xmlEntities.get(name); if (old != null) throw new IllegalArgumentException("XML entity `" + name + "' already registered."); xmlEntities.put(name, resolvesTo); } @Override public Map getXmlEntities() { return xmlEntities; } @Override public String resolveXmlEntity(String name) { return xmlEntities.get(name); } // ==[ Encoding validation features ]======================================= public void setConvertIllegalCodePoints(boolean convertIllegalCodePoints) { this.convertIllegalCodePoints = convertIllegalCodePoints; } @Override public boolean isConvertIllegalCodePoints() { return convertIllegalCodePoints; } // ==[ Parser features ]==================================================== public void setWarningsEnabled(boolean warningsEnabled) { this.warningsEnabled = warningsEnabled; } @Override public boolean isWarningsEnabled() { return warningsEnabled; } public void setMinSeverity(WarningSeverity minSeverity) { this.minSeverity = minSeverity; } public WarningSeverity getMinSeverity() { return minSeverity; } @Override public boolean isWarningLevelEnabled(WarningSeverity severity) { return severity.getLevel() >= this.minSeverity.getLevel(); } public void setAutoCorrect(boolean autoCorrect) { this.autoCorrect = autoCorrect; } @Override public boolean isAutoCorrect() { return autoCorrect; } public void setGatherRtData(boolean gatherRtData) { this.gatherRtData = gatherRtData; } @Override public boolean isGatherRtData() { return gatherRtData; } // ==[ AST creation ]======================================================= @Override public EngineNodeFactory getNodeFactory() { return wikiConfig.getNodeFactory(); } @Override public AstTextUtils getAstTextUtils() { return wikiConfig.getAstTextUtils(); } // ==[ Link classification and parsing ]==================================== public void addUrlProtocol(String protocol) { if (allowedUrlProtocols.contains(protocol)) throw new IllegalArgumentException("URL Protocol `" + protocol + "' already registered."); if (!URL_PROTOCOL_SYNTAX.matcher(protocol).matches()) throw new IllegalArgumentException("Invalid URL protocol syntax `" + protocol + "'."); allowedUrlProtocols.add(protocol); } @Override public boolean isUrlProtocol(String protocol) { return allowedUrlProtocols.contains(protocol.toLowerCase()); } public void setInternalLinkPrefixPattern(String pat) { if (pat == null) { this.internalLinkPrefixPattern = null; } else { try { Pattern.compile("(" + pat + ")$"); } catch (PatternSyntaxException e) { throw new IllegalArgumentException("Not a valid internal link prefix pattern: `" + pat + "'.", e); } this.internalLinkPrefixPattern = pat; } } @Override public String getInternalLinkPrefixPattern() { return this.internalLinkPrefixPattern; } public void setInternalLinkPostfixPattern(String pat) { if (pat == null) { this.internalLinkPostfixPattern = null; } else { try { Pattern.compile(pat); } catch (PatternSyntaxException e) { throw new IllegalArgumentException("Not a valid internal link postfix pattern: `" + pat + "'.", e); } this.internalLinkPostfixPattern = pat; } } @Override public String getInternalLinkPostfixPattern() { return this.internalLinkPostfixPattern; } @Override public LinkType classifyTarget(String target) { LinkTargetParser ltp = new LinkTargetParser(); try { ltp.parse(this, target); } catch (LinkTargetException e) { return LinkType.INVALID; } String nsStr = ltp.getNamespace(); if (nsStr != null) { NamespaceImpl ns = this.wikiConfig.getNamespace(nsStr); if (ns != null && ns.isFileNs() && !ltp.isInitialColon()) return LinkType.IMAGE; } return LinkType.PAGE; } @Override public boolean isNamespace(String nsName) { return this.wikiConfig.getNamespace(nsName) != null; } @Override public boolean isTalkNamespace(String nsName) { NamespaceImpl ns = this.wikiConfig.getNamespace(nsName); return ns != null && ns.isTalkNamespace(); } @Override public boolean isInterwikiName(String iwName) { return this.wikiConfig.getInterwiki(iwName) != null; } @Override public boolean isIwPrefixOfThisWiki(String iwPrefix) { return iwPrefix.equals(this.wikiConfig.getInterwikiPrefix()); } // ==[ Names ]============================================================== @Override public boolean isValidPageSwitchName(String name) { return this.wikiConfig.getPageSwitch(name) != null; } @Override public boolean isValidExtensionTagName(String name) { return this.wikiConfig.getTagExtension(name) != null; } @Override public boolean isRedirectKeyword(String keyword) { I18nAliasImpl alias = this.wikiConfig.getI18nAliasById("redirect"); if (alias == null) return false; return alias.hasAlias(keyword); } // ==[ Parsing XML elements ]=============================================== @Override public boolean isValidXmlEntityRef(String name) { return resolveXmlEntity(name) != null; } public void setNonStandardElementBehavior(NonStandardElementBehavior nonStandardElementBehavior) { this.nonStandardElementBehavior = nonStandardElementBehavior; } @Override public NonStandardElementBehavior getNonStandardElementBehavior( String elementName) { return nonStandardElementBehavior; } public void setFosterParenting(boolean fosterParenting) { this.fosterParenting = fosterParenting; } @Override public boolean isFosterParenting() { return fosterParenting; } public void setFosterParentingForTransclusions(boolean fosterParentingForTransclusions) { this.fosterParentingForTransclusions = fosterParentingForTransclusions; } @Override public boolean isFosterParentingForTransclusions() { return fosterParentingForTransclusions; } public void setPreserveSemiPreLeadingSpace(boolean preserveSemiPreLeadingSpace) { this.preserveSemiPreLeadingSpace = preserveSemiPreLeadingSpace; } @Override public boolean isPreserveSemiPreLeadingSpace() { return preserveSemiPreLeadingSpace; } // ==[ Language Conversion Tags ]=========================================== public void setLangConvTagsEnabled(boolean langConvTagsEnabled) { this.langConvTagsEnabled = langConvTagsEnabled; } @Override public boolean isLangConvTagsEnabled() { return langConvTagsEnabled; } @Override public boolean isLctFlag(String flag) { return lctFlagMap.containsKey(normalizeLctFlag(flag)); } @Override public String normalizeLctFlag(String flag) { flag = flag.trim().toUpperCase(); String normalized = lctFlagMap.get(flag); if (normalized == null) normalized = flag; return normalized; } public void addLctFlagMapping(String name, String normalized) { String old = lctFlagMap.get(name); if (old != null) throw new IllegalArgumentException("LCT flag mapping `" + name + "' already registered."); this.lctFlagMap.put(name, normalized); } @Override public boolean isLctVariant(String variant) { return lctVariantMap.containsKey(normalizeLctVariant(variant)); } @Override public String normalizeLctVariant(String variant) { variant = variant.trim().toUpperCase(); String normalized = lctVariantMap.get(variant); if (normalized == null) normalized = variant; return normalized; } public void addLctVariantMapping(String name, String normalized) { String old = lctVariantMap.get(name); if (old != null) throw new IllegalArgumentException("LCT variant mapping `" + name + "' already registered."); this.lctVariantMap.put(name, normalized); } // ========================================================================= private static final class XmlEntityMapEntry implements Comparable { @XmlAttribute private String name; @XmlAttribute private String value; private XmlEntityMapEntry() { } private XmlEntityMapEntry(String name, String value) { this.name = name; this.value = value; } @Override public int compareTo(XmlEntityMapEntry o) { return name.compareTo(o.name); } } @XmlElement(name = "entity") @XmlElementWrapper(name = "xmlEntities") private XmlEntityMapEntry[] getJaxbXmlEntities() { XmlEntityMapEntry[] array = new XmlEntityMapEntry[xmlEntities.size()]; int i = 0; for (Entry e : xmlEntities.entrySet()) array[i++] = new XmlEntityMapEntry(e.getKey(), e.getValue()); Arrays.sort(array); return array; } @SuppressWarnings("unused") private void setJaxbXmlEntities(XmlEntityMapEntry[] xmlEntities) { for (XmlEntityMapEntry e : xmlEntities) addXmlEntity(e.name, e.value); } // ========================================================================= @SuppressWarnings("unused") private static final class UrlProtocolEntry { @XmlAttribute private String name; public UrlProtocolEntry() { } public UrlProtocolEntry(String name) { this.name = name; } } @XmlElement(name = "protocol") @XmlElementWrapper(name = "allowedUrlProtocols") private UrlProtocolEntry[] getJaxbAllowedUrlProtocols() { UrlProtocolEntry[] array = new UrlProtocolEntry[allowedUrlProtocols.size()]; int i = 0; for (String protocol : allowedUrlProtocols) array[i++] = new UrlProtocolEntry(protocol); return array; } @SuppressWarnings("unused") private void setJaxbAllowedUrlProtocols(UrlProtocolEntry[] protocols) { for (UrlProtocolEntry protocol : protocols) addUrlProtocol(protocol.name); } // ========================================================================= private static final class LctFlagMapEntry implements Comparable { @XmlAttribute private String name; @XmlAttribute private String normalized; private LctFlagMapEntry() { } private LctFlagMapEntry(String name, String normalized) { this.name = name; this.normalized = normalized; } @Override public int compareTo(LctFlagMapEntry o) { return name.compareTo(o.name); } } @XmlElement(name = "lctFlag") @XmlElementWrapper(name = "lctFlagMappings") private LctFlagMapEntry[] getJaxbLctFlagMappings() { LctFlagMapEntry[] array = new LctFlagMapEntry[lctFlagMap.size()]; int i = 0; for (Entry e : lctFlagMap.entrySet()) array[i++] = new LctFlagMapEntry(e.getKey(), e.getValue()); Arrays.sort(array); return array; } @SuppressWarnings("unused") private void setJaxbLctFlagMappings(LctFlagMapEntry[] lctFlagMap) { for (LctFlagMapEntry e : lctFlagMap) addLctFlagMapping(e.name, e.normalized); } // ========================================================================= private static final class LctVariantMapEntry implements Comparable { @XmlAttribute private String name; @XmlAttribute private String normalized; private LctVariantMapEntry() { } private LctVariantMapEntry(String name, String normalized) { this.name = name; this.normalized = normalized; } @Override public int compareTo(LctVariantMapEntry o) { return name.compareTo(o.name); } } @XmlElement(name = "lctVariant") @XmlElementWrapper(name = "lctVariantMappings") private LctVariantMapEntry[] getJaxbLctVariantMappings() { LctVariantMapEntry[] array = new LctVariantMapEntry[lctVariantMap.size()]; int i = 0; for (Entry e : lctVariantMap.entrySet()) array[i++] = new LctVariantMapEntry(e.getKey(), e.getValue()); Arrays.sort(array); return array; } @SuppressWarnings("unused") private void setJaxbLctVariantMappings(LctVariantMapEntry[] lctVariantMap) { for (LctVariantMapEntry e : lctVariantMap) addLctVariantMapping(e.name, e.normalized); } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((allowedUrlProtocols == null) ? 0 : allowedUrlProtocols.hashCode()); result = prime * result + (autoCorrect ? 1231 : 1237); result = prime * result + (fosterParenting ? 1231 : 1237); result = prime * result + (fosterParentingForTransclusions ? 1231 : 1237); result = prime * result + (gatherRtData ? 1231 : 1237); result = prime * result + ((internalLinkPostfixPattern == null) ? 0 : internalLinkPostfixPattern.hashCode()); result = prime * result + ((internalLinkPrefixPattern == null) ? 0 : internalLinkPrefixPattern.hashCode()); result = prime * result + (langConvTagsEnabled ? 1231 : 1237); result = prime * result + ((lctFlagMap == null) ? 0 : lctFlagMap.hashCode()); result = prime * result + ((lctVariantMap == null) ? 0 : lctVariantMap.hashCode()); result = prime * result + ((minSeverity == null) ? 0 : minSeverity.hashCode()); result = prime * result + ((nonStandardElementBehavior == null) ? 0 : nonStandardElementBehavior.hashCode()); result = prime * result + (warningsEnabled ? 1231 : 1237); result = prime * result + ((xmlEntities == null) ? 0 : xmlEntities.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ParserConfigImpl other = (ParserConfigImpl) obj; if (allowedUrlProtocols == null) { if (other.allowedUrlProtocols != null) return false; } else if (!allowedUrlProtocols.equals(other.allowedUrlProtocols)) return false; if (autoCorrect != other.autoCorrect) return false; if (fosterParenting != other.fosterParenting) return false; if (fosterParentingForTransclusions != other.fosterParentingForTransclusions) return false; if (gatherRtData != other.gatherRtData) return false; if (internalLinkPostfixPattern == null) { if (other.internalLinkPostfixPattern != null) return false; } else if (!internalLinkPostfixPattern.equals(other.internalLinkPostfixPattern)) return false; if (internalLinkPrefixPattern == null) { if (other.internalLinkPrefixPattern != null) return false; } else if (!internalLinkPrefixPattern.equals(other.internalLinkPrefixPattern)) return false; if (langConvTagsEnabled != other.langConvTagsEnabled) return false; if (lctFlagMap == null) { if (other.lctFlagMap != null) return false; } else if (!lctFlagMap.equals(other.lctFlagMap)) return false; if (lctVariantMap == null) { if (other.lctVariantMap != null) return false; } else if (!lctVariantMap.equals(other.lctVariantMap)) return false; if (minSeverity != other.minSeverity) return false; if (nonStandardElementBehavior != other.nonStandardElementBehavior) return false; if (warningsEnabled != other.warningsEnabled) return false; if (xmlEntities == null) { if (other.xmlEntities != null) return false; } else if (!xmlEntities.equals(other.xmlEntities)) return false; return true; } } ParserFunctionGroup.java000066400000000000000000000073601335270560400465040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; import org.sweble.wikitext.engine.ParserFunctionBase; @XmlType(name = "pfnGroup") public class ParserFunctionGroup implements Serializable, Comparable { private static final long serialVersionUID = 1L; @XmlAttribute private String name; /** Just used to check for duplicates. */ private transient final HashSet pfnIds = new HashSet(); private final HashSet pfns = new HashSet(); // ========================================================================= public ParserFunctionGroup() { } public ParserFunctionGroup(String name) { this.name = name; } // ========================================================================= public String getName() { return name; } public Collection getParserFunctions() { return Collections.unmodifiableCollection(pfns); } public void addParserFunction(ParserFunctionBase pfn) { if (pfnIds.contains(pfn.getId())) throw new IllegalArgumentException("Parser function group already contains parser function with ID: " + pfn.getId()); this.pfnIds.add(pfn.getId()); this.pfns.add(pfn); } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((pfns == null) ? 0 : pfns.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof ParserFunctionGroup)) return false; ParserFunctionGroup other = (ParserFunctionGroup) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (pfns == null) { if (other.pfns != null) return false; } else if (!pfns.equals(other.pfns)) return false; return true; } // ========================================================================= @Override public String toString() { return "ParserFunctionGroup [name=" + name + ", pfns=" + pfns + "]"; } // ========================================================================= @Override public int compareTo(ParserFunctionGroup o) { return this.name.compareTo(o.getName()); } // ========================================================================= @XmlElement(name = "pfn") private ArrayList getPfns() { ArrayList sorted = new ArrayList(pfns); Collections.sort(sorted); return sorted; } @SuppressWarnings("unused") private void setPfns(ArrayList pfns) { for (ParserFunctionBase pfn : pfns) addParserFunction(pfn); } } TagExtensionGroup.java000066400000000000000000000075621335270560400461560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; import org.sweble.wikitext.engine.TagExtensionBase; @XmlType(name = "tagExtGroup") public class TagExtensionGroup implements Serializable, Comparable { private static final long serialVersionUID = 1L; @XmlAttribute private String name; /** Just used to check for duplicates. */ private transient final HashSet tagExtIds = new HashSet(); private final HashSet tagExtensions = new HashSet(); // ========================================================================= public TagExtensionGroup() { } public TagExtensionGroup(String name) { this.name = name; } // ========================================================================= public String getName() { return name; } public Collection getTagExtensions() { return Collections.unmodifiableCollection(tagExtensions); } public void addTagExtension(TagExtensionBase tagExt) { if (tagExtIds.contains(tagExt.getId())) throw new IllegalArgumentException("Tag extensions group already contains tag extensions with ID: " + tagExt.getId()); this.tagExtIds.add(tagExt.getId()); this.tagExtensions.add(tagExt); } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((tagExtensions == null) ? 0 : tagExtensions.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof TagExtensionGroup)) return false; TagExtensionGroup other = (TagExtensionGroup) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (tagExtensions == null) { if (other.tagExtensions != null) return false; } else if (!tagExtensions.equals(other.tagExtensions)) return false; return true; } // ========================================================================= @Override public String toString() { return "TagExtensionGroup [name=" + name + ", tagExtensions=" + tagExtensions + "]"; } // ========================================================================= @Override public int compareTo(TagExtensionGroup o) { return this.name.compareTo(o.getName()); } // ========================================================================= @XmlElement(name = "tagExt") private ArrayList getJaxbTagExtensions() { ArrayList sorted = new ArrayList(tagExtensions); Collections.sort(sorted); return sorted; } @SuppressWarnings("unused") private void setJaxbTagExtensions(ArrayList tagExts) { for (TagExtensionBase tagExt : tagExts) addTagExtension(tagExt); } } WikiConfig.java000066400000000000000000000073501335270560400445550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.util.Collection; import java.util.TimeZone; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.TagExtensionBase; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.parser.ParserConfig; public interface WikiConfig { // ==[ Parser Configuration ]=============================================== public ParserConfig getParserConfig(); // ==[ Engine Configuration ]=============================================== public EngineConfig getEngineConfig(); // ==[ AST creation/processing ]============================================ /** * Should return the same instance as getParserConfig().getNodeFactory(). */ public EngineNodeFactory getNodeFactory(); /** * Should return the same instance as getParserConfig().getAstTextUtils(). */ public EngineAstTextUtils getAstTextUtils(); // ==[ Namespaces ]========================================================= public Namespace getNamespace(String name); public Namespace getNamespace(int id); public Collection getNamespaces(); public Namespace getDefaultNamespace(); public Namespace getTemplateNamespace(); public Namespace getFileNamespace(); public Namespace getSubjectNamespaceFor(Namespace namespace); public Namespace getTalkNamespaceFor(Namespace namespace); // ==[ Known Wikis ]======================================================== public Interwiki getInterwiki(String prefix); public Collection getInterwikis(); // ==[ Internationalization ]=============================================== public I18nAlias getI18nAlias(String name); public Collection getI18nAliases(); // ==[ Tag extensions, parser functions and page switches ]================= /** * Returns parser functions and page switches. */ public Collection getParserFunctions(); /** * Cannot retrieve page switches. */ public ParserFunctionBase getParserFunction(String name); /** * Page switches are a special form of parser function. They are therefore * listed in getParserFunctions(). However, retrieval works only over * getPageSwitch(). */ public ParserFunctionBase getPageSwitch(String name); public Collection getTagExtensions(); public TagExtensionBase getTagExtension(String name); // ==[ Properties of the wiki instance ]==================================== /** * Name of this wiki. */ public String getSiteName(); /** * The equivalent of MediaWiki's $wgScript. */ public String getWikiUrl(); /** * The equivalent of MediaWiki's $wgArticlePath. */ public String getArticlePath(); public String getContentLanguage(); /** * Returns the interwiki prefix for the configured wiki instance or null if * this wiki itself does not have an interwiki prefix. */ public Object getInterwikiPrefix(); // ==[ Runtime information ]================================================ public WikiRuntimeInfo getRuntimeInfo(); public TimeZone getTimezone(); } WikiConfigImpl.java000066400000000000000000000656501335270560400454060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.TimeZone; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.PropertyException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventHandler; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.util.JAXBSource; import javax.xml.transform.Source; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.TagExtensionBase; import org.sweble.wikitext.engine.nodes.EngineNodeFactoryImpl; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.engine.utils.EngineAstTextUtilsImpl; import com.sun.xml.bind.marshaller.NamespacePrefixMapper; @XmlRootElement( name = "WikiConfig", namespace = "org.sweble.wikitext.engine") @XmlType(propOrder = { "siteName", "wikiUrl", "contentLang", "iwPrefix", "jaxbNamespaces", "jaxbInterwikis", "jaxbAliases", "jaxbPfnGroups", "jaxbTagExtGroups", "parserConfig", "engineConfig" }) @XmlAccessorType(XmlAccessType.NONE) public class WikiConfigImpl implements WikiConfig { private static final Logger logger = LoggerFactory.getLogger(WikiConfigImpl.class); @XmlElement() private final ParserConfigImpl parserConfig; @XmlElement() private final EngineConfigImpl engineConfig; // -- AST generation/processing -- private EngineNodeFactoryImpl nodeFactory; private EngineAstTextUtilsImpl textUtils; // -- General Information -- @XmlElement() private String siteName; @XmlElement() private String wikiUrl; @XmlElement() private String contentLang; @XmlElement() private String iwPrefix; // -- Aliases -- private final Map aliasesById = new HashMap(); /** Keys are lower-case for case-insensitive lookups. */ private transient final Map nameToAliasMap = new HashMap(); // -- Parser Functions -- private final Map pfnGroups = new HashMap(); private transient final Map parserFunctions = new HashMap(); private transient final Map aliasToPfnMap = new HashMap(); // -- Tag Extensions -- private final Map tagExtGroups = new HashMap(); private transient final Map tagExtensions = new HashMap(); // -- Interwikis -- private final Map prefixToInterwikiMap = new HashMap(); // -- Namespaces -- private final Map namespaceById = new HashMap(); /** Keys are lower-case for case-insensitive lookups. */ private transient final Map namespaceByName = new HashMap(); private NamespaceImpl templateNamespace; private NamespaceImpl defaultNamespace; // -- Runtime information -- private WikiRuntimeInfo runtimeInfo; // -- Switches -- @XmlAttribute(required = false) private boolean tagExtensionNamesCaseSensitive = true; private final Map tagExtensionLookup = new HashMap(); // ========================================================================= public WikiConfigImpl() { this.parserConfig = new ParserConfigImpl(this); this.nodeFactory = new EngineNodeFactoryImpl(this.parserConfig); this.textUtils = new EngineAstTextUtilsImpl(this.parserConfig); this.runtimeInfo = new WikiRuntimeInfoImpl(this); this.engineConfig = new EngineConfigImpl(); } // ==[ Parser Configuration ]=============================================== @Override public ParserConfigImpl getParserConfig() { return parserConfig; } // ==[ Engine Configuration ]=============================================== public EngineConfigImpl getEngineConfig() { return engineConfig; } // ==[ AST creation/processing ]============================================ public EngineNodeFactoryImpl getNodeFactory() { return nodeFactory; } @Override public EngineAstTextUtils getAstTextUtils() { return textUtils; } // ==[ Switches ]=========================================================== public boolean isTagExtensionNamesCaseSensitive() { return tagExtensionNamesCaseSensitive; } public void setTagExtensionNamesCaseSensitive(boolean tagExtensionNamesCaseSensitive) { if (this.tagExtensionNamesCaseSensitive == tagExtensionNamesCaseSensitive) return; this.tagExtensionNamesCaseSensitive = tagExtensionNamesCaseSensitive; for (Entry tagExt : tagExtensions.entrySet()) { String key = tagExtensionNamesCaseSensitive ? tagExt.getKey() : tagExt.getKey().toLowerCase(); tagExtensionLookup.put( key, tagExt.getValue()); } } // ==[ Namespaces ]========================================================= public void addNamespace(NamespaceImpl ns) { NamespaceImpl old = namespaceById.get(ns.getId()); if (old == ns) throw new IllegalArgumentException("The namespace with id `" + ns.getId() + "' is already registered."); if (old != null) throw new IllegalArgumentException("A namespace with the same id `" + ns.getId() + "' is already registered."); ArrayList names = new ArrayList(ns.getAliases().size() + 2); for (String name : ns.getAliases()) names.add(name.toLowerCase()); names.add(ns.getName().toLowerCase()); names.add(ns.getCanonical().toLowerCase()); for (String name : names) { old = namespaceByName.get(name); // old == ns would have been caught by the id search above if (old != null) throw new IllegalArgumentException("Another namespace already registered the name `" + name + "'."); } namespaceById.put(ns.getId(), ns); for (String name : names) namespaceByName.put(name, ns); } public void setDefaultNamespace(NamespaceImpl defaultNamespace) { if (this.namespaceById.get(defaultNamespace.getId()) != defaultNamespace) throw new IllegalArgumentException("Given namespace unknown in this configuration"); this.defaultNamespace = defaultNamespace; } public void setTemplateNamespace(NamespaceImpl templateNamespace) { if (this.namespaceById.get(templateNamespace.getId()) != templateNamespace) throw new IllegalArgumentException("Given namespace unknown in this configuration"); this.templateNamespace = templateNamespace; } @Override public NamespaceImpl getNamespace(String name) { return namespaceByName.get(name.toLowerCase()); } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public Collection getNamespaces() { return (Collection) Collections.unmodifiableCollection(namespaceById.values()); } @Override public NamespaceImpl getNamespace(int id) { return namespaceById.get(id); } @Override public NamespaceImpl getDefaultNamespace() { return defaultNamespace; } @Override public NamespaceImpl getTemplateNamespace() { return templateNamespace; } @Override public Namespace getFileNamespace() { return getNamespace("File"); } @Override public Namespace getSubjectNamespaceFor(Namespace namespace) { if (namespace.isSubjectNamespace()) return namespace; return getNamespace(namespace.getSubjectspaceId()); } @Override public Namespace getTalkNamespaceFor(Namespace namespace) { if (namespace.isTalkNamespace()) return namespace; return getNamespace(namespace.getTalkspaceId()); } // ==[ Known Wikis ]======================================================== public void addInterwiki(InterwikiImpl iw) { InterwikiImpl old = prefixToInterwikiMap.get(iw.getPrefix()); if (old == iw) throw new IllegalArgumentException("The wiki with interwiki prefix `" + iw.getPrefix() + "' is already registered."); if (old != null) throw new IllegalArgumentException("A wiki with the same interwiki prefix `" + iw.getPrefix() + "' is already registered."); prefixToInterwikiMap.put(iw.getPrefix(), iw); } @Override public InterwikiImpl getInterwiki(String prefix) { return prefixToInterwikiMap.get(prefix); } @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Collection getInterwikis() { return (Collection) Collections.unmodifiableCollection(prefixToInterwikiMap.values()); } // ==[ Internationalization ]=============================================== /** * Aliases apply to the following things: *
    *
  • Page switches, e.g. {@code __NOTOC__}. They can be queried using * getPageSwitch(). The full name (e.g. " {@code __NOTOC__}") has to be * specified as alias when specifying an alias as well as when querying the * page switch in the expansion process.
  • *
  • Parser functions, e.g. {@code lc:}. They can be queried using * getParserFunction(). The full name plus the colon (e.g. " {@code lc:}") * has to be specified as alias when specifying an alias as well as when * querying the parser function in the expansion process. A parser function * that can also be called without arguments is treated as magic word * instead (e.g. {@code NAMESPACE} instead of {@code NAMESPACE:})!
  • *
  • Magic words, e.g. {@code CURRENTDAY}. They can be queried using * getParserFunction(). The full name (e.g. " {@code CURRENTDAY}") has to be * specified as alias when specifying an alias as well as when querying the * magic word in the expansion process.
  • *
  • Redirect keyword
  • *
*/ public void addI18nAlias(I18nAliasImpl alias) { I18nAliasImpl old = aliasesById.get(alias.getId()); if (old == alias || (old != null && old.equals(alias))) throw new IllegalArgumentException("This alias is already registered: " + alias.getId()); if (old != null) throw new IllegalArgumentException("An alias with the same id `" + alias.getId() + "' is already registered."); for (String a : alias.getAliases()) { String lcAlias = a.toLowerCase(); I18nAliasImpl old2 = nameToAliasMap.get(lcAlias); if (old2 == alias) { throw new IllegalArgumentException("This alias (`" + alias.getId() + "') registers the name `" + a + "' twice."); } else if (old2 != null) { logger.warn("The name {} has been already registered to an id, so it cannot be registered to {}", lcAlias, alias.getId()); continue; } else { nameToAliasMap.put(lcAlias, alias); } } aliasesById.put(alias.getId(), alias); } @Override public I18nAliasImpl getI18nAlias(String name) { if (name == null) throw new NullPointerException(); I18nAliasImpl alias = nameToAliasMap.get(name.toLowerCase()); if (alias != null && alias.isCaseSensitive() && !alias.getAliases().contains(name)) alias = null; return alias; } public I18nAliasImpl getI18nAliasById(String id) { return aliasesById.get(id); } @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Collection getI18nAliases() { return (Collection) Collections.unmodifiableCollection(aliasesById.values()); } // ==[ Tag extensions, parser functions and page switches ]================= public void addParserFunctionGroup(ParserFunctionGroup pfnGroup) { ParserFunctionGroup old = pfnGroups.get(pfnGroup.getName()); if (old == pfnGroup) throw new IllegalArgumentException("The parser function group `" + pfnGroup.getName() + "' is already registered."); if (old != null) throw new IllegalArgumentException("A parser function group with the same name `" + pfnGroup.getName() + "' is already registered."); for (ParserFunctionBase pfn : pfnGroup.getParserFunctions()) addParserFunction(pfn); this.pfnGroups.put(pfnGroup.getName(), pfnGroup); } protected void addParserFunction(ParserFunctionBase pfn) { ParserFunctionBase old = parserFunctions.get(pfn.getId()); if (old == pfn) throw new IllegalArgumentException("The parser function `" + pfn.getId() + "' is already registered."); if (old != null) throw new IllegalArgumentException("A parser function with the same id `" + pfn.getId() + "' is already registered."); parserFunctions.put(pfn.getId(), pfn); I18nAliasImpl alias = aliasesById.get(pfn.getId()); if (alias == null) throw new IllegalArgumentException("No alias registered for parser function `" + pfn.getId() + "'."); if (aliasToPfnMap.put(alias, pfn) != null) throw new AssertionError("Alias collision should not be possible..."); } @Override public Collection getParserFunctions() { return Collections.unmodifiableCollection(parserFunctions.values()); } @Override public ParserFunctionBase getParserFunction(String name) { I18nAliasImpl alias = getI18nAlias(name); if (alias == null) return null; ParserFunctionBase pfn = aliasToPfnMap.get(alias); if (pfn != null && pfn.isPageSwitch()) return null; return pfn; } @Override public ParserFunctionBase getPageSwitch(String name) { I18nAliasImpl alias = getI18nAlias(name); if (alias == null) return null; ParserFunctionBase pfn = aliasToPfnMap.get(alias); if (pfn != null && !pfn.isPageSwitch()) return null; return pfn; } // -------- public void addTagExtensionGroup(TagExtensionGroup tagExtGroup) { TagExtensionGroup old = tagExtGroups.get(tagExtGroup.getName()); if (old == tagExtGroup) throw new IllegalArgumentException("The tag extension group `" + tagExtGroup.getName() + "' is already registered."); if (old != null) throw new IllegalArgumentException("A tag extension group with the same name `" + tagExtGroup.getName() + "' is already registered."); for (TagExtensionBase tagExt : tagExtGroup.getTagExtensions()) addTagExtension(tagExt); this.tagExtGroups.put(tagExtGroup.getName(), tagExtGroup); } protected void addTagExtension(TagExtensionBase tagExt) { TagExtensionBase old = tagExtensions.get(tagExt.getId()); if (old == tagExt) throw new IllegalArgumentException( "The tag extension `" + tagExt.getId() + "' is already registered."); if (old != null) throw new IllegalArgumentException( "A tag extension with the same id `" + tagExt.getId() + "' is already registered."); tagExtensions.put(tagExt.getId(), tagExt); String lookupName = tagExtensionNamesCaseSensitive ? tagExt.getId() : tagExt.getId().toLowerCase(); tagExtensionLookup.put(lookupName, tagExt); } @Override public Collection getTagExtensions() { return Collections.unmodifiableCollection(tagExtensions.values()); } @Override public TagExtensionBase getTagExtension(String name) { String lookupName = tagExtensionNamesCaseSensitive ? name : name.toLowerCase(); return tagExtensionLookup.get(lookupName); } // ==[ Properties of the wiki instance ]==================================== public void setSiteName(String siteName) { this.siteName = siteName; } @Override public String getSiteName() { return this.siteName; } public void setWikiUrl(String wikiUrl) { this.wikiUrl = wikiUrl; } @Override public String getWikiUrl() { return this.wikiUrl; } @Override public String getArticlePath() { return getWikiUrl() + "?title=$1"; } public void setContentLang(String contentLang) { this.contentLang = contentLang; } @Override public String getContentLanguage() { return contentLang; } public void setIwPrefix(String iwPrefix) { this.iwPrefix = iwPrefix; } @Override public String getInterwikiPrefix() { return iwPrefix; } @Override public TimeZone getTimezone() { // TODO: Make variable and save to / read from XML return TimeZone.getDefault(); } // ==[ Runtime information ]================================================ @Override public WikiRuntimeInfo getRuntimeInfo() { return runtimeInfo; } public void setRuntimeInfo(WikiRuntimeInfo runtimeInfo) { this.runtimeInfo = runtimeInfo; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((aliasesById == null) ? 0 : aliasesById.hashCode()); result = prime * result + ((contentLang == null) ? 0 : contentLang.hashCode()); result = prime * result + ((defaultNamespace == null) ? 0 : defaultNamespace.hashCode()); result = prime * result + ((engineConfig == null) ? 0 : engineConfig.hashCode()); result = prime * result + ((iwPrefix == null) ? 0 : iwPrefix.hashCode()); result = prime * result + ((namespaceById == null) ? 0 : namespaceById.hashCode()); result = prime * result + ((parserConfig == null) ? 0 : parserConfig.hashCode()); result = prime * result + ((pfnGroups == null) ? 0 : pfnGroups.hashCode()); result = prime * result + ((prefixToInterwikiMap == null) ? 0 : prefixToInterwikiMap.hashCode()); result = prime * result + ((tagExtGroups == null) ? 0 : tagExtGroups.hashCode()); result = prime * result + (tagExtensionNamesCaseSensitive ? 1231 : 1237); result = prime * result + ((templateNamespace == null) ? 0 : templateNamespace.hashCode()); result = prime * result + ((wikiUrl == null) ? 0 : wikiUrl.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; WikiConfigImpl other = (WikiConfigImpl) obj; if (aliasesById == null) { if (other.aliasesById != null) return false; } else if (!aliasesById.equals(other.aliasesById)) return false; if (contentLang == null) { if (other.contentLang != null) return false; } else if (!contentLang.equals(other.contentLang)) return false; if (defaultNamespace == null) { if (other.defaultNamespace != null) return false; } else if (!defaultNamespace.equals(other.defaultNamespace)) return false; if (engineConfig == null) { if (other.engineConfig != null) return false; } else if (!engineConfig.equals(other.engineConfig)) return false; if (iwPrefix == null) { if (other.iwPrefix != null) return false; } else if (!iwPrefix.equals(other.iwPrefix)) return false; if (namespaceById == null) { if (other.namespaceById != null) return false; } else if (!namespaceById.equals(other.namespaceById)) return false; if (parserConfig == null) { if (other.parserConfig != null) return false; } else if (!parserConfig.equals(other.parserConfig)) return false; if (pfnGroups == null) { if (other.pfnGroups != null) return false; } else if (!pfnGroups.equals(other.pfnGroups)) return false; if (prefixToInterwikiMap == null) { if (other.prefixToInterwikiMap != null) return false; } else if (!prefixToInterwikiMap.equals(other.prefixToInterwikiMap)) return false; if (tagExtGroups == null) { if (other.tagExtGroups != null) return false; } else if (!tagExtGroups.equals(other.tagExtGroups)) return false; if (tagExtensionNamesCaseSensitive != other.tagExtensionNamesCaseSensitive) return false; if (templateNamespace == null) { if (other.templateNamespace != null) return false; } else if (!templateNamespace.equals(other.templateNamespace)) return false; if (wikiUrl == null) { if (other.wikiUrl != null) return false; } else if (!wikiUrl.equals(other.wikiUrl)) return false; return true; } // ========================================================================= public void save(File file) throws JAXBException { createMarshaller().marshal(this, file); } public void save(Writer writer) throws JAXBException { createMarshaller().marshal(this, writer); } public void save(OutputStream out) throws JAXBException { createMarshaller().marshal(this, out); } public JAXBSource getAsJAXBSource() throws JAXBException { return new JAXBSource(createMarshaller(), this); } private Marshaller createMarshaller() throws JAXBException { JAXBContext context = JAXBContext.newInstance(WikiConfigImpl.class); Marshaller m = context.createMarshaller(); m.setEventHandler(new ValidationEventHandler() { @Override public boolean handleEvent(ValidationEvent event) { System.err.println(event); return true; } }); try { m.setProperty( "com.sun.xml.bind.namespacePrefixMapper", new NamespaceMapper()); m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); } catch (PropertyException e) { } return m; } public static WikiConfigImpl load(File file) throws JAXBException { return finishImport((WikiConfigImpl) createUnmarshaller().unmarshal(file)); } public static WikiConfigImpl load(Reader reader) throws JAXBException { return finishImport((WikiConfigImpl) createUnmarshaller().unmarshal(reader)); } public static WikiConfigImpl load(InputStream in) throws JAXBException { return finishImport((WikiConfigImpl) createUnmarshaller().unmarshal(in)); } public static WikiConfigImpl load(Source in) throws JAXBException { return finishImport((WikiConfigImpl) createUnmarshaller().unmarshal(in)); } private static WikiConfigImpl finishImport(WikiConfigImpl config) { for (ParserFunctionBase pf : config.getParserFunctions()) pf.setWikiConfig(config); for (TagExtensionBase te : config.getTagExtensions()) te.setWikiConfig(config); config.parserConfig.setWikiConfig(config); config.nodeFactory = new EngineNodeFactoryImpl(config.parserConfig); config.setTagExtensionNamesCaseSensitive(config.tagExtensionNamesCaseSensitive); return config; } private static Unmarshaller createUnmarshaller() throws JAXBException { JAXBContext context = JAXBContext.newInstance(WikiConfigImpl.class); Unmarshaller m = context.createUnmarshaller(); m.setEventHandler(new ValidationEventHandler() { @Override public boolean handleEvent(ValidationEvent event) { // We don't want to recover! return false; } }); return m; } // ========================================================================= private static final class NamespaceMapper extends NamespacePrefixMapper { private static final String SWC_ENGINE_PREFIX = "swc-engine"; private static final String SWC_ENGINE_URI = "org.sweble.wikitext.engine"; @Override public String getPreferredPrefix( String namespaceUri, String suggestion, boolean requirePrefix) { if (SWC_ENGINE_URI.equals(namespaceUri)) return SWC_ENGINE_PREFIX; else return suggestion; } @Override public String[] getPreDeclaredNamespaceUris() { return new String[] { SWC_ENGINE_URI, }; } } // ========================================================================= @XmlElement(name = "i18nAlias") @XmlElementWrapper(name = "i18nAliases") private I18nAliasImpl[] getJaxbAliases() { I18nAliasImpl[] jaxbAliases = this.aliasesById.values().toArray( new I18nAliasImpl[this.aliasesById.size()]); Arrays.sort(jaxbAliases); return jaxbAliases; } @SuppressWarnings("unused") private void setJaxbAliases(I18nAliasImpl[] aliases) { for (I18nAliasImpl alias : aliases) addI18nAlias(alias); } // ========================================================================= @XmlElement(name = "pfnGroup") @XmlElementWrapper(name = "pfnGroups") private ParserFunctionGroup[] getJaxbPfnGroups() { ParserFunctionGroup[] jaxbPfnGroups = this.pfnGroups.values().toArray( new ParserFunctionGroup[this.pfnGroups.size()]); Arrays.sort(jaxbPfnGroups); return jaxbPfnGroups; } @SuppressWarnings("unused") private void setJaxbPfnGroups(ParserFunctionGroup[] pfnGroups) { for (ParserFunctionGroup pfnGroup : pfnGroups) addParserFunctionGroup(pfnGroup); } // ========================================================================= @XmlElement(name = "tagExtGroup") @XmlElementWrapper(name = "tagExtGroups") private TagExtensionGroup[] getJaxbTagExtGroups() { TagExtensionGroup[] jaxbTagExtGroups = this.tagExtGroups.values().toArray( new TagExtensionGroup[this.tagExtGroups.size()]); Arrays.sort(jaxbTagExtGroups); return jaxbTagExtGroups; } @SuppressWarnings("unused") private void setJaxbTagExtGroups(TagExtensionGroup[] tagExtGroups) { for (TagExtensionGroup tagExtGroup : tagExtGroups) addTagExtensionGroup(tagExtGroup); } // ========================================================================= @XmlElement(name = "interwiki") @XmlElementWrapper(name = "interwikis") private InterwikiImpl[] getJaxbInterwikis() { InterwikiImpl[] jaxbInterwikis = this.prefixToInterwikiMap.values().toArray( new InterwikiImpl[this.prefixToInterwikiMap.size()]); Arrays.sort(jaxbInterwikis); return jaxbInterwikis; } @SuppressWarnings("unused") private void setJaxbInterwikis(InterwikiImpl[] interwikis) { for (InterwikiImpl iw : interwikis) addInterwiki(iw); } // ========================================================================= private static final class Namespaces { @XmlElement(name = "namespace") private NamespaceImpl[] namespaces; @XmlAttribute private int defaultNsId; @XmlAttribute private int templateNsId; @SuppressWarnings("unused") public Namespaces() { } public Namespaces(NamespaceImpl[] namespaces, int defId, int tmplId) { Arrays.sort(namespaces); this.namespaces = namespaces; this.defaultNsId = defId; this.templateNsId = tmplId; } } @XmlElement(name = "namespaces") private Namespaces getJaxbNamespaces() { return new Namespaces( this.namespaceById.values().toArray( new NamespaceImpl[this.namespaceById.size()]), defaultNamespace.getId(), templateNamespace.getId()); } @SuppressWarnings("unused") private void setJaxbNamespaces(Namespaces namespaces) { for (NamespaceImpl ns : namespaces.namespaces) addNamespace(ns); setDefaultNamespace(getNamespace(namespaces.defaultNsId)); setTemplateNamespace(getNamespace(namespaces.templateNsId)); } } WikiConfigurationException.java000066400000000000000000000021011335270560400500230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; public class WikiConfigurationException extends RuntimeException { private static final long serialVersionUID = 1L; public WikiConfigurationException(String message, Throwable cause) { super(message, cause); } public WikiConfigurationException(String message) { super(message); } public WikiConfigurationException(Throwable cause) { super(cause); } } WikiRuntimeInfo.java000066400000000000000000000015651335270560400456110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.util.Calendar; import java.util.Locale; public interface WikiRuntimeInfo { public Calendar getDateAndTime(); public Calendar getDateAndTime(Locale locale); } WikiRuntimeInfoImpl.java000066400000000000000000000027661335270560400464370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Locale; public class WikiRuntimeInfoImpl implements WikiRuntimeInfo { private final WikiConfigImpl wikiConfigImpl; // ========================================================================= public WikiRuntimeInfoImpl(WikiConfigImpl wikiConfigImpl) { this.wikiConfigImpl = wikiConfigImpl; } // ========================================================================= @Override public Calendar getDateAndTime() { Calendar timestamp = new GregorianCalendar(wikiConfigImpl.getTimezone()); timestamp.setLenient(true); return timestamp; } @Override public Calendar getDateAndTime(Locale locale) { Calendar timestamp = new GregorianCalendar(locale); timestamp.setLenient(true); return timestamp; } } ext/000077500000000000000000000000001335270560400412075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/enginebuiltin/000077500000000000000000000000001335270560400426555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/extBuiltInParserFunctions.java000066400000000000000000000055001335270560400501340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/builtin/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.builtin; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; public class BuiltInParserFunctions extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected BuiltInParserFunctions(WikiConfig wikiConfig) { super("Built-in Parser Functions"); addParserFunction(new ParserFunctionSafeSubst(wikiConfig)); } public static BuiltInParserFunctions group(WikiConfig wikiConfig) { return new BuiltInParserFunctions(wikiConfig); } // ========================================================================= // == // == {{safesubst}} // == // ========================================================================= public static final class ParserFunctionSafeSubst extends ParserFunctionBase { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionSafeSubst() { super(PfnArgumentMode.TEMPLATE_ARGUMENTS, "safesubst"); } public ParserFunctionSafeSubst(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.TEMPLATE_ARGUMENTS, "safesubst"); } @Override public WtNode invoke( WtNode template, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 0) return null; // Assuming we are NOT doing a pre save transformation WtNodeList name = nf().toList(((WtTemplateArgument) args.get(0)).getValue()); WtNodeList tmplArgs = nf().list(args.subList(1, args.size())); WtTemplate tmpl = nf().tmpl( nf().name(name), nf().tmplArgs(tmplArgs)); tmpl.setRtd(template.getRtd()); return preprocessorFrame.expand(tmpl); } } } BuiltInTagExtensions.java000066400000000000000000000064641335270560400476140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/builtin/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.builtin; import java.util.Map; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.TagExtensionBase; import org.sweble.wikitext.engine.config.TagExtensionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtXmlElement; public class BuiltInTagExtensions extends TagExtensionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected BuiltInTagExtensions(WikiConfig wikiConfig) { super("Built-in Tag Extensions"); addTagExtension(new TagExtensionPre(wikiConfig)); addTagExtension(new TagExtensionNowiki(wikiConfig)); } public static BuiltInTagExtensions group(WikiConfig wikiConfig) { return new BuiltInTagExtensions(wikiConfig); } // ========================================================================= // == // ==
	// ==
	// =========================================================================

	public static final class TagExtensionPre
			extends
				TagExtensionBase
	{
		private static final long serialVersionUID = 1L;

		/**
		 * For un-marshaling only.
		 */
		public TagExtensionPre()
		{
			super("pre");
		}

		public TagExtensionPre(WikiConfig wikiConfig)
		{
			super(wikiConfig, "pre");
		}

		@Override
		public WtNode invoke(
				ExpansionFrame frame,
				WtTagExtension tagExt,
				Map attrs,
				WtTagExtensionBody body)
		{
			WtXmlElement pre = nf().elem(
					"pre",
					tagExt.getXmlAttributes(),
					nf().body(nf().list(nf().text(body.getContent()))));
			pre.setRtd(tagExt.getRtd());
			return pre;
		}
	}

	// =========================================================================
	// ==
	// == 
	// ==
	// =========================================================================

	public static final class TagExtensionNowiki
			extends
				TagExtensionBase
	{
		private static final long serialVersionUID = 1L;

		/**
		 * For un-marshaling only.
		 */
		public TagExtensionNowiki()
		{
			super("nowiki");
		}

		public TagExtensionNowiki(WikiConfig wikiConfig)
		{
			super(wikiConfig, "nowiki");
		}

		@Override
		public WtNode invoke(
				ExpansionFrame frame,
				WtTagExtension tagExt,
				Map attrs,
				WtTagExtensionBody body)
		{
			return EngineRtData.set(nf().nowiki(body.getContent()));
		}
	}
}
convert/000077500000000000000000000000001335270560400426675ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/extConvert.java000066400000000000000000000326671335270560400451700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/convert/**
 * Copyright 2011 The Open Source Research Group,
 *                University of Erlangen-Nürnberg
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.sweble.wikitext.engine.ext.convert;

import de.fau.cs.osr.utils.StringTools;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.sweble.wikitext.engine.ExpansionFrame;
import org.sweble.wikitext.engine.ParserFunctionBase;
import org.sweble.wikitext.engine.config.WikiConfig;
import org.sweble.wikitext.engine.nodes.EngSoftErrorNode;
import org.sweble.wikitext.engine.nodes.EngineRtData;
import org.sweble.wikitext.parser.nodes.WtNode;
import org.sweble.wikitext.parser.utils.StringConversionException;

/**
 * Template which converts a measurement unit into another. (e.g.
 * {{convert|1|m}} -> "1 metre (3 ft 3 in)")
 *
 * @see https://en.wikipedia.org/wiki/Template:Convert/doc
 * @see https://en.wikipedia.org/wiki/Help:Convert
 */
public class Convert
		extends
		ParserFunctionBase
{
	private static int MIN_ARGS = 2;
	private static int DEFAULT_SIG_FIG = 2;
	private int sigFig = DEFAULT_SIG_FIG; // significant figures

	/**
	 * The different abbreviation modes:
	 *
	 * 
	 * "out" (def): 2 metres (6 ft 7 in)
	 * "on"       : 2 m (6 ft 7 in)
	 * "unit"     : 2 m (6 ft 7 in)
	 * "in"       : 2 m (6 feet 7 inches)
	 * "none"     : 2 metres (6 feet 7 inches)
	 * "off"      : 2 metres (6 feet 7 inches)
	 * "values"   : 2 (6 ft 7 in)
	 * "~"        : 2 metres [m] (6 ft 7 in)
	 * 
*/ static enum AbbreviationMode {OUT, ON, UNIT, IN, NONE, OFF, VALUES, TILDE}; private AbbreviationMode abbrMode = AbbreviationMode.OUT; private boolean isUsNameUsed = false; public Convert() { super("convert"); } public Convert(WikiConfig wikiConfig) { super(wikiConfig, "convert"); } @Override public WtNode invoke( WtNode pnf, ExpansionFrame frame, List args) { sigFig = DEFAULT_SIG_FIG; isUsNameUsed = false; abbrMode = AbbreviationMode.OUT; ArrayList strArgs; double value; try { strArgs = parseArguments(frame, args); value = NumberFormater.parseNumber(strArgs.get(0)); } catch (Exception ex) { return error(ex.getMessage()); } Units srcUnit = Units.searchUnitFromName(strArgs.get(1)); if (srcUnit == null) { return error("Cannot convert source unit argument!"); } // Caution: Wikipedia uses '−' (\u2212) as minus sign! String srcValueStr = strArgs.get(0).replaceAll("-", "−"); if (strArgs.size() == MIN_ARGS) { String dest = convertToDefaultUnit(value, srcUnit, abbrMode, sigFig, isUsNameUsed); String srcUnitName = getSourceUnitName( srcUnit, abbrMode, !(Math.abs(value) == 1d), isUsNameUsed); if (srcUnitName == null) { return error("Cannot determinate output format!"); } String result = srcValueStr + " " + srcUnitName + "(" + dest + ")"; return nf().text(result); } Units destUnit = Units.searchUnitFromName(strArgs.get(2)); if (destUnit == null) { return error("Cannot convert destination unit argument!"); } if (!Units.isSameUnitType(srcUnit, destUnit)) { return error("Cannot convert units with different types!"); } double convertedValue = srcUnit.getScale() * value / destUnit.getScale(); String srcUnitName = getSourceUnitName(srcUnit, abbrMode, !(Math.abs(value) == 1d), isUsNameUsed); if (srcUnitName == null) { return error("Cannot determinate output format!"); } String destUnitName = getDestUnitName(destUnit, abbrMode, !(Math.abs(convertedValue) == 1d), isUsNameUsed); String result = srcValueStr + " " + srcUnitName + "(" + NumberFormater.formatNumberDefault(convertedValue, sigFig) + destUnitName + ")"; return nf().text(result); } private String expandArgToString( ExpansionFrame preprocessorFrame, List args, final int index) { WtNode arg = preprocessorFrame.expand(args.get(index)); tu().trim(arg); String format = null; try { format = tu().astToText(arg).trim(); } catch (StringConversionException e1) { } return format; } private EngSoftErrorNode error(final String msg) { return EngineRtData.set(nf().softError( EngineRtData.set(nf().nowiki(StringTools.escHtml(msg))))); } /** * Parses the given arguments into a String list and also resolves some * formating parameters. * * @param frame * @param args * @throws IllegalArgumentException */ private ArrayList parseArguments( final ExpansionFrame frame, final List args) throws IllegalArgumentException { if (args.size() < MIN_ARGS) { throw new IllegalArgumentException("Too few arguments!"); } ArrayList strArgs = new ArrayList(args.size()); for (int i = 0; i < args.size(); i++) { String tmpStr = expandArgToString(frame, args, i); if (tmpStr == null) { throw new IllegalArgumentException("Cannot convert argument to string!"); } strArgs.add(tmpStr); } if (!NumberFormater.isNumberValid(strArgs.get(0))) { throw new IllegalArgumentException("The first argument is not a vaild number!"); } ArrayList cleanArgs = new ArrayList(strArgs.size()); cleanArgs.add(strArgs.get(0)); for (int i = 1; i < strArgs.size(); i++) { final String arg = strArgs.get(i); if (arg.contains("=")) { final String[] spl = arg.split("="); final String opt = StringUtils.trim(spl[0]); final String param = StringUtils.trim(spl[1]); if (opt.equals("abbr")) { if (param.equals("in")) { abbrMode = AbbreviationMode.IN; } else if (param.equals("off") || param.equals("none")) { abbrMode = AbbreviationMode.OFF; // same as "none" } else if (param.equals("on")) { abbrMode = AbbreviationMode.ON; } else if (param.equals("out")) { abbrMode = AbbreviationMode.OUT; } else if (param.equals("unit")) { abbrMode = AbbreviationMode.UNIT; } else if (param.equals("values")) { abbrMode = AbbreviationMode.VALUES; } else if (param.equals("~")) { abbrMode = AbbreviationMode.TILDE; } else { throw new IllegalArgumentException("Invalid abbreviation parameter!"); } } else if (opt.equals("sigfig")) { sigFig = Integer.parseInt(param); if (sigFig <= 0) { throw new IllegalArgumentException("\"sigfig=\" needs a positive integer!"); } } else if (opt.equals("sp")) { isUsNameUsed = param.equals("us"); } else { throw new IllegalArgumentException("Unknow argument!"); } } else { // TODO: do something useful with the value of significant digits. // int sigDig; // try { // sigDig = Integer.parseInt(arg); // } catch (NumberFormatException ex) { // // not a proper number, so ignore it and go on // continue; // } // TODO: search for other options cleanArgs.add(arg); } } return cleanArgs; } /** * Converts the given source unit value to its default destination unit. * This is necessary when no target unit was given via arguments. * * @param value The value to convert. * @param srcUnit The unit type of the given value. * @param abbreviationMode Determines the way to describe the unit (symbol * or name). * @param sigFig The count of significant figures to round. * @param isUsNameUsed * @return The converted and default formated number as String including the * unit descriptor (symbol or name), or null on error. * @see convertBaseTo() */ protected static String convertToDefaultUnit( double value, Units srcUnit, AbbreviationMode abbreviationMode, int sigFig, boolean isUsNameUsed) { assert (srcUnit != null); final double siBasedValue = srcUnit.getScale() * (value - srcUnit.getOffset()); final DefCvt defCvt = srcUnit.getDefaultCvt(); final String[] cvtUnits = defCvt.getUnits(); final Units destUnitA = Units.searchUnitFromName(cvtUnits[0]); if (destUnitA == null) { return null; } if (cvtUnits.length <= 1) { return convertBaseTo(siBasedValue, destUnitA, abbreviationMode, sigFig, isUsNameUsed); } else { if (defCvt.isMixedNotation()) { int limit = defCvt.getMixedNotationLimit(); if (value >= limit) { return convertBaseTo(siBasedValue, destUnitA, abbreviationMode, sigFig, isUsNameUsed); } else { Units majorUnit = destUnitA; Units minorUnit = Units.searchUnitFromName(cvtUnits[1]); if (minorUnit == null) { return null; } double convertedVal = srcUnit.getScale() * value / minorUnit.getScale(); double transitScale = majorUnit.getScale() / minorUnit.getScale(); double convertedMinorVal = convertedVal % transitScale; double convertedMajorVal = (convertedVal - convertedMinorVal) / transitScale; String majorUnitName; String minorUnitName; switch (abbreviationMode) { case OUT: case ON: case UNIT: case VALUES: case TILDE: majorUnitName = majorUnit.getSymbol(); minorUnitName = minorUnit.getSymbol(); break; case IN: case NONE: case OFF: if (value == 1d) { majorUnitName = majorUnit.getName(); minorUnitName = minorUnit.getName(); } else { majorUnitName = majorUnit.getPluralName(); minorUnitName = minorUnit.getPluralName(); } break; default: return null; } return NumberFormater.formatRegular(convertedMajorVal) + " " + majorUnitName + " " + NumberFormater.formatRegular(convertedMinorVal) + " " + minorUnitName; } } else { Units destUnitB = Units.searchUnitFromName(cvtUnits[1]); if (destUnitB == null) { return null; } return convertBaseTo(siBasedValue, destUnitA, abbreviationMode, sigFig, isUsNameUsed) + "; " + convertBaseTo(siBasedValue, destUnitB, abbreviationMode, sigFig, isUsNameUsed); } } } /** * Converts a SI base value to the given destination unit and returns the * default formated Number with unit descriptor. * * @param siBaseValue The value given in a SI base unit. * @param destUnit The unit the value gets converted to. * @param abbreviationMode Determines whether the unit symbol or the entire * name is used as descriptor. * @param sigFig The count of significant figures to round. * @param isUsNameUsed Determines whether the US name is used or not (e.g. * "meter" instead of "metre"). * @return The converted and default formated number as String including the * unit descriptor (symbol or name), or null on error. */ protected static String convertBaseTo( double siBaseValue, Units destUnit, AbbreviationMode abbreviationMode, int sigFig, boolean isUsNameUsed) { assert (destUnit != null); double convertedValue = siBaseValue / destUnit.getScale() + destUnit.getOffset(); String destNameStr = getDestUnitName( destUnit, abbreviationMode, !(Math.abs(convertedValue) == 1d), isUsNameUsed); if (destNameStr == null) { return null; } return NumberFormater.formatNumberDefault(convertedValue, sigFig) + destNameStr; } static private String getSourceUnitName( Units srcUnit, AbbreviationMode abbrMode, boolean isPlural, boolean isUsNameUsed) { String srcUnitName; switch (abbrMode) { case ON: case UNIT: case IN: if (isUsNameUsed) { srcUnitName = srcUnit.getUsName() + " "; } else { srcUnitName = srcUnit.getSymbol() + " "; } break; case OUT: case NONE: case OFF: if (isUsNameUsed) { if (isPlural) { srcUnitName = srcUnit.getUsName() + "s "; } else { srcUnitName = srcUnit.getUsName() + " "; } } else { if (isPlural) { srcUnitName = srcUnit.getPluralName() + " "; } else { srcUnitName = srcUnit.getName() + " "; } } break; case VALUES: srcUnitName = ""; break; case TILDE: if (isPlural) { srcUnitName = srcUnit.getPluralName(); } else { srcUnitName = srcUnit.getName(); } srcUnitName += " [" + srcUnit.getSymbol()+ "] "; break; default: return null; } return srcUnitName; } private static String getDestUnitName( Units destUnit, AbbreviationMode abbrMode, boolean isPlural, boolean isUsNameUsed) { String destUnitName; switch (abbrMode) { case OUT: case ON: case UNIT: case TILDE: destUnitName = " " + destUnit.getSymbol(); break; case VALUES: destUnitName = ""; break; case IN: case NONE: case OFF: if (isUsNameUsed) { if (isPlural) { destUnitName = " " + destUnit.getUsName() + "s"; } else { destUnitName = " " + destUnit.getUsName(); } } else { if (isPlural) { destUnitName = " " + destUnit.getPluralName(); } else { destUnitName = " " + destUnit.getName(); } } break; default: return null; } return destUnitName; } } ConvertPnfExt.java000066400000000000000000000021571335270560400463040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; public class ConvertPnfExt extends ParserFunctionGroup { protected ConvertPnfExt(WikiConfig wikiConfig) { super("Extension - Convert"); addParserFunction(new Convert(wikiConfig)); } public static ConvertPnfExt group(WikiConfig wikiConfig) { return new ConvertPnfExt(wikiConfig); } } DefCvt.java000066400000000000000000000072331335270560400447120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; public enum DefCvt { GY("Gy"), RAD("rad"), FT_PER_S2("ft/s2"), M_PER_S2("m/s2"), MPH_PER_S("mph/s"), KM_PER_HS("km/hs"), SQMI("sqmi"), ACRE("acre"), SQFT("sqft"), SQIN("sqin"), KM2("km2"), HA("ha"), M2("m2"), CM2("cm2"), HA_ACRE(new String[]{"ha", "acre"}), KM2_SQMI(new String[]{"km2", "sqmi"}), SQFT_M2(new String[]{"sqft", "m2"}), SQFT_PER_ACRE("sqft/acre"), M2_PER_HA("m2/ha"), CENT("cent"), COULOMB("coulomb"), E("e"), LBMOL("lbmol"), MOL("mol"), LB_CO2_PER_US_GAL("lbCO2/USgal"), KG_CO2_PER_L("kgCO2/L"), KG_PER_M3("kg/m3"), LB_PER_CUIN("lb/cuin"), LB_CUFT("lb/cuft"), LB_PER_US_GAL("lb/USgal"), LB_PER_CUYD("lb/cuyd"), G_PER_CM3("g/cm3"), KG_PER_L("kg/L"), GJ("GJ"), MEGAJ("MJ"), KJ("kJ"), J("J"), MILLIJ("mJ"), CAL("cal"), KM("km"), M("m"), MM("mm"), NM("nm"), MI("mi"), FT("ft"), IN("in"), FT_AND_IN(new String[]{"ft", "in"}, true, 3), FT_M(new String[]{"ft", "m"}), KM_MI(new String[]{"km", "mi"}), IN_CM(new String[]{"in", "cm"}), GLY("Gly"), MLY("Mly"), KLY("kly"), LY("ly"), MPC("Mpc"), KPC("kpc"), PC("pc"), AU("AU"), OZ("oz"), LB("lb"), G("g"), KG("kg"), LT_ST(new String[]{"long ton", "short ton"}), GR("gr"), T("t"), LB_KG(new String[]{"lb", "kg"}), OZ_G(new String[]{"oz", "g"}), F("F"), C("C"), C_F(new String[]{"C", "F"}), MK("keVT"), K_F_C(new String[]{"K", "F", "C"}), ; private final String[] units; private final boolean isMixedNotation; private final int mixedNotationLimit; private DefCvt(String unit) { this.units = new String[]{unit}; this.isMixedNotation = false; this.mixedNotationLimit = Integer.MAX_VALUE; } private DefCvt(String[] units) { this(units, false, Integer.MAX_VALUE); } private DefCvt(String[] units, boolean isMixedNotation) { this(units, isMixedNotation, Integer.MAX_VALUE); } private DefCvt(String[] units, int limit) { this(units, false, limit); } private DefCvt(String[] units, boolean isMixedNotation, int limit) { this.units = units; this.isMixedNotation = isMixedNotation; this.mixedNotationLimit = limit; } public final String[] getUnits() { return units; } /** * Determines if the result of the conversion is represented in mixed units * e. g. "1 metre (3 ft 3 in)". * * @return true if the conversion output uses mixed units, otherwise false. */ public final boolean isMixedNotation() { return isMixedNotation; } /** * Gives the limit of the base value where the mixed notation is applied to. * * Example with limit 3: *
	 * {{convert|1|m}} -> 1 metre (3 ft 3 in) // mixed units
	 * {{convert|2|m}} -> 2 metres (6 ft 7 in) // mixed units
	 * {{convert|3|m}} -> 3 metres (9.8 ft) // only in feet
	 * {{convert|4|m}} -> 4 metres (13 ft) // only in feet
	 * 
* * @return The limit interpreted as an range (+/-) where the mixed notation * is applied (limit excluded). The default value is Integer.MAX_VALUE. */ public final int getMixedNotationLimit() { return mixedNotationLimit; } } NumberFormater.java000066400000000000000000000176221335270560400464720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class NumberFormater { private static final DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.US); // uses '−' (\u2212) as minus private static final DecimalFormat sciFmt = new DecimalFormat("0.0E0;−#", symbols); private static final DecimalFormat fmt = new DecimalFormat("#0;−#", symbols); static { fmt.setRoundingMode(RoundingMode.HALF_UP); fmt.setGroupingSize(3); fmt.setGroupingUsed(true); } private NumberFormater() { throw new UnsupportedOperationException(); } public static String formatScientific(double number) { String[] split = sciFmt.format(number).split("E"); String supExp = asSuperscriptNumber(split[1]); return split[0] + "×10" + supExp; } public static String formatRegular(double number) { return fmt.format(number); } public static String formatRegular(BigDecimal number) { return fmt.format(number); } /** * Rounds and formats a value to the given count of digits after the * floating point. * * @param convertedValue The value to format. * @param digitsAfterFloatingPoint Digits behind the floating point [0..16]. * @return The formated value as String. */ public static String formatNumberRounded( double convertedValue, int digitsAfterFloatingPoint) { final int MAX_DIGITS_AFTER_FLOATING_POINT = 16; if (digitsAfterFloatingPoint > MAX_DIGITS_AFTER_FLOATING_POINT) { digitsAfterFloatingPoint = MAX_DIGITS_AFTER_FLOATING_POINT; } DecimalFormat tmpFmt = (DecimalFormat) fmt.clone(); tmpFmt.setMinimumFractionDigits(digitsAfterFloatingPoint); tmpFmt.setMaximumFractionDigits(digitsAfterFloatingPoint); return tmpFmt.format(convertedValue); } /** * Formats the given value like Wikipedia does on default. This includes the * conversion to scientific notation, adding of thousand separators and * rounding on various scales (depending on the amount of digits). * * @param convertedValue The value to format. * @param sigFig The count of significant figures to round. * @return The formated value as string. */ protected static String formatNumberDefault( double convertedValue, int sigFig) { String convertedValStr; final double absValue = Math.abs(convertedValue); if (absValue < 1e-9 || absValue > 1e9) { convertedValStr = formatScientific(convertedValue); } else { BigDecimal bd = new BigDecimal(convertedValue); int prec = bd.precision() - bd.scale(); if (sigFig > prec) { convertedValStr = formatNumberRounded(convertedValue, sigFig - prec); } else { bd = bd.round(new MathContext(sigFig, RoundingMode.HALF_UP)); convertedValStr = formatRegular(bd); } } return convertedValStr; } /** * Checks if the given number string is probably a valid value. Since the * check is only made on appearing characters, there might be the chance, * that a wrong used number syntax let a conversion with * {@link parseNumber()} fail anyway. * * @param numberStr The number as string to check. * @return True if the string is most likely a valid value, otherwise false. * @see parseNumber() */ protected static boolean isNumberValid(final String numberStr) { return numberStr.matches("[0-9,.e/⁄\\-\\+–]+"); } /** * Tries to parse a number-string into a valid double value. The following * notations are supported: * * "12" = 12 * "1,234" = 1234 * "12.3e-15" = 1.23e-14 * * Fractions: * "1/2" = 0.5 * "1⁄3" = 0.33333333 * "2+1⁄2" = 2.5 * "-2-1⁄2" = -2.5 * "1//2" = 0.5 * * @param numberStr The number as string to convert. * @return The parsed number as double value. * @throws NumberFormatException * @see https://en.wikipedia.org/wiki/Template:Convert/doc#Numbers */ protected static double parseNumber(final String numberStr) throws NumberFormatException { double value; String number = numberStr.replace(",", ""); // remove thousand separators number = number.replaceAll("–", "-"); // replace all the pesky en dashes Matcher fractionMatcher = Pattern.compile("[/⁄]").matcher(number); if (fractionMatcher.find()) { String[] fraction = number.split("//|[/⁄]"); if (fraction.length != 2) { throw new NumberFormatException("Invalid fraction!"); } String numerator = fraction[0]; String denominator = fraction[1]; int idxPlus = numerator.lastIndexOf('+'); int idxMinus = numerator.lastIndexOf('-'); if (idxPlus > idxMinus && idxMinus != -1) { throw new NumberFormatException( "Should be a number, not a expression which requires" + " calculations!"); } // whole number part for mixed fractions like 2 ½ double wholeNum = 0d; int idx = Math.max(idxPlus, idxMinus); if (idx != -1) { String wholeNumStr = numerator.substring(0, idx); numerator = numerator.substring(idx); try { wholeNum = Double.parseDouble(wholeNumStr); } catch (NumberFormatException ex) { throw ex; } } try { value = wholeNum + Double.parseDouble(numerator) / Double.parseDouble(denominator); } catch (NumberFormatException ex) { throw ex; } return value; } try { value = Double.parseDouble(number); } catch (NumberFormatException ex) { throw ex; } return value; } /** * Replaces all digit characters and the minus-sing with the corresponding * Unicode superscript symbols. * * @param numStr The String containing the numbers. * @return The number string with the substituted characters. */ public static String asSuperscriptNumber(String numStr) { numStr = numStr.replaceAll("0", "⁰"); // \u2070 numStr = numStr.replaceAll("1", "¹"); // \u00B9 numStr = numStr.replaceAll("2", "²"); // \u00B2 numStr = numStr.replaceAll("3", "³"); // \u00B3 numStr = numStr.replaceAll("4", "⁴"); // \u2074 numStr = numStr.replaceAll("5", "⁵"); // \u2075 numStr = numStr.replaceAll("6", "⁶"); // \u2076 numStr = numStr.replaceAll("7", "⁷"); // \u2077 numStr = numStr.replaceAll("8", "⁸"); // \u2078 numStr = numStr.replaceAll("9", "⁹"); // \u2079 numStr = numStr.replaceAll("-", "⁻"); // \u207B return numStr; } /** * Replaces all digit characters and the minus-sing with the corresponding * Unicode subscript symbols. * * @param numStr The String containing the numbers. * @return The number string with the substituted characters. */ public static String asSubscriptNumber(String numStr) { numStr = numStr.replaceAll("0", "₀"); // \u2080 numStr = numStr.replaceAll("1", "₁"); // \u2081 numStr = numStr.replaceAll("2", "₂"); // \u2082 numStr = numStr.replaceAll("3", "₃"); // \u2083 numStr = numStr.replaceAll("4", "₄"); // \u2084 numStr = numStr.replaceAll("5", "₅"); // \u2085 numStr = numStr.replaceAll("6", "₆"); // \u2086 numStr = numStr.replaceAll("7", "₇"); // \u2087 numStr = numStr.replaceAll("8", "₈"); // \u2088 numStr = numStr.replaceAll("9", "₉"); // \u2089 numStr = numStr.replaceAll("-", "₋"); // \u208B return numStr; } } Units.java000066400000000000000000000644051335270560400446450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; import java.util.HashMap; /** * The following SI Units are used as scale base for conversions. *
 * length               metre       m
 * mass                 kilogram    kg
 * time                 second      s
 * electric current     ampere      A
 * temperature          kelvin      K
 * amount of substance  mole        mol
 * luminous intensity   candela     cd
 * 
* * The complete and actual data set used from the original template (Lua) can be * found here: https://en.wikipedia.org/wiki/Module:Convert/data * * The following HTML chars where substituted with the corresponding Unicode * chars: * *   \u00A0 ' ' *   \u2009 ' ' * ‑ \u8209 '‑' * */ public enum Units { // absorbed radiation dose GRAY(UnitType.ABSORBED_RADIATION_DOSE, 1d, "Gy", "gray", DefCvt.RAD, new String[]{"Gy"}), RAD(UnitType.ABSORBED_RADIATION_DOSE, 0.01, "rad", "rad", DefCvt.GY), // acceleration CENTIMETRE_PER_SEC_SQ(UnitType.ACCELERATION, 0.01, "cm/s²", "centimetre per second squared", DefCvt.FT_PER_S2, new String[]{"cm/s2"}, "centimetres per second squared", "centimeters per second squared"), FOOT_PER_SEC_SQ(UnitType.ACCELERATION, 0.3048, "ft/s²", "foot per second squared", DefCvt.M_PER_S2, new String[]{"ft/s2"}, "feet per second squared", null), STANDARD_GRAVITY(UnitType.ACCELERATION, 9.80665, "g₀", "standard gravity", DefCvt.M_PER_S2, new String[]{"g0"}, "standard gravities", null), KILOMETRE_PER_H_PER_SEC(UnitType.ACCELERATION, 0.27777777777777779, "km/(h⋅s)", "kilometre per hour per second", DefCvt.MPH_PER_S, new String[]{"km/hs, km/h/s"}, "kilometres per hour per second", "kilometers per hour per second"), KILOMETRE_PER_SEC_SQ(UnitType.ACCELERATION, 1000d, "km/s²", "kilometre per second squared", DefCvt.MPH_PER_S, new String[] {"km/s2"}, "kilometres per second squared", "kilometers per second squared"), METRE_PER_SEC_SQ(UnitType.ACCELERATION, 1d, "m/s²", "metre per second squared", DefCvt.FT_PER_S2, new String[]{"m/s2"}, "metres per second squared", "meters per second squared"), MILE_PER_H_PER_SEC(UnitType.ACCELERATION, 0.44704, "mph/s", "mile per hour per second", DefCvt.KM_PER_HS, new String[]{"mph/s"}, "miles per hour per second", null), // area: https://en.wikipedia.org/wiki/Template:Convert/list_of_units/area SQUARE_KILOMETRE(UnitType.AREA, 1e6, "km²", "square kilometre", DefCvt.SQMI, new String[]{"km2", "km²", "sqkm"}, null, "square kilometer"), SQUARE_HECTOMETRE(UnitType.AREA, 1e4, "hm²", "square hectometre", DefCvt.ACRE, new String[]{"hm2", "hm²"}, null, "square hectometer"), SQUARE_DECAMETRE(UnitType.AREA, 100d, "dam²", "square decametre", DefCvt.SQFT, new String[]{"dam2", "dam²"}, null, "square dekameter"), SQUARE_METRE(UnitType.AREA, 1d, "m²", "square metre", DefCvt.SQFT, new String[]{"m2", "m²", "sqm"}, null, "square meter"), SQUARE_DECIMETRE(UnitType.AREA, 0.01, "dm²", "square decimetre", DefCvt.SQIN, new String[]{"dm2", "dm²"}, null, "square decimeter"), SQUARE_CENTIMETRE(UnitType.AREA, 0.0001, "cm²", "square centimetre", DefCvt.SQIN, new String[]{"cm2", "cm²"} , null, "square centimeter"), SQUARE_MILLIMETRE(UnitType.AREA, 1e-6, "mm²", "square millimetre", DefCvt.SQIN, new String[]{"mm2", "mm²"}, null, "square millimeter"), THOUSAND_SQFT(UnitType.AREA, 92.90304, "1000\u00A0sq\u00A0ft", "thousand square feet", DefCvt.M2, null, "thousand square feet", null), ARE(UnitType.AREA, 100d, "a", "are", DefCvt.SQFT, new String[]{"a"}), ACRE(UnitType.AREA, 4046.8564224, "acres", "acre", DefCvt.HA, new String[]{"acre-sing", "acres"}), ARPENT(UnitType.AREA, 3418.89, "arpent", "arpent", DefCvt.HA, new String[]{"sq arp"}), CUERDA(UnitType.AREA, 3930.395625, "cda", "cuerda", DefCvt.HA_ACRE), DAA(UnitType.AREA, 1000d, "daa", "decare", DefCvt.KM2_SQMI, new String[]{"daa"}), DUNAM(UnitType.AREA, 1000d, "dunam", "dunam", DefCvt.KM2_SQMI), DUNUM(UnitType.AREA, 1000d, "dunum", "dunum", DefCvt.KM2_SQMI), HECTARE(UnitType.AREA, 1e4, "ha", "hectare", DefCvt.ACRE), IRISH_ACRE(UnitType.AREA, 6555.2385024, "Irish\u00A0acres", "Irish acre", DefCvt.HA), PONDEMAAT(UnitType.AREA, 3674.363358816, "pond", "pondemaat", DefCvt.M2, new String[]{"pond"}), PYEONG(UnitType.AREA, 3.3057851239669422, "pyeong", "pyeong", DefCvt.M2), RAI(UnitType.AREA, 1600d, "rai", "rai", DefCvt.M2), ROOD(UnitType.AREA, 1011.7141056, "rood", "rood", DefCvt.SQFT_M2), SQUARE_FOOT(UnitType.AREA, 0.09290304, "sq\u00A0ft", "square foot", DefCvt.M2, new String[]{"sqft", "ft2"}, "square feet", null), SQUARE_FOOT2(UnitType.AREA, 0.09290304, "sq\u00A0ft", "square foot", DefCvt.M2, new String[]{"sqfoot", "foot2"}, "square foot", null), SQUARE_INCH(UnitType.AREA, 0.00064516, "sq\u00A0in", "square inch", DefCvt.CM2, new String[]{"sqin", "in2"}, "square inches", null), SQUARE_NAUTICAL_MILE(UnitType.AREA, 3429904d, "sq\u00A0nmi", "square nautical mile", DefCvt.KM2_SQMI, new String[]{"nmi2"}), SQUARE_MILE(UnitType.AREA, 2589988.110336, "sq\u00A0mi", "square mile", DefCvt.KM2, new String[]{"sqmi", "mi2"}), SQUARE_PERCH(UnitType.AREA, 25.29285264, "perch", "perches", DefCvt.M2), SQUARE_VERST(UnitType.AREA, 1138062.24, "square verst", "square verst", DefCvt.KM2_SQMI, new String[]{"sqverst", "verst2"}), SQUARE_YARD(UnitType.AREA, 0.83612736, "sq\u00A0yd", "square yard", DefCvt.M2, new String[]{"sqyd", "yd2"}), TSUBO(UnitType.AREA, 3.3057851239669422, "tsubo", "tsubo", DefCvt.M2, null, "tsubo", null), // area per unit area M2_PER_HA(UnitType.AREA_PER_UNIT_AREA, 0.0001, "m²/ha", "square metre per hectare", DefCvt.SQFT_PER_ACRE, new String[]{"m2/ha"}, "square metres per hectare", "square meters per hectare"), SQFT_PER_ACRE(UnitType.AREA_PER_UNIT_AREA, 2.295684113865932e-5, "sq\u00A0ft/acre", "square foot per acre", DefCvt.M2_PER_HA, null, "square feet per acre", null), // cent CENT(UnitType.CENT, 1d, "¢", "cent", DefCvt.CENT, new String[]{"¢"}), // charge AMPERE_HOUR(UnitType.CHARGE, 3600d, "A⋅h", "ampere-hour", DefCvt.COULOMB, new String[]{"A.h"}), COULOMB(UnitType.CHARGE, 1d, "C", "coulomb", DefCvt.E), E(UnitType.CHARGE, 1.602176487e-19, "e", "elementary charge", DefCvt.COULOMB, new String[]{"e"}), // chemical amount GRAM_MOLE(UnitType.CHEMICAL_AMOUNT, 1d, "g\u8209mol", "gram-mole", DefCvt.LBMOL, new String[]{"g-mol"}), GRAM_MOLE2(UnitType.CHEMICAL_AMOUNT, 1d, "gmol", "gram-mole", DefCvt.LBMOL, new String[]{"gmol"}), KILOMOLE(UnitType.CHEMICAL_AMOUNT, 1000d, "kmol", "kilomole", DefCvt.LBMOL, new String[]{"kmol"}), POUND_MOLE(UnitType.CHEMICAL_AMOUNT, 453.59237, "lb\u8209mol", "pound-mole", DefCvt.MOL, new String[]{"lb-mol"}), POUND_MOLE2(UnitType.CHEMICAL_AMOUNT, 453.59237, "lbmol", "pound-mole", DefCvt.MOL, new String[]{"lbmol"}), MOLE(UnitType.CHEMICAL_AMOUNT, 1d, "mol", "mole", DefCvt.LBMOL, new String[]{"mol"}), // CO2 per unit volume KILOGRAM_PER_LITRE(UnitType.CO2_PER_UNIT_VOLUME, 1000d, "kg(CO₂)/L", "kilogram per litre", DefCvt.LB_CO2_PER_US_GAL, new String[]{"kgCO2/L"}, "kilograms per litre", "kilograms per liter"), POUNT_PER_US_GAL(UnitType.CO2_PER_UNIT_VOLUME, 119.82642731689663, "lbCO2/US\u00A0gal", "pound per US gallon", DefCvt.KG_CO2_PER_L, new String[]{"lbCO2/USgal"}, "pounds per US gallon", null), // density GRAMM_PER_CUBIC_DM(UnitType.DENSITY, 1d, "g/dm³", "gram per cubic decimetre", DefCvt.KG_PER_M3, new String[]{"g/dm3"}, "grams per cubic decimetre", "grams per cubic decimeter"), GRAM_PER_LITRE(UnitType.DENSITY, 1d, "g/L", "gram per litre", DefCvt.LB_PER_CUIN, new String[]{"g/L"}, "grams per litre", "grams per liter"), GRAM_PER_ML(UnitType.DENSITY, 1000d, "g/mL", "gram per millilitre", DefCvt.LB_PER_CUIN, new String[]{"g/mL", "g/ml"}, "grams per millilitre", "grams per milliliter"), KILOGRAM_PER_DM3(UnitType.DENSITY, 1000d, "kg/dm³", "kilogram per cubic decimetre", DefCvt.LB_CUFT, new String[]{"kg/dm3"}, "kilograms per cubic decimetre", "kilograms per cubic decimeter"), KILOGRAMM_PER_LITRE(UnitType.DENSITY, 1000d, "kg/L", "kilogram per litre", DefCvt.LB_PER_US_GAL, new String[]{"kg/L", "kg/l"}, "kilograms per litre", "kilograms per liter"), KILOGRAMM_PER_CUBIC_M(UnitType.DENSITY, 1d, "kg/m³", "kilogram per cubic metre", DefCvt.LB_PER_CUYD, new String[]{"kg/m3"}, "kilograms per cubic metre", "kilograms per cubic meter"), POUND_PER_CUBIC_FT(UnitType.DENSITY, 16.018463373960142, "lb/cu\u00A0ft", "pound per cubic foot", DefCvt.G_PER_CM3, new String[]{"lb/cuft", "lb/ft3"}, "pounds per cubic foot", null), POUND_PER_CUBIC_IN(UnitType.DENSITY, 27679.904710203122, "lb/cu\u00A0in", "pound per cubic inch", DefCvt.G_PER_CM3, new String[]{"lb/cuin"}, "pounds per cubic inch", null), POUND_PER_CUBIC_IN2(UnitType.DENSITY, 27679.904710203122, "lb/cu\u2009in", "pound per cubic inch", DefCvt.G_PER_CM3, new String[]{"lb/in3"}, "pounds per cubic inch", null), POUND_PER_CUBIC_YD(UnitType.DENSITY, 0.5932764212577829, "lb/cu\u00A0yd", "pound per cubic yard", DefCvt.KG_PER_M3, new String[]{"lb/cuyd", "lb/yd3"}, "pounds per cubic yard", null), POUND_PER_IMP_GAL(UnitType.DENSITY, 99.776372663101697, "lb/imp\u00A0gal", "pound per imperial gallon", DefCvt.KG_PER_L, new String[]{"lb/impgal"}, "pounds per imperial gallon", null), POUND_PER_US_GAL(UnitType.DENSITY, 119.82642731689663, "lb/U.S.\u00A0gal", "pound per U.S. gallon", DefCvt.KG_PER_L, new String[]{"lb/U.S.gal"}, "pounds per U.S. gallon", null), POUND_PER_US_GAL2(UnitType.DENSITY, 119.82642731689663, "lb/US\u00A0gal", "pound per US gallon", DefCvt.KG_PER_L, new String[]{"lb/USgal"}, "pounds per US gallon", null), POUND_PER_US_BUSHEL(UnitType.DENSITY, 12.871859780974471, "lb/US\u00A0bu", "pound per US bushel", DefCvt.KG_PER_M3, new String[]{"lb/USbu"}, "pounds per US bushel", null), POUND_MASS_PER_CUBIC_IN(UnitType.DENSITY, 27679.904710203122, "lbm/cu\u2009in", "pound mass per cubic inch", DefCvt.G_PER_CM3, new String[]{"lbm/cuin"}, "pounds mass per cubic inch", null), MILLIGRAM_PER_LITRE(UnitType.DENSITY, 0.001, "mg/L", "milligram per litre", DefCvt.LB_PER_CUIN, new String[]{"mg/L"}, "milligrams per litre", "milligrams per liter"), OUNCE_PER_CUBIC_IN(UnitType.DENSITY, 1729.9940443876951, "oz/cu\u00A0in", "ounce per cubic inch", DefCvt.G_PER_CM3, new String[]{"oz/cuin", "oz/in3"}, "ounces per cubic inch", null), // energy BOARD_OF_TRADE_UNIT(UnitType.ENERGY, 3600000d, "B.O.T.U.", "Board of Trade Unit", DefCvt.MEGAJ, new String[]{"B.O.T.U."}), BARREL_OF_OIL_EQUIVALENT(UnitType.ENERGY, 6117863200d, "bboe", "barrel of oil equivalent", DefCvt.GJ, new String[]{"bboe"},"barrels of oil equivalent", null), BARREL_OF_OIL_EQUIVALENT2(UnitType.ENERGY, 6117863200d, "BOE", "barrel of oil equivalent", DefCvt.GJ, new String[]{"BOE"},"barrels of oil equivalent", null), BTU(UnitType.ENERGY, 1055.05585262, "BTU", "British thermal unit", DefCvt.KJ, new String[]{"BTU", "Btu"}), BTU_39F(UnitType.ENERGY, 1059.67, "BTU39°F", "British thermal unit (39°F)", DefCvt.KJ, new String[]{"BTU-39F", "Btu-39F"}, "British thermal units (39°F)", null), BTU_59F(UnitType.ENERGY, 1054.804, "BTU59°F", "British thermal unit (59°F)", DefCvt.KJ, new String[]{"BTU-59F", "Btu-59F"}, "British thermal units (59°F)", null), BTU_60F(UnitType.ENERGY, 1054.68, "BTU60°F", "British thermal unit (60°F)", DefCvt.KJ, new String[]{"BTU-60F", "Btu-60F"}, "British thermal units (60°F)", null), BTU_63F(UnitType.ENERGY, 1054.6, "BTU63°F", "British thermal unit (63°F)", DefCvt.KJ, new String[]{"BTU-63F", "Btu-63F"}, "British thermal units (63°F)", null), BTU_ISO(UnitType.ENERGY, 1055.056, "BTUISO", "British thermal unit (ISO)", DefCvt.KJ, new String[]{"BTU-ISO", "Btu-ISO"}, "British thermal units (ISO)", null), BTU_IT(UnitType.ENERGY, 1055.05585262, "BTUIT", "British thermal unit (IT)", DefCvt.KJ, new String[]{"BTU-IT", "Btu-IT"}, "British thermal units (IT)", null), BTU_MEAN(UnitType.ENERGY, 1055.87, "BTUmean", "British thermal unit (mean)", DefCvt.KJ, new String[]{"BTU-mean", "Btu-mean"}, "British thermal units (mean)", null), BTU_TH(UnitType.ENERGY, 1054.35026444, "BTUth", "British thermal unit (thermochemical)", DefCvt.KJ, new String[]{"BTU-th", "Btu-th"}, "British thermal units (thermochemical)", null), CALORIE(UnitType.ENERGY, 4184d, "Cal", "calorie", DefCvt.KJ, new String[]{"Cal"}), CALORIE2(UnitType.ENERGY, 4.184, "cal", "calorie", DefCvt.J, new String[]{"cal"}), CAL_15C(UnitType.ENERGY, 4185.8, "Cal¹⁵", "Calorie (15°C)", DefCvt.KJ, new String[]{"Cal-15"}, "Calories (15°C)", null), CAL_15C2(UnitType.ENERGY, 4.1858, "cal¹⁵", "calorie (15°C)", DefCvt.J, new String[]{"cal-15"}, "calories (15°C)", null), CAL_IT(UnitType.ENERGY, 4185.8, "CalIT", "Calorie (International Steam Table)", DefCvt.KJ, new String[]{"Cal-IT"}, "Calories (International Steam Table)", null), CAL_IT2(UnitType.ENERGY, 4.1868, "calIT", "calorie (International Steam Table)", DefCvt.J, new String[]{"cal-IT"}, "calories (International Steam Table)", null), CAL_TH(UnitType.ENERGY, 4184d, "Calth", "Calorie (thermochemical)", DefCvt.KJ, new String[]{"Cal-th"}, "Calories (thermochemical)", null), CAL_TH2(UnitType.ENERGY, 4.184, "calth", "calorie (thermochemical)", DefCvt.J, new String[]{"cal-th"}, "calories (thermochemical)", null), CCATM(UnitType.ENERGY, 0.101325, "cc atm", "cubic centimetre-atmosphere", DefCvt.MILLIJ, new String[]{"ccatm"}, null, "cubic centimeter-atmosphere"), KILOCALORIE(UnitType.ENERGY, 4184d, "kcal", "kilocalorie", DefCvt.KJ, new String[]{"kcal"}), GIGAJOULE(UnitType.ENERGY, 1e9, "GJ", "magejoule", DefCvt.CAL, new String[]{"GJ"}, null, null), MEGAJOULE(UnitType.ENERGY, 1e6, "MJ", "magejoule", DefCvt.CAL, new String[]{"MJ"}, null, null), KILOJOULE(UnitType.ENERGY, 1000d, "kJ", "kilojoule", DefCvt.CAL, new String[]{"kJ"}, null, null), JOULE(UnitType.ENERGY, 1d, "J", "joule", DefCvt.CAL, new String[]{"J"}, null, null), MILLIJOULE(UnitType.ENERGY, 0.001, "mJ", "joule", DefCvt.CAL, new String[]{"mJ"}, null, null), // length: https://en.wikipedia.org/wiki/Template:Convert/list_of_units/length GIGAMETRE(UnitType.LENGTH, 1e9, "Gm", "gigametre", DefCvt.MI, new String[]{"Gm"}, null, "gigameter"), MEAGAMETRE(UnitType.LENGTH, 1e6, "Mm", "megametre", DefCvt.MI, new String[]{"Mm"}, null, "megameter"), KILOMETRE(UnitType.LENGTH, 1000d, "km", "kilometre", DefCvt.MI, new String[]{"km"}, null, "kilometer"), HECTOMETRE(UnitType.LENGTH, 100d, "hm", "hectometre", DefCvt.MI, new String[]{"hm"}, null, "hectometer"), DECAMETRE(UnitType.LENGTH, 10d, "dam", "decametre", DefCvt.MI, new String[]{"dam"}, null, "dekameter"), METRE(UnitType.LENGTH, 1d, "m", "metre", DefCvt.FT_AND_IN, new String[]{"m", "meters", "metres"}, null, "meter"), DECIMETRE(UnitType.LENGTH, 0.1, "dm", "decimetre", DefCvt.IN, null, null, "decimeter"), CENTIMETRE(UnitType.LENGTH, 0.01, "cm", "centimetre", DefCvt.IN, null, null, "centimeter"), MILLIMETRE(UnitType.LENGTH, 0.001, "mm", "millimetre", DefCvt.IN, null, null, "millimeter"), MICROMETRE(UnitType.LENGTH, 1e-6, "µm", "micrometre", DefCvt.IN, new String[]{"µm", "um"}, null, "micrometer"), NANOMETRE(UnitType.LENGTH, 1e-9, "nm", "nanometre", DefCvt.IN, null, null, "nanometer"), ANGSTROM(UnitType.LENGTH, 1e-10, "Å", "ångström", DefCvt.IN, new String[]{"Å", "angstrom"}, null, null), MILE(UnitType.LENGTH, 1609.344, "mi", "mile", DefCvt.KM), FURLONG(UnitType.LENGTH, 201.168, "fur", "furlong", DefCvt.FT_M), CHAIN(UnitType.LENGTH, 20.11684023368, "ch", "chain", DefCvt.FT_M), ROD(UnitType.LENGTH, 5.0292, "rd", "rod", DefCvt.FT_M), POLE(UnitType.LENGTH, 5.0292, "pole", "pole", DefCvt.FT_M), PERCH(UnitType.LENGTH, 5.0292, "perch", "perch", DefCvt.FT_M), FATHOM(UnitType.LENGTH, 1.8288, "fathom", "fathom", DefCvt.FT_M), YHARD(UnitType.LENGTH, 0.9144, "yd", "yard", DefCvt.M), FOOT(UnitType.LENGTH, 0.3048, "ft", "foot", DefCvt.M, null, "feet", null), HAND(UnitType.LENGTH, 0.1016, "hand", "hand", DefCvt.IN_CM), INCH(UnitType.LENGTH, 0.0254, "in", "inch", DefCvt.MM, null, "inches", null), MICORINCH(UnitType.LENGTH, 2.54e-8, "µin", "microinch", DefCvt.NM, new String[]{"µin", "uin"}, "microinches", null), BANANA(UnitType.LENGTH, 0.1778, "banana", "banana", DefCvt.IN_CM), NAUTICAL_MILE(UnitType.LENGTH, 1852d, "nmi", "nautical mile", DefCvt.KM_MI), NAUTICAL_MILE_OLD_BRIT(UnitType.LENGTH, 1853.184, "(Brit) nmi","British nautical mile", DefCvt.KM_MI, new String[]{"oldUKnmi", "admiralty nmi", "Brnmi", "admi"}, null, null), NAUTICAL_MILE_OLD_US(UnitType.LENGTH, 1853.24496, "(pre‑1954 US) nmi", "(pre-1954 US) nautical mile", DefCvt.KM_MI, new String []{"oldUSnmi", "pre1954USnmi", "pre1954U.S.nmi"}, null, null), GIGAPARSEC(UnitType.LENGTH, 3.0856776e25, "Gpc", "gigaparsec", DefCvt.GLY), MEGAPARSEC(UnitType.LENGTH, 3.0856776e22, "Mpc", "megaparsec", DefCvt.MLY), KILOPARSEC(UnitType.LENGTH, 3.0856776e19, "kpc", "kiloparsec", DefCvt.KLY), PARSEC(UnitType.LENGTH, 3.0856776e16, "pc", "parsec", DefCvt.LY), GIGALIGHT_YEAR(UnitType.LENGTH, 9.4607304725808e24, "Gly", "gigalight-year", DefCvt.MPC), MEGALIGHT_YEAR(UnitType.LENGTH, 9.4607304725808e21, "Mly", "megalight-year", DefCvt.KPC), KILOLIGHT_YEAR(UnitType.LENGTH, 9.4607304725808e18, "kly", "kilolight-year", DefCvt.PC), LIGHT_YEAR(UnitType.LENGTH, 9460730472580800d, "ly", "light-year", DefCvt.AU), ASTRONOMICAL_UNIT(UnitType.LENGTH, 149597870691d, "AU", "astronomical unit", DefCvt.KM_MI), // masses: https://en.wikipedia.org/wiki/Template:Convert/list_of_units/mass KILOGRAM(UnitType.MASS, 1d, "kg", "kilogram", DefCvt.LB), GRAM(UnitType.MASS, 0.001, "g", "gram", DefCvt.OZ), DECIGRAM(UnitType.MASS, 0.0001, "dg", "decigram", DefCvt.OZ), MILLIGRAM(UnitType.MASS, 1e-6, "mg", "milligram", DefCvt.GR), MICROGRAM(UnitType.MASS, 1e-9, "µg", "microgram", DefCvt.GR, new String[]{"µg", "ug", "mcg"}, null, null), TONNE(UnitType.MASS, 1000d, "t", "tonne", DefCvt.LT_ST), METRIC_TON(UnitType.MASS, 1000d, "t", "metric ton", DefCvt.LT_ST, new String[]{"MT"}, null, null), LONG_TON(UnitType.MASS, 1016.0469088, "long ton", "long ton", DefCvt.T, new String[]{"LT"}, null, null), SHORT_TON(UnitType.MASS, 907.18474, "short ton", "short ton", DefCvt.T, new String[]{"ST"}, null, null), LONG_HUNDREDWEIGHT(UnitType.MASS, 50.80234544, "long\u00A0cwt", "long hundredweight", DefCvt.LB_KG, new String[]{"long cwt"}, null, null), SHORT_HUNDREDWEIGHT(UnitType.MASS, 45.359237, "short\u00A0cwt", "short hundredweight", DefCvt.LB_KG, new String[]{"short cwt"}, null, null), LONG_QUARTER(UnitType.MASS, 12.70058636, "long\u00A0qtr", "long quarter", DefCvt.LB_KG, new String[] {"long qtr"}, null, null), SHORT_QUARTER(UnitType.MASS, 11.33980925, "short\u00A0qtr", "short quarter", DefCvt.LB_KG, new String[]{"short qtr"}, null, null), STONE(UnitType.MASS, 6.35029318, "st", "stone", DefCvt.LB_KG), POUND(UnitType.MASS, 0.45359237, "lb", "pound", DefCvt.KG), OUNCE(UnitType.MASS, 0.028349523125, "oz", "ounce", DefCvt.G), DRACHM(UnitType.MASS, 0.001771845195, "drachm", "drachm", DefCvt.G, new String[]{"dram"}, null, null), GRAIN(UnitType.MASS, 6.479891e-5, "gr", "grain", DefCvt.G), TROY_POUND(UnitType.MASS, 0.3732417216, "troy pound", "troy pound", DefCvt.LB_KG), TROY_OUNCE(UnitType.MASS, 0.0311034768, "ozt", "troy ounce", DefCvt.OZ_G), PENNYWEIGHT(UnitType.MASS, 0.00155517384, "dwt", "pennyweight", DefCvt.OZ_G), CARAT(UnitType.MASS, 0.0002, "carat", "carat", DefCvt.G), // temperature DEGREE_CELSIUS(UnitType.TEMPERATURE, 1d, -273.15, "°C", true, "degree Celsius", DefCvt.F, new String[]{"C", "Celsius", "°C"}, "degrees Celsius", null), DEGREE_FAHRENHEIT(UnitType.TEMPERATURE, 0.55555555555555558, 32d - 273.15 * (9d / 5d), "°F", true, "degree Fahrenheit", DefCvt.C, new String[]{"F", "°F"}, "degrees Fahrenheit", null), KELVIN(UnitType.TEMPERATURE, 1d, 0d, "K", true, "kelvin", DefCvt.C_F, new String[]{"K"}, null, null), KILOELECTRONVOLT(UnitType.TEMPERATURE, 11.604505e6, "keV", "kiloelectronvolt", DefCvt.MK, new String[]{"keVT"}), DEGREE_RANKINE(UnitType.TEMPERATURE, 0.55555555555555558, 0d, "°R", true, "degree Rankine", DefCvt.K_F_C, new String[]{"R", "°R"}, "degrees Rankine", null), ; private final UnitType type; /// The type of the unit (e.g. length, mass, etc.) private final double scale; /// Scale factor based on the underlying SI unit type. private final double offset; /// Additional offest (mostly used by temerature conversions) private final String symbol; /// The unit symbol which may contain special characters (e.g. "m²"). private final boolean isSymbolDesc; /// Determines whether the Symbol is used as primary descriptor even without the "abbr=on" option. private final String name; /// The official name of the unit. private final String[] altCodes; /// Alternating codes and names of the unit. [can be null] private final DefCvt defaultConv; /// Default unit to convert to when no target was explicitly given. private final String plural; /// Plural form of the name (e.g. "feet" instead of "foot") [can be null] private final String usName; /// U.S. spelling of the name (e.g. "meter" instead of "metre") [can be null] /** * Static look-up table for fast access on various unit names and * identifiers. Do NOT use the unit symbol for look-up, since this string * may contain special Unicode characters. If the symbol should also be * covered by the HashMap, add another entry in the corresponding altCodes * array. */ private static final HashMap NAME_CODE_MAP = new HashMap(); static { for (final Units unit : Units.values()) { if (!NAME_CODE_MAP.containsKey(unit.name)) { NAME_CODE_MAP.put(unit.name, unit); } if (unit.usName != null) { NAME_CODE_MAP.put(unit.usName, unit); } if (unit.altCodes != null) { for (final String altCode : unit.altCodes) { assert (!NAME_CODE_MAP.containsKey(altCode)) : "Alternative Name Code \"" + altCode + "\" should " + "be unique, but was already added in Map before!"; NAME_CODE_MAP.put(altCode, unit); } } } } private Units( UnitType type, double scale, String symbol, String name, DefCvt defCvt) { this(type, scale, 0d, symbol, false, name, defCvt, null, null, null); } private Units( UnitType type, double scale, String symbol, String name, DefCvt defCvt, String[] altCodes) { this(type, scale, 0d, symbol, false, name, defCvt, altCodes, null, null); } private Units( UnitType type, double scale, String symbol, String name, DefCvt defCvt, String[] altCodes, String plural, String usName) { this(type, scale, 0d, symbol, false, name, defCvt, altCodes, plural, usName); } /** * Constructor. * * @param type The type of the unit (e.g. length, mass, etc.) * @param scale Scale factor based on the underlying SI unit type. * @param offset Offset in addition to the scale (mostly used by temperature * conversions). * @param symbol The unit symbol which may contain special characters (e.g. * "m²"). * @param isSymboldDesc Determines whether the Symbol is used as primary * descriptor even without the "abbr=on" option. * @param name The official name of the unit. * @param defCvt Default unit to convert to when no target was explicitly * given. * @param altCodes Alternating codes and names of the unit [can be null]. * @param plural Plural form of the name (e.g. "feet" instead of "foot") * [can be null] * @param usName U.S. spelling of the name (e.g. "meter" instead of "metre") * [can be null] */ private Units( UnitType type, double scale, double offset, String symbol, boolean isSymbolDesc, String name, DefCvt defCvt, String[] altCodes, String plural, String usName) { assert(type != null); assert(symbol != null); assert(name != null); assert(defCvt != null); this.type = type; this.scale = scale; this.offset = offset; this.symbol = symbol; this.isSymbolDesc = isSymbolDesc; this.name = name; this.altCodes = altCodes; this.defaultConv = defCvt; this.plural = plural; this.usName = usName; } public final double getScale() { return scale; } public final double getOffset() { return offset; } public final String getSymbol() { return symbol; } public final String getName() { if (isSymbolDesc) { return symbol; } return name; } public final String[] getAltCodes() { return altCodes; } public final DefCvt getDefaultCvt() { return defaultConv; } /** * Gets the plural form of the Unit (e.g. "feet" is the plural of "foot"). * When no specific plural was set, the regular name with an appended "s" is * returned. * * @return The plural form of the Unit name. */ public final String getPluralName() { if (isSymbolDesc) { return symbol; } if (plural == null) { return name + "s"; } return plural; } /** * Gets the U.S. name if available (e.g. "meter" instead of "metre"). * * @return The U.S. name or null if not available. */ public final String getUsName() { return usName; } /** * Searches the Unit according to the given name. * * @param name The official name, symbol or alternating code for the Unit. * @return The Unit corresponding to the name or null if no match was found. */ public static Units searchUnitFromName(final String name) { if(NAME_CODE_MAP.containsKey(name)) { return NAME_CODE_MAP.get(name); } for (Units ut : Units.values()) { if (name.equals(ut.getSymbol())) { return ut; } } return null; } /** * Checks if two units are from the same type (e.g. UnitType.LENGTH). * * @param a The first unit for comparison. * @param b The second unit for comparison. * @return True if the type of the units are equal. */ public static boolean isSameUnitType(final Units a, final Units b) { return (a.type == b.type); } private static enum UnitType { ABSORBED_RADIATION_DOSE, ACCELERATION, AREA, AREA_PER_UNIT_AREA, CENT, CHARGE, CHEMICAL_AMOUNT, CO2_PER_UNIT_VOLUME, DENSITY, ENERGY, LENGTH, MASS, TEMPERATURE, } } core/000077500000000000000000000000001335270560400421375ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/extCorePfnBehaviorSwitch.java000066400000000000000000000040031335270560400471750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtPageSwitch; public abstract class CorePfnBehaviorSwitch extends ParserFunctionBase { private static final long serialVersionUID = 1L; // ========================================================================= /** * For un-marshaling only. */ public CorePfnBehaviorSwitch(String name) { // Page Switches don't take arguments so don't waste time with funny // conversions. super(PfnArgumentMode.TEMPLATE_ARGUMENTS, name); } public CorePfnBehaviorSwitch(WikiConfig wikiConfig, String name) { // Page Switches don't take arguments so don't waste time with funny // conversions. super(wikiConfig, PfnArgumentMode.TEMPLATE_ARGUMENTS, name); } // ========================================================================= @Override public final WtNode invoke( WtNode pageSwitch, ExpansionFrame frame, List argsValues) { return invoke((WtPageSwitch) pageSwitch, frame); } protected abstract WtNode invoke(WtPageSwitch var, ExpansionFrame frame); } CorePfnBehaviorSwitches.java000066400000000000000000000040641335270560400475340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; public class CorePfnBehaviorSwitches extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnBehaviorSwitches(WikiConfig wikiConfig) { super("Core - Variables - Behavior Switches"); } public static CorePfnBehaviorSwitches group(WikiConfig wikiConfig) { return new CorePfnBehaviorSwitches(wikiConfig); } // ========================================================================= // == // == WtTable of contents // == ----------------- // == TODO: __NOTOC__ // == TODO: __FORCETOC__ // == TODO: __TOC__ // == // == Editing // == ------- // == TODO: __NOEDITSECTION__ // == TODO: __NEWSECTIONLINK__ // == TODO: __NONEWSECTIONLINK__ // == // == Categories // == ---------- // == TODO: __NOGALLERY__ // == TODO: __HIDDENCAT__ // == // == Language conversion // == ------------------- // == TODO: __NOCONTENTCONVERT__, __NOCC__ // == TODO: __NOTITLECONVERT__, __NOTC__ // == // == Other // == ----- // == TODO: __START__ // == TODO: __END__ // == TODO: __INDEX__ // == TODO: __NOINDEX__ // == TODO: __STATICREDIRECT__ // == // ========================================================================= } CorePfnFunction.java000066400000000000000000000040441335270560400460460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; public abstract class CorePfnFunction extends ParserFunctionBase { private static final long serialVersionUID = 1L; // ========================================================================= /** * For un-marshaling only. */ public CorePfnFunction(PfnArgumentMode argMode, String name) { super(argMode, name); } /** * For un-marshaling only. */ public CorePfnFunction(String name) { super(name); } public CorePfnFunction( WikiConfig wikiConfig, PfnArgumentMode argMode, String name) { super(wikiConfig, argMode, name); } public CorePfnFunction(WikiConfig wikiConfig, String name) { super(wikiConfig, name); } // ========================================================================= @Override public final WtNode invoke( WtNode pfn, ExpansionFrame frame, List argsValues) { return invoke((WtTemplate) pfn, frame, argsValues); } public abstract WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List argsValues); } CorePfnFunctionsFormatting.java000066400000000000000000000210541335270560400502640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.utils.ApplyToText; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class CorePfnFunctionsFormatting extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnFunctionsFormatting(WikiConfig wikiConfig) { super("Core - Parser Functions - Formatting"); addParserFunction(new LcPfn(wikiConfig)); addParserFunction(new LcFirstPfn(wikiConfig)); addParserFunction(new UcPfn(wikiConfig)); addParserFunction(new UcFirstPfn(wikiConfig)); addParserFunction(new PadLeftPfn(wikiConfig)); } public static CorePfnFunctionsFormatting group(WikiConfig wikiConfig) { return new CorePfnFunctionsFormatting(wikiConfig); } // ========================================================================= // == // == TODO: {{formatnum:unformatted num}} // == {{formatnum:formatted num|R}} // == TODO: {{#dateformat:date}} // == {{#formatdate:date}} // == {{#dateformat:date|format}} // == {{#formatdate:date|format}} // == // ========================================================================= // ========================================================================= // == // == {{lc:string}} // == // ========================================================================= public static final class LcPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public LcPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "lc"); } public LcPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "lc"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 1) return nf().list(); new ApplyToText(new ApplyToText.Functor() { @Override public String apply(String text) { return text.toLowerCase(); } }).go(args.get(0)); return args.get(0); } } // ========================================================================= // == // == {{lcfirst:string}} // == // ========================================================================= public static final class LcFirstPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public LcFirstPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "lcfirst"); } public LcFirstPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "lcfirst"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 1) return nf().list(); new ApplyToText(new ApplyToText.Functor() { @Override public String apply(String text) { if (text.isEmpty()) return text; return text.substring(0, 1).toLowerCase() + text.substring(1); } }).go(args.get(0)); return args.get(0); } } // ========================================================================= // == // == {{uc:string}} // == // ========================================================================= public static final class UcPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public UcPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "uc"); } public UcPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "uc"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 1) return nf().list(); new ApplyToText(new ApplyToText.Functor() { @Override public String apply(String text) { return text.toUpperCase(); } }).go(args.get(0)); return args.get(0); } } // ========================================================================= // == // == {{ucfirst:string}} // == // ========================================================================= public static final class UcFirstPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public UcFirstPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "ucfirst"); } public UcFirstPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "ucfirst"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 1) return nf().list(); new ApplyToText(new ApplyToText.Functor() { @Override public String apply(String text) { if (text.isEmpty()) return text; return text.substring(0, 1).toUpperCase() + text.substring(1); } }).go(args.get(0)); return args.get(0); } } // ========================================================================= // == // == {{padleft:xyz|stringlength}} // == {{padleft:xyz|strlen|char}} // == {{padleft:xyz|strlen|string}} // == // ========================================================================= public static final class PadLeftPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public PadLeftPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "padleft"); } public PadLeftPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "padleft"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return nf().list(); WtNode arg0 = frame.expand(args.get(0)); if (args.size() < 2) return arg0; int len; String text; String padStr = "0"; try { text = tu().astToText(arg0).trim(); WtNode arg1 = frame.expand(args.get(1)); String lenStr = tu().astToText(arg1).trim(); len = Integer.parseInt(lenStr); if (len <= 0) return arg0; if (args.size() >= 3) { WtNode arg2 = frame.expand(args.get(2)); try { padStr = tu().astToText(arg2);//.trim(); /* Trimming the pad string can lead to division by zero * divisions. Of course an empty pad string doesn't make * sense. But I'm not sure, if the pad string should * be trimmed in the first place. After all, padding with * spaces makes perfect sense... */ } catch (StringConversionException e) { } if (padStr.isEmpty()) return arg0; } } catch (StringConversionException e) { return arg0; } catch (NumberFormatException e) { return arg0; } int padLen = len - text.length(); if (padLen <= 0) return arg0; int repeat = 1 + ((padLen - 1) / padStr.length()); String padding = StringUtils.repeat(padStr, repeat); padding = padding.substring(0, padLen); return nf().text(padding + text); } } // ========================================================================= // == // == TODO: {{padright:xyz|stringlength}} // == {{padright:xyz|strlen|char}} // == {{padright:xyz|strlen|string}} // == // ========================================================================= } CorePfnFunctionsLocalization.java000066400000000000000000000034321335270560400506020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; public class CorePfnFunctionsLocalization extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnFunctionsLocalization(WikiConfig wikiConfig) { super("Core - Parser Functions - Localization"); } public static CorePfnFunctionsLocalization group(WikiConfig wikiConfig) { return new CorePfnFunctionsLocalization(wikiConfig); } // ========================================================================= // == // == TODO: {{plural:2|is|are}} // == TODO: {{grammar:N|noun}} // == TODO: {{gender:username // == |return text if user is male // == |return text if user is female // == |return text if user hasn't defined their gender // == }} // == TODO: {{int:message name}} // == TODO: {{int:editsectionhint|MediaWiki}} // == // ========================================================================= } CorePfnFunctionsMiscellaneous.java000066400000000000000000000122661335270560400507620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import java.util.ListIterator; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.utils.StringConversionException; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import de.fau.cs.osr.utils.XmlGrammar; public class CorePfnFunctionsMiscellaneous extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnFunctionsMiscellaneous(WikiConfig wikiConfig) { super("Core - Parser Functions - Miscellaneous"); addParserFunction(new TagPfn(wikiConfig)); } public static CorePfnFunctionsMiscellaneous group(WikiConfig wikiConfig) { return new CorePfnFunctionsMiscellaneous(wikiConfig); } // ========================================================================= // == // == TODO: {{#language:language code}} // == {{#language:ar}} // == {{#language:language code|target language code}} // == {{#language:ar|en}} // == TODO: {{#special:special page name}} // == {{#special:userlogin}} // == TODO: {{#speciale:special page name}} // == {{#speciale:userlogin}} // == // ========================================================================= // ========================================================================= // == // == TODO: {{#tag:tagname // == |content // == |attribute1=value1 // == |attribute2=value2 // == }} // == // ========================================================================= public static final class TagPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public TagPfn() { super(PfnArgumentMode.TEMPLATE_ARGUMENTS, "tag"); } public TagPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.TEMPLATE_ARGUMENTS, "tag"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List argsValues) { if (argsValues.size() < 2) return pfn; WtTemplateArgument nameNode = (WtTemplateArgument) argsValues.get(0); String nameStr; try { WtNode expNameNode = frame.expand(nameNode.getValue()); nameStr = tu().astToText(expNameNode).trim(); } catch (StringConversionException e) { return pfn; } // FIXME: Meld 'name=' part into value // FIXME: Do something about the "remove comments" hack WtTemplateArgument bodyNode = (WtTemplateArgument) argsValues.get(1); WtNode expValueNode = frame.expand(bodyNode.getValue()); expValueNode = stripComments(expValueNode); String bodyStr = WtRtDataPrinter.print(expValueNode); WtNodeList attrs = nf().list(); for (int i = 2; i < argsValues.size(); ++i) { WtTemplateArgument arg = (WtTemplateArgument) argsValues.get(i); WtNode argNameNode = frame.expand(arg.getName()); WtNode argValueNode = frame.expand(arg.getValue()); if (argNameNode == null || argValueNode == null) continue; String argName; String argValue; try { argName = tu().astToText(argNameNode); argValue = tu().astToText(argValueNode); } catch (StringConversionException e) { continue; } if (!XmlGrammar.xmlName().matcher(argName).matches()) continue; WtNodeList argValueList = nf().list(nf().text(argValue)); attrs.add(nf().attr( nf().name(nf().list(nf().text(argName))), nf().value(argValueList))); } WtTagExtension tagExt = EngineRtData.set(nf().tagExt( nameStr, nf().attrs(attrs), nf().tagExtBody(bodyStr))); return frame.expand(tagExt); } private WtNode stripComments(WtNode n) { ListIterator i = n.listIterator(); while (i.hasNext()) { WtNode child = i.next(); switch (child.getNodeType()) { case WtNode.NT_XML_COMMENT: case WtNode.NT_IGNORED: i.remove(); break; default: if (!child.isEmpty()) stripComments(child); } } return n; } } } CorePfnFunctionsNamespaces.java000066400000000000000000000056141335270560400502350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class CorePfnFunctionsNamespaces extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnFunctionsNamespaces(WikiConfig wikiConfig) { super("Core - Parser Functions - Namespaces"); addParserFunction(new NsPfn(wikiConfig)); } public static CorePfnFunctionsNamespaces group(WikiConfig wikiConfig) { return new CorePfnFunctionsNamespaces(wikiConfig); } // ========================================================================= // == // == {{ns:index}} // == {{ns:canonical name}} // == {{ns:local alias}} // == // ========================================================================= public static final class NsPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public NsPfn() { super("ns"); } public NsPfn(WikiConfig wikiConfig) { super(wikiConfig, "ns"); } @Override public WtNode invoke( WtTemplate wtTemplate, ExpansionFrame preprocessorFrame, List args) { if (args.size() < 0) return null; WtNode arg0 = preprocessorFrame.expand(args.get(0)); String arg; try { arg = tu().astToText(arg0).trim(); } catch (StringConversionException e1) { return null; } Namespace namespace = preprocessorFrame.getWikiConfig().getNamespace(arg); if (namespace == null) { int ns; try { ns = Integer.parseInt(arg); } catch (NumberFormatException e) { return null; } namespace = preprocessorFrame.getWikiConfig().getNamespace(ns); } String result = ""; if (namespace != null) result = namespace.getName(); return nf().text(result); } } } CorePfnFunctionsUrlData.java000066400000000000000000000230021335270560400475010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.IllegalArgumentsWarning; import org.sweble.wikitext.engine.InvalidNameWarning; import org.sweble.wikitext.engine.InvalidPagenameWarning; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.engine.utils.UrlEncoding; import org.sweble.wikitext.engine.utils.UrlType; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; public class CorePfnFunctionsUrlData extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnFunctionsUrlData(WikiConfig wikiConfig) { super("Core - Parser Functions - URL data"); addParserFunction(new FullurlPfn(wikiConfig)); addParserFunction(new FilepathPfn(wikiConfig)); addParserFunction(new UrlencodePfn(wikiConfig)); } public static CorePfnFunctionsUrlData group(WikiConfig wikiConfig) { return new CorePfnFunctionsUrlData(wikiConfig); } // ========================================================================= // == // == TODO: {{localurl:page name}} // == {{localurl:page name|query_string}} // == // ========================================================================= // ========================================================================= // == // == {{fullurl:page name}} // == {{fullurl:page name|query_string}} // == {{fullurl:interwiki:remote page name|query_string}} // == // ========================================================================= public static final class FullurlPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public FullurlPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "fullurl"); } public FullurlPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "fullurl"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List argsValues) { if (argsValues.size() < 1) { frame.fileWarning( new IllegalArgumentsWarning( WarningSeverity.NORMAL, getClass(), "Parser function was called with too few arguments!", pfn)); return pfn; } else if (argsValues.size() > 2) { frame.fileWarning( new IllegalArgumentsWarning( WarningSeverity.NONE, getClass(), "Parser function was called with too many arguments!", pfn)); } WtNode titleNode = argsValues.get(0); String titleStr; try { titleStr = tu().astToText(titleNode); } catch (StringConversionException e1) { frame.fileWarning( new InvalidNameWarning( WarningSeverity.NORMAL, getClass(), titleNode)); return pfn; } PageTitle title; try { title = PageTitle.make(frame.getWikiConfig(), titleStr); } catch (LinkTargetException e) { try { titleStr = URLDecoder.decode(titleStr, "UTF-8"); title = PageTitle.make(frame.getWikiConfig(), titleStr); } catch (LinkTargetException e2) { frame.fileWarning( new InvalidPagenameWarning( WarningSeverity.NORMAL, getClass(), titleNode, titleStr)); return pfn; } catch (UnsupportedEncodingException e2) { frame.fileWarning( new InvalidNameWarning( WarningSeverity.NORMAL, getClass(), titleNode)); return pfn; } } String queryStr = null; if (argsValues.size() >= 2) { WtNode queryNode = argsValues.get(1); try { queryStr = tu().astToText(queryNode); } catch (StringConversionException e) { frame.fileWarning( new InvalidNameWarning( WarningSeverity.NORMAL, getClass(), queryNode)); } } Namespace ns = title.getNamespace(); if (ns.isMediaNs()) title = title.newWithNamespace(frame.getWikiConfig().getFileNamespace()); URL titleUrl; try { titleUrl = title.getUrl(queryStr); } catch (MalformedURLException e) { // Try without query string ... titleUrl = title.getUrl(); frame.fileWarning( new InvalidNameWarning( WarningSeverity.NORMAL, getClass(), pfn)); } URL url = frame.getUrlService().convertUrl( UrlType.FULL, titleUrl); return nf().text(url.toExternalForm()); } } // ========================================================================= // == // == TODO: {{canonicalurl:page name}} // == {{canonicalurl:page name|query_string}} // == {{canonicalurl:interwiki:remote page name|query_string}} // == // ========================================================================= // ========================================================================= // == // == {{filepath:file name}} // == {{filepath:file name|nowiki}} // == {{filepath:file name|thumbnail_size}} // == // ========================================================================= public static final class FilepathPfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public FilepathPfn() { super("filepath"); } public FilepathPfn(WikiConfig wikiConfig) { super(wikiConfig, "filepath"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return pfn; PageTitle title; try { String titleStr = tu().astToText(args.get(0)).trim(); title = PageTitle.make(frame.getWikiConfig(), titleStr); title = title.newWithNamespace(frame.getWikiConfig().getFileNamespace()); } catch (StringConversionException e1) { return pfn; } catch (LinkTargetException e) { return pfn; } int size = -1; boolean nowiki = false; if (args.size() > 1) { try { String opt1 = tu().astToText(args.get(1)).trim(); String opt2 = null; if (args.size() > 2) opt2 = tu().astToText(args.get(2)).trim(); String sizeStr = opt1; if ("nowiki".equals(opt1)) { nowiki = true; sizeStr = opt2; } else if ("nowiki".equals(opt2)) { nowiki = true; } if (sizeStr != null) size = Integer.parseInt(sizeStr); } catch (StringConversionException e) { } catch (NumberFormatException e) { } } String url; try { url = frame.getCallback().fileUrl(title, size, -1); } catch (Exception e) { return pfn; } if (url == null) return nf().text(""); return nowiki ? EngineRtData.set(nf().nowiki(url)) : nf().text(url); } } // ========================================================================= // == // == {{urlencode:string}} (or {{urlencode:string|QUERY}}) // == {{urlencode:string|WIKI}} // == {{urlencode:string|PATH}} // == // ========================================================================= public static final class UrlencodePfn extends CorePfnFunction { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public UrlencodePfn() { super("urlencode"); } public UrlencodePfn(WikiConfig wikiConfig) { super(wikiConfig, "urlencode"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return pfn; String text; try { text = tu().astToText(args.get(0)).trim(); } catch (StringConversionException e1) { return pfn; } UrlEncoding encoder = UrlEncoding.QUERY; if (args.size() > 1) { try { String encoderName = tu().astToText(args.get(1)).trim(); encoder = UrlEncoding.valueOf(encoderName.toUpperCase()); } catch (StringConversionException e) { } catch (IllegalArgumentException e) { } } return nf().text(encoder.encode(text)); } } // ========================================================================= // == // == TODO: {{anchorencode:string}} // == // ========================================================================= } CorePfnVariable.java000066400000000000000000000046171335270560400460140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; public abstract class CorePfnVariable extends ParserFunctionBase { private static final long serialVersionUID = 1L; // ========================================================================= /** * For un-marshaling only. */ public CorePfnVariable(String name) { // Most variables don't take arguments so don't waste time with funny // conversions. super(PfnArgumentMode.TEMPLATE_ARGUMENTS, name); } /** * For un-marshaling only. */ public CorePfnVariable(PfnArgumentMode argMode, String name) { super(argMode, name); } public CorePfnVariable(WikiConfig wikiConfig, String name) { // Most variables don't take arguments so don't waste time with funny // conversions. super(wikiConfig, PfnArgumentMode.TEMPLATE_ARGUMENTS, name); } public CorePfnVariable( WikiConfig wikiConfig, PfnArgumentMode argMode, String name) { super(wikiConfig, argMode, name); } // ========================================================================= @Override public final WtNode invoke( WtNode var, ExpansionFrame frame, List argsValues) { return invoke((WtTemplate) var, frame, argsValues); } public WtNode invoke( WtTemplate var, ExpansionFrame frame, List argsValues) { return invoke(var, frame); } protected WtNode invoke(WtTemplate var, ExpansionFrame frame) { return var; } } CorePfnVariablesDateAndTime.java000066400000000000000000000110721335270560400502300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.Calendar; import java.util.GregorianCalendar; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; public class CorePfnVariablesDateAndTime extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnVariablesDateAndTime(WikiConfig wikiConfig) { super("Core - Variables - Date and Time"); addParserFunction(new CurrentYearPfn(wikiConfig)); addParserFunction(new CurrentMonthPfn(wikiConfig)); addParserFunction(new CurrentDayPfn(wikiConfig)); } public static CorePfnVariablesDateAndTime group(WikiConfig wikiConfig) { return new CorePfnVariablesDateAndTime(wikiConfig); } // ========================================================================= // == // == {{CURRENTYEAR}} // == // ========================================================================= public static final class CurrentYearPfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public CurrentYearPfn() { super("currentyear"); } public CurrentYearPfn(WikiConfig wikiConfig) { super(wikiConfig, "currentyear"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { Calendar cal = getWikiConfig().getRuntimeInfo().getDateAndTime(); return nf().text(String.valueOf(cal.get(GregorianCalendar.YEAR))); } } // ========================================================================= // == // == TODO: {{CURRENTMONTH}} // == // ========================================================================= public static final class CurrentMonthPfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public CurrentMonthPfn() { super("currentmonth"); } public CurrentMonthPfn(WikiConfig wikiConfig) { super(wikiConfig, "currentmonth"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { Calendar cal = getWikiConfig().getRuntimeInfo().getDateAndTime(); return nf().text(String.format("%02d", cal.get(GregorianCalendar.MONTH) + 1)); } } // ========================================================================= // == // == TODO: {{CURRENTMONTHNAME}} // == TODO: {{CURRENTMONTHNAMEGEN}} // == TODO: {{CURRENTMONTHABBREV}} // == // ========================================================================= // ========================================================================= // == // == TODO: {{CURRENTDAY}} // == // ========================================================================= public static final class CurrentDayPfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public CurrentDayPfn() { super("currentday"); } public CurrentDayPfn(WikiConfig wikiConfig) { super(wikiConfig, "currentday"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { Calendar cal = getWikiConfig().getRuntimeInfo().getDateAndTime(); return nf().text(String.valueOf(cal.get(GregorianCalendar.DAY_OF_MONTH))); } } // ========================================================================= // == // == TODO: {{CURRENTDAY2}} // == TODO: {{CURRENTDOW}} // == TODO: {{CURRENTDAYNAME}} // == // == Time // == ---- // == TODO: {{CURRENTTIME}} // == TODO: {{CURRENTHOUR}} // == // == Other // == ----- // == TODO: {{CURRENTWEEK}} // == TODO: {{CURRENTTIMESTAMP}} // == // ========================================================================= } CorePfnVariablesNamespaces.java000066400000000000000000000123631335270560400501740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; public class CorePfnVariablesNamespaces extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnVariablesNamespaces(WikiConfig wikiConfig) { super("Core - Variables - Namespaces"); addParserFunction(new NamespacePfn(wikiConfig)); addParserFunction(new TalkspacePfn(wikiConfig)); addParserFunction(new SubjectspacePfn(wikiConfig)); } public static CorePfnVariablesNamespaces group(WikiConfig wikiConfig) { return new CorePfnVariablesNamespaces(wikiConfig); } // ========================================================================= // == // == {{NAMESPACE}} // == // ========================================================================= public static final class NamespacePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public NamespacePfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "namespace"); } public NamespacePfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "namespace"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List argsValues) { PageTitle title; if (argsValues.size() > 0) { WtNode titleNode = argsValues.get(0); try { String titleStr = tu().astToText(titleNode); title = PageTitle.make(frame.getWikiConfig(), titleStr); } catch (StringConversionException e) { return var; } catch (LinkTargetException e) { return var; } } else { title = frame.getRootFrame().getTitle(); } return nf().text(title.getNamespace().getName()); } } // ========================================================================= // == // == TODO: {{NAMESPACEE}} // == TODO: {{NAMESPACENUMBER}} // == // ========================================================================= // ========================================================================= // == // == TODO: {{SUBJECTSPACE}}, {{ARTICLESPACE}} // == // ========================================================================= public static final class SubjectspacePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public SubjectspacePfn() { super("subjectspace"); } public SubjectspacePfn(WikiConfig wikiConfig) { super(wikiConfig, "subjectspace"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { PageTitle title = frame.getRootFrame().getTitle(); Namespace talkNs = frame.getWikiConfig().getSubjectNamespaceFor(title.getNamespace()); return nf().text(talkNs.getName()); } } // ========================================================================= // == // == TODO: {{SUBJECTSPACEE}}, {{ARTICLESPACEE}} // == // ========================================================================= // ========================================================================= // == // == {{TALKSPACE}} // == // ========================================================================= public static final class TalkspacePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public TalkspacePfn() { super("talkspace"); } public TalkspacePfn(WikiConfig wikiConfig) { super(wikiConfig, "talkspace"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { PageTitle title = frame.getRootFrame().getTitle(); Namespace talkNs = frame.getWikiConfig().getTalkNamespaceFor(title.getNamespace()); return nf().text(talkNs.getName()); } } // ========================================================================= // == // == TODO: {{TALKSPACEE}} // == // ========================================================================= } CorePfnVariablesPageNames.java000066400000000000000000000232361335270560400477560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.Namespace; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.utils.UrlEncoding; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; public class CorePfnVariablesPageNames extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnVariablesPageNames(WikiConfig wikiConfig) { super("Core - Variables - Page names"); addParserFunction(new FullPagenamePfn(wikiConfig)); addParserFunction(new FullPagenameePfn(wikiConfig)); addParserFunction(new PagenamePfn(wikiConfig)); addParserFunction(new PagenameePfn(wikiConfig)); addParserFunction(new BasePagenamePfn(wikiConfig)); addParserFunction(new SubjectPagenamePfn(wikiConfig)); addParserFunction(new TalkPagenamePfn(wikiConfig)); } public static CorePfnVariablesPageNames group(WikiConfig wikiConfig) { return new CorePfnVariablesPageNames(wikiConfig); } // ========================================================================= // == // == {{FULLPAGENAME}} // == // ========================================================================= public static final class FullPagenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public FullPagenamePfn() { super("fullpagename"); } public FullPagenamePfn(WikiConfig wikiConfig) { super(wikiConfig, "fullpagename"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { return nf().text(frame.getRootFrame().getTitle().getDenormalizedFullTitle()); } } // ========================================================================= // == // == {{FULLPAGENAMEE}} // == // ========================================================================= public static final class FullPagenameePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public FullPagenameePfn() { super("fullpagenamee"); } public FullPagenameePfn(WikiConfig wikiConfig) { super(wikiConfig, "fullpagenamee"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { return nf().text(UrlEncoding.WIKI.encode(frame.getRootFrame().getTitle().getNormalizedFullTitle())); } } // ========================================================================= // == // == {{PAGENAME}} // == // ========================================================================= public static final class PagenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public PagenamePfn() { super("pagename"); } public PagenamePfn(WikiConfig wikiConfig) { super(wikiConfig, "pagename"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { return nf().text(frame.getRootFrame().getTitle().getDenormalizedTitle()); } } // ========================================================================= // == // == {{PAGENAMEE}} // == // ========================================================================= public static final class PagenameePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public PagenameePfn() { // FIXME: DIESEN FIX FUER ALLE! super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "pagenamee"); } public PagenameePfn(WikiConfig wikiConfig) { // FIXME: DIESEN FIX FUER ALLE! super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "pagenamee"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List argsValues) { PageTitle title = frame.getRootFrame().getTitle(); if (!argsValues.isEmpty()) { try { String titleStr = tu().astToText(argsValues.get(0)).trim(); title = PageTitle.make(frame.getWikiConfig(), titleStr); } catch (StringConversionException e) { return var; } catch (LinkTargetException e) { return var; } } String link = title.getTitle(); return nf().text(UrlEncoding.WIKI.encode(link)); } } // ========================================================================= // == // == {{BASEPAGENAME}} // == // ========================================================================= public static final class BasePagenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public BasePagenamePfn() { super("basepagename"); } public BasePagenamePfn(WikiConfig wikiConfig) { super(wikiConfig, "basepagename"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { return nf().text(frame.getRootFrame().getTitle().getBaseTitle().getDenormalizedFullTitle()); } } // ========================================================================= // == // == TODO: {{BASEPAGENAMEE}} // == TODO: {{SUBPAGENAME}} // == TODO: {{SUBPAGENAMEE}} // == // ========================================================================= // ========================================================================= // == // == {{SUBJECTPAGENAME}}, {{ARTICLEPAGENAME}} // == // ========================================================================= public static final class SubjectPagenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public SubjectPagenamePfn() { super("subjectpagename"); } public SubjectPagenamePfn(WikiConfig wikiConfig) { super(wikiConfig, "subjectpagename"); } @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { return invokeStatic(frame); } protected WtNode invokeStatic(ExpansionFrame frame) { WikiConfig config = frame.getWikiConfig(); PageTitle title = frame.getRootFrame().getTitle(); Namespace ns = title.getNamespace(); Namespace subjectNs = config.getSubjectNamespaceFor(ns); if (subjectNs != ns) title = title.newWithNamespace(subjectNs); return nf().text(title.getDenormalizedFullTitle()); } } // ========================================================================= // == // == TODO: {{SUBJECTPAGENAMEE}}, {{ARTICLEPAGENAMEE}} // == // ========================================================================= // ========================================================================= // == // == {{TALKPAGENAME}} // == // ========================================================================= public static final class TalkPagenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public TalkPagenamePfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "talkpagename"); } public TalkPagenamePfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "talkpagename"); } /* @Override protected final WtNode invoke(WtTemplate var, ExpansionFrame frame) { WikiConfig config = frame.getWikiConfig(); PageTitle title = frame.getRootFrame().getTitle(); Namespace ns = title.getNamespace(); Namespace talkNs = config.getTalkNamespaceFor(ns); if (talkNs != ns) title = title.newWithNamespace(talkNs); return nf().text(title.getDenormalizedFullTitle()); } */ @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List argsValues) { PageTitle title = frame.getRootFrame().getTitle(); if (!argsValues.isEmpty()) { try { String titleStr = tu().astToText(argsValues.get(0)).trim(); title = PageTitle.make(frame.getWikiConfig(), titleStr); } catch (StringConversionException e) { return var; } catch (LinkTargetException e) { return var; } } //String link = title.getTitle(); //return nf().text(UrlEncoding.WIKI.encode(link)); WikiConfig config = frame.getWikiConfig(); Namespace ns = title.getNamespace(); Namespace talkNs = config.getTalkNamespaceFor(ns); if (talkNs != ns) title = title.newWithNamespace(talkNs); return nf().text(title.getDenormalizedFullTitle()); } } // ========================================================================= // == // == TODO: {{TALKPAGENAMEE}} // == // ========================================================================= } CorePfnVariablesStatistics.java000066400000000000000000000036341335270560400502500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; public class CorePfnVariablesStatistics extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnVariablesStatistics(WikiConfig wikiConfig) { super("Core - Variables - Statistics"); } public static CorePfnVariablesStatistics group(WikiConfig wikiConfig) { return new CorePfnVariablesStatistics(wikiConfig); } // ========================================================================= // == // == Entire wiki // == -------------------- // == TODO: {{NUMBEROFPAGES}} // == TODO: {{NUMBEROFARTICLES}} // == TODO: {{NUMBEROFFILES}} // == TODO: {{NUMBEROFEDITS}} // == TODO: {{NUMBEROFVIEWS}} // == TODO: {{NUMBEROFUSERS}} // == TODO: {{NUMBEROFADMINS}} // == TODO: {{NUMBEROFACTIVEUSERS}} // == TODO: {{PAGESINCATEGORY:categoryname}}, {{PAGESINCAT:Help}} // == TODO: {{NUMBERINGROUP:groupname}}, {{NUMINGROUP:groupname}} // == TODO: {{PAGESINNS:index}}, {{PAGESINNAMESPACE:index}} // == // ========================================================================= } CorePfnVariablesTechnicalMetadata.java000066400000000000000000000140401335270560400514420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/core/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.core; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; public class CorePfnVariablesTechnicalMetadata extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected CorePfnVariablesTechnicalMetadata(WikiConfig wikiConfig) { super("Core - Variables - Technical Metadata"); addParserFunction(new SitenamePfn(wikiConfig)); addParserFunction(new ContentLanguagePfn(wikiConfig)); addParserFunction(new ProtectionLevelPfn(wikiConfig)); addParserFunction(new DefaultsortPfn(wikiConfig)); } public static CorePfnVariablesTechnicalMetadata group(WikiConfig wikiConfig) { return new CorePfnVariablesTechnicalMetadata(wikiConfig); } // ========================================================================= // == // == Site // == ---- // == TODO: {{SITENAME}} // == // ========================================================================= public static final class SitenamePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public SitenamePfn() { super("sitename"); } public SitenamePfn(WikiConfig wikiConfig) { super(wikiConfig, "sitename"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List args) { return nf().text(frame.getWikiConfig().getSiteName()); } } // ========================================================================= // == // == TODO: {{SERVER}} // == TODO: {{SERVERNAME}} // == TODO: {{DIRMARK}}, {{DIRECTIONMARK}} // == TODO: {{SCRIPTPATH}} // == TODO: {{STYLEPATH}} // == TODO: {{CURRENTVERSION}} // == // ========================================================================= // ========================================================================= // == // == {{CONTENTLANGUAGE}}, {{CONTENTLANG}} // == // ========================================================================= public static final class ContentLanguagePfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ContentLanguagePfn() { super("contentlanguage"); } public ContentLanguagePfn(WikiConfig wikiConfig) { super(wikiConfig, "contentlanguage"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List args) { return nf().text(frame.getWikiConfig().getContentLanguage()); } } // ========================================================================= // == // == Latest revision to current page // == ------------------------------- // == TODO: {{REVISIONID}} // == TODO: {{REVISIONDAY}} // == TODO: {{REVISIONDAY2}} // == TODO: {{REVISIONMONTH}} // == TODO: {{REVISIONMONTH1}} // == TODO: {{REVISIONYEAR}} // == TODO: {{REVISIONTIMESTAMP}} // == TODO: {{REVISIONUSER}} // == TODO: {{PAGESIZE:page name}}, {{PAGESIZE:page name|R}} // == // ========================================================================= // ========================================================================= // == // == {{PROTECTIONLEVEL:action}} // == // ========================================================================= public static final class ProtectionLevelPfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ProtectionLevelPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "protectionlevel"); } public ProtectionLevelPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "protectionlevel"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List args) { // FIXME: Proper implementation: return nf().list(); } } // ========================================================================= // == // == Affects page content // == -------------------- // == TODO: {{DISPLAYTITLE:title}} // == // ========================================================================= // ========================================================================= // == // == TODO: {{DEFAULTSORT:sortkey}}, {{DEFAULTSORTKEY:sortkey}}, // == {{DEFAULTCATEGORYSORT:sortkey}}, {{DEFAULTSORT:sortkey|noerror}}, // == {{DEFAULTSORT:sortkey|noreplace}} // == // ========================================================================= public static final class DefaultsortPfn extends CorePfnVariable { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public DefaultsortPfn() { super(PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "defaultsort"); } public DefaultsortPfn(WikiConfig wikiConfig) { super(wikiConfig, PfnArgumentMode.EXPANDED_AND_TRIMMED_VALUES, "defaultsort"); } @Override public WtNode invoke( WtTemplate var, ExpansionFrame frame, List args) { // FIXME: Proper implementation: return nf().list(); } } } math/000077500000000000000000000000001335270560400421405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/extMathTagExt.java000066400000000000000000000043271335270560400450170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/math/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.math; import java.util.Map; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.TagExtensionBase; import org.sweble.wikitext.engine.config.TagExtensionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; public class MathTagExt extends TagExtensionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected MathTagExt(WikiConfig wikiConfig) { super("Extension - Math"); addTagExtension(new MathTagExtImpl(wikiConfig)); } public static MathTagExt group(WikiConfig wikiConfig) { return new MathTagExt(wikiConfig); } // ========================================================================= // == // == // == // ========================================================================= public static final class MathTagExtImpl extends TagExtensionBase { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public MathTagExtImpl() { super("math"); } public MathTagExtImpl(WikiConfig wikiConfig) { super(wikiConfig, "math"); } @Override public WtNode invoke( ExpansionFrame frame, WtTagExtension tagExt, Map attrs, WtTagExtensionBody body) { return null; } } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������parser_functions/�����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13352705604�0044573�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000�sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext����������������������������������������ExprParser.java�������������������������������������������������������������������������������������0000664�0000000�0000000�00000046366�13352705604�0047550�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000�sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions�����������������������/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class ExprParser { private static final int maxStackSize = 100; private static final Map TOKENS = new HashMap(); static { TOKENS.put("(", Token.LPAREN); TOKENS.put(")", Token.RPAREN); TOKENS.put("!=", Token.NEQ); TOKENS.put("*", Token.TIMES); TOKENS.put("+", Token.PLUS); //tokens.put("+", Token.POS); TOKENS.put("-", Token.MINUS); //tokens.put("-", Token.NEG); TOKENS.put("/", Token.DIVIDE); TOKENS.put("<", Token.LE); TOKENS.put("<=", Token.LEQ); TOKENS.put("<>", Token.NEQ); TOKENS.put("=", Token.EQ); TOKENS.put(">", Token.GR); TOKENS.put(">=", Token.GEQ); TOKENS.put("^", Token.POW); TOKENS.put("abs", Token.ABS); TOKENS.put("acos", Token.ARCCOS); TOKENS.put("and", Token.AND); TOKENS.put("asin", Token.ARCSINE); TOKENS.put("atan", Token.ARCTAN); TOKENS.put("ceil", Token.CEIL); TOKENS.put("cos", Token.COSINE); TOKENS.put("div", Token.DIVIDE); TOKENS.put("e", Token.E); //tokens.put("e", Token.SCIENTIFIC); TOKENS.put("exp", Token.EXP); TOKENS.put("floor", Token.FLOOR); TOKENS.put("ln", Token.LN); TOKENS.put("mod", Token.MOD); TOKENS.put("not", Token.NOT); TOKENS.put("or", Token.OR); TOKENS.put("pi", Token.PI); TOKENS.put("round", Token.ROUND); TOKENS.put("sin", Token.SINE); TOKENS.put("tan", Token.TANGENS); TOKENS.put("trunc", Token.TRUNC); } // ===================================================================== private final Stack operands = new Stack(); private final Stack operators = new Stack(); private Production expecting; // ===================================================================== /** * http://montcs.bloomu.edu/~bobmon/Information/RPN/infix2rpn.shtml * * @throws ExprError */ public String parse(String expr) throws ExprError { operands.clear(); operators.clear(); expecting = Production.EXPR; int i = 0; expr = unescape(expr); while (i < expr.length()) { if (operands.size() > maxStackSize || operators.size() > maxStackSize) throw new ExprError("operands_exhausted"); char ch = expr.charAt(i); if (isWs(ch)) { i = skipWs(expr, i); continue; } else if (isNumberChar(ch)) { expect(Production.EXPR, "unexpected_number"); i = pushOperand(expr, i); expecting = Production.OPERATOR; continue; } else { String word = null; Token token = null; if (isAlphaChar(ch)) { word = parseWordToken(expr, i).toLowerCase(); token = TOKENS.get(word); } else { if (i + 1 < expr.length()) { // Try two-character operators word = expr.substring(i, i + 2); token = TOKENS.get(word); } if (token == null) { // Try one-character operators word = "" + ch; token = TOKENS.get(word); } } if (token == null) throw new ExprError("Unrecognised word \"%s\".", word); i += word.length(); switch (token) { // -- Constants ---------------------------------------- case E: { if (expecting == Production.OPERATOR) { processBinaryOp(Token.SCIENTIFIC, word); continue; } // Fall through to handle constants } case PI: { if (expecting == Production.EXPR) { token.apply(operands); expecting = Production.OPERATOR; } continue; } // -- Unary operators ---------------------------------- case NOT: case SINE: case COSINE: case TANGENS: case ARCSINE: case ARCCOS: case ARCTAN: case EXP: case LN: case ABS: case FLOOR: case TRUNC: case CEIL: { expect(Production.EXPR, "unexpected_operator", word); operators.push(token); continue; } // -- Binary or Unary ---------------------------------- case PLUS: case MINUS: { if (expecting == Production.EXPR) { operators.push(token == Token.PLUS ? Token.POS : Token.NEG); } else { processBinaryOp(token, word); } continue; } // -- Binary operators --------------------------------- case EQ: case NEQ: case LE: case GR: case LEQ: case GEQ: case TIMES: case DIVIDE: case MOD: case POW: case ROUND: case AND: case OR: { processBinaryOp(token, word); continue; } // -- Parentheses -------------------------------------- case LPAREN: { expect(Production.EXPR, "unexpected_operator", word); operators.push(token); continue; } case RPAREN: { Token lastOp = null; while (!operators.isEmpty()) { lastOp = operators.peek(); if (lastOp == Token.LPAREN) break; lastOp.apply(operands); operators.pop(); } if (lastOp != Token.LPAREN) throw new ExprError("unexpected_closing_bracket"); operators.pop(); expecting = Production.OPERATOR; continue; } default: throw new AssertionError(); } } } while (!operators.isEmpty()) { Token op = operators.pop(); if (op == Token.LPAREN) throw new ExprError("unclosed_bracket"); op.apply(operands); } return implode("
\n", operands); } // ===================================================================== private String unescape(String expr) { expr = expr.replace("<", "<"); expr = expr.replace(">", ">"); expr = expr.replace("−", "-"); expr = expr.replace("\u2212", "-"); return expr; } // ===================================================================== private boolean isWs(char ch) { return Character.isWhitespace(ch); } private int skipWs(String expr, int i) { int j = i + 1; while (j < expr.length() && isWs(expr.charAt(j))) ++j; return j; } // ===================================================================== private boolean isNumberChar(char ch) { return ch == '.' || Character.isDigit(ch); } private int pushOperand(String expr, int i) { int j = i + 1; while (j < expr.length()) { char ch = expr.charAt(j); if (!isNumberChar(ch)) break; ++j; } try { operands.push(Double.parseDouble(expr.substring(i, j))); } catch (NumberFormatException e) { operands.push(0.); } return j; } // ===================================================================== private boolean isAlphaChar(char ch) { return Character.isLetter(ch); } private String parseWordToken(String expr, int i) { int j = i + 1; while (j < expr.length()) { char chx = expr.charAt(j); if (!isAlphaChar(chx)) break; ++j; } return expr.substring(i, j); } // ===================================================================== private void expect(Production p, String msg) throws ExprError { if (expecting != p) throw new ExprError(msg); } private void expect(Production p, String msg, String word) throws ExprError { if (expecting != p) throw new ExprError(msg, word); } // ===================================================================== private void processBinaryOp(Token op, String word) throws ExprError { expect(Production.OPERATOR, "unexpected_operator", word); while (!operators.isEmpty()) { Token lastOp = operators.peek(); if (op.getPrecedence() > lastOp.getPrecedence()) break; lastOp.apply(operands); operators.pop(); } operators.push(op); expecting = Production.EXPR; } // ===================================================================== private String implode(String serparator, Stack operands) { StringBuilder b = new StringBuilder(); for (int i = 0; i < operands.size();) { double result = operands.get(i); if (((double) (int) result) == result) b.append((int) result); else b.append(result); if (++i < operands.size()) b.append(serparator); } return b.toString(); } // ========================================================================= public static final class ExprError extends Exception { private static final long serialVersionUID = 1L; private final String param; public ExprError(String message) { this(message, null); } public ExprError(String message, String param) { super(makeMessage(message, param)); this.param = param; } private static String makeMessage(String message, String param) { String msg = message; if (param != null) msg = String.format(message, param); return "Expression error: " + msg; } public String getParam() { return param; } } // ========================================================================= private static enum Production { EXPR, OPERATOR; } // ========================================================================= private static enum Token { // -- Constants -- e, pi -- E(-1, "e") { @Override public void apply(Stack operands) throws ExprError { operands.push(Math.E); } }, PI(-1, "pi") { @Override public void apply(Stack operands) throws ExprError { operands.push(Math.PI); } }, // -- Binary -- 10e^x -- SCIENTIFIC(10, "e") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push(left * Math.pow(10, right)); } }, // -- Unary -- +, -, ! -- POS(10, "+") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); } }, NEG(10, "-") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(-arg); } }, NOT(9, "not") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push((arg == 0) ? 1. : 0.); } }, // -- Unary -- sin, cos, tan, atan, acos, atan -- SINE(9, "sin") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.sin(arg)); } }, COSINE(9, "cos") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.cos(arg)); } }, TANGENS(9, "tan") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.tan(arg)); } }, ARCSINE(9, "asin") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); if (arg < -1 || arg > 1) throw new ExprError("invalid_argument", toString()); operands.push(Math.asin(arg)); } }, ARCCOS(9, "acos") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); if (arg < -1 || arg > 1) throw new ExprError("invalid_argument", toString()); operands.push(Math.acos(arg)); } }, ARCTAN(9, "atan") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.atan(arg)); } }, // -- Unary -- e^x, ln(x) -- EXP(9, "exp") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.exp(arg)); } }, LN(9, "ln") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); if (arg <= 0) throw new ExprError("invalid_argument_ln", toString()); operands.push(Math.log(arg)); } }, // -- Unary -- abs, floor, trunc, ceil -- ABS(9, "abs") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.abs(arg)); } }, FLOOR(9, "floor") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.floor(arg)); } }, TRUNC(9, "trunc") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push((double) ((int) arg)); } }, CEIL(9, "ceil") { @Override public void apply(Stack operands) throws ExprError { requireOneOp(this, operands); double arg = operands.pop(); operands.push(Math.ceil(arg)); } }, // -- Binary -- -- POW(8, "^") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); double result = Math.pow(left, right); if (Double.isNaN(result)) throw new ExprError("division_by_zero", toString()); operands.push(result); } }, TIMES(7, "*") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push(left * right); } }, DIVIDE(7, "/") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); if (right == 0) throw new ExprError("division_by_zero", toString()); operands.push(left / right); } }, MOD(7, "mod") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); if (right == 0) throw new ExprError("division_by_zero", toString()); operands.push(left % right); } }, // -- Binary -- -- PLUS(6, "+") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push(left + right); } }, MINUS(6, "-") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push(left - right); } }, // -- Binary -- round -- ROUND(5, "round") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); int digits = (int) (double) operands.pop(); double value = operands.pop(); value = round(value, digits); operands.push(value); } }, // -- Binary -- -- EQ(4, "=") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left == right) ? 1. : 0.); } }, NEQ(4, "!=") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left != right) ? 1. : 0.); } }, LE(4, "<") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left < right) ? 1. : 0.); } }, GR(4, ">") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left > right) ? 1. : 0.); } }, LEQ(4, "<=") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left <= right) ? 1. : 0.); } }, GEQ(4, ">=") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left >= right) ? 1. : 0.); } }, // -- Binary -- -- AND(3, "and") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left != 0 && right != 0) ? 1. : 0.); } }, OR(2, "or") { @Override public void apply(Stack operands) throws ExprError { requireTwoOps(this, operands); double right = operands.pop(); double left = operands.pop(); operands.push((left != 0 || right != 0) ? 1. : 0.); } }, // -- Binary -- -- LPAREN(-1, "(") { @Override public void apply(Stack operands) { throw new AssertionError(); } }, RPAREN(-1, ")") { @Override public void apply(Stack operands) { throw new AssertionError(); } }; // ----------------------------------------------------------------- private final int precedence; private final String name; // ----------------------------------------------------------------- Token(int precedence, String name) { this.name = name; this.precedence = precedence; } // ----------------------------------------------------------------- public abstract void apply(Stack operands) throws ExprError; public int getPrecedence() { return precedence; } @Override public String toString() { return name; } // ----------------------------------------------------------------- private static void requireOneOp(Token op, Stack operands) throws ExprError { if (operands.isEmpty()) throw new ExprError("Missing operand for %s.", op.toString()); } private static void requireTwoOps(Token op, Stack operands) throws ExprError { if (operands.size() < 2) throw new ExprError("Missing operand for %s.", op.toString()); } private static double round(double value, int digits) { return new BigDecimal(value) .setScale(digits, BigDecimal.ROUND_HALF_UP) .doubleValue(); } } } ParserFunctionExpr.java000066400000000000000000000037261335270560400512470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.ext.parser_functions.ExprParser.ExprError; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionExpr extends ParserFunctionsExtPfn { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionExpr() { super("expr"); } public ParserFunctionExpr(WikiConfig wikiConfig) { super(wikiConfig, "expr"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return nf().text(""); WtNode arg0 = frame.expand(args.get(0)); String expr = null; try { expr = tu().astToText(arg0).trim(); } catch (StringConversionException e) { return EngineRtData.set(nf().softError(pfn)); } ExprParser p = new ExprParser(); try { return nf().text(p.parse(expr)); } catch (ExprError e) { return EngineRtData.set(nf().softError(e.getMessage())); } } } ParserFunctionIf.java000066400000000000000000000041231335270560400506570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionIf extends ParserFunctionsExtPfn.IfThenElseStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionIf() { super("if", 1 /* thenArgIndex */); } /** *
	 * {{#if: 
	 *       test string 
	 *     | value if test string is not empty 
	 *     | value if test string is empty (or only white space) 
	 * }}
	 * 
*/ public ParserFunctionIf(WikiConfig wikiConfig) { super(wikiConfig, "if", 1 /* thenArgIndex */); } @Override protected boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode test = frame.expand(args.get(0)); String testStr = null; try { testStr = tu().astToText(test).trim(); } catch (StringConversionException e) { // There are non-text elements. This means something was not // expanded, right? Let's say this evaluates to true since it won't // produce the empty string. return true; } boolean eval = false; if (testStr != null) eval = !testStr.isEmpty(); return eval; } } ParserFunctionIfError.java000066400000000000000000000047111335270560400516740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtText; public class ParserFunctionIfError extends ParserFunctionsExtPfn.IfThenElseStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionIfError() { super("iferror", 1, true); } /** *
	 * {{#iferror: 
	 *       test string 
	 *     | value if error 
	 *     | value if correct 
	 * }}
	 * 
*/ public ParserFunctionIfError(WikiConfig wikiConfig) { super(wikiConfig, "iferror", 1, true); } @Override protected boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode arg0 = frame.expand(args.get(0)); boolean hasError = searchErrorNode(arg0); // If NO error occurred the test statement becomes the default result setDefault(hasError ? nf().list() : arg0); // if (!eval) // setDefault(arg0); return hasError; } private static boolean searchErrorNode(WtNode arg0) { if (arg0.getNodeType() == EngNode.NT_SOFT_ERROR) { return true; } else if (arg0.getNodeType() == EngNode.NT_TEXT) { String text = ((WtText) arg0).getContent(); int open = text.indexOf("', open); int error = text.indexOf("class=\"error\"", open); if (error < close) return true; } return false; } else { for (WtNode n : arg0) { if (searchErrorNode(n)) return true; } return false; } } } ParserFunctionIfExist.java000066400000000000000000000045201335270560400516750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionIfExist extends ParserFunctionsExtPfn.IfThenElseStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionIfExist() { super("ifexist", 1 /* thenArgIndex */); } /** *
	 * {{#ifexist: 
	 *       page title 
	 *     | value if exists 
	 *     | value if doesn't exist 
	 * }}
	 * 
*/ public ParserFunctionIfExist(WikiConfig wikiConfig) { super(wikiConfig, "ifexist", 1 /* thenArgIndex */); } @Override protected boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode test = frame.expand(args.get(0)); String testStr = null; try { testStr = tu().astToText(test).trim(); PageTitle pageTitle = PageTitle.make(frame.getWikiConfig(), testStr); return frame.existsPage(pageTitle); } catch (StringConversionException e1) { // We have to convert the entire argument to a string to create a page name from it. return false; } catch (LinkTargetException e) { // A page with an illegal name cannot exist. return false; } catch (Exception e) { // Interpret an error while testing for existence as non-existence. return false; } } } ParserFunctionIfExpr.java000066400000000000000000000043461335270560400515250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.ext.parser_functions.ExprParser.ExprError; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionIfExpr extends ParserFunctionsExtPfn.IfThenElseStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionIfExpr() { super("ifexpr", 1 /* thenArgIndex */); } /** *
	 * {{#ifexpr: 
	 *       expression 
	 *     | value if true 
	 *     | value if false
	 * }}
	 * 
*/ public ParserFunctionIfExpr(WikiConfig wikiConfig) { super(wikiConfig, "ifexpr", 1 /* thenArgIndex */); } @Override protected boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode test = frame.expand(args.get(0)); String expr = null; try { expr = tu().astToText(test).trim(); } catch (StringConversionException e) { // Invalid expressions evaluate to false return false; } if (expr.isEmpty()) return false; ExprParser p = new ExprParser(); String result; try { result = p.parse(expr); } catch (ExprError e) { // Invalid expressions evaluate to false return false; } if (result == null || result.isEmpty()) return false; return Double.parseDouble(result) != 0.; } } ParserFunctionIfeq.java000066400000000000000000000044661335270560400512170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionIfeq extends ParserFunctionsExtPfn.IfThenElseStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionIfeq() { super("ifeq", 2 /* thenArgIndex */); } /** *
	 * {{#ifeq: 
	 *       string 1 
	 *     | string 2 
	 *     | value if identical 
	 *     | value if different }}
	 * 
*/ public ParserFunctionIfeq(WikiConfig wikiConfig) { super(wikiConfig, "ifeq", 2 /* thenArgIndex */); } @Override protected boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode arg0 = frame.expand(args.get(0)); WtNode arg1 = frame.expand(args.get(1)); String a = null; String b = null; try { a = tu().astToText(arg0).trim(); b = tu().astToText(arg1).trim(); } catch (StringConversionException e1) { // FIXME: Do recursive equality check } boolean eval = false; if (a != null && b != null) { boolean numbers = false; double ia = -1; double ib = +1; try { ia = Double.parseDouble(a); ib = Double.parseDouble(b); numbers = true; } catch (NumberFormatException e) { numbers = false; } if (numbers) { eval = ia == ib; } else { eval = a.equals(b); } } return eval; } } ParserFunctionSwitch.java000066400000000000000000000116641335270560400515720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionSwitch extends ParserFunctionsExtPfn.CtrlStmt { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionSwitch() { super("switch"); } public ParserFunctionSwitch(WikiConfig wikiConfig) { super(wikiConfig, "switch"); } @Override protected WtNode evaluate( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return nf().list(); return new Evaluator(frame, args).evaluate(); } private final class Evaluator { private ExpansionFrame frame; private List args; private WtNodeList after; private WtNodeList before; private WtNode result; public Evaluator(ExpansionFrame frame, List args) { this.frame = frame; this.args = args; } public WtNode evaluate() { WtNode arg0 = frame.expand(args.get(0)); String cmp = null; Double icmp = null; try { cmp = tu().astToText(arg0).trim(); icmp = strToDbl(cmp); } catch (StringConversionException e) { // FIXME: Do recursive equality check } boolean found = false; result = null; for (int i = 1; i < args.size(); ++i) { // Process each argument of the switch (after the test string) after = null; before = nf().list(); if (args.get(i).isNodeType(WtNode.NT_NODE_LIST)) { splitNodeListAtEquals(i); } else { WtNode c = args.get(i); if (c.isNodeType(WtNode.NT_TEXT)) splitTextAtEquals(c); } // Now before holds the stuff in front of the "=" and after // contains everything after the "=". If no "=" was found, // before contains everything and after == null. if (!found) found = compare(cmp, icmp); if (found && after != null) { result = after; break; } } if (before != null && after == null && result == null) { // result == null // We have not encountered an explicit #default case // before != null && after == null // The last case didn't have an "=" and therefore is an implicit default // $found could be true which means that the implicit default // just happens to match the test string. But that's immaterial. result = before; } return result; } private boolean compare(String cmp, Double icmp) { // See if the case statement matches the test string. // This is the case if they equal numerically or if the // expanded string representations match. Finally there the // $before part could hold "#default", in which case we only // set the result to the $after part. before = (WtNodeList) frame.expand(before); String cmp2; try { cmp2 = tu().astToText(before).trim(); } catch (StringConversionException e) { // FIXME: Do recursive equality check return false; } if (cmp2.equals("#default")) { result = after; return false; } if (icmp != null && cmp2 != null) { Double icmp2 = strToDbl(cmp2); if (icmp.equals(icmp2)) return true; } return (cmp != null) && cmp.equals(cmp2); } private Double strToDbl(String str) { try { return Double.parseDouble(str); } catch (NumberFormatException e) { return null; } } private void splitNodeListAtEquals(int i) { for (WtNode c : args.get(i)) { if (after == null) { if (c.isNodeType(WtNode.NT_TEXT)) { splitTextAtEquals(c); } else { before.add(c); } } else { after.add(c); } } } private void splitTextAtEquals(WtNode c) { String text = ((WtText) c).getContent(); int j = text.indexOf('='); if (j != -1) { before.add(nf().text(text.substring(0, j))); after = nf().list(nf().text(text.substring(j + 1))); } else { before.add(c); } } } } ParserFunctionTime.java000066400000000000000000000330561335270560400512260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List; import java.util.Locale; import java.util.TimeZone; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngSoftErrorNode; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; import org.sweble.wikitext.engine.utils.StringToDateTimeConverter; import de.fau.cs.osr.utils.StringTools; /** * Parser function for the #time template. This template works only * on the time base of UTC+0 (GMT). For functions depending on the local * time of the client, or a predefined time zone, see #timel. * * @see {@link ParserFunctionTimeLocal} */ public class ParserFunctionTime extends ParserFunctionsExtPfn { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionTime() { super("time"); } public ParserFunctionTime(WikiConfig wikiConfig) { super(wikiConfig, "time"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return pfn; // ---- format String format = expandArgToString(frame, args, 0); if (format == null) return error("Cannot convert format argument to string!"); // ---- language String languageTag = null; if (args.size() >= 3) { languageTag = expandArgToString(frame, args, 2); if (languageTag == null) return error("Cannot convert language argument to string!"); } Locale locale = null; if (languageTag != null && !languageTag.isEmpty()) { locale = Locale.forLanguageTag(languageTag); if (locale == null) { return notYetImplemented("Cannot handle non-empty language argument!"); } } if (locale == null) { locale = Locale.ENGLISH; // default Locale if not defined } // ---- timestamp Calendar timestamp = Calendar.getInstance(TimeZone.getTimeZone("UTC"), locale); timestamp.set(Calendar.DST_OFFSET, 0); if (args.size() >= 2) { String timestampStr = expandArgToString(frame, args, 1); if (timestampStr == null) return error("Cannot convert timestamp argument to string!"); if (!timestampStr.isEmpty()) { StringToDateTimeConverter conv = new StringToDateTimeConverter(); Date argumentDate = conv.convertString(timestampStr); if (argumentDate != null) { timestamp.setTime(argumentDate); } else { return notYetImplemented("Cannot handle non-empty timestamp argument!"); } } } // ---- let's format ourselves a date... return nf().text(format(format, timestamp, locale)); } /** * Interprets the symbols in the format string and returns the * result with the inserted date/time fields. * * @param format * The string to interpret. * @param timestamp * The date/time used to populate the fields. * @param locale * The locale for i18n. * @return The formated string with substituted symbols. * @see https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions##time */ protected static String format(final String format, final Calendar timestamp, final Locale locale) { StringBuilder sb = new StringBuilder(); boolean isCharInComment = false; int tmp; for (int i = 0; i < format.length(); ++i) { char ch = format.charAt(i); if (ch == '"') { isCharInComment = !isCharInComment; continue; } if (isCharInComment) { // character is part of a comment, skip interpretation sb.append(ch); continue; } switch (ch) { case 'Y': // 4-digit year sb.append(timestamp.get(Calendar.YEAR)); break; case 'y': // 2-digit year sb.append(timestamp.get(Calendar.YEAR) % 100); break; case 'L': // '1' if it's a leap year, '0' if not GregorianCalendar gregCal = new GregorianCalendar(locale); if (gregCal.isLeapYear(timestamp.get(Calendar.YEAR))) { sb.append('1'); } else { sb.append('0'); } break; case 'n': // month index, not zero-padded sb.append(timestamp.get(Calendar.MONTH) + 1); break; case 'm': // month index, zero-padded tmp = timestamp.get(Calendar.MONTH) + 1; if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'M': // abbreviation of the month name sb.append(timestamp.getDisplayName( Calendar.MONTH, Calendar.SHORT, locale)); break; case 'F': // full month name sb.append(timestamp.getDisplayName( Calendar.MONTH, Calendar.LONG, locale)); break; case 'W': // ISO 8601 week number, zero-padded. tmp = timestamp.get(Calendar.WEEK_OF_YEAR); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'j': // day of the month, not zero-padded sb.append(timestamp.get(Calendar.DAY_OF_MONTH)); break; case 'd': // day of the month, zero-padded tmp = timestamp.get(Calendar.DAY_OF_MONTH); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'z': // day of the year (January 1 = 0) sb.append(timestamp.get(Calendar.DAY_OF_YEAR) - 1); break; case 'D': // abbreviation for the day of the week sb.append(timestamp.getDisplayName( Calendar.DAY_OF_WEEK, Calendar.SHORT, locale)); break; case 'l': // the full weekday name sb.append(timestamp.getDisplayName( Calendar.DAY_OF_WEEK, Calendar.LONG, locale)); break; case 'N': // ISO 8601 day of the week (Monday = 1, Sunday = 7) sb.append(((timestamp.get(Calendar.DAY_OF_WEEK) + 5) % 7) + 1); break; case 'w': // Number of the day of the week (Sunday = 0, Saturday = 6) sb.append(timestamp.get(Calendar.DAY_OF_WEEK) - 1); break; case 'a': // am, pm if (timestamp.get(Calendar.AM_PM) == Calendar.AM) { sb.append("am"); } else { sb.append("pm"); } break; case 'A': // AM, PM if (timestamp.get(Calendar.AM_PM) == Calendar.AM) { sb.append("AM"); } else { sb.append("PM"); } break; case 'g': // hour in 12-hour format, not zero-padded sb.append(timestamp.get(Calendar.HOUR)); break; case 'h': // hour in 12-hour format, zero-padded tmp = timestamp.get(Calendar.HOUR); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'G': // hour in 24-hour format, not zero-padded sb.append(timestamp.get(Calendar.HOUR_OF_DAY)); break; case 'H': // hour in 24-hour format, zero-padded tmp = timestamp.get(Calendar.HOUR_OF_DAY); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'i': // minutes past the hour, zero-padded tmp = timestamp.get(Calendar.MINUTE); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 's': // seconds past the minute, zero-padded tmp = timestamp.get(Calendar.SECOND); if (tmp < 10) { sb.append('0'); } sb.append(tmp); break; case 'U': // Unix time long timeUtc = timestamp.getTimeInMillis(); timeUtc += timestamp.getTimeZone().getOffset(timeUtc); sb.append(timeUtc / 1000L); break; case 'e': // time zone identifier sb.append(timestamp.getTimeZone().getID()); break; case 'I': // '1' if Daylight Saving Time if currently used, otherwise '0' sb.append(timestamp.get(Calendar.DST_OFFSET) != 0 ? '1' : '0'); break; case 'O': // difference to Greenwich time (GMT) sb.append(localOffsetAsString(timestamp)); break; case 'P': // difference to Greenwich time (GMT), with colon sb.append(localOffsetAsStringWithColon(timestamp)); break; case 'Z': // time zone offset in seconds sb.append(timestamp.getTimeZone() .getOffset(timestamp.getTimeInMillis()) / 1000L); break; case 'T': // time zone abbreviation sb.append(timestamp.getTimeZone().getID()); break; case 't': // number of days in the current month sb.append(timestamp.getActualMaximum(Calendar.DAY_OF_MONTH)); break; case 'c': // ISO 8601 formatted date, equivalent to Y-m-d"T"H:i:s+00:00 sb.append(timestamp.get(Calendar.YEAR)).append('-'); tmp = timestamp.get(Calendar.MONTH) + 1; if (tmp < 10) { sb.append('0'); } sb.append(tmp).append('-'); tmp = timestamp.get(Calendar.DAY_OF_MONTH); if (tmp < 10) { sb.append('0'); } sb.append(tmp).append('T'); tmp = timestamp.get(Calendar.HOUR_OF_DAY); if (tmp < 10) { sb.append('0'); } sb.append(tmp).append(':'); tmp = timestamp.get(Calendar.MINUTE); if (tmp < 10) { sb.append('0'); } sb.append(tmp).append(':'); tmp = timestamp.get(Calendar.SECOND); if (tmp < 10) { sb.append('0'); } sb.append(tmp) .append(localOffsetAsStringWithColon(timestamp)); break; case 'r': // RFC 5322 formatted date, equivalent to D, j M Y H:i:s +0000 sb.append(timestamp.getDisplayName( Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US)) // no i18n .append(", ") .append(timestamp.get(Calendar.DAY_OF_MONTH)) .append(' ') .append(timestamp.getDisplayName( Calendar.MONTH, Calendar.SHORT, Locale.US)) // no i18n .append(' ') .append(timestamp.get(Calendar.YEAR)) .append(' '); tmp = timestamp.get(Calendar.HOUR_OF_DAY); if (tmp < 10) { sb.append('0'); } sb.append(tmp).append(':'); tmp = timestamp.get(Calendar.MINUTE); if (tmp < 10) { sb.append('0'); } sb.append(tmp).append(':'); tmp = timestamp.get(Calendar.SECOND); if (tmp < 10) { sb.append('0'); } sb.append(tmp) .append(' ') .append(localOffsetAsString(timestamp)); break; default: sb.append(ch); break; } } return sb.toString(); } /** * Gathers the local offset from the given timestamp and returns it as a * formated string according to the RFC 5322 specification. The offset may * also contain the Daylight Saving Time in dependence of the corresponding * time zone. * * @param timestamp The timestamp containing the local time offset. * @return A string in the form of "+/-hhmm" (e.g. "+0100). */ private static String localOffsetAsString(final Calendar timestamp) { StringBuilder sb = new StringBuilder(); int offset = timestamp.getTimeZone().getOffset(timestamp.getTimeInMillis()); offset = offset / 1000 / 60; // in minutes int hours = offset / 60; int minutes = offset % 60; if (offset < 0) { sb.append('-'); } else { sb.append('+'); } hours = Math.abs(hours); if (hours < 10) { sb.append('0'); } sb.append(hours); minutes = Math.abs(minutes); if (minutes < 10) { sb.append('0'); } sb.append(minutes); return sb.toString(); } /** * Gathers the local offset from the given timestamp and returns it as a * formated string. The offset may also contain the Daylight Saving Time in * dependence of the corresponding time zone. * * @param timestamp The timestamp containing the local time offset. * @return A string in the form of "+/-hh:mm" (e.g. "+01:00). */ private static String localOffsetAsStringWithColon(final Calendar timestamp) { StringBuilder sb = new StringBuilder(); int offset = timestamp.getTimeZone().getOffset(timestamp.getTimeInMillis()); offset = offset / 1000 / 60; // in minutes int hours = offset / 60; int minutes = offset % 60; if (offset < 0) { sb.append('-'); } else { sb.append('+'); } hours = Math.abs(hours); if (hours < 10) { sb.append('0'); } sb.append(hours).append(':'); minutes = Math.abs(minutes); if (minutes < 10) { sb.append('0'); } sb.append(minutes); return sb.toString(); } private String expandArgToString( ExpansionFrame preprocessorFrame, List args, final int index) { WtNode arg = preprocessorFrame.expand(args.get(index)); tu().trim(arg); String format = null; try { format = tu().astToText(arg).trim(); } catch (StringConversionException e1) { } return format; } private EngSoftErrorNode error(String msg) { return EngineRtData.set(nf().softError( EngineRtData.set(nf().nowiki(StringTools.escHtml(msg))))); } private EngSoftErrorNode notYetImplemented(String msg) { return nf().addCssClass( EngineRtData.set(nf().softError( EngineRtData.set(nf().nowiki(StringTools.escHtml(msg))))), "not-yet-implemented"); } } ParserFunctionTimeLocal.java000066400000000000000000000075631335270560400522050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import de.fau.cs.osr.utils.StringTools; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngSoftErrorNode; import org.sweble.wikitext.engine.nodes.EngineRtData; import org.sweble.wikitext.engine.utils.StringToDateTimeConverter; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.utils.StringConversionException; /** * */ public class ParserFunctionTimeLocal extends ParserFunctionsExtPfn { /** * For un-marshaling only. */ public ParserFunctionTimeLocal() { super("timel"); } public ParserFunctionTimeLocal(WikiConfig wikiConfig) { super(wikiConfig, "timel"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return pfn; // ---- format String format = expandArgToString(frame, args, 0); if (format == null) return error("Cannot convert format argument to string!"); // ---- language String languageTag = null; if (args.size() >= 3) { languageTag = expandArgToString(frame, args, 2); if (languageTag == null) return error("Cannot convert language argument to string!"); } Locale locale = null; if (languageTag != null && !languageTag.isEmpty()) { locale = Locale.forLanguageTag(languageTag); if (locale == null) { return notYetImplemented("Cannot handle non-empty language argument!"); } } if (locale == null) { locale = Locale.ENGLISH; // default Locale if not defined } // ---- timestamp Calendar timestamp = getWikiConfig().getRuntimeInfo().getDateAndTime(locale); if (args.size() >= 2) { String timestampStr = expandArgToString(frame, args, 1); if (timestampStr == null) return error("Cannot convert timestamp argument to string!"); if (!timestampStr.isEmpty()) { StringToDateTimeConverter conv = new StringToDateTimeConverter(timestamp); Date argumentDate = conv.convertString(timestampStr); if (argumentDate != null) { timestamp.setTime(argumentDate); } else { return notYetImplemented("Cannot handle non-empty timestamp argument!"); } } } // ---- let's format ourselves a date... return nf().text(ParserFunctionTime.format(format, timestamp, locale)); } private String expandArgToString( ExpansionFrame preprocessorFrame, List args, final int index) { WtNode arg = preprocessorFrame.expand(args.get(index)); tu().trim(arg); String format = null; try { format = tu().astToText(arg).trim(); } catch (StringConversionException e1) { } return format; } private EngSoftErrorNode error(String msg) { return EngineRtData.set(nf().softError( EngineRtData.set(nf().nowiki(StringTools.escHtml(msg))))); } private EngSoftErrorNode notYetImplemented(String msg) { return nf().addCssClass( EngineRtData.set(nf().softError( EngineRtData.set(nf().nowiki(StringTools.escHtml(msg))))), "not-yet-implemented"); } }ParserFunctionTitleparts.java000066400000000000000000000066771335270560400524740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; public class ParserFunctionTitleparts extends ParserFunctionsExtPfn { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public ParserFunctionTitleparts() { super("titleparts"); } public ParserFunctionTitleparts(WikiConfig wikiConfig) { super(wikiConfig, "titleparts"); } @Override public WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() < 1) return pfn; WtNode arg0 = frame.expand(args.get(0)); if (args.size() < 2) return arg0; PageTitle pageTitle; Integer partCount = null; Integer firstPart = null; try { String titleStr = tu().astToText(arg0).trim(); pageTitle = PageTitle.make(frame.getWikiConfig(), titleStr); WtNode arg1 = frame.expand(args.get(1)); String countStr = tu().astToText(arg1).trim(); try { partCount = Integer.parseInt(countStr); } catch (NumberFormatException e) { } if (args.size() > 2) { WtNode arg2 = frame.expand(args.get(2)); String firstStr = tu().astToText(arg2).trim(); try { firstPart = Integer.parseInt(firstStr); } catch (NumberFormatException e) { } } } catch (StringConversionException ee) { // We have to convert the entire argument to a string to create a page name from it. return pfn; } catch (LinkTargetException e) { // A page with an illegal name cannot be split properly. return pfn; } String title = pageTitle.getTitle(); String[] parts = title.split("/", 25); if (partCount != null) { if (partCount < 0) { partCount = parts.length + partCount; } else if (partCount == 0) { partCount = parts.length; } if (partCount <= 0) return nf().text(""); } else partCount = parts.length; if (firstPart != null) { if (firstPart > parts.length) { return nf().text(""); } else if (firstPart < 0) { firstPart = parts.length + firstPart; } if (firstPart <= 0) firstPart = 1; } else firstPart = 1; int from = firstPart - 1; int to = Math.min(from + partCount, parts.length); String newTitle = StringUtils.join(Arrays.copyOfRange(parts, from, to), "/"); return nf().text(pageTitle.newWithTitle(newTitle).getDenormalizedFullTitle()); } } ParserFunctionsExtPfn.java000066400000000000000000000117061335270560400517150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.List; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.PfnArgumentMode; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTemplate; public abstract class ParserFunctionsExtPfn extends ParserFunctionBase { private static final long serialVersionUID = 1L; // ========================================================================= /** * For un-marshaling only. */ public ParserFunctionsExtPfn(String name) { super(name); } /** * For un-marshaling only. */ public ParserFunctionsExtPfn(PfnArgumentMode argMode, String name) { super(argMode, name); } public ParserFunctionsExtPfn(WikiConfig wikiConfig, String name) { super(wikiConfig, name); } public ParserFunctionsExtPfn( WikiConfig wikiConfig, PfnArgumentMode argMode, String name) { super(wikiConfig, argMode, name); } // ========================================================================= @Override public final WtNode invoke( WtNode template, ExpansionFrame frame, List argsValues) { return invoke((WtTemplate) template, frame, argsValues); } public abstract WtNode invoke( WtTemplate wtTemplate, ExpansionFrame frame, List argsValues); // ========================================================================= public static abstract class CtrlStmt extends ParserFunctionsExtPfn { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ protected CtrlStmt(String name) { super(PfnArgumentMode.UNEXPANDED_VALUES, name); } protected CtrlStmt(WikiConfig wikiConfig, String name) { super(wikiConfig, PfnArgumentMode.UNEXPANDED_VALUES, name); } @Override public final WtNode invoke( WtTemplate pfn, ExpansionFrame frame, List args) { WtNode result = evaluate((WtTemplate) pfn, frame, args); // All control flow statements expand and trim their results. if (result != null) { return tu().trim(frame.expand(result)); } else { return nf().text(""); } } protected abstract WtNode evaluate( WtTemplate pfn, ExpansionFrame frame, List args); } // ========================================================================= public static abstract class IfThenElseStmt extends CtrlStmt { private static final long serialVersionUID = 1L; private final boolean hasDefault; private WtNode defaultValue; private final int thenArgIndex; /** * For un-marshaling only. */ protected IfThenElseStmt( String name, int thenArgIndex) { super(name); this.hasDefault = false; this.thenArgIndex = thenArgIndex; } /** * For un-marshaling only. */ protected IfThenElseStmt( String name, int thenArgIndex, boolean hasDefault) { super(name); this.hasDefault = hasDefault; this.thenArgIndex = thenArgIndex; } protected IfThenElseStmt( WikiConfig wikiConfig, String name, int thenArgIndex) { super(wikiConfig, name); this.hasDefault = false; this.thenArgIndex = thenArgIndex; } protected IfThenElseStmt( WikiConfig wikiConfig, String name, int thenArgIndex, boolean hasDefault) { super(wikiConfig, name); this.hasDefault = hasDefault; this.thenArgIndex = thenArgIndex; } @Override protected WtNode evaluate( WtTemplate pfn, ExpansionFrame frame, List args) { if (args.size() <= (hasDefault ? thenArgIndex - 1 : thenArgIndex)) return nf().text(""); boolean cond = evaluateCondition(pfn, frame, args); WtNode result = defaultValue; if (cond) { if (args.size() > thenArgIndex) result = args.get(thenArgIndex); } else { int elseArgIndex = thenArgIndex + 1; if (args.size() > elseArgIndex) result = args.get(elseArgIndex); } return result; } protected void setDefault(WtNode defaultValue) { this.defaultValue = defaultValue; } protected abstract boolean evaluateCondition( WtTemplate pfn, ExpansionFrame frame, List args); } } ParserFunctionsPfnExt.java000066400000000000000000000035011335270560400517070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfig; public class ParserFunctionsPfnExt extends ParserFunctionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected ParserFunctionsPfnExt(WikiConfig wikiConfig) { super("Extension - Parser Functions"); addParserFunction(new ParserFunctionExpr(wikiConfig)); addParserFunction(new ParserFunctionIf(wikiConfig)); addParserFunction(new ParserFunctionIfeq(wikiConfig)); addParserFunction(new ParserFunctionIfError(wikiConfig)); addParserFunction(new ParserFunctionIfExist(wikiConfig)); addParserFunction(new ParserFunctionIfExpr(wikiConfig)); addParserFunction(new ParserFunctionSwitch(wikiConfig)); addParserFunction(new ParserFunctionTime(wikiConfig)); addParserFunction(new ParserFunctionTimeLocal(wikiConfig)); addParserFunction(new ParserFunctionTitleparts(wikiConfig)); } public static ParserFunctionsPfnExt group(WikiConfig wikiConfig) { return new ParserFunctionsPfnExt(wikiConfig); } } ref/000077500000000000000000000000001335270560400417635ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/extRefTagExt.java000066400000000000000000000043121335270560400444570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/ext/ref/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.ref; import java.util.Map; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.TagExtensionBase; import org.sweble.wikitext.engine.config.TagExtensionGroup; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; public class RefTagExt extends TagExtensionGroup { private static final long serialVersionUID = 1L; // ========================================================================= protected RefTagExt(WikiConfig wikiConfig) { super("Extension - Ref"); addTagExtension(new RefTagExtImpl(wikiConfig)); } public static RefTagExt group(WikiConfig wikiConfig) { return new RefTagExt(wikiConfig); } // ========================================================================= // == // == // == // ========================================================================= public static final class RefTagExtImpl extends TagExtensionBase { private static final long serialVersionUID = 1L; /** * For un-marshaling only. */ public RefTagExtImpl() { super("ref"); } public RefTagExtImpl(WikiConfig wikiConfig) { super(wikiConfig, "ref"); } @Override public WtNode invoke( ExpansionFrame frame, WtTagExtension tagExt, Map attrs, WtTagExtensionBody body) { return null; } } } nodes/000077500000000000000000000000001335270560400415175ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engineCompleteEngineVisitor.java000066400000000000000000000017451335270560400466470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.CompleteWikitextVisitor; public interface CompleteEngineVisitor extends CompleteWikitextVisitor { public T visit(EngProcessedPage n); public T visit(EngNowiki n); public T visit(EngPage n); public T visit(EngSoftErrorNode n); } CompleteEngineVisitorNoReturn.java000066400000000000000000000020031335270560400503300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.CompleteWikitextVisitorNoReturn; public interface CompleteEngineVisitorNoReturn extends CompleteWikitextVisitorNoReturn { public void visit(EngProcessedPage n); public void visit(EngNowiki n); public void visit(EngPage n); public void visit(EngSoftErrorNode n); } EngLogContainer.java000066400000000000000000000046061335270560400454060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtNodeList.WtNodeListImpl; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class EngLogContainer extends WtNodeListImpl implements WtContentNode, EngLogNode { private static final long serialVersionUID = -1365120120054529928L; // ========================================================================= // Properties private Long timeNeeded; public final Long getTimeNeeded() { return this.timeNeeded; } public final void setTimeNeeded(Long timeNeeded) { this.timeNeeded = timeNeeded; } @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new EngLogContainerPropertyIterator(); } protected class EngLogContainerPropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return EngLogContainer.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "timeNeeded"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return EngLogContainer.this.getTimeNeeded(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { Long old = EngLogContainer.this.getTimeNeeded(); EngLogContainer.this.setTimeNeeded((Long) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } EngLogExpansionPass.java000066400000000000000000000016551335270560400462600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogExpansionPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogExpansionPass() { } } EngLogLeafNode.java000066400000000000000000000034721335270560400451410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.ast.AstLeafNodeImpl; public class EngLogLeafNode extends AstLeafNodeImpl implements WtNode, EngLogNode { private static final long serialVersionUID = -1024830219477280567L; // ========================================================================= @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { throw new UnsupportedOperationException(genMsg()); } @Override public void suppressRtd() { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= protected String genMsg() { return "Operation not supported by EngLog* nodes!"; } } EngLogMagicWordResolution.java000066400000000000000000000020441335270560400474160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogMagicWordResolution extends EngLogNameResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogMagicWordResolution() { } protected EngLogMagicWordResolution(String name, boolean success) { super(name, success); } } EngLogNameResolution.java000066400000000000000000000050171335270560400464250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class EngLogNameResolution extends EngLogResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogNameResolution() { } protected EngLogNameResolution(String name, boolean success) { super(success); setName(name); } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { this.name = name; } @Override public int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new EngLogResolutionPropertyIterator() { @Override protected int getPropertyCount() { return EngLogNameResolution.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return EngLogNameResolution.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = EngLogNameResolution.this.getName(); EngLogNameResolution.this.setName((String) value); return old; } default: return super.setValue(index, value); } } }; } } EngLogNode.java000066400000000000000000000013731335270560400443470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public interface EngLogNode extends EngNode { } EngLogParameterResolution.java000066400000000000000000000020441335270560400474620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogParameterResolution extends EngLogNameResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogParameterResolution() { } protected EngLogParameterResolution(String name, boolean success) { super(name, success); } } EngLogParserError.java000066400000000000000000000044431335270560400457310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class EngLogParserError extends EngLogLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogParserError() { } protected EngLogParserError(String message) { setMessage(message); } // ========================================================================= // Properties private String message; public final String getMessage() { return this.message; } public final void setMessage(String message) { this.message = message; } @Override public final int getPropertyCount() { return 1; } @Override public final AstNodePropertyIterator propertyIterator() { return new AstNodePropertyIterator() { @Override protected int getPropertyCount() { return 1; } @Override protected String getName(int index) { switch (index) { case 0: return "message"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return EngLogParserError.this.getMessage(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { String old = EngLogParserError.this.getMessage(); EngLogParserError.this.setMessage((String) value); return old; } default: throw new IndexOutOfBoundsException(); } } }; } } EngLogParserFunctionResolution.java000066400000000000000000000020631335270560400505050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogParserFunctionResolution extends EngLogNameResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogParserFunctionResolution() { } protected EngLogParserFunctionResolution(String name, boolean success) { super(name, success); } } EngLogParserPass.java000066400000000000000000000016471335270560400455510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogParserPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogParserPass() { } } EngLogPass.java000066400000000000000000000016601335270560400443670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public abstract class EngLogPass extends EngLogContainer { private static final long serialVersionUID = 1L; // ========================================================================= public EngLogPass() { super(); } } EngLogPostprocessorPass.java000066400000000000000000000016641335270560400472010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogPostprocessorPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogPostprocessorPass() { } } EngLogPreprocessorPass.java000066400000000000000000000050061335270560400467740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class EngLogPreprocessorPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogPreprocessorPass() { } // ========================================================================= // Properties private boolean forInclusion; public final boolean getForInclusion() { return this.forInclusion; } public final void setForInclusion(boolean forInclusion) { this.forInclusion = forInclusion; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new EngLogContainerPropertyIterator() { @Override protected int getPropertyCount() { return EngLogPreprocessorPass.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "forInclusion"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return EngLogPreprocessorPass.this.getForInclusion(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = EngLogPreprocessorPass.this.getForInclusion(); EngLogPreprocessorPass.this.setForInclusion((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } } EngLogProcessingPass.java000066400000000000000000000055371335270560400464330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class EngLogProcessingPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogProcessingPass() { } // ========================================================================= // Properties private String title; public final String getTitle() { return this.title; } public final void setTitle(String title) { this.title = title; } private Long revision; public final Long getRevision() { return this.revision; } public final void setRevision(Long revision) { this.revision = revision; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new EngLogContainerPropertyIterator() { @Override protected int getPropertyCount() { return EngLogProcessingPass.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "title"; case 1: return "revision"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return EngLogProcessingPass.this.getTitle(); case 1: return EngLogProcessingPass.this.getRevision(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { Object old = EngLogProcessingPass.this.getTitle(); EngLogProcessingPass.this.setTitle((String) value); return old; } case 1: { Object old = EngLogProcessingPass.this.getRevision(); EngLogProcessingPass.this.setRevision((Long) value); return old; } default: return super.setValue(index, value); } } }; } } EngLogRedirectResolution.java000066400000000000000000000020471335270560400473060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogRedirectResolution extends EngLogTargetResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogRedirectResolution() { } protected EngLogRedirectResolution(String target, boolean success) { super(target, success); } } EngLogResolution.java000066400000000000000000000050571335270560400456300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class EngLogResolution extends EngLogContainer { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogResolution() { } protected EngLogResolution(boolean success) { setSuccess(success); } // ========================================================================= // Properties private boolean success; public final boolean getSuccess() { return this.success; } public final void setSuccess(boolean success) { this.success = success; } @Override public int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public AstNodePropertyIterator propertyIterator() { return new EngLogResolutionPropertyIterator(); } protected class EngLogResolutionPropertyIterator extends EngLogContainerPropertyIterator { @Override protected int getPropertyCount() { return EngLogResolution.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "success"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return EngLogResolution.this.getSuccess(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = EngLogResolution.this.getSuccess(); EngLogResolution.this.setSuccess((Boolean) value); return old; } default: return super.setValue(index, value); } } } } EngLogTagExtensionResolution.java000066400000000000000000000020631335270560400501530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogTagExtensionResolution extends EngLogTargetResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogTagExtensionResolution() { } protected EngLogTagExtensionResolution(String target, boolean success) { super(target, success); } } EngLogTargetResolution.java000066400000000000000000000060031335270560400467670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class EngLogTargetResolution extends EngLogResolution { private static final long serialVersionUID = 1L; // ========================================================================= public EngLogTargetResolution() { } public EngLogTargetResolution(String target, boolean success) { super(success); setTarget(target); } // ========================================================================= // Properties private String target; public final String getTarget() { return this.target; } public final void setTarget(String target) { this.target = target; } private String canonical; public final String getCanonical() { return this.canonical; } public final void setCanonical(String canonical) { this.canonical = canonical; } @Override public int getPropertyCount() { return 2 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new EngLogResolutionPropertyIterator() { @Override protected int getPropertyCount() { return EngLogTargetResolution.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "target"; case 1: return "canonical"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return EngLogTargetResolution.this.getTarget(); case 1: return EngLogTargetResolution.this.getCanonical(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = EngLogTargetResolution.this.getTarget(); EngLogTargetResolution.this.setTarget((String) value); return old; } case 1: { String old = EngLogTargetResolution.this.getCanonical(); EngLogTargetResolution.this.setCanonical((String) value); return old; } default: return super.setValue(index, value); } } }; } } EngLogTransclusionResolution.java000066400000000000000000000020631335270560400502270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogTransclusionResolution extends EngLogTargetResolution { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogTransclusionResolution() { } protected EngLogTransclusionResolution(String target, boolean success) { super(target, success); } } EngLogUnhandledError.java000066400000000000000000000054241335270560400463770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class EngLogUnhandledError extends EngLogLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogUnhandledError() { } protected EngLogUnhandledError(Throwable exception, String dump) { setException(exception); setDump(dump); } // ========================================================================= // Properties private Throwable exception; public final Throwable getException() { return this.exception; } public final void setException(Throwable exception) { this.exception = exception; } private String dump; public final String getDump() { return this.dump; } public final void setDump(String dump) { this.dump = dump; } @Override public final int getPropertyCount() { return 2; } @Override public final AstNodePropertyIterator propertyIterator() { return new AstNodePropertyIterator() { @Override protected int getPropertyCount() { return 2; } @Override protected String getName(int index) { switch (index) { case 0: return "exception"; case 1: return "dump"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return EngLogUnhandledError.this.getException(); case 1: return EngLogUnhandledError.this.getDump(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { Throwable old = EngLogUnhandledError.this.getException(); EngLogUnhandledError.this.setException((Throwable) value); return old; } case 1: { String old = EngLogUnhandledError.this.getDump(); EngLogUnhandledError.this.setDump((String) value); return old; } default: throw new IndexOutOfBoundsException(); } } }; } } EngLogValidatorPass.java000066400000000000000000000016541335270560400462400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; public class EngLogValidatorPass extends EngLogPass { private static final long serialVersionUID = 1L; // ========================================================================= protected EngLogValidatorPass() { } } EngNode.java000066400000000000000000000025411335270560400437030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtNode; public interface EngNode extends WtNode { // ... // ========================================================================= public static final int NT_ENGINE_BITS /* .......... */= NT_MW_NODE_BITS | 0x100000; // -- General nodes -------------------------------------------------------- public static final int NT_PAGE /* ................. */= NT_ENGINE_BITS + 1; public static final int NT_PROCESSED_PAGE /* ....... */= NT_ENGINE_BITS + 2; public static final int NT_NOWIKI /* ............... */= NT_ENGINE_BITS + 3; public static final int NT_SOFT_ERROR /* ........... */= NT_ENGINE_BITS + 4; } EngNowiki.java000066400000000000000000000023631335270560400442600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtStringNodeImpl; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class EngNowiki extends WtStringNodeImpl implements EngNode { private static final long serialVersionUID = 1L; /** * Only for use by de-serialization code. */ protected EngNowiki() { super(Uninitialized.X); } protected EngNowiki(String content) { super(content); } // ========================================================================= @Override public int getNodeType() { return NT_NOWIKI; } } EngPage.java000066400000000000000000000022601335270560400436700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; import org.sweble.wikitext.parser.nodes.WtNodeList; public class EngPage extends WtContentNodeImpl implements EngNode { private static final long serialVersionUID = 1L; // ========================================================================= protected EngPage() { } protected EngPage(WtNodeList content) { addAll(content); } @Override public int getNodeType() { return NT_PAGE; } } EngProcessedPage.java000066400000000000000000000104001335270560400455330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import java.util.List; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtInnerNode2; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class EngProcessedPage extends WtInnerNode2 implements EngNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected EngProcessedPage() { super(Uninitialized.X); } protected EngProcessedPage( EngPage page, EngLogProcessingPass log, List warnings) { super(page, log); setWarnings(warnings); } protected EngProcessedPage( EngPage page, EngLogProcessingPass log, List warnings, WtEntityMap entityMap) { super(page, log); setWarnings(warnings); setEntityMap(entityMap); } @Override public int getNodeType() { return NT_PROCESSED_PAGE; } // ========================================================================= // Properties private EngLogProcessingPass log; public final EngLogProcessingPass getLog() { return this.log; } public final EngLogProcessingPass setLog(EngLogProcessingPass log) { EngLogProcessingPass old = this.log; this.log = log; return old; } private List warnings; public final List getWarnings() { return this.warnings; } public final List setWarnings(List warnings) { List old = this.warnings; this.warnings = warnings; return old; } private WtEntityMap entityMap; public final WtEntityMap getEntityMap() { return this.entityMap; } public final WtEntityMap setEntityMap(WtEntityMap entityMap) { WtEntityMap old = this.entityMap; this.entityMap = entityMap; return old; } @Override public final int getPropertyCount() { return 3; } @Override public final AstNodePropertyIterator propertyIterator() { return new AstNodePropertyIterator() { @Override protected int getPropertyCount() { return 3; } @Override protected String getName(int index) { switch (index) { case 0: return "log"; case 1: return "warnings"; case 2: return "entityMap"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return EngProcessedPage.this.getLog(); case 1: return EngProcessedPage.this.getWarnings(); case 2: return EngProcessedPage.this.getEntityMap(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: return EngProcessedPage.this.setLog((EngLogProcessingPass) value); case 1: { @SuppressWarnings("unchecked") List warnings = (List) value; return EngProcessedPage.this.setWarnings(warnings); } case 2: return EngProcessedPage.this.setEntityMap((WtEntityMap) value); default: throw new IndexOutOfBoundsException(); } } }; } // ========================================================================= // Children public final void setPage(EngPage page) { set(0, page); } public final EngPage getPage() { return (EngPage) get(0); } private static final String[] CHILD_NAMES = new String[] { "page" }; public final String[] getChildNames() { return CHILD_NAMES; } } EngSoftErrorNode.java000066400000000000000000000027341335270560400455550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlElement; public class EngSoftErrorNode extends WtXmlElement implements EngNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected EngSoftErrorNode() { super(); } protected EngSoftErrorNode( String name, WtXmlAttributes xmlAttributes, WtBody body) { super(name, xmlAttributes, body); } protected EngSoftErrorNode(String name, WtXmlAttributes xmlAttributes) { super(name, xmlAttributes); } @Override public int getNodeType() { return NT_SOFT_ERROR; } } EngineNodeFactory.java000066400000000000000000000054121335270560400457270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import java.util.List; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtXmlElement; import de.fau.cs.osr.ptk.common.Warning; public interface EngineNodeFactory extends WikitextNodeFactory { // --[ Wikitext specific ]-------------------------------------------------- EngNowiki nowiki(String text); EngSoftErrorNode softError(String message); EngSoftErrorNode softError(WtNode pfn); EngSoftErrorNode softError(WtNodeList content, Exception e); EngProcessedPage processedPage( EngPage page, EngLogProcessingPass log, List warnings); EngProcessedPage processedPage( EngPage page, EngLogProcessingPass log, List warnings, WtEntityMap entityMap); EngPage page(WtNodeList content); // --[ Log nodes ]---------------------------------------------------------- EngLogExpansionPass logExpansionPass(); EngLogParserPass logParserPass(); EngLogPostprocessorPass logPostprocessorPass(); EngLogPreprocessorPass logPreprocessorPass(); EngLogProcessingPass logProcessingPass(); EngLogValidatorPass logValidatorPass(); EngLogMagicWordResolution logMagicWordResolution( String name, boolean success); EngLogParameterResolution logParameterResolution( String name, boolean success); EngLogParserFunctionResolution logParserFunctionResolution( String name, boolean success); EngLogRedirectResolution logRedirectResolution( String target, boolean success); EngLogTagExtensionResolution logTagExtensionResolution( String target, boolean success); EngLogTransclusionResolution logTransclusionResolution( String target, boolean success); EngLogParserError logParserError(String message); EngLogUnhandledError logUnhandledError(Throwable exception, String dump); // --[ Modification ]------------------------------------------------------- T addCssClass(T elem, String cssClass); } EngineNodeFactoryImpl.java000066400000000000000000000131121335270560400465450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import java.util.List; import java.util.Map; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WikitextNodeFactoryImpl; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlElement; import de.fau.cs.osr.ptk.common.Warning; public final class EngineNodeFactoryImpl extends WikitextNodeFactoryImpl implements EngineNodeFactory { public EngineNodeFactoryImpl(ParserConfig parserConfig) { super(parserConfig); { Map, WtNode> prototypes = super.getPrototypes(); prototypes.put(EngProcessedPage.class, new EngProcessedPage()); prototypes.put(EngNowiki.class, new EngNowiki()); prototypes.put(EngPage.class, new EngPage()); prototypes.put(EngSoftErrorNode.class, new EngSoftErrorNode()); } { Map defaultValueImmutables = super.getDefaultValueImmutables(); defaultValueImmutables.put(new NamedMemberId(EngSoftErrorNode.class, "body"), WtBody.EMPTY); } } // --[ Wikitext specific ]-------------------------------------------------- @Override public EngNowiki nowiki(String text) { return new EngNowiki(text); } @Override public EngSoftErrorNode softError(String message) { return softError(text(message)); } @Override public EngSoftErrorNode softError(WtNode content) { return new EngSoftErrorNode( "strong", attrs(list(attr( name(list(text("class"))), value(list(text("error")))))), body(list(content))); } @Override public EngSoftErrorNode softError(WtNodeList content, Exception e) { EngSoftErrorNode error = softError(content); error.setAttribute("exception", e); return error; } @Override public EngProcessedPage processedPage( EngPage page, EngLogProcessingPass log, List warnings) { return new EngProcessedPage(page, log, warnings); } @Override public EngProcessedPage processedPage( EngPage page, EngLogProcessingPass log, List warnings, WtEntityMap entityMap) { return new EngProcessedPage(page, log, warnings, entityMap); } @Override public EngPage page(WtNodeList content) { return new EngPage(content); } // --[ Log nodes ]---------------------------------------------------------- @Override public EngLogExpansionPass logExpansionPass() { return new EngLogExpansionPass(); } @Override public EngLogParserPass logParserPass() { return new EngLogParserPass(); } @Override public EngLogPostprocessorPass logPostprocessorPass() { return new EngLogPostprocessorPass(); } @Override public EngLogPreprocessorPass logPreprocessorPass() { return new EngLogPreprocessorPass(); } @Override public EngLogProcessingPass logProcessingPass() { return new EngLogProcessingPass(); } @Override public EngLogValidatorPass logValidatorPass() { return new EngLogValidatorPass(); } @Override public EngLogMagicWordResolution logMagicWordResolution( String name, boolean success) { return new EngLogMagicWordResolution(name, success); } @Override public EngLogParameterResolution logParameterResolution( String name, boolean success) { return new EngLogParameterResolution(name, success); } @Override public EngLogParserFunctionResolution logParserFunctionResolution( String name, boolean success) { return new EngLogParserFunctionResolution(name, success); } @Override public EngLogRedirectResolution logRedirectResolution( String target, boolean success) { return new EngLogRedirectResolution(target, success); } @Override public EngLogTagExtensionResolution logTagExtensionResolution( String target, boolean success) { return new EngLogTagExtensionResolution(target, success); } @Override public EngLogTransclusionResolution logTransclusionResolution( String target, boolean success) { return new EngLogTransclusionResolution(target, success); } @Override public EngLogParserError logParserError(String message) { return new EngLogParserError(message); } @Override public EngLogUnhandledError logUnhandledError( Throwable exception, String dump) { return new EngLogUnhandledError(exception, dump); } // --[ Modification ]------------------------------------------------------- @Override public T addCssClass(T elem, String cssClass) { if (elem.getXmlAttributes().isEmpty()) elem.setXmlAttributes(attrs(list())); for (WtNode attr : elem.getXmlAttributes()) { if (attr == null || !(attr instanceof WtXmlAttribute)) continue; WtXmlAttribute a = (WtXmlAttribute) attr; if (!a.getName().equals("class")) continue; if (!a.hasValue()) a.setValue(value(list())); a.getValue().add(text(" " + cssClass)); } return elem; } } EngineRtData.java000066400000000000000000000044551335270560400446770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.nodes; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import de.fau.cs.osr.ptk.common.ast.RtData; public final class EngineRtData { public static EngNowiki set(EngNowiki n) { if (n.getContent().isEmpty()) { n.setRtd(""); } else { n.setRtd("", n.getContent(), ""); } return n; } public static EngSoftErrorNode set(EngSoftErrorNode n) { genAttrRtd(n.getXmlAttributes()); if (n.hasBody()) { n.setRtd("", RtData.SEP, ""); } else { n.setRtd("", RtData.SEP); } return n; } public static EngProcessedPage set(EngProcessedPage n) { return n; } public static EngPage set(EngPage n) { return n; } public static WtTagExtension set(WtTagExtension n) { genAttrRtd(n.getXmlAttributes()); if (n.hasBody()) { n.setRtd( '<', n.getName(), RtData.SEP, '>', RtData.SEP, "'); } else { n.setRtd( '<', n.getName(), RtData.SEP, " />", RtData.SEP); } return n; } // ========================================================================= private static void genAttrRtd(WtXmlAttributes attrs) { for (WtNode attr : attrs) { if (!attr.isNodeType(WtNode.NT_XML_ATTRIBUTE)) continue; WtXmlAttribute a = (WtXmlAttribute) attr; if (a.hasValue()) { attr.setRtd(" ", RtData.SEP, "=\"", RtData.SEP, "\""); } else { attr.setRtd(" "); } } } } output/000077500000000000000000000000001335270560400417475ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engineHtmlRenderer.java000066400000000000000000000712711335270560400452150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import de.fau.cs.osr.utils.FmtNotYetImplementedError; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.visitor.VisitingException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.*; import org.sweble.wikitext.engine.utils.EngineAstTextUtils; import org.sweble.wikitext.engine.utils.UrlEncoding; import org.sweble.wikitext.parser.nodes.*; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageViewFormat; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.StringConversionException; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; public class HtmlRenderer extends HtmlRendererBase implements CompleteEngineVisitorNoReturn { // Fix #62: Counter for sequential number for untitled external links private long untitledLinkCounter = 1L; // ===================================================================== @Override protected WtNode before(WtNode node) { untitledLinkCounter = 1L; return super.before(node); } // ===================================================================== @Override public void visit(EngProcessedPage n) { dispatch(n.getPage()); } @Override public void visit(EngNowiki n) { wrapText(n.getContent()); } public void visit(EngPage n) { iterate(n); } @Override public void visit(EngSoftErrorNode n) { visit((WtXmlElement) n); } @Override public void visit(WtBody n) { iterate(n); } public void visit(WtBold n) { p.indentAtBol(""); p.incIndent(); iterate(n); p.decIndent(); p.indentAtBol(""); } public void visit(WtDefinitionList n) { p.indentln("
"); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
"); } public void visit(WtDefinitionListDef n) { p.indentln("
"); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
"); } public void visit(WtDefinitionListTerm n) { p.indentln("
"); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
"); } public void visit(WtExternalLink n) { if (n.hasTitle()) { p.indentAtBol(); pt("%!", callback.makeUrl(n.getTarget()), n.getTitle()); } else { // Fix #62: Use sequential number if the title is missing long seqNumber = untitledLinkCounter++; pt("[" + seqNumber + "]", callback.makeUrl(n.getTarget())); } } @Override public void visit(WtHeading n) { // We handle this case in WtSection and don't dispatch to the heading. throw new AssertionError(); } @Override public void visit(WtHorizontalRule n) { p.indentAtBol("
"); } @Override public void visit(WtIgnored n) { // Well, ignore it ... } @Override public void visit(WtIllegalCodePoint n) { p.indentAtBol(); final String cp = n.getCodePoint(); for (int i = 0; i < cp.length(); ++i) pf("&#%d;", (int) cp.charAt(i)); } public void visit(WtImageLink n) { if (!n.getTarget().isResolved()) { printAsWikitext(n); return; } PageTitle target; try { target = PageTitle.make(wikiConfig, n.getTarget().getAsString()); } catch (LinkTargetException e) { throw new VisitingException(e); } int imgWidth = n.getWidth(); int imgHeight = n.getHeight(); switch (n.getFormat()) { case THUMBNAIL: // FALL THROUGH case FRAMELESS: if (imgWidth <= 0) imgWidth = 180; break; default: break; } if (n.getUpright()) { imgWidth = 140; imgHeight = -1; } MediaInfo info; try { info = callback.getMediaInfo( target.getNormalizedFullTitle(), imgWidth, imgHeight); } catch (Exception e) { throw new VisitingException(e); } boolean exists = (info != null && info.getImgUrl() != null); boolean isImage = !target.getTitle().endsWith(".ogg"); if (exists && imgHeight > 0) { int altWidth = imgHeight * info.getImgWidth() / info.getImgHeight(); if (altWidth < imgWidth) { imgWidth = altWidth; try { info = callback.getMediaInfo( target.getNormalizedFullTitle(), imgWidth, imgHeight); } catch (Exception e) { throw new VisitingException(e); } } } boolean scaled = imgWidth > 0 || imgHeight > 0; String imgUrl = null; if (exists) { imgUrl = info.getImgUrl(); if (scaled && info.getThumbUrl() != null) imgUrl = info.getThumbUrl(); } String aClasses = ""; String imgClasses = ""; switch (n.getFormat()) { case THUMBNAIL: imgClasses += " thumbimage"; break; default: break; } if (n.getBorder()) imgClasses += " thumbborder"; // -- does the image link something? -- WtUrl linkUrl = null; PageTitle linkTarget = target; switch (n.getLink().getTargetType()) { case NO_LINK: linkTarget = null; break; case PAGE: { WtPageName pageName = (WtPageName) n.getLink().getTarget(); if (pageName.isResolved()) { try { linkTarget = PageTitle.make(wikiConfig, pageName.getAsString()); } catch (LinkTargetException e) { throw new VisitingException(e); } } else { linkTarget = null; } break; } case URL: linkTarget = null; linkUrl = (WtUrl) n.getLink().getTarget(); break; case DEFAULT: if (exists && isImage) aClasses += " image"; break; } // -- string caption -- String strCaption = null; if (n.hasTitle()) strCaption = makeImageCaption(n); // -- alt -- String alt = null; if (n.hasAlt()) alt = makeImageAltText(n); // -- classes if (!aClasses.isEmpty()) aClasses = String.format(" class=\"%s\"", aClasses.trim()); // -- title -- String aTitle = ""; if (n.getFormat() != ImageViewFormat.FRAMELESS) { if (strCaption != null) { aTitle = strCaption; } else if (linkTarget != null) { aTitle = makeImageTitle(n, target);//makeUrl(linkTarget); } else if (linkUrl != null) { aTitle = callback.makeUrl(linkUrl); } } if (!aTitle.isEmpty()) aTitle = String.format(" title=\"%s\"", aTitle); // -- width & height -- int width = -1; int height = -1; if (exists) { width = scaled ? info.getThumbWidth() : info.getImgWidth(); height = scaled ? info.getThumbHeight() : info.getImgHeight(); } else width = 180; // -- generate html -- boolean hasThumbFrame = isImage && n.getFormat() == ImageViewFormat.THUMBNAIL || n.getHAlign() != ImageHorizAlign.UNSPECIFIED; if (hasThumbFrame) { String align = ""; switch (n.getHAlign()) { case CENTER: align = " center"; break; case LEFT: align = " tleft"; break; case RIGHT: // FALL THROUGH case NONE: // FALL THROUGH default: align = " tright"; break; } String thumb = ""; String inner = "floatnone"; String style = ""; if (n.getFormat() == ImageViewFormat.THUMBNAIL) { thumb = "thumb"; inner = "thumbinner"; style = String.format(" style=\"width:%dpx;\"", width + 2); } p.indent(); pf(""); } } @Override public void visit(WtImEndTag n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtImStartTag n) { // Should not happen ... throw new AssertionError(); } public void visit(WtInternalLink n) { if (!n.getTarget().isResolved()) { printAsWikitext(n); return; } p.indentAtBol(); PageTitle target; try { target = PageTitle.make(wikiConfig, n.getTarget().getAsString()); } catch (LinkTargetException e) { throw new VisitingException(e); } // FIXME: I think these should be removed in the parser already?! if (target.getNamespace() == wikiConfig.getNamespace("Category")) return; if (!callback.resourceExists(target)) { String title = target.getDenormalizedFullTitle(); String path = UrlEncoding.WIKI.encode(target.getNormalizedFullTitle()); if (n.hasTitle()) { pt("%=%!%=", callback.makeUrlMissingTarget(path), title, n.getPrefix(), n.getTitle(), n.getPostfix()); } else { String linkText = makeTitleFromTarget(n, target); pt("%=%=%=", callback.makeUrlMissingTarget(path), title, n.getPrefix(), linkText, n.getPostfix()); } } else { if (!target.equals(pageTitle)) { if (n.hasTitle()) { pt("%=%!%=", callback.makeUrl(target), makeLinkTitle(n, target), n.getPrefix(), n.getTitle(), n.getPostfix()); } else { pt("%=%=%=", callback.makeUrl(target), makeLinkTitle(n, target), n.getPrefix(), makeTitleFromTarget(n, target), n.getPostfix()); } } else { if (n.hasTitle()) { pt("%=%!%=", n.getPrefix(), n.getTitle(), n.getPostfix()); } else { pt("%=%=%=", n.getPrefix(), makeTitleFromTarget(n, target), n.getPostfix()); } } } } public void visit(WtItalics n) { p.indentAtBol(""); p.incIndent(); iterate(n); p.decIndent(); p.indentAtBol(""); } @Override public void visit(WtLinkOptionAltText n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionGarbage n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionKeyword n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionLinkTarget n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionResize n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptions n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkTitle n) { iterate(n); } public void visit(WtListItem n) { p.indentln("
  • "); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
  • "); } @Override public void visit(WtName n) { iterate(n); } public void visit(WtNewline n) { if (!p.atBol()) p.print(" "); } @Override public void visit(WtNodeList n) { iterate(n); } @Override public void visit(WtOnlyInclude n) { iterate(n); } public void visit(WtOrderedList n) { p.indentln("
      "); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
    "); } @Override public void visit(WtPageName n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtPageSwitch n) { // Hide those... } public void visit(WtParagraph n) { p.indentln("

    "); p.incIndent(); iterate(n); p.decIndent(); p.indentln("

    "); } @Override public void visit(WtParsedWikitextPage n) { iterate(n); } @Override public void visit(WtPreproWikitextPage n) { iterate(n); } @Override public void visit(WtRedirect n) { // Fixes issue #65, we render a link to the redirect target PageTitle pt; try { pt = PageTitle.make(this.wikiConfig, n.getTarget().getAsString()); } catch (LinkTargetException e) { throw new VisitingException(e); } String url = callback.makeUrl(pt); pf("%s", url, pt.getDenormalizedFullTitle()); } public void visit(WtSection n) { p.indent(); pt("%!", n.getLevel(), makeSectionTitle(n.getHeading()), n.getHeading(), n.getLevel()); p.println(); dispatch(n.getBody()); } public void visit(WtSemiPre n) { p.indent(); ++inPre; pt("
    %!
    ", n); --inPre; p.println(); } public void visit(WtSemiPreLine n) { iterate(n); p.println(); } @Override public void visit(WtSignature n) { // TODO: Implement throw new FmtNotYetImplementedError(); } public void visit(WtTable n) { p.indent(); pt("", cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); fixTableBody(n.getBody()); p.decIndent(); p.indentln(""); } @Override public void visit(WtTableCaption n) { p.indent(); pt("", cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); dispatch(getCellContent(n.getBody())); p.decIndent(); p.indentln(""); } public void visit(WtTableCell n) { p.indent(); pt("", cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); dispatch(getCellContent(n.getBody())); p.decIndent(); p.indentln(""); } public void visit(WtTableHeader n) { p.indent(); pt("", cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); dispatch(getCellContent(n.getBody())); p.decIndent(); p.indentln(""); } public void visit(WtTableRow n) { boolean cellsDefined = false; for (WtNode cell : n.getBody()) { switch (cell.getNodeType()) { case WtNode.NT_TABLE_CELL: case WtNode.NT_TABLE_HEADER: cellsDefined = true; break; } } if (cellsDefined) { p.indent(); pt("", cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); dispatch(getCellContent(n.getBody())); p.decIndent(); p.indentln(""); } else { iterate(n.getBody()); } } public void visit(WtTableImplicitTableBody n) { iterate(n.getBody()); } public void visit(WtTagExtension n) { // TODO: Should not get skipped! if (n.getName().trim().equalsIgnoreCase("ref")) return; if (n.getName().trim().equalsIgnoreCase("references")) return; printAsWikitext(n); /* pc("<%s%!>%=</%s>", n.getName(), n.getXmlAttributes(), n.getBody().getContent(), n.getName()); */ } @Override public void visit(WtTagExtensionBody n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtTemplate n) { printAsWikitext(n); } @Override public void visit(WtTemplateArgument n) { printAsWikitext(n); } @Override public void visit(WtTemplateArguments n) { printAsWikitext(n); } @Override public void visit(WtTemplateParameter n) { printAsWikitext(n); } public void visit(WtText n) { wrapText(n.getContent()); } @Override public void visit(WtTicks n) { // Should not happen ... throw new AssertionError(); } public void visit(WtUnorderedList n) { p.indentln("
      "); p.incIndent(); iterate(n); p.decIndent(); p.indentln("
    "); } public void visit(WtUrl n) { p.indentAtBol(); String url = callback.makeUrl(n); pf("%s", url, url); } @Override public void visit(WtValue n) { iterate(n); } @Override public void visit(WtWhitespace n) { if (!p.atBol()) p.println(" "); } public void visit(WtXmlAttribute n) { if (!n.getName().isResolved()) { logger.warn("Unresolved attribute name: " + WtRtDataPrinter.print(n)); } else { if (n.hasValue()) { pt(" %s=\"%~\"", n.getName().getAsString(), cleanAttribValue(n.getValue())); } else { pf(" %s=\"%", n.getName(), cleanAttribs(n.getXmlAttributes())); p.println(); p.incIndent(); dispatch(n.getBody()); p.decIndent(); p.indent(); pf("", n.getName()); p.println(); } else { p.indentAtBol(); pt("<%s%!>", n.getName(), cleanAttribs(n.getXmlAttributes())); p.incIndent(); dispatch(n.getBody()); p.decIndent(); p.indentAtBol(); pf("", n.getName()); } } else { p.indentAtBol(); pt("<%s%! />", n.getName(), cleanAttribs(n.getXmlAttributes())); } } public void visit(WtXmlEmptyTag n) { printAsWikitext(n); } public void visit(WtXmlEndTag n) { printAsWikitext(n); } public void visit(WtXmlEntityRef n) { p.indentAtBol(); pf("&%s;", n.getName()); } public void visit(WtXmlStartTag n) { printAsWikitext(n); } // ===================================================================== private void wrapText(String text) { if (inPre > 0) { p.print(esc(text)); } else { p.indentAtBol(esc(StringTools.collapseWhitespace(text))); } } /* private void wrapText(String text) { if (inPre > 0) { p.print(esc(text)); } else { int i = 0; int len = text.length(); while (i < len) { char ch; // If at beginning of line skip whitespace if (p.atBol()) { while (i < len) { ch = text.charAt(i); if (!Character.isWhitespace(ch)) break; ++i; } } if (i >= len) break; p.flush(); int col = p.getColumn(); int border = 80 + p.getIndent() * 4; int j = i; while (j < len) { ch = text.charAt(j++); if (col >= border && Character.isWhitespace(ch)) break; if (ch == '\n') break; } String substr = text.substring(i, j); if (!substr.isEmpty()) p.indentAtBol(esc(StringTools.collapseWhitespace(substr))); if (i < len) p.println(); i = j; } } } */ private void printAsWikitext(WtNode n) { // TODO: Implement //throw new FmtNotYetImplementedError(); //p.indentAtBol(); } private String toWikitext(WtNode value) { // TODO: Implement //throw new FmtNotYetImplementedError(); return ""; } // ===================================================================== private String makeSectionTitle(WtHeading n) { byte[] title; try { title = makeTitleFromNodes(n).getBytes("UTF8"); } catch (UnsupportedEncodingException e) { throw new VisitingException(e); } StringBuilder b = new StringBuilder(); for (byte u : title) { if (u < 0) { b.append('.'); b.append(String.format("%02X", u)); } else if (u == ' ') { b.append('_'); } else { b.append((char) u); } } return b.toString(); } private String makeImageAltText(WtImageLink n) { return makeTitleFromNodes(n.getAlt()); } protected String makeImageCaption(WtImageLink n) { return makeTitleFromNodes(n.getTitle()); } private String makeTitleFromNodes(WtNodeList titleNode) { StringWriter w = new StringWriter(); SafeLinkTitlePrinter p = new SafeLinkTitlePrinter(w, wikiConfig); p.go(titleNode); return w.toString(); } // ===================================================================== static String makeLinkTitle(WtInternalLink n, PageTitle target) { return target.getDenormalizedFullTitle(); } protected String makeImageTitle(WtImageLink n, PageTitle target) { return target.getDenormalizedFullTitle(); } private String makeTitleFromTarget(WtInternalLink n, PageTitle target) { return makeTitleFromTarget(target, n.getTarget()); } private String makeTitleFromTarget(PageTitle target, WtPageName title) { String targetStr = title.getAsString(); if (target.hasInitialColon() && !targetStr.isEmpty() && targetStr.charAt(0) == ':') targetStr = targetStr.substring(1); return targetStr; } // ===================================================================== /** * Pull garbage in between rows in front of the table. */ private void fixTableBody(WtNodeList body) { boolean hadRow = false; WtTableRow implicitRow = null; for (WtNode c : body) { switch (c.getNodeType()) { case WtNode.NT_TABLE_HEADER: // fall through! case WtNode.NT_TABLE_CELL: { if (hadRow) { dispatch(c); } else { if (implicitRow == null) implicitRow = nf.tr(nf.emptyAttrs(), nf.body(nf.list())); implicitRow.getBody().add(c); } break; } case WtNode.NT_TABLE_CAPTION: { if (!hadRow && implicitRow != null) dispatch(implicitRow); implicitRow = null; dispatch(c); break; } case WtNode.NT_TABLE_ROW: { if (!hadRow && implicitRow != null) dispatch(implicitRow); hadRow = true; dispatch(c); break; } default: { if (!hadRow && implicitRow != null) implicitRow.getBody().add(c); else dispatch(c); break; } } } } /** * If the cell content is only one paragraph, the content of the paragraph * is returned. Otherwise the whole cell content is returned. This is done * to render cells with a single paragraph without the paragraph tags. */ protected static WtNode getCellContent(WtNodeList body) { if (body.size() >= 1 && body.get(0) instanceof WtParagraph) { boolean ok = true; for (int i = 1; i < body.size(); ++i) { if (!(body.get(i) instanceof WtNewline)) { ok = false; break; } } if (ok) body = (WtParagraph) body.get(0); } return body; } // ===================================================================== protected String cleanAttribValue(WtNodeList value) { try { return StringTools.collapseWhitespace(tu.astToText(value)).trim(); } catch (StringConversionException e) { return toWikitext(value); } } protected WtNodeList cleanAttribs(WtNodeList xmlAttributes) { ArrayList clean = null; WtXmlAttribute style = null; for (WtNode a : xmlAttributes) { if (a instanceof WtXmlAttribute) { WtXmlAttribute attr = (WtXmlAttribute) a; if (!attr.getName().isResolved()) continue; String name = attr.getName().getAsString().toLowerCase(); if (name.equals("style")) { style = attr; } else if (name.equals("width")) { if (clean == null) clean = new ArrayList(); clean.add(attr); } else if (name.equals("align")) { if (clean == null) clean = new ArrayList(); clean.add(attr); } } } if (clean == null || clean.isEmpty()) return xmlAttributes; String newStyle = ""; if (style != null) newStyle = cleanAttribValue(style.getValue()); for (WtXmlAttribute a : clean) { if (!a.getName().isResolved()) continue; String name = a.getName().getAsString().toLowerCase(); if (name.equals("align")) { newStyle = String.format( "text-align: %s; ", cleanAttribValue(a.getValue())) + newStyle; } else { newStyle = String.format( "%s: %s; ", name, cleanAttribValue(a.getValue())) + newStyle; } } WtXmlAttribute newStyleAttrib = nf.attr( nf.name(nf.list(nf.text("style"))), nf.value(nf.list(nf.text(newStyle)))); WtNodeList newAttribs = nf.attrs(nf.list()); for (WtNode a : xmlAttributes) { if (a == style) { newAttribs.add(newStyleAttrib); } else if (clean.contains(a)) { // Remove } else { // Copy the rest newAttribs.add(a); } } if (style == null) newAttribs.add(newStyleAttrib); return newAttribs; } // ========================================================================= public static String print( HtmlRendererCallback callback, WikiConfig wikiConfig, PageTitle pageTitle, T node) { return print(callback, wikiConfig, new StringWriter(), pageTitle, node).toString(); } public static Writer print( HtmlRendererCallback callback, WikiConfig wikiConfig, Writer writer, PageTitle pageTitle, T node) { new HtmlRenderer(callback, wikiConfig, pageTitle, writer).go(node); return writer; } // ========================================================================= protected static final Logger logger = LoggerFactory.getLogger(HtmlRenderer.class); protected static final Set blockElements = new HashSet(); protected final WikiConfig wikiConfig; protected final PageTitle pageTitle; protected final EngineNodeFactory nf; protected final EngineAstTextUtils tu; protected final HtmlRendererCallback callback; protected int inPre = 0; static { // left out del and ins, added table elements blockElements.add("div"); blockElements.add("address"); blockElements.add("blockquote"); blockElements.add("center"); blockElements.add("dir"); blockElements.add("div"); blockElements.add("dl"); blockElements.add("fieldset"); blockElements.add("form"); blockElements.add("h1"); blockElements.add("h2"); blockElements.add("h3"); blockElements.add("h4"); blockElements.add("h5"); blockElements.add("h6"); blockElements.add("hr"); blockElements.add("isindex"); blockElements.add("menu"); blockElements.add("noframes"); blockElements.add("noscript"); blockElements.add("ol"); blockElements.add("p"); blockElements.add("pre"); blockElements.add("table"); blockElements.add("ul"); blockElements.add("center"); blockElements.add("caption"); blockElements.add("tr"); blockElements.add("td"); blockElements.add("th"); blockElements.add("colgroup"); blockElements.add("thead"); blockElements.add("tbody"); blockElements.add("tfoot"); } // ========================================================================= protected HtmlRenderer( HtmlRendererCallback callback, WikiConfig wikiConfig, PageTitle pageTitle, Writer w) { super(w); this.callback = callback; this.wikiConfig = wikiConfig; this.pageTitle = pageTitle; this.nf = wikiConfig.getNodeFactory(); this.tu = wikiConfig.getAstTextUtils(); } } HtmlRendererBase.java000066400000000000000000000061401335270560400460010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import java.io.Writer; import java.util.ArrayList; import org.apache.commons.lang3.StringUtils; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.PrinterBase; import de.fau.cs.osr.utils.StringTools; public class HtmlRendererBase extends AstVisitor { protected final PrinterBase p; // ========================================================================= protected HtmlRendererBase(Writer writer) { this.p = new PrinterBase(writer); this.p.setMemoize(false); } // ========================================================================= protected static String esc(String content) { return StringTools.escHtml(content); } protected static String esc(String content, boolean forAttribute) { return StringTools.escHtml(content, forAttribute); } protected static String capitalize(String text) { return StringUtils.capitalize(text); } // ========================================================================= /** * Print Formatted */ protected void pf(String format, Object... args) { p.print(String.format(format, args)); } /** * Print Tree */ protected void pt(String format, Object... args) { ArrayList a = new ArrayList(args.length); int arg = 0; int last = 0; for (int i = 0; i < format.length(); ++i) { char ch = format.charAt(i); if (ch == '%' && format.length() > i + 1) { char ch2 = format.charAt(i + 1); switch (ch2) { case '!': { printPart(format, a, last, i); last = i + 2; WtNode n = (WtNode) args[arg++]; if (n.isList()) { iterate(n); } else { dispatch(n); } break; } case '=': // Escape string for HTML case '~': // Escape string for HTML attribute value { printPart(format, a, last, i); last = i + 2; String s = (String) args[arg++]; p.print(esc(s, ch2 == '~')); break; } case '%': break; default: a.add(args[arg++]); break; } ++i; } } printPart(format, a, last, format.length()); } private void printPart(String format, ArrayList a, int last, int i) { if (i - last > 0) { String f = format.substring(last, i); if (a.isEmpty()) { p.print(f); } else { p.print(String.format(f, a.toArray())); a.clear(); } } } } HtmlRendererCallback.java000066400000000000000000000021171335270560400466230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.parser.nodes.WtUrl; public interface HtmlRendererCallback { public MediaInfo getMediaInfo(String title, int width, int height); public boolean resourceExists(PageTitle target); public String makeUrl(PageTitle linkTarget); public String makeUrl(WtUrl target); public String makeUrlMissingTarget(String path); } MediaInfo.java000066400000000000000000000040421335270560400444450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import java.io.Serializable; public class MediaInfo implements Serializable { private static final long serialVersionUID = 1L; private String title; private String descUrl; private String imgUrl; private int imgWidth = -1; private int imgHeight = -1; private String thumbUrl; private int thumbWidth = -1; private int thumbHeight = -1; // ========================================================================= public MediaInfo() { } public MediaInfo( String title, String descUrl, String imgUrl, int imgWidth, int imgHeight, String thumbUrl, int thumbWidth, int thumbHeight) { this.title = title; this.descUrl = descUrl; this.imgUrl = imgUrl; this.imgWidth = imgWidth; this.imgHeight = imgHeight; this.thumbUrl = thumbUrl; this.thumbWidth = thumbWidth; this.thumbHeight = thumbHeight; } // ========================================================================= public String getTitle() { return title; } public String getDescUrl() { return descUrl; } public String getImgUrl() { return imgUrl; } public int getImgWidth() { return imgWidth; } public int getImgHeight() { return imgHeight; } public String getThumbUrl() { return thumbUrl; } public int getThumbWidth() { return thumbWidth; } public int getThumbHeight() { return thumbHeight; } } SafeLinkTitlePrinter.java000066400000000000000000000301101335270560400466470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import java.io.Writer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.CompleteEngineVisitorNoReturn; import org.sweble.wikitext.engine.nodes.EngNowiki; import org.sweble.wikitext.engine.nodes.EngPage; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngSoftErrorNode; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtBold; import org.sweble.wikitext.parser.nodes.WtDefinitionList; import org.sweble.wikitext.parser.nodes.WtDefinitionListDef; import org.sweble.wikitext.parser.nodes.WtDefinitionListTerm; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtHeading; import org.sweble.wikitext.parser.nodes.WtHorizontalRule; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtImEndTag; import org.sweble.wikitext.parser.nodes.WtImStartTag; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtItalics; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtLinkOptionKeyword; import org.sweble.wikitext.parser.nodes.WtLinkOptionLinkTarget; import org.sweble.wikitext.parser.nodes.WtLinkOptionResize; import org.sweble.wikitext.parser.nodes.WtLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkTitle; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtName; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtOnlyInclude; import org.sweble.wikitext.parser.nodes.WtOrderedList; import org.sweble.wikitext.parser.nodes.WtPageName; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtSection; import org.sweble.wikitext.parser.nodes.WtSemiPre; import org.sweble.wikitext.parser.nodes.WtSemiPreLine; import org.sweble.wikitext.parser.nodes.WtSignature; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableImplicitTableBody; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateArguments; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtTicks; import org.sweble.wikitext.parser.nodes.WtUnorderedList; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.nodes.WtValue; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributeGarbage; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.nodes.WtXmlEmptyTag; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import de.fau.cs.osr.utils.FmtNotYetImplementedError; import de.fau.cs.osr.utils.visitor.VisitingException; /** * Print the title of an internal link but strip out stuff that doesn't belong * in an XML attribute. * * This is used for example to generate the alt text or title attribute for an * image. */ public class SafeLinkTitlePrinter extends HtmlRendererBase implements CompleteEngineVisitorNoReturn { @Override public void visit(EngProcessedPage n) { dispatch(n.getPage()); } @Override public void visit(EngNowiki n) { p.print(esc(n.getContent(), true)); } @Override public void visit(EngPage n) { iterate(n); } @Override public void visit(EngSoftErrorNode n) { visit((WtXmlElement) n); } @Override public void visit(WtBody n) { iterate(n); } public void visit(WtBold n) { iterate(n); } @Override public void visit(WtDefinitionList n) { iterate(n); } @Override public void visit(WtDefinitionListDef n) { iterate(n); } @Override public void visit(WtDefinitionListTerm n) { iterate(n); } @Override public void visit(WtExternalLink n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtHeading n) { iterate(n); } @Override public void visit(WtHorizontalRule n) { // Wouldn't know what to render here... } @Override public void visit(WtIgnored n) { // Well, ignore it... } @Override public void visit(WtIllegalCodePoint n) { final String cp = n.getCodePoint(); for (int i = 0; i < cp.length(); ++i) pf("&#%d;", (int) cp.charAt(i)); } @Override public void visit(WtImageLink n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtImEndTag n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtImStartTag n) { // Should not happen ... throw new AssertionError(); } public void visit(WtInternalLink n) { if (n.hasTitle()) { dispatch(n.getTitle()); } else { String linkTarget = n.getTarget().getAsString(); PageTitle target; try { target = PageTitle.make(wikiConfig, linkTarget); } catch (LinkTargetException e) { throw new VisitingException(e); } p.print(esc(HtmlRenderer.makeLinkTitle(n, target), true)); } } public void visit(WtItalics n) { iterate(n); } @Override public void visit(WtLinkOptionAltText n) { iterate(n); } @Override public void visit(WtLinkOptionGarbage n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionKeyword n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionLinkTarget n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptionResize n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtLinkOptions n) { // Should not happen ... throw new AssertionError(); } public void visit(WtLinkTitle n) { iterate(n); } @Override public void visit(WtListItem n) { iterate(n); } @Override public void visit(WtName n) { iterate(n); } public void visit(WtNewline n) { p.print(" "); } @Override public void visit(WtNodeList n) { iterate(n); } @Override public void visit(WtOnlyInclude n) { iterate(n); } @Override public void visit(WtOrderedList n) { iterate(n); } @Override public void visit(WtPageName n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtPageSwitch n) { // Hide those... } @Override public void visit(WtParagraph n) { iterate(n); } @Override public void visit(WtParsedWikitextPage n) { iterate(n); } @Override public void visit(WtPreproWikitextPage n) { iterate(n); } @Override public void visit(WtRedirect n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtSection n) { dispatch(n.getHeading()); dispatch(n.getBody()); } @Override public void visit(WtSemiPre n) { iterate(n); } @Override public void visit(WtSemiPreLine n) { iterate(n); } @Override public void visit(WtSignature n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTable n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTableCaption n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTableCell n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTableHeader n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTableRow n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtTableImplicitTableBody n) { iterate(n.getBody()); } public void visit(WtTagExtension n) { printAsWikitext(n); } @Override public void visit(WtTagExtensionBody n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtTemplate n) { printAsWikitext(n); } @Override public void visit(WtTemplateArgument n) { printAsWikitext(n); } @Override public void visit(WtTemplateArguments n) { printAsWikitext(n); } @Override public void visit(WtTemplateParameter n) { printAsWikitext(n); } public void visit(WtText n) { p.print(esc(n.getContent(), true)); } @Override public void visit(WtTicks n) { // Should not happen ... throw new AssertionError(); } @Override public void visit(WtUnorderedList n) { iterate(n); } @Override public void visit(WtUrl n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtValue n) { iterate(n); } @Override public void visit(WtWhitespace n) { iterate(n); } @Override public void visit(WtXmlAttribute n) { // TODO: Implement throw new FmtNotYetImplementedError(); } @Override public void visit(WtXmlAttributeGarbage n) { logger.warn("Attribute garbage: " + WtRtDataPrinter.print(n)); } @Override public void visit(WtXmlAttributes n) { iterate(n); } public void visit(WtXmlCharRef n) { pf("&#%d;", n.getCodePoint()); } @Override public void visit(WtXmlComment n) { // Hide those... } public void visit(WtXmlElement n) { iterate(n.getBody()); } @Override public void visit(WtXmlEmptyTag n) { printAsWikitext(n); } @Override public void visit(WtXmlEndTag n) { printAsWikitext(n); } public void visit(WtXmlEntityRef n) { pf("&%s;", n.getName()); } @Override public void visit(WtXmlStartTag n) { printAsWikitext(n); } // ========================================================================= private void printAsWikitext(WtNode n) { p.indentAtBol(esc(WtRtDataPrinter.print(n))); } // ===================================================================== private static final Logger logger = LoggerFactory.getLogger(HtmlRenderer.class); private final WikiConfig wikiConfig; // ========================================================================= public SafeLinkTitlePrinter(Writer writer, WikiConfig wikiConfig) { super(writer); this.wikiConfig = wikiConfig; } } serialization/000077500000000000000000000000001335270560400432645ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engineEngineAstNodeConverter.java000066400000000000000000000307261335270560400505120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.serialization; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.nodes.WtBody.WtBodyImpl; import org.sweble.wikitext.parser.nodes.WtBody.WtEmptyBody; import org.sweble.wikitext.parser.nodes.WtBody.WtNoBody; import org.sweble.wikitext.parser.nodes.WtBold; import org.sweble.wikitext.parser.nodes.WtDefinitionList; import org.sweble.wikitext.parser.nodes.WtDefinitionListDef; import org.sweble.wikitext.parser.nodes.WtDefinitionListTerm; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtHeading; import org.sweble.wikitext.parser.nodes.WtHorizontalRule; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtItalics; import org.sweble.wikitext.parser.nodes.WtLctFlags.WtLctFlagsImpl; import org.sweble.wikitext.parser.nodes.WtLctFlags.WtNoLctFlags; import org.sweble.wikitext.parser.nodes.WtLctRule; import org.sweble.wikitext.parser.nodes.WtLctRuleConv; import org.sweble.wikitext.parser.nodes.WtLctRuleGarbage; import org.sweble.wikitext.parser.nodes.WtLctRuleText; import org.sweble.wikitext.parser.nodes.WtLctRules; import org.sweble.wikitext.parser.nodes.WtLctVarConv; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText.WtLinkOptionAltTextImpl; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText.WtNoLinkOptionAltText; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtLinkOptionKeyword; import org.sweble.wikitext.parser.nodes.WtLinkOptionLinkTarget; import org.sweble.wikitext.parser.nodes.WtLinkOptionResize; import org.sweble.wikitext.parser.nodes.WtLinkOptions.WtEmptyLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkOptions.WtLinkOptionsImpl; import org.sweble.wikitext.parser.nodes.WtLinkTarget.WtNoLink; import org.sweble.wikitext.parser.nodes.WtLinkTitle.WtLinkTitleImpl; import org.sweble.wikitext.parser.nodes.WtLinkTitle.WtNoLinkTitle; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtName.WtNameImpl; import org.sweble.wikitext.parser.nodes.WtName.WtNoName; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList.WtEmptyNodeList; import org.sweble.wikitext.parser.nodes.WtNodeList.WtNodeListImpl; import org.sweble.wikitext.parser.nodes.WtOnlyInclude; import org.sweble.wikitext.parser.nodes.WtOrderedList; import org.sweble.wikitext.parser.nodes.WtPageName; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtParserEntity; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtSection; import org.sweble.wikitext.parser.nodes.WtSemiPre; import org.sweble.wikitext.parser.nodes.WtSemiPreLine; import org.sweble.wikitext.parser.nodes.WtSignature; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableImplicitTableBody; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody.WtNoTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody.WtTagExtensionBodyImpl; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateArguments.WtEmptyTemplateArguments; import org.sweble.wikitext.parser.nodes.WtTemplateArguments.WtTemplateArgumentsImpl; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtTicks; import org.sweble.wikitext.parser.nodes.WtUnorderedList; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.nodes.WtValue.WtNoValue; import org.sweble.wikitext.parser.nodes.WtValue.WtValueImpl; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributeGarbage; import org.sweble.wikitext.parser.nodes.WtXmlAttributes.WtEmptyXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlAttributes.WtXmlAttributesImpl; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.nodes.WtXmlEmptyTag; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import de.fau.cs.osr.ptk.common.serialization.AstConverterBase; import de.fau.cs.osr.ptk.common.serialization.AstNodeConverterBase; import de.fau.cs.osr.ptk.common.serialization.SimpleTypeNameMapper; public class EngineAstNodeConverter { private static final ReadOnlyTypeNameMapper tnm = new ReadOnlyTypeNameMapper(); // ========================================================================= /** * The returned type name mapper is read-only! */ public static SimpleTypeNameMapper getTypeNameMapper() { return tnm; } // ========================================================================= public static void setup(AstConverterBase converter) { setupTypeNameMapper(converter); } public static void setup( WikiConfig config, AstNodeConverterBase converter) { setupBasicTypes(converter); setupDefaultNodeFactory(config, converter); setupOutputMinification(converter); setupTypeNameMapper(converter); } public static void setupBasicTypes(AstNodeConverterBase converter) { converter.setStringNodeType(WtText.class); } public static void setupDefaultNodeFactory( WikiConfig config, AstNodeConverterBase converter) { converter.setNodeFactory(config.getNodeFactory()); } public static void setupOutputMinification( AstNodeConverterBase converter) { converter.suppressNode(WtNoTagExtensionBody.class); converter.suppressTypeInfo(WtTagExtensionBodyImpl.class); converter.suppressNode(WtNoLinkOptionAltText.class); converter.suppressTypeInfo(WtLinkOptionAltTextImpl.class); converter.suppressNode(WtNoLinkTitle.class); converter.suppressTypeInfo(WtLinkTitleImpl.class); converter.suppressNode(WtNoLctFlags.class); converter.suppressTypeInfo(WtLctFlagsImpl.class); converter.suppressNode(WtNoLink.class); converter.suppressNode(WtNoName.class); converter.suppressTypeInfo(WtNameImpl.class); converter.suppressNode(WtNoValue.class); converter.suppressTypeInfo(WtValueImpl.class); converter.suppressNode(WtNoBody.class); converter.suppressTypeInfo(WtEmptyBody.class); converter.suppressTypeInfo(WtBodyImpl.class); converter.suppressTypeInfo(WtEmptyLinkOptions.class); converter.suppressTypeInfo(WtLinkOptionsImpl.class); converter.suppressTypeInfo(WtEmptyNodeList.class); converter.suppressTypeInfo(WtNodeListImpl.class); converter.suppressTypeInfo(WtEmptyTemplateArguments.class); converter.suppressTypeInfo(WtTemplateArgumentsImpl.class); converter.suppressTypeInfo(WtEmptyXmlAttributes.class); converter.suppressTypeInfo(WtXmlAttributesImpl.class); converter.setSuppressEmptyStringNodes(true); converter.setSuppressEmptyStringProperties(true); } private static void setupTypeNameMapper(AstConverterBase converter) { converter.setTypeNameMapper(tnm); } // ========================================================================= private static final class ReadOnlyTypeNameMapper extends SimpleTypeNameMapper { @Override public void add(Class type, String name) { throw new UnsupportedOperationException("This is a read-only type name mapper!"); } protected void privateAdd(Class type, String name) { super.add(type, name); } } // ========================================================================= static { tnm.privateAdd(WtBodyImpl.class, "body"); tnm.privateAdd(WtBold.class, "b"); tnm.privateAdd(WtDefinitionList.class, "dl"); tnm.privateAdd(WtDefinitionListDef.class, "dd"); tnm.privateAdd(WtDefinitionListTerm.class, "dt"); tnm.privateAdd(WtExternalLink.class, "extlink"); tnm.privateAdd(WtHeading.class, "heading"); tnm.privateAdd(WtHorizontalRule.class, "hr"); tnm.privateAdd(WtIgnored.class, "ignored"); tnm.privateAdd(WtIllegalCodePoint.class, "icp"); tnm.privateAdd(WtImageLink.class, "image"); tnm.privateAdd(WtInternalLink.class, "intlink"); tnm.privateAdd(WtItalics.class, "i"); tnm.privateAdd(WtLctFlagsImpl.class, "lct-flags"); tnm.privateAdd(WtLctRule.class, "lct-rule"); tnm.privateAdd(WtLctRuleConv.class, "lct-ruleconv"); tnm.privateAdd(WtLctRuleGarbage.class, "lct-rule-garbage"); tnm.privateAdd(WtLctRuleText.class, "lrt"); tnm.privateAdd(WtLctRules.class, "lct-rules"); tnm.privateAdd(WtLctVarConv.class, "lct-varconv"); tnm.privateAdd(WtLinkOptionAltTextImpl.class, "lo-alt"); tnm.privateAdd(WtLinkOptionGarbage.class, "lo-garbage"); tnm.privateAdd(WtLinkOptionKeyword.class, "lo-keyword"); tnm.privateAdd(WtLinkOptionLinkTarget.class, "lo-target"); tnm.privateAdd(WtLinkOptionResize.class, "lo-resize"); tnm.privateAdd(WtLinkOptionsImpl.class, "los"); tnm.privateAdd(WtLinkTitleImpl.class, "title"); tnm.privateAdd(WtListItem.class, "li"); tnm.privateAdd(WtNameImpl.class, "name"); tnm.privateAdd(WtNewline.class, "nl"); tnm.privateAdd(WtNodeListImpl.class, "list"); tnm.privateAdd(WtOnlyInclude.class, "onlyinclude"); tnm.privateAdd(WtOrderedList.class, "ol"); tnm.privateAdd(WtPageName.class, "pagename"); tnm.privateAdd(WtPageSwitch.class, "pageswitch"); tnm.privateAdd(WtParagraph.class, "p"); tnm.privateAdd(WtParsedWikitextPage.class, "parsed"); tnm.privateAdd(WtParserEntity.class, "entity"); tnm.privateAdd(WtPreproWikitextPage.class, "prepro"); tnm.privateAdd(WtRedirect.class, "redirect"); tnm.privateAdd(WtSection.class, "section"); tnm.privateAdd(WtSemiPre.class, "spre"); tnm.privateAdd(WtSemiPreLine.class, "spre-line"); tnm.privateAdd(WtSignature.class, "signature"); tnm.privateAdd(WtTable.class, "table"); tnm.privateAdd(WtTableCaption.class, "caption"); tnm.privateAdd(WtTableCell.class, "td"); tnm.privateAdd(WtTableHeader.class, "th"); tnm.privateAdd(WtTableImplicitTableBody.class, "tbody-implicit"); tnm.privateAdd(WtTableRow.class, "tr"); tnm.privateAdd(WtTagExtension.class, "tagext"); tnm.privateAdd(WtTagExtensionBodyImpl.class, "tagext-body"); tnm.privateAdd(WtTemplate.class, "template"); tnm.privateAdd(WtTemplateArgument.class, "arg"); tnm.privateAdd(WtTemplateArgumentsImpl.class, "args"); tnm.privateAdd(WtTemplateParameter.class, "param"); tnm.privateAdd(WtText.class, "text"); tnm.privateAdd(WtTicks.class, "ticks"); tnm.privateAdd(WtUnorderedList.class, "ul"); tnm.privateAdd(WtUrl.class, "url"); tnm.privateAdd(WtValueImpl.class, "value"); tnm.privateAdd(WtWhitespace.class, "ws"); tnm.privateAdd(WtXmlAttribute.class, "attr"); tnm.privateAdd(WtXmlAttributeGarbage.class, "attr-garbage"); tnm.privateAdd(WtXmlAttributesImpl.class, "attrs"); tnm.privateAdd(WtXmlCharRef.class, "cref"); tnm.privateAdd(WtXmlComment.class, "comment"); tnm.privateAdd(WtXmlElement.class, "elem"); tnm.privateAdd(WtXmlEmptyTag.class, "emptytag"); tnm.privateAdd(WtXmlEndTag.class, "endtag"); tnm.privateAdd(WtXmlEntityRef.class, "eref"); tnm.privateAdd(WtXmlStartTag.class, "starttag"); } } utils/000077500000000000000000000000001335270560400415475ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engineApplyToText.java000066400000000000000000000031141335270560400446460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtText; public class ApplyToText { private Functor fn; // ========================================================================= public ApplyToText(Functor fn) { this.fn = fn; } // ========================================================================= public void go(WtNode arg0) { if (arg0.getNodeType() == WtNode.NT_TEXT) { apply((WtText) arg0); } else { for (WtNode n : arg0) { if (n == null) continue; if (n.isNodeType(WtNode.NT_TEXT)) { apply((WtText) n); } else { go(n); } } } } private void apply(WtText arg0) { arg0.setContent(fn.apply(arg0.getContent())); } // ========================================================================= public interface Functor { public String apply(String text); } } DefaultConfig.java000066400000000000000000000451161335270560400451330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import org.sweble.wikitext.engine.ParserFunctionBase; import org.sweble.wikitext.engine.config.EngineConfigImpl; import org.sweble.wikitext.engine.config.I18nAliasImpl; import org.sweble.wikitext.engine.config.NamespaceImpl; import org.sweble.wikitext.engine.config.ParserConfigImpl; import org.sweble.wikitext.engine.config.ParserFunctionGroup; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.ext.builtin.BuiltInParserFunctions; import org.sweble.wikitext.engine.ext.builtin.BuiltInTagExtensions; import org.sweble.wikitext.engine.ext.convert.ConvertPnfExt; import org.sweble.wikitext.engine.ext.core.CorePfnBehaviorSwitches; import org.sweble.wikitext.engine.ext.core.CorePfnFunctionsFormatting; import org.sweble.wikitext.engine.ext.core.CorePfnFunctionsLocalization; import org.sweble.wikitext.engine.ext.core.CorePfnFunctionsMiscellaneous; import org.sweble.wikitext.engine.ext.core.CorePfnFunctionsNamespaces; import org.sweble.wikitext.engine.ext.core.CorePfnFunctionsUrlData; import org.sweble.wikitext.engine.ext.core.CorePfnVariablesDateAndTime; import org.sweble.wikitext.engine.ext.core.CorePfnVariablesNamespaces; import org.sweble.wikitext.engine.ext.core.CorePfnVariablesPageNames; import org.sweble.wikitext.engine.ext.core.CorePfnVariablesStatistics; import org.sweble.wikitext.engine.ext.core.CorePfnVariablesTechnicalMetadata; import org.sweble.wikitext.engine.ext.math.MathTagExt; import org.sweble.wikitext.engine.ext.parser_functions.ParserFunctionsPfnExt; import org.sweble.wikitext.engine.ext.ref.RefTagExt; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import java.util.ArrayList; import java.util.Arrays; /** * Programmatically generate a default configuration for a Wiki. */ public class DefaultConfig { public static WikiConfigImpl generate() { WikiConfigImpl c = new WikiConfigImpl(); new DefaultConfig().configureWiki(c); return c; } protected void configureWiki(WikiConfigImpl c) { configureEngine(c); // --[ Properties of the wiki instance ]-- configureSiteProperties(c); // --[ Namespaces, Known Wikis, Internationalization ]-- addNamespaces(c); addInterwikis(c); addI18nAliases(c); // --[ Parser functions ]-- addParserFunctions(c); // --[ Tag extensions ]-- addTagExtensions(c); } protected EngineConfigImpl configureEngine(WikiConfigImpl c) { configureParser(c); EngineConfigImpl cc = c.getEngineConfig(); cc.setTrimTransparentBeforeParsing(true); return cc; } protected ParserConfigImpl configureParser(WikiConfigImpl c) { ParserConfigImpl pc = c.getParserConfig(); // ==[ Parser features ]================================================ pc.setAutoCorrect(false); pc.setGatherRtData(true); pc.setMinSeverity(WarningSeverity.INFORMATIVE); pc.setWarningsEnabled(true); // --[ Link classification and parsing ]-- pc.addUrlProtocol("http://"); pc.addUrlProtocol("https://"); pc.addUrlProtocol("mailto:"); pc.setInternalLinkPrefixPattern(null); pc.setInternalLinkPostfixPattern(null); // ==[ Parsing XML elements ]=========================================== addXmlEntities(pc); // ==[ Language Conversion Tags ]======================================= addLctMappings(pc); return pc; } // ========================================================================= protected void addXmlEntities(ParserConfigImpl pc) { // From: http://www.w3.org/TR/html4/sgml/entities.html // 24 Character entity references in HTML 4 // 24.2 Character entity references for ISO 8859-1 characters pc.addXmlEntity("nbsp", "\u00a0"); pc.addXmlEntity("iexcl", "\u00a1"); pc.addXmlEntity("cent", "\u00a2"); pc.addXmlEntity("pound", "\u00a3"); pc.addXmlEntity("curren", "\u00a4"); pc.addXmlEntity("yen", "\u00a5"); pc.addXmlEntity("brvbar", "\u00a6"); pc.addXmlEntity("sect", "\u00a7"); pc.addXmlEntity("uml", "\u00a8"); pc.addXmlEntity("copy", "\u00a9"); pc.addXmlEntity("ordf", "\u00aa"); pc.addXmlEntity("laquo", "\u00ab"); pc.addXmlEntity("not", "\u00ac"); pc.addXmlEntity("shy", "\u00ad"); pc.addXmlEntity("reg", "\u00ae"); pc.addXmlEntity("macr", "\u00af"); pc.addXmlEntity("deg", "\u00b0"); pc.addXmlEntity("plusmn", "\u00b1"); pc.addXmlEntity("sup2", "\u00b2"); pc.addXmlEntity("sup3", "\u00b3"); pc.addXmlEntity("acute", "\u00b4"); pc.addXmlEntity("micro", "\u00b5"); pc.addXmlEntity("para", "\u00b6"); pc.addXmlEntity("middot", "\u00b7"); pc.addXmlEntity("cedil", "\u00b8"); pc.addXmlEntity("sup1", "\u00b9"); pc.addXmlEntity("ordm", "\u00ba"); pc.addXmlEntity("raquo", "\u00bb"); pc.addXmlEntity("frac14", "\u00bc"); pc.addXmlEntity("frac12", "\u00bd"); pc.addXmlEntity("frac34", "\u00be"); pc.addXmlEntity("iquest", "\u00bf"); pc.addXmlEntity("Agrave", "\u00c0"); pc.addXmlEntity("Aacute", "\u00c1"); pc.addXmlEntity("Acirc", "\u00c2"); pc.addXmlEntity("Atilde", "\u00c3"); pc.addXmlEntity("Auml", "\u00c4"); pc.addXmlEntity("Aring", "\u00c5"); pc.addXmlEntity("AElig", "\u00c6"); pc.addXmlEntity("Ccedil", "\u00c7"); pc.addXmlEntity("Egrave", "\u00c8"); pc.addXmlEntity("Eacute", "\u00c9"); pc.addXmlEntity("Ecirc", "\u00ca"); pc.addXmlEntity("Euml", "\u00cb"); pc.addXmlEntity("Igrave", "\u00cc"); pc.addXmlEntity("Iacute", "\u00cd"); pc.addXmlEntity("Icirc", "\u00ce"); pc.addXmlEntity("Iuml", "\u00cf"); pc.addXmlEntity("ETH", "\u00d0"); pc.addXmlEntity("Ntilde", "\u00d1"); pc.addXmlEntity("Ograve", "\u00d2"); pc.addXmlEntity("Oacute", "\u00d3"); pc.addXmlEntity("Ocirc", "\u00d4"); pc.addXmlEntity("Otilde", "\u00d5"); pc.addXmlEntity("Ouml", "\u00d6"); pc.addXmlEntity("times", "\u00d7"); pc.addXmlEntity("Oslash", "\u00d8"); pc.addXmlEntity("Ugrave", "\u00d9"); pc.addXmlEntity("Uacute", "\u00da"); pc.addXmlEntity("Ucirc", "\u00db"); pc.addXmlEntity("Uuml", "\u00dc"); pc.addXmlEntity("Yacute", "\u00dd"); pc.addXmlEntity("THORN", "\u00de"); pc.addXmlEntity("szlig", "\u00df"); pc.addXmlEntity("agrave", "\u00e0"); pc.addXmlEntity("aacute", "\u00e1"); pc.addXmlEntity("acirc", "\u00e2"); pc.addXmlEntity("atilde", "\u00e3"); pc.addXmlEntity("auml", "\u00e4"); pc.addXmlEntity("aring", "\u00e5"); pc.addXmlEntity("aelig", "\u00e6"); pc.addXmlEntity("ccedil", "\u00e7"); pc.addXmlEntity("egrave", "\u00e8"); pc.addXmlEntity("eacute", "\u00e9"); pc.addXmlEntity("ecirc", "\u00ea"); pc.addXmlEntity("euml", "\u00eb"); pc.addXmlEntity("igrave", "\u00ec"); pc.addXmlEntity("iacute", "\u00ed"); pc.addXmlEntity("icirc", "\u00ee"); pc.addXmlEntity("iuml", "\u00ef"); pc.addXmlEntity("eth", "\u00f0"); pc.addXmlEntity("ntilde", "\u00f1"); pc.addXmlEntity("ograve", "\u00f2"); pc.addXmlEntity("oacute", "\u00f3"); pc.addXmlEntity("ocirc", "\u00f4"); pc.addXmlEntity("otilde", "\u00f5"); pc.addXmlEntity("ouml", "\u00f6"); pc.addXmlEntity("divide", "\u00f7"); pc.addXmlEntity("oslash", "\u00f8"); pc.addXmlEntity("ugrave", "\u00f9"); pc.addXmlEntity("uacute", "\u00fa"); pc.addXmlEntity("ucirc", "\u00fb"); pc.addXmlEntity("uuml", "\u00fc"); pc.addXmlEntity("yacute", "\u00fd"); pc.addXmlEntity("thorn", "\u00fe"); pc.addXmlEntity("yuml", "\u00ff"); // 24.3 Character entity references for symbols, mathematical symbols, and Greek letters pc.addXmlEntity("fnof", "\u0192"); pc.addXmlEntity("Alpha", "\u0391"); pc.addXmlEntity("Beta", "\u0392"); pc.addXmlEntity("Gamma", "\u0393"); pc.addXmlEntity("Delta", "\u0394"); pc.addXmlEntity("Epsilon", "\u0395"); pc.addXmlEntity("Zeta", "\u0396"); pc.addXmlEntity("Eta", "\u0397"); pc.addXmlEntity("Theta", "\u0398"); pc.addXmlEntity("Iota", "\u0399"); pc.addXmlEntity("Kappa", "\u039a"); pc.addXmlEntity("Lambda", "\u039b"); pc.addXmlEntity("Mu", "\u039c"); pc.addXmlEntity("Nu", "\u039d"); pc.addXmlEntity("Xi", "\u039e"); pc.addXmlEntity("Omicron", "\u039f"); pc.addXmlEntity("Pi", "\u03a0"); pc.addXmlEntity("Rho", "\u03a1"); pc.addXmlEntity("Sigma", "\u03a3"); pc.addXmlEntity("Tau", "\u03a4"); pc.addXmlEntity("Upsilon", "\u03a5"); pc.addXmlEntity("Phi", "\u03a6"); pc.addXmlEntity("Chi", "\u03a7"); pc.addXmlEntity("Psi", "\u03a8"); pc.addXmlEntity("Omega", "\u03a9"); pc.addXmlEntity("alpha", "\u03b1"); pc.addXmlEntity("beta", "\u03b2"); pc.addXmlEntity("gamma", "\u03b3"); pc.addXmlEntity("delta", "\u03b4"); pc.addXmlEntity("epsilon", "\u03b5"); pc.addXmlEntity("zeta", "\u03b6"); pc.addXmlEntity("eta", "\u03b7"); pc.addXmlEntity("theta", "\u03b8"); pc.addXmlEntity("iota", "\u03b9"); pc.addXmlEntity("kappa", "\u03ba"); pc.addXmlEntity("lambda", "\u03bb"); pc.addXmlEntity("mu", "\u03bc"); pc.addXmlEntity("nu", "\u03bd"); pc.addXmlEntity("xi", "\u03be"); pc.addXmlEntity("omicron", "\u03bf"); pc.addXmlEntity("pi", "\u03c0"); pc.addXmlEntity("rho", "\u03c1"); pc.addXmlEntity("sigmaf", "\u03c2"); pc.addXmlEntity("sigma", "\u03c3"); pc.addXmlEntity("tau", "\u03c4"); pc.addXmlEntity("upsilon", "\u03c5"); pc.addXmlEntity("phi", "\u03c6"); pc.addXmlEntity("chi", "\u03c7"); pc.addXmlEntity("psi", "\u03c8"); pc.addXmlEntity("omega", "\u03c9"); pc.addXmlEntity("thetasym", "\u03d1"); pc.addXmlEntity("upsih", "\u03d2"); pc.addXmlEntity("piv", "\u03d6"); pc.addXmlEntity("bull", "\u2022"); pc.addXmlEntity("hellip", "\u2026"); pc.addXmlEntity("prime", "\u2032"); pc.addXmlEntity("Prime", "\u2033"); pc.addXmlEntity("oline", "\u203e"); pc.addXmlEntity("frasl", "\u2044"); pc.addXmlEntity("weierp", "\u2118"); pc.addXmlEntity("image", "\u2111"); pc.addXmlEntity("real", "\u211c"); pc.addXmlEntity("trade", "\u2122"); pc.addXmlEntity("alefsym", "\u2135"); pc.addXmlEntity("larr", "\u2190"); pc.addXmlEntity("uarr", "\u2191"); pc.addXmlEntity("rarr", "\u2192"); pc.addXmlEntity("darr", "\u2193"); pc.addXmlEntity("harr", "\u2194"); pc.addXmlEntity("crarr", "\u21b5"); pc.addXmlEntity("lArr", "\u21d0"); pc.addXmlEntity("uArr", "\u21d1"); pc.addXmlEntity("rArr", "\u21d2"); pc.addXmlEntity("dArr", "\u21d3"); pc.addXmlEntity("hArr", "\u21d4"); pc.addXmlEntity("forall", "\u2200"); pc.addXmlEntity("part", "\u2202"); pc.addXmlEntity("exist", "\u2203"); pc.addXmlEntity("empty", "\u2205"); pc.addXmlEntity("nabla", "\u2207"); pc.addXmlEntity("isin", "\u2208"); pc.addXmlEntity("notin", "\u2209"); pc.addXmlEntity("ni", "\u220b"); pc.addXmlEntity("prod", "\u220f"); pc.addXmlEntity("sum", "\u2211"); pc.addXmlEntity("minus", "\u2212"); pc.addXmlEntity("lowast", "\u2217"); pc.addXmlEntity("radic", "\u221a"); pc.addXmlEntity("prop", "\u221d"); pc.addXmlEntity("infin", "\u221e"); pc.addXmlEntity("ang", "\u2220"); pc.addXmlEntity("and", "\u2227"); pc.addXmlEntity("or", "\u2228"); pc.addXmlEntity("cap", "\u2229"); pc.addXmlEntity("cup", "\u222a"); pc.addXmlEntity("int", "\u222b"); pc.addXmlEntity("there4", "\u2234"); pc.addXmlEntity("sim", "\u223c"); pc.addXmlEntity("cong", "\u2245"); pc.addXmlEntity("asymp", "\u2248"); pc.addXmlEntity("ne", "\u2260"); pc.addXmlEntity("equiv", "\u2261"); pc.addXmlEntity("le", "\u2264"); pc.addXmlEntity("ge", "\u2265"); pc.addXmlEntity("sub", "\u2282"); pc.addXmlEntity("sup", "\u2283"); pc.addXmlEntity("nsub", "\u2284"); pc.addXmlEntity("sube", "\u2286"); pc.addXmlEntity("supe", "\u2287"); pc.addXmlEntity("oplus", "\u2295"); pc.addXmlEntity("otimes", "\u2297"); pc.addXmlEntity("perp", "\u22a5"); pc.addXmlEntity("sdot", "\u22c5"); pc.addXmlEntity("lceil", "\u2308"); pc.addXmlEntity("rceil", "\u2309"); pc.addXmlEntity("lfloor", "\u230a"); pc.addXmlEntity("rfloor", "\u230b"); pc.addXmlEntity("lang", "\u2329"); pc.addXmlEntity("rang", "\u232a"); pc.addXmlEntity("loz", "\u25ca"); pc.addXmlEntity("spades", "\u2660"); pc.addXmlEntity("clubs", "\u2663"); pc.addXmlEntity("hearts", "\u2665"); pc.addXmlEntity("diams", "\u2666"); // 24.4 Character entity references for markup-significant and internationalization characters pc.addXmlEntity("quot", "" + '\u0022'); // Eclipse gets really confused! pc.addXmlEntity("amp", "\u0026"); pc.addXmlEntity("lt", "\u003c"); pc.addXmlEntity("gt", "\u003e"); pc.addXmlEntity("OElig", "\u0152"); pc.addXmlEntity("oelig", "\u0153"); pc.addXmlEntity("Scaron", "\u0160"); pc.addXmlEntity("scaron", "\u0161"); pc.addXmlEntity("Yuml", "\u0178"); pc.addXmlEntity("circ", "\u02c6"); pc.addXmlEntity("tilde", "\u02dc"); pc.addXmlEntity("ensp", "\u2002"); pc.addXmlEntity("emsp", "\u2003"); pc.addXmlEntity("thinsp", "\u2009"); pc.addXmlEntity("zwnj", "\u200c"); pc.addXmlEntity("zwj", "\u200d"); pc.addXmlEntity("lrm", "\u200e"); pc.addXmlEntity("rlm", "\u200f"); pc.addXmlEntity("ndash", "\u2013"); pc.addXmlEntity("mdash", "\u2014"); pc.addXmlEntity("lsquo", "\u2018"); pc.addXmlEntity("rsquo", "\u2019"); pc.addXmlEntity("sbquo", "\u201a"); pc.addXmlEntity("ldquo", "\u201c"); pc.addXmlEntity("rdquo", "\u201d"); pc.addXmlEntity("bdquo", "\u201e"); pc.addXmlEntity("dagger", "\u2020"); pc.addXmlEntity("Dagger", "\u2021"); pc.addXmlEntity("permil", "\u2030"); pc.addXmlEntity("lsaquo", "\u2039"); pc.addXmlEntity("rsaquo", "\u203a"); pc.addXmlEntity("euro", "\u20ac"); } protected void addLctMappings(ParserConfigImpl pc) { } protected void configureSiteProperties(WikiConfigImpl c) { c.setSiteName("My Wiki"); c.setWikiUrl("http://localhost/"); c.setContentLang("xx"); c.setIwPrefix("xx"); } protected void addNamespaces(WikiConfigImpl c) { c.addNamespace(new NamespaceImpl( -2, "Media", "Media", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( -1, "Special", "Special", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 0, "", "", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 1, "Talk", "Talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 2, "User", "User", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 3, "User talk", "User talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 4, "Project", "Project", false, false, Arrays.asList("WP"))); c.addNamespace(new NamespaceImpl( 5, "Project talk", "Project talk", false, false, Arrays.asList("WT"))); c.addNamespace(new NamespaceImpl( 6, "File", "File", false, true, Arrays.asList("Image"))); c.addNamespace(new NamespaceImpl( 7, "File talk", "File talk", false, false, Arrays.asList("Image talk"))); c.addNamespace(new NamespaceImpl( 8, "MediaWiki", "MediaWiki", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 9, "MediaWiki talk", "MediaWiki talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 10, "Template", "Template", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 11, "Template talk", "Template talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 12, "Help", "Help", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 13, "Help talk", "Help talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 14, "Category", "Category", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 15, "Category talk", "Category talk", false, false, new ArrayList())); c.setDefaultNamespace(c.getNamespace(0)); c.setTemplateNamespace(c.getNamespace(10)); } protected void addInterwikis(WikiConfigImpl c) { } protected void addI18nAliases(WikiConfigImpl c) { } protected void addParserFunctions(WikiConfigImpl c) { addParserFunctions(c, false); } protected void addParserFunctions(WikiConfigImpl c, boolean skipGroupsWithMissingAliases) { addParserFunctionGroup(c, BuiltInParserFunctions.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnBehaviorSwitches.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnFunctionsFormatting.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnFunctionsLocalization.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnFunctionsMiscellaneous.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnFunctionsNamespaces.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnFunctionsUrlData.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnVariablesDateAndTime.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnVariablesNamespaces.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnVariablesPageNames.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnVariablesStatistics.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, CorePfnVariablesTechnicalMetadata.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, ParserFunctionsPfnExt.group(c), skipGroupsWithMissingAliases); addParserFunctionGroup(c, ConvertPnfExt.group(c), skipGroupsWithMissingAliases); } protected void addParserFunctionGroup( WikiConfigImpl c, ParserFunctionGroup group, boolean skipGroupsWithMissingAliases) { boolean skip = false; if (skipGroupsWithMissingAliases) { for (ParserFunctionBase pfn : group.getParserFunctions()) { I18nAliasImpl alias = c.getI18nAliasById(pfn.getId()); if (alias == null) { skip = true; break; } } } if (!skip) { c.addParserFunctionGroup(group); } } protected void addTagExtensions(WikiConfigImpl c) { c.addTagExtensionGroup(BuiltInTagExtensions.group(c)); c.addTagExtensionGroup(MathTagExt.group(c)); c.addTagExtensionGroup(RefTagExt.group(c)); } } DefaultConfigEnWp.java000066400000000000000000003072761335270560400457350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.util.ArrayList; import java.util.Arrays; import org.sweble.wikitext.engine.config.I18nAliasImpl; import org.sweble.wikitext.engine.config.InterwikiImpl; import org.sweble.wikitext.engine.config.NamespaceImpl; import org.sweble.wikitext.engine.config.ParserConfigImpl; import org.sweble.wikitext.engine.config.WikiConfigImpl; /** * Programatically generate a default configuration for that is similar to that * of the English Wikipedia. */ public class DefaultConfigEnWp extends DefaultConfig { public static WikiConfigImpl generate() { WikiConfigImpl c = new WikiConfigImpl(); new DefaultConfigEnWp().configureWiki(c); return c; } protected void configureSiteProperties(WikiConfigImpl c) { c.setSiteName("My English Wiki"); c.setWikiUrl("http://localhost/"); c.setContentLang("en"); c.setIwPrefix("en"); } protected ParserConfigImpl configureParser(WikiConfigImpl c) { ParserConfigImpl pc = super.configureParser(c); // --[ Link classification and parsing ]-- pc.setInternalLinkPrefixPattern(null); pc.setInternalLinkPostfixPattern("[a-z]+"); return pc; } protected void addNamespaces(WikiConfigImpl c) { c.addNamespace(new NamespaceImpl( -2, "Media", "Media", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( -1, "Special", "Special", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 0, "", "", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 1, "Talk", "Talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 2, "User", "User", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 3, "User talk", "User talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 4, "Wikipedia", "Project", false, false, Arrays.asList("WP"))); c.addNamespace(new NamespaceImpl( 5, "Wikipedia talk", "Project talk", false, false, Arrays.asList("WT"))); c.addNamespace(new NamespaceImpl( 6, "File", "File", false, true, Arrays.asList("Image"))); c.addNamespace(new NamespaceImpl( 7, "File talk", "File talk", false, false, Arrays.asList("Image talk"))); c.addNamespace(new NamespaceImpl( 8, "MediaWiki", "MediaWiki", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 9, "MediaWiki talk", "MediaWiki talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 10, "Template", "Template", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 11, "Template talk", "Template talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 12, "Help", "Help", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 13, "Help talk", "Help talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 14, "Category", "Category", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 15, "Category talk", "Category talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 100, "Portal", "Portal", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 101, "Portal talk", "Portal talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 108, "Book", "Book", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 109, "Book talk", "Book talk", false, false, new ArrayList())); c.setDefaultNamespace(c.getNamespace(0)); c.setTemplateNamespace(c.getNamespace(10)); } protected void addInterwikis(WikiConfigImpl c) { c.addInterwiki(new InterwikiImpl( "aa", "http://aa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ab", "http://ab.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "abbenormal", "http://ourpla.net/cgi/pikie?$1", false, false)); c.addInterwiki(new InterwikiImpl( "acronym", "http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=$1", false, false)); c.addInterwiki(new InterwikiImpl( "advisory", "http://advisory.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "advogato", "http://www.advogato.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "aew", "http://wiki.arabeyes.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "af", "http://af.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "airwarfare", "http://airwarfare.com/mediawiki-1.4.5/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "aiwiki", "http://www.ifi.unizh.ch/ailab/aiwiki/aiw.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ak", "http://ak.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "allwiki", "http://allwiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "als", "http://als.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "am", "http://am.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "an", "http://an.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ang", "http://ang.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "appropedia", "http://www.appropedia.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "aquariumwiki", "http://www.theaquariumwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ar", "http://ar.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "arc", "http://arc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "arxiv", "http://arxiv.org/abs/$1", false, false)); c.addInterwiki(new InterwikiImpl( "arz", "http://arz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "as", "http://as.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "aspienetwiki", "http://aspie.mela.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ast", "http://ast.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "atmwiki", "http://www.otterstedt.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "av", "http://av.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ay", "http://ay.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "az", "http://az.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "b", "http://en.wikibooks.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ba", "http://ba.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bar", "http://bar.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bat-smg", "http://bat-smg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "battlestarwiki", "http://en.battlestarwiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bcl", "http://bcl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "be", "http://be.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "be-x-old", "http://be-x-old.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bemi", "http://bemi.free.fr/vikio/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "benefitswiki", "http://www.benefitslink.com/cgi-bin/wiki.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "betawiki", "http://translatewiki.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "betawikiversity", "http://beta.wikiversity.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bg", "http://bg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bh", "http://bh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bi", "http://bi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "biblewiki", "http://bible.tmtm.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bluwiki", "http://www.bluwiki.org/go/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bm", "http://bm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bn", "http://bn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bo", "http://bo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "botwiki", "http://botwiki.sno.cc/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "boxrec", "http://www.boxrec.com/media/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "bpy", "http://bpy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "br", "http://br.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "brickwiki", "http://brickwiki.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "bridgeswiki", "http://c2.com:8000/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bs", "http://bs.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bug", "http://bug.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bugzilla", "https://bugzilla.wikimedia.org/show_bug.cgi?id=$1", true, false)); c.addInterwiki(new InterwikiImpl( "buzztard", "http://buzztard.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bxr", "http://bxr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bytesmiths", "http://www.Bytesmiths.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "c2", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "c2find", "http://c2.com/cgi/wiki?FindPage&value=$1", false, false)); c.addInterwiki(new InterwikiImpl( "ca", "http://ca.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cache", "http://www.google.com/search?q=cache:$1", false, false)); c.addInterwiki(new InterwikiImpl( "canwiki", "http://www.can-wiki.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "canyonwiki", "http://www.canyonwiki.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cbk-zam", "http://cbk-zam.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cdo", "http://cdo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ce", "http://ce.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ceb", "http://ceb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cellwiki", "http://cell.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "centralwikia", "http://www.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ch", "http://ch.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chapter", "http://en.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cho", "http://cho.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "choralwiki", "http://www.cpdl.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "chr", "http://chr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chy", "http://chy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ciscavate", "http://ciscavate.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "citizendium", "http://en.citizendium.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ckwiss", "http://ck-wissen.de/ckwiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "closed-zh-tw", "http://closed-zh-tw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cndbname", "http://cndb.com/actor.html?name=$1", false, false)); c.addInterwiki(new InterwikiImpl( "cndbtitle", "http://cndb.com/movie.html?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "co", "http://co.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "colab", "http://colab.info", false, false)); c.addInterwiki(new InterwikiImpl( "comcom", "http://comcom.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "comixpedia", "http://www.comixpedia.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "commons", "http://commons.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "communityscheme", "http://community.schemewiki.org/?c=s&key=$1", false, false)); c.addInterwiki(new InterwikiImpl( "comune", "http://rete.comuni-italiani.it/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "consciousness", "http://teadvus.inspiral.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "corpknowpedia", "http://corpknowpedia.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cr", "http://cr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "crazyhacks", "http://www.crazy-hacks.org/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "creatureswiki", "http://creatures.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "crh", "http://crh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cs", "http://cs.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "csb", "http://csb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cu", "http://cu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cv", "http://cv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cxej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cy", "http://cy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cz", "http://cz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "da", "http://da.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dawiki", "http://www.dienstag-abend.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dbdump", "http://download.wikimedia.org/$1/latest/", true, false)); c.addInterwiki(new InterwikiImpl( "dcc", "http://www.dccwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dcdatabase", "http://www.dcdatabaseproject.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dcma", "http://www.christian-morgenstern.de/dcma/$1", false, false)); c.addInterwiki(new InterwikiImpl( "de", "http://de.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dejanews", "http://www.deja.com/=dnc/getdoc.xp?AN=$1", false, false)); c.addInterwiki(new InterwikiImpl( "delicious", "http://del.icio.us/tag/$1", false, false)); c.addInterwiki(new InterwikiImpl( "demokraatia", "http://wiki.demokraatia.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "devmo", "http://developer.mozilla.org/en/docs/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dict", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "dictionary", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "diq", "http://diq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "disinfopedia", "http://www.sourcewatch.org/wiki.phtml?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "distributedproofreaders", "http://www.pgdp.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "distributedproofreadersca", "http://www.pgdpcanada.net/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dk", "http://dk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dmoz", "http://www.dmoz.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dmozs", "http://www.dmoz.org/cgi-bin/search?search=$1", false, false)); c.addInterwiki(new InterwikiImpl( "docbook", "http://wiki.docbook.org/topic/$1", false, false)); c.addInterwiki(new InterwikiImpl( "doi", "http://dx.doi.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "doom_wiki", "http://doom.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "download", "http://download.wikimedia.org/$1", true, false)); c.addInterwiki(new InterwikiImpl( "drae", "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1", false, false)); c.addInterwiki(new InterwikiImpl( "dreamhost", "http://wiki.dreamhost.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "drumcorpswiki", "http://www.drumcorpswiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dsb", "http://dsb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dv", "http://dv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dwjwiki", "http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "dz", "http://dz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "echei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ecoreality", "http://www.EcoReality.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ecxei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ee", "http://ee.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "efnetceewiki", "http://purl.net/wiki/c/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetcppwiki", "http://purl.net/wiki/cpp/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetpythonwiki", "http://purl.net/wiki/python/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetxmlwiki", "http://purl.net/wiki/xml/$1", false, false)); c.addInterwiki(new InterwikiImpl( "el", "http://el.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "elibre", "http://enciclopedia.us.es/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "emacswiki", "http://www.emacswiki.org/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "eml", "http://eml.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "en", "http://en.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "energiewiki", "http://www.netzwerk-energieberater.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "eo", "http://eo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "eokulturcentro", "http://esperanto.toulouse.free.fr/nova/wikini/wakka.php?wiki=$1", false, false)); c.addInterwiki(new InterwikiImpl( "epo", "http://epo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "es", "http://es.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "et", "http://et.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ethnologue", "http://www.ethnologue.com/show_language.asp?code=$1", false, false)); c.addInterwiki(new InterwikiImpl( "eu", "http://eu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "evowiki", "http://wiki.cotch.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "exotica", "http://www.exotica.org.uk/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ext", "http://ext.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "e\u0109ei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "fa", "http://fa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fanimutationwiki", "http://wiki.animutationportal.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ff", "http://ff.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fi", "http://fi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "finalempire", "http://final-empire.sourceforge.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "finalfantasy", "http://finalfantasy.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "finnix", "http://www.finnix.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "fiu-vro", "http://fiu-vro.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fj", "http://fj.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "flickruser", "http://www.flickr.com/people/$1", false, false)); c.addInterwiki(new InterwikiImpl( "floralwiki", "http://www.floralwiki.co.uk/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "flyerwiki-de", "http://de.flyerwiki.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "fo", "http://fo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "foldoc", "http://www.foldoc.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "forthfreak", "http://wiki.forthfreak.net/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "foundation", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "foxwiki", "http://fox.wikis.com/wc.dll?Wiki~$1", false, false)); c.addInterwiki(new InterwikiImpl( "fr", "http://fr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "freebio", "http://freebiology.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freebsdman", "http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "freeculturewiki", "http://wiki.freeculture.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freedomdefined", "http://freedomdefined.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freefeel", "http://freefeel.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freekiwiki", "http://wiki.freegeek.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "frp", "http://frp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fur", "http://fur.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fy", "http://fy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ga", "http://ga.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gan", "http://gan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ganfyd", "http://ganfyd.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "gausswiki", "http://gauss.ffii.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gd", "http://gd.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gentoo-wiki", "http://gentoo-wiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "genwiki", "http://wiki.genealogy.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gl", "http://gl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "glk", "http://glk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "globalvoices", "http://cyber.law.harvard.edu/dyn/globalvoices/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "glossarwiki", "http://glossar.hs-augsburg.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "glossarywiki", "http://glossary.hs-augsburg.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gn", "http://gn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "golem", "http://golem.linux.it/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "google", "http://www.google.com/search?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "googledefine", "http://www.google.com/search?q=define:$1", false, false)); c.addInterwiki(new InterwikiImpl( "googlegroups", "http://groups.google.com/groups?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "got", "http://got.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gotamac", "http://www.got-a-mac.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "greatlakeswiki", "http://greatlakeswiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gu", "http://gu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "guildwiki", "http://gw.gamewikis.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gutenberg", "http://www.gutenberg.org/etext/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gutenbergwiki", "http://www.gutenberg.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gv", "http://gv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "h2wiki", "http://halowiki.net/p/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ha", "http://ha.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hak", "http://hak.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hammondwiki", "http://www.dairiki.org/HammondWiki/index.php3?$1", false, false)); c.addInterwiki(new InterwikiImpl( "haw", "http://haw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "he", "http://he.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "heroeswiki", "http://heroeswiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "herzkinderwiki", "http://www.herzkinderinfo.de/Mediawiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hi", "http://hi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hif", "http://hif.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hkmule", "http://www.hkmule.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ho", "http://ho.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "holshamtraders", "http://www.holsham-traders.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hr", "http://hr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hrfwiki", "http://fanstuff.hrwiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hrwiki", "http://www.hrwiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hsb", "http://hsb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ht", "http://ht.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hu", "http://hu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "humancell", "http://www.humancell.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hupwiki", "http://wiki.hup.hu/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hy", "http://hy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hz", "http://hz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ia", "http://ia.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "id", "http://id.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ie", "http://ie.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ig", "http://ig.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ii", "http://ii.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ik", "http://ik.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ilo", "http://ilo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "imdbcharacter", "http://www.imdb.com/character/ch$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbcompany", "http://www.imdb.com/company/co$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbname", "http://www.imdb.com/name/nm$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbtitle", "http://www.imdb.com/title/tt$1/", false, false)); c.addInterwiki(new InterwikiImpl( "incubator", "http://incubator.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "infoanarchy", "http://www.infoanarchy.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "infosecpedia", "http://www.infosecpedia.org/pedia/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "infosphere", "http://theinfosphere.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "io", "http://io.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "is", "http://is.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iso639-3", "http://www.sil.org/iso639-3/documentation.asp?id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "it", "http://it.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iu", "http://iu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iuridictum", "http://iuridictum.pecina.cz/w/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ja", "http://ja.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jameshoward", "http://jameshoward.us/$1", false, false)); c.addInterwiki(new InterwikiImpl( "javanet", "http://wiki.java.net/bin/view/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "javapedia", "http://wiki.java.net/bin/view/Javapedia/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jbo", "http://jbo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jefo", "http://esperanto-jeunes.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jiniwiki", "http://www.cdegroot.com/cgi-bin/jini?$1", false, false)); c.addInterwiki(new InterwikiImpl( "jp", "http://jp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jspwiki", "http://www.ecyrd.com/JSPWiki/Wiki.jsp?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "jstor", "http://www.jstor.org/journals/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jv", "http://jv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ka", "http://ka.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kaa", "http://kaa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kab", "http://kab.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kamelo", "http://kamelopedia.mormo.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "karlsruhe", "http://ka.stadtwiki.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kerimwiki", "http://wiki.oxus.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kg", "http://kg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ki", "http://ki.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kinowiki", "http://kino.skripov.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kj", "http://kj.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kk", "http://kk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kl", "http://kl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "km", "http://km.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kmwiki", "http://kmwiki.wikispaces.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kn", "http://kn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ko", "http://ko.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kontuwiki", "http://kontu.merri.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "koslarwiki", "http://wiki.koslar.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kpopwiki", "http://www.kpopwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kr", "http://kr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ks", "http://ks.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ksh", "http://ksh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ku", "http://ku.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kv", "http://kv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kw", "http://kw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ky", "http://ky.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "la", "http://la.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lad", "http://lad.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lb", "http://lb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lbe", "http://lbe.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lg", "http://lg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "li", "http://li.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lij", "http://lij.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "linguistlist", "http://linguistlist.org/forms/langs/LLDescription.cfm?code=$1", false, false)); c.addInterwiki(new InterwikiImpl( "linuxwiki", "http://www.linuxwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "linuxwikide", "http://www.linuxwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "liswiki", "http://liswiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "literateprograms", "http://en.literateprograms.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "livepedia", "http://www.livepedia.gr/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lmo", "http://lmo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ln", "http://ln.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lo", "http://lo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lojban", "http://www.lojban.org/tiki/tiki-index.php?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lostpedia", "http://lostpedia.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "lqwiki", "http://wiki.linuxquestions.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "lt", "http://lt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lugkr", "http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "luxo", "http://toolserver.org/~luxo/contributions/contributions.php?user=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lv", "http://lv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lyricwiki", "http://www.lyricwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mail", "https://lists.wikimedia.org/mailman/listinfo/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mailarchive", "http://lists.wikimedia.org/pipermail/$1", true, false)); c.addInterwiki(new InterwikiImpl( "map-bms", "http://map-bms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mariowiki", "http://www.mariowiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "marveldatabase", "http://www.marveldatabase.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mdf", "http://mdf.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "meatball", "http://www.usemod.com/cgi-bin/mb.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "mediazilla", "https://bugzilla.wikimedia.org/$1", true, false)); c.addInterwiki(new InterwikiImpl( "memoryalpha", "http://memory-alpha.org/en/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "metawiki", "http://sunir.org/apps/meta.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "metawikipedia", "http://meta.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mg", "http://mg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mh", "http://mh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mi", "http://mi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mineralienatlas", "http://www.mineralienatlas.de/lexikon/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "minnan", "http://minnan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mk", "http://mk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ml", "http://ml.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mn", "http://mn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mo", "http://mo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "moinmoin", "http://moinmo.in/$1", false, false)); c.addInterwiki(new InterwikiImpl( "monstropedia", "http://www.monstropedia.org/?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "mosapedia", "http://mosapedia.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozcom", "http://mozilla.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozillawiki", "http://wiki.mozilla.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozillazinekb", "http://kb.mozillazine.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mr", "http://mr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ms", "http://ms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mt", "http://mt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mus", "http://mus.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "musicbrainz", "http://wiki.musicbrainz.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mw", "http://www.mediawiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mwod", "http://www.merriam-webster.com/cgi-bin/dictionary?book=Dictionary&va=$1", false, false)); c.addInterwiki(new InterwikiImpl( "mwot", "http://www.merriam-webster.com/cgi-bin/thesaurus?book=Thesaurus&va=$1", false, false)); c.addInterwiki(new InterwikiImpl( "my", "http://my.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "myv", "http://myv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mzn", "http://mzn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "n", "http://en.wikinews.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "na", "http://na.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nah", "http://nah.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nan", "http://nan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nap", "http://nap.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nb", "http://nb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nds", "http://nds.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nds-nl", "http://nds-nl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ne", "http://ne.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "netvillage", "http://www.netbros.com/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "new", "http://new.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ng", "http://ng.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nkcells", "http://www.nkcells.info/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "nl", "http://nl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nn", "http://nn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "no", "http://no.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nomcom", "http://nomcom.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nosmoke", "http://no-smok.net/nsmk/$1", false, false)); c.addInterwiki(new InterwikiImpl( "nost", "http://nostalgia.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nov", "http://nov.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nrm", "http://nrm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nv", "http://nv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ny", "http://ny.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "oc", "http://oc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "oeis", "http://www.research.att.com/~njas/sequences/$1", false, false)); c.addInterwiki(new InterwikiImpl( "oldwikisource", "http://wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "olpc", "http://wiki.laptop.org/go/$1", false, false)); c.addInterwiki(new InterwikiImpl( "om", "http://om.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "onelook", "http://www.onelook.com/?ls=b&w=$1", false, false)); c.addInterwiki(new InterwikiImpl( "openfacts", "http://openfacts.berlios.de/index.phtml?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "openstreetmap", "http://wiki.openstreetmap.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "openwetware", "http://openwetware.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "openwiki", "http://openwiki.com/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "opera7wiki", "http://operawiki.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "or", "http://or.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "organicdesign", "http://www.organicdesign.co.nz/$1", false, false)); c.addInterwiki(new InterwikiImpl( "orgpatterns", "http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?$1", false, false)); c.addInterwiki(new InterwikiImpl( "orthodoxwiki", "http://orthodoxwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "os", "http://os.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "osi reference model", "http://wiki.tigma.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "otrs", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketID=$1", true, false)); c.addInterwiki(new InterwikiImpl( "otrswiki", "http://otrs-wiki.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ourmedia", "http://www.socialtext.net/ourmedia/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "pa", "http://pa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pag", "http://pag.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "paganwiki", "http://www.paganwiki.org/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "pam", "http://pam.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "panawiki", "http://wiki.alairelibre.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pangalacticorg", "http://www.pangalactic.org/Wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pap", "http://pap.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "patwiki", "http://gauss.ffii.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pdc", "http://pdc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "perlconfwiki", "http://perl.conf.hu/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "perlnet", "http://perl.net.au/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "personaltelco", "http://www.personaltelco.net/index.cgi/$1", false, false)); c.addInterwiki(new InterwikiImpl( "phpwiki", "http://phpwiki.sourceforge.net/phpwiki/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "phwiki", "http://wiki.pocketheaven.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pi", "http://pi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pih", "http://pih.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pl", "http://pl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "planetmath", "http://planetmath.org/?op=getobj&from=objects&id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "pmeg", "http://www.bertilow.com/pmeg/$1.php", false, false)); c.addInterwiki(new InterwikiImpl( "pms", "http://pms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pmwiki", "http://old.porplemontage.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pnt", "http://pnt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ps", "http://ps.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "psycle", "http://psycle.sourceforge.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pt", "http://pt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "purlnet", "http://purl.oclc.org/NET/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pythoninfo", "http://www.python.org/cgi-bin/moinmoin/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pythonwiki", "http://www.pythonwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pywiki", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "q", "http://en.wikiquote.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "qcwiki", "http://wiki.quantumchemistry.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "qu", "http://qu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "quality", "http://quality.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "qwiki", "http://qwiki.caltech.edu/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "r3000", "http://prinsig.se/weekee/$1", false, false)); c.addInterwiki(new InterwikiImpl( "raec", "http://www.raec.clacso.edu.ar:8080/raec/Members/raecpedia/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rakwiki", "http://rakwiki.no-ip.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "reuterswiki", "http://glossary.reuters.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rev", "http://www.mediawiki.org/wiki/Special:Code/MediaWiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "revo", "http://purl.org/NET/voko/revo/art/$1.html", false, false)); c.addInterwiki(new InterwikiImpl( "rfc", "http://tools.ietf.org/html/rfc$1", false, false)); c.addInterwiki(new InterwikiImpl( "rheinneckar", "http://wiki.rhein-neckar.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rm", "http://rm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rmy", "http://rmy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rn", "http://rn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ro", "http://ro.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "roa-rup", "http://roa-rup.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "roa-tara", "http://roa-tara.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "robowiki", "http://robowiki.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "rowiki", "http://wiki.rennkuckuck.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ru", "http://ru.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rw", "http://rw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "s", "http://en.wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "s23wiki", "http://s23.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sa", "http://sa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sah", "http://sah.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sc", "http://sc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scholar", "http://scholar.google.com/scholar?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "schoolswp", "http://schools-wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scn", "http://scn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sco", "http://sco.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scores", "http://www.imslp.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "scoutwiki", "http://en.scoutwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "scramble", "http://www.scramble.nl/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "sd", "http://sd.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "se", "http://se.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "seapig", "http://www.seapig.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "seattlewiki", "http://seattlewiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "seattlewireless", "http://seattlewireless.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "senseislibrary", "http://senseis.xmp.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "sg", "http://sg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sh", "http://sh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "shakti", "http://cgi.algonet.se/htbin/cgiwrap/pgd/ShaktiWiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "si", "http://si.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "silcode", "http://www.sil.org/iso639-3/documentation.asp?id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "simple", "http://simple.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sk", "http://sk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sl", "http://sl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "slashdot", "http://slashdot.org/article.pl?sid=$1", false, false)); c.addInterwiki(new InterwikiImpl( "slwiki", "http://wiki.secondlife.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sm", "http://sm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "smikipedia", "http://www.smiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sn", "http://sn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "so", "http://so.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sourceforge", "http://sourceforge.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "spcom", "http://spcom.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "species", "http://species.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sq", "http://sq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "squeak", "http://wiki.squeak.org/squeak/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sr", "http://sr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "srn", "http://srn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ss", "http://ss.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "st", "http://st.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "stable", "http://stable.toolserver.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "stq", "http://stq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "strategywiki", "http://strategywiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "su", "http://su.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sulutil", "http://toolserver.org/~vvv/sulutil.php?user=$1", false, false)); c.addInterwiki(new InterwikiImpl( "susning", "http://www.susning.nu/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sv", "http://sv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "svgwiki", "http://www.protocol7.com/svg-wiki/default.asp?$1", false, false)); c.addInterwiki(new InterwikiImpl( "svn", "http://svn.wikimedia.org/viewvc/mediawiki/$1?view=log", true, false)); c.addInterwiki(new InterwikiImpl( "sw", "http://sw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "swinbrain", "http://mercury.it.swin.edu.au/swinbrain/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "swingwiki", "http://www.swingwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "swtrain", "http://train.spottingworld.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "szl", "http://szl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ta", "http://ta.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tabwiki", "http://www.tabwiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "takipedia", "http://www.takipedia.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tavi", "http://tavi.sourceforge.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tclerswiki", "http://wiki.tcl.tk/$1", false, false)); c.addInterwiki(new InterwikiImpl( "te", "http://te.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "technorati", "http://www.technorati.com/search/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tejo", "http://www.tejo.org/vikio/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tesoltaiwan", "http://www.tesol-taiwan.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "testwiki", "http://test.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tet", "http://tet.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tg", "http://tg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "th", "http://th.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "thelemapedia", "http://www.thelemapedia.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "theopedia", "http://www.theopedia.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "theppn", "http://wiki.theppn.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "thinkwiki", "http://www.thinkwiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ti", "http://ti.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tibiawiki", "http://tibia.erig.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ticket", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketNumber=$1", true, false)); c.addInterwiki(new InterwikiImpl( "tk", "http://tk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tl", "http://tl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tmbw", "http://tmbw.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tmnet", "http://www.technomanifestos.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "tmwiki", "http://www.EasyTopicMaps.com/?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "tn", "http://tn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "to", "http://to.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tokipona", "http://tokipona.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tokyonights", "http://wiki.tokyo-nights.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tools", "http://toolserver.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tp", "http://tp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tpi", "http://tpi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tr", "http://tr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "translatewiki", "http://translatewiki.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "trash!italia", "http://trashware.linux.it/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ts", "http://ts.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tswiki", "http://wiki.toolserver.org/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tt", "http://tt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tum", "http://tum.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "turismo", "http://www.tejo.org/turismo/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tviv", "http://tviv.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tvtropes", "http://www.tvtropes.org/pmwiki/pmwiki.php/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tw", "http://tw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "twiki", "http://twiki.org/cgi-bin/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "twistedwiki", "http://purl.net/wiki/twisted/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ty", "http://ty.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tyvawiki", "http://www.tyvawiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "udm", "http://udm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ug", "http://ug.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "uk", "http://uk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "uncyclopedia", "http://uncyclopedia.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "unreal", "http://wiki.beyondunreal.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ur", "http://ur.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "urbandict", "http://www.urbandictionary.com/define.php?term=$1", false, false)); c.addInterwiki(new InterwikiImpl( "usej", "http://www.tejo.org/usej/$1", false, false)); c.addInterwiki(new InterwikiImpl( "usemod", "http://www.usemod.com/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "uz", "http://uz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "v", "http://en.wikiversity.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "valuewiki", "http://www.valuewiki.com/w/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ve", "http://ve.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vec", "http://vec.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "veropedia", "http://en.veropedia.com/a/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vi", "http://vi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vinismo", "http://vinismo.com/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vkol", "http://kol.coldfront.net/thekolwiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vlos", "http://www.thuvienkhoahoc.com/tusach/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vls", "http://vls.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vo", "http://vo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "voipinfo", "http://www.voip-info.org/wiki/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wa", "http://wa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "war", "http://war.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "warpedview", "http://www.warpedview.com/mediawiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "webdevwikinl", "http://www.promo-it.nl/WebDevWiki/index.php?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "webisodes", "http://www.webisodes.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "webseitzwiki", "http://webseitz.fluxent.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wg", "http://wg.en.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wiki", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikia", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikianso", "http://www.ansorena.de/mediawiki/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiasite", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikible", "http://wikible.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikibooks", "http://en.wikibooks.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikichat", "http://www.wikichat.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikichristian", "http://www.wikichristian.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikicities", "http://www.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikicity", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikif1", "http://www.wikif1.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikifur", "http://en.wikifur.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikihow", "http://www.wikihow.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiindex", "http://wikiindex.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikilemon", "http://wiki.illemonati.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikilivres", "http://wikilivres.info/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimac-de", "http://apfelwiki.de/wiki/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimac-fr", "http://www.wikimac.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimedia", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinews", "http://en.wikinews.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinfo", "http://www.wikinfo.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinurse", "http://wikinurse.org/media/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinvest", "http://www.wikinvest.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikipaltz", "http://www.wikipaltz.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikipediawikipedia", "http://en.wikipedia.org/wiki/Wikipedia:$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikiquote", "http://en.wikiquote.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikireason", "http://wikireason.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikischool", "http://www.wikischool.de/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikisophia", "http://wikisophia.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikisource", "http://en.wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikispecies", "http://species.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikispot", "http://wikispot.org/?action=gotowikipage&v=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiti", "http://wikiti.denglend.net/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikitravel", "http://wikitravel.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikitree", "http://wikitree.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiversity", "http://en.wikiversity.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiwikiweb", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikt", "http://en.wiktionary.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wiktionary", "http://en.wiktionary.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wipipedia", "http://www.londonfetishscene.com/wipi/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wlug", "http://www.wlug.org.nz/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wm2005", "http://wikimania2005.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2006", "http://wikimania2006.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2007", "http://wikimania2007.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2008", "http://wikimania2008.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2009", "http://wikimania2009.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2010", "http://wikimania2010.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmania", "http://wikimania.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmcz", "http://meta.wikimedia.org/wiki/Wikimedia_Czech_Republic/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmf", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wmrs", "http://rs.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmse", "http://se.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wo", "http://wo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wookieepedia", "http://starwars.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "world66", "http://www.world66.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wowwiki", "http://www.wowwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wqy", "http://wqy.sourceforge.net/cgi-bin/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wurmpedia", "http://www.wurmonline.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wuu", "http://wuu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wznan", "http://www.wikiznanie.ru/wiki/article/$1", false, false)); c.addInterwiki(new InterwikiImpl( "xal", "http://xal.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "xboxic", "http://wiki.xboxic.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "xh", "http://xh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "yi", "http://yi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "yo", "http://yo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "za", "http://za.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zea", "http://zea.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-cfr", "http://zh-cfr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-classical", "http://zh-classical.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-cn", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-min-nan", "http://zh-min-nan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-tw", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-yue", "http://zh-yue.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zrhwiki", "http://www.zrhwiki.ch/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zu", "http://zu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zum", "http://wiki.zum.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zwiki", "http://www.zwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zzz wiki", "http://wiki.zzz.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "\u0108ej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); } protected void addI18nAliases(WikiConfigImpl c) { /* c.addI18nAlias(new I18nAliasImpl( "img_lossy", false, Arrays.asList("lossy=$1"))); */ c.addI18nAlias(new I18nAliasImpl( "expr", false, Arrays.asList("#expr:"))); c.addI18nAlias(new I18nAliasImpl( "if", false, Arrays.asList("#if:"))); c.addI18nAlias(new I18nAliasImpl( "ifeq", false, Arrays.asList("#ifeq:"))); c.addI18nAlias(new I18nAliasImpl( "ifexpr", false, Arrays.asList("#ifexpr:"))); c.addI18nAlias(new I18nAliasImpl( "iferror", false, Arrays.asList("#iferror:"))); c.addI18nAlias(new I18nAliasImpl( "switch", false, Arrays.asList("#switch:"))); /* c.addI18nAlias(new I18nAliasImpl( "default", false, Arrays.asList("#default"))); */ c.addI18nAlias(new I18nAliasImpl( "ifexist", false, Arrays.asList("#ifexist:"))); c.addI18nAlias(new I18nAliasImpl( "time", false, Arrays.asList("#time:"))); c.addI18nAlias(new I18nAliasImpl( "timel", false, Arrays.asList("#timel:"))); /* c.addI18nAlias(new I18nAliasImpl( "rel2abs", false, Arrays.asList("rel2abs"))); */ c.addI18nAlias(new I18nAliasImpl( "titleparts", false, Arrays.asList("#titleparts:"))); c.addI18nAlias(new I18nAliasImpl( "convert", false, Arrays.asList("convert"))); /* c.addI18nAlias(new I18nAliasImpl( "sourceunit", false, Arrays.asList("#sourceunit"))); c.addI18nAlias(new I18nAliasImpl( "targetunit", false, Arrays.asList("#targetunit"))); c.addI18nAlias(new I18nAliasImpl( "linkunit", false, Arrays.asList("#linkunit"))); c.addI18nAlias(new I18nAliasImpl( "decimalplaces", false, Arrays.asList("#dp"))); c.addI18nAlias(new I18nAliasImpl( "significantfigures", false, Arrays.asList("#sf"))); c.addI18nAlias(new I18nAliasImpl( "abbreviate", false, Arrays.asList("#abbreviate"))); c.addI18nAlias(new I18nAliasImpl( "language", false, Arrays.asList("#language", "#LANGUAGE:"))); c.addI18nAlias(new I18nAliasImpl( "len", false, Arrays.asList("len"))); c.addI18nAlias(new I18nAliasImpl( "pos", false, Arrays.asList("pos"))); c.addI18nAlias(new I18nAliasImpl( "rpos", false, Arrays.asList("rpos"))); /* c.addI18nAlias(new I18nAliasImpl( "sub", false, Arrays.asList("sub"))); / c.addI18nAlias(new I18nAliasImpl( "count", false, Arrays.asList("count"))); c.addI18nAlias(new I18nAliasImpl( "replace", false, Arrays.asList("replace"))); c.addI18nAlias(new I18nAliasImpl( "explode", false, Arrays.asList("explode"))); c.addI18nAlias(new I18nAliasImpl( "urldecode", false, Arrays.asList("urldecode"))); c.addI18nAlias(new I18nAliasImpl( "categorytree", false, Arrays.asList("categorytree"))); c.addI18nAlias(new I18nAliasImpl( "ogg_noplayer", false, Arrays.asList("noplayer"))); c.addI18nAlias(new I18nAliasImpl( "ogg_noicon", false, Arrays.asList("noicon"))); c.addI18nAlias(new I18nAliasImpl( "ogg_thumbtime", false, Arrays.asList("thumbtime=$1"))); c.addI18nAlias(new I18nAliasImpl( "babel", false, Arrays.asList("babel"))); c.addI18nAlias(new I18nAliasImpl( "contributiontotal", false, Arrays.asList("contributiontotal"))); c.addI18nAlias(new I18nAliasImpl( "pagesusingpendingchanges", false, Arrays.asList("pagesusingpendingchanges"))); c.addI18nAlias(new I18nAliasImpl( "pendingchangelevel", false, Arrays.asList("pendingchangelevel"))); c.addI18nAlias(new I18nAliasImpl( "useliquidthreads", false, Arrays.asList("UseLiquidThreads"))); c.addI18nAlias(new I18nAliasImpl( "lqtpagelimit", false, Arrays.asList("lqtpagelimit"))); c.addI18nAlias(new I18nAliasImpl( "translationdialog", false, Arrays.asList("translationdialog"))); c.addI18nAlias(new I18nAliasImpl( "usertestwiki", false, Arrays.asList("USERTESTWIKI"))); */ c.addI18nAlias(new I18nAliasImpl( "redirect", false, Arrays.asList("#REDIRECT"))); /* c.addI18nAlias(new I18nAliasImpl( "notoc", false, Arrays.asList("__NOTOC__"))); c.addI18nAlias(new I18nAliasImpl( "nogallery", false, Arrays.asList("__NOGALLERY__"))); c.addI18nAlias(new I18nAliasImpl( "forcetoc", false, Arrays.asList("__FORCETOC__"))); c.addI18nAlias(new I18nAliasImpl( "toc", false, Arrays.asList("__TOC__"))); c.addI18nAlias(new I18nAliasImpl( "noeditsection", false, Arrays.asList("__NOEDITSECTION__"))); c.addI18nAlias(new I18nAliasImpl( "noheader", false, Arrays.asList("__NOHEADER__"))); */ c.addI18nAlias(new I18nAliasImpl( "currentmonth", true, Arrays.asList("CURRENTMONTH", "CURRENTMONTH2"))); /* c.addI18nAlias(new I18nAliasImpl( "currentmonth1", true, Arrays.asList("CURRENTMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthname", true, Arrays.asList("CURRENTMONTHNAME"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthnamegen", true, Arrays.asList("CURRENTMONTHNAMEGEN"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthabbrev", true, Arrays.asList("CURRENTMONTHABBREV"))); */ c.addI18nAlias(new I18nAliasImpl( "currentday", true, Arrays.asList("CURRENTDAY"))); /* c.addI18nAlias(new I18nAliasImpl( "currentday2", true, Arrays.asList("CURRENTDAY2"))); c.addI18nAlias(new I18nAliasImpl( "currentdayname", true, Arrays.asList("CURRENTDAYNAME"))); */ c.addI18nAlias(new I18nAliasImpl( "currentyear", true, Arrays.asList("CURRENTYEAR"))); /* c.addI18nAlias(new I18nAliasImpl( "currenttime", true, Arrays.asList("CURRENTTIME"))); c.addI18nAlias(new I18nAliasImpl( "currenthour", true, Arrays.asList("CURRENTHOUR"))); c.addI18nAlias(new I18nAliasImpl( "localmonth", true, Arrays.asList("LOCALMONTH", "LOCALMONTH2"))); c.addI18nAlias(new I18nAliasImpl( "localmonth1", true, Arrays.asList("LOCALMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "localmonthname", true, Arrays.asList("LOCALMONTHNAME"))); c.addI18nAlias(new I18nAliasImpl( "localmonthnamegen", true, Arrays.asList("LOCALMONTHNAMEGEN"))); c.addI18nAlias(new I18nAliasImpl( "localmonthabbrev", true, Arrays.asList("LOCALMONTHABBREV"))); c.addI18nAlias(new I18nAliasImpl( "localday", true, Arrays.asList("LOCALDAY"))); c.addI18nAlias(new I18nAliasImpl( "localday2", true, Arrays.asList("LOCALDAY2"))); c.addI18nAlias(new I18nAliasImpl( "localdayname", true, Arrays.asList("LOCALDAYNAME"))); c.addI18nAlias(new I18nAliasImpl( "localyear", true, Arrays.asList("LOCALYEAR"))); c.addI18nAlias(new I18nAliasImpl( "localtime", true, Arrays.asList("LOCALTIME"))); c.addI18nAlias(new I18nAliasImpl( "localhour", true, Arrays.asList("LOCALHOUR"))); c.addI18nAlias(new I18nAliasImpl( "numberofpages", true, Arrays.asList("NUMBEROFPAGES"))); c.addI18nAlias(new I18nAliasImpl( "numberofarticles", true, Arrays.asList("NUMBEROFARTICLES"))); c.addI18nAlias(new I18nAliasImpl( "numberoffiles", true, Arrays.asList("NUMBEROFFILES"))); c.addI18nAlias(new I18nAliasImpl( "numberofusers", true, Arrays.asList("NUMBEROFUSERS"))); c.addI18nAlias(new I18nAliasImpl( "numberofactiveusers", true, Arrays.asList("NUMBEROFACTIVEUSERS"))); c.addI18nAlias(new I18nAliasImpl( "numberofedits", true, Arrays.asList("NUMBEROFEDITS"))); c.addI18nAlias(new I18nAliasImpl( "numberofviews", true, Arrays.asList("NUMBEROFVIEWS"))); */ c.addI18nAlias(new I18nAliasImpl( "pagename", true, Arrays.asList("PAGENAME", "PAGENAME:"))); c.addI18nAlias(new I18nAliasImpl( "pagenamee", true, Arrays.asList("PAGENAMEE", "PAGENAMEE:"))); c.addI18nAlias(new I18nAliasImpl( "namespace", true, Arrays.asList("NAMESPACE", "NAMESPACE:"))); /* c.addI18nAlias(new I18nAliasImpl( "namespacee", true, Arrays.asList("NAMESPACEE"))); c.addI18nAlias(new I18nAliasImpl( "namespacenumber", true, Arrays.asList("NAMESPACENUMBER"))); */ c.addI18nAlias(new I18nAliasImpl( "talkspace", true, Arrays.asList("TALKSPACE"))); /* c.addI18nAlias(new I18nAliasImpl( "talkspacee", true, Arrays.asList("TALKSPACEE"))); */ c.addI18nAlias(new I18nAliasImpl( "subjectspace", true, Arrays.asList("SUBJECTSPACE", "ARTICLESPACE"))); /* c.addI18nAlias(new I18nAliasImpl( "subjectspacee", true, Arrays.asList("SUBJECTSPACEE", "ARTICLESPACEE"))); */ c.addI18nAlias(new I18nAliasImpl( "fullpagename", true, Arrays.asList("FULLPAGENAME"))); c.addI18nAlias(new I18nAliasImpl( "fullpagenamee", true, Arrays.asList("FULLPAGENAMEE"))); /* c.addI18nAlias(new I18nAliasImpl( "subpagename", true, Arrays.asList("SUBPAGENAME"))); c.addI18nAlias(new I18nAliasImpl( "subpagenamee", true, Arrays.asList("SUBPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "basepagename", true, Arrays.asList("BASEPAGENAME"))); /* c.addI18nAlias(new I18nAliasImpl( "basepagenamee", true, Arrays.asList("BASEPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "talkpagename", true, Arrays.asList("TALKPAGENAME", "TALKPAGENAME:"))); /* c.addI18nAlias(new I18nAliasImpl( "talkpagenamee", true, Arrays.asList("TALKPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "subjectpagename", true, Arrays.asList("SUBJECTPAGENAME", "ARTICLEPAGENAME"))); /* c.addI18nAlias(new I18nAliasImpl( "subjectpagenamee", true, Arrays.asList("SUBJECTPAGENAMEE", "ARTICLEPAGENAMEE"))); c.addI18nAlias(new I18nAliasImpl( "msg", false, Arrays.asList("MSG:"))); c.addI18nAlias(new I18nAliasImpl( "subst", false, Arrays.asList("SUBST:"))); */ c.addI18nAlias(new I18nAliasImpl( "safesubst", false, Arrays.asList("SAFESUBST:"))); /* c.addI18nAlias(new I18nAliasImpl( "msgnw", false, Arrays.asList("MSGNW:"))); c.addI18nAlias(new I18nAliasImpl( "img_thumbnail", true, Arrays.asList("thumbnail", "thumb"))); c.addI18nAlias(new I18nAliasImpl( "img_manualthumb", true, Arrays.asList("thumbnail=$1", "thumb=$1"))); c.addI18nAlias(new I18nAliasImpl( "img_right", true, Arrays.asList("right"))); c.addI18nAlias(new I18nAliasImpl( "img_left", true, Arrays.asList("left"))); c.addI18nAlias(new I18nAliasImpl( "img_none", true, Arrays.asList("none"))); c.addI18nAlias(new I18nAliasImpl( "img_width", true, Arrays.asList("$1px"))); c.addI18nAlias(new I18nAliasImpl( "img_center", true, Arrays.asList("center", "centre"))); c.addI18nAlias(new I18nAliasImpl( "img_framed", true, Arrays.asList("framed", "enframed", "frame"))); c.addI18nAlias(new I18nAliasImpl( "img_frameless", true, Arrays.asList("frameless"))); c.addI18nAlias(new I18nAliasImpl( "img_page", true, Arrays.asList("page=$1", "page $1"))); c.addI18nAlias(new I18nAliasImpl( "img_upright", true, Arrays.asList("upright", "upright=$1", "upright $1"))); c.addI18nAlias(new I18nAliasImpl( "img_border", true, Arrays.asList("border"))); c.addI18nAlias(new I18nAliasImpl( "img_baseline", true, Arrays.asList("baseline"))); c.addI18nAlias(new I18nAliasImpl( "img_sub", true, Arrays.asList("sub"))); c.addI18nAlias(new I18nAliasImpl( "img_super", true, Arrays.asList("super", "sup"))); c.addI18nAlias(new I18nAliasImpl( "img_top", true, Arrays.asList("top"))); c.addI18nAlias(new I18nAliasImpl( "img_text_top", true, Arrays.asList("text-top"))); c.addI18nAlias(new I18nAliasImpl( "img_middle", true, Arrays.asList("middle"))); c.addI18nAlias(new I18nAliasImpl( "img_bottom", true, Arrays.asList("bottom"))); c.addI18nAlias(new I18nAliasImpl( "img_text_bottom", true, Arrays.asList("text-bottom"))); c.addI18nAlias(new I18nAliasImpl( "img_link", true, Arrays.asList("link=$1"))); c.addI18nAlias(new I18nAliasImpl( "img_alt", true, Arrays.asList("alt=$1"))); c.addI18nAlias(new I18nAliasImpl( "int", false, Arrays.asList("INT:"))); */ c.addI18nAlias(new I18nAliasImpl( "sitename", true, Arrays.asList("SITENAME"))); c.addI18nAlias(new I18nAliasImpl( "ns", false, Arrays.asList("NS:"))); /* c.addI18nAlias(new I18nAliasImpl( "nse", false, Arrays.asList("NSE:"))); c.addI18nAlias(new I18nAliasImpl( "localurl", false, Arrays.asList("LOCALURL:"))); c.addI18nAlias(new I18nAliasImpl( "localurle", false, Arrays.asList("LOCALURLE:"))); c.addI18nAlias(new I18nAliasImpl( "articlepath", false, Arrays.asList("ARTICLEPATH"))); c.addI18nAlias(new I18nAliasImpl( "server", false, Arrays.asList("SERVER"))); c.addI18nAlias(new I18nAliasImpl( "servername", false, Arrays.asList("SERVERNAME"))); c.addI18nAlias(new I18nAliasImpl( "scriptpath", false, Arrays.asList("SCRIPTPATH"))); c.addI18nAlias(new I18nAliasImpl( "stylepath", false, Arrays.asList("STYLEPATH"))); c.addI18nAlias(new I18nAliasImpl( "grammar", false, Arrays.asList("GRAMMAR:"))); c.addI18nAlias(new I18nAliasImpl( "gender", false, Arrays.asList("GENDER:"))); c.addI18nAlias(new I18nAliasImpl( "notitleconvert", false, Arrays.asList("__NOTITLECONVERT__", "__NOTC__"))); c.addI18nAlias(new I18nAliasImpl( "nocontentconvert", false, Arrays.asList("__NOCONTENTCONVERT__", "__NOCC__"))); c.addI18nAlias(new I18nAliasImpl( "currentweek", true, Arrays.asList("CURRENTWEEK"))); c.addI18nAlias(new I18nAliasImpl( "currentdow", true, Arrays.asList("CURRENTDOW"))); c.addI18nAlias(new I18nAliasImpl( "localweek", true, Arrays.asList("LOCALWEEK"))); c.addI18nAlias(new I18nAliasImpl( "localdow", true, Arrays.asList("LOCALDOW"))); c.addI18nAlias(new I18nAliasImpl( "revisionid", true, Arrays.asList("REVISIONID"))); c.addI18nAlias(new I18nAliasImpl( "revisionday", true, Arrays.asList("REVISIONDAY"))); c.addI18nAlias(new I18nAliasImpl( "revisionday2", true, Arrays.asList("REVISIONDAY2"))); c.addI18nAlias(new I18nAliasImpl( "revisionmonth", true, Arrays.asList("REVISIONMONTH"))); c.addI18nAlias(new I18nAliasImpl( "revisionmonth1", true, Arrays.asList("REVISIONMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "revisionyear", true, Arrays.asList("REVISIONYEAR"))); c.addI18nAlias(new I18nAliasImpl( "revisiontimestamp", true, Arrays.asList("REVISIONTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "revisionuser", true, Arrays.asList("REVISIONUSER"))); c.addI18nAlias(new I18nAliasImpl( "plural", false, Arrays.asList("PLURAL:"))); */ c.addI18nAlias(new I18nAliasImpl( "fullurl", false, Arrays.asList("FULLURL:"))); /* c.addI18nAlias(new I18nAliasImpl( "fullurle", false, Arrays.asList("FULLURLE:"))); c.addI18nAlias(new I18nAliasImpl( "canonicalurl", false, Arrays.asList("CANONICALURL:"))); c.addI18nAlias(new I18nAliasImpl( "canonicalurle", false, Arrays.asList("CANONICALURLE:"))); */ c.addI18nAlias(new I18nAliasImpl( "lcfirst", false, Arrays.asList("LCFIRST:"))); c.addI18nAlias(new I18nAliasImpl( "ucfirst", false, Arrays.asList("UCFIRST:"))); c.addI18nAlias(new I18nAliasImpl( "lc", false, Arrays.asList("LC:"))); c.addI18nAlias(new I18nAliasImpl( "uc", false, Arrays.asList("UC:"))); /* c.addI18nAlias(new I18nAliasImpl( "raw", false, Arrays.asList("RAW:"))); c.addI18nAlias(new I18nAliasImpl( "displaytitle", true, Arrays.asList("DISPLAYTITLE"))); c.addI18nAlias(new I18nAliasImpl( "rawsuffix", true, Arrays.asList("R"))); c.addI18nAlias(new I18nAliasImpl( "newsectionlink", true, Arrays.asList("__NEWSECTIONLINK__"))); c.addI18nAlias(new I18nAliasImpl( "nonewsectionlink", true, Arrays.asList("__NONEWSECTIONLINK__"))); c.addI18nAlias(new I18nAliasImpl( "currentversion", true, Arrays.asList("CURRENTVERSION"))); */ c.addI18nAlias(new I18nAliasImpl( "urlencode", false, Arrays.asList("URLENCODE:"))); /* c.addI18nAlias(new I18nAliasImpl( "anchorencode", false, Arrays.asList("ANCHORENCODE"))); c.addI18nAlias(new I18nAliasImpl( "currenttimestamp", true, Arrays.asList("CURRENTTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "localtimestamp", true, Arrays.asList("LOCALTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "directionmark", true, Arrays.asList("DIRECTIONMARK", "DIRMARK"))); */ c.addI18nAlias(new I18nAliasImpl( "contentlanguage", true, Arrays.asList("CONTENTLANGUAGE", "CONTENTLANG"))); /* c.addI18nAlias(new I18nAliasImpl( "pagesinnamespace", true, Arrays.asList("PAGESINNAMESPACE:", "PAGESINNS:"))); c.addI18nAlias(new I18nAliasImpl( "numberofadmins", true, Arrays.asList("NUMBEROFADMINS"))); c.addI18nAlias(new I18nAliasImpl( "formatnum", false, Arrays.asList("FORMATNUM"))); */ c.addI18nAlias(new I18nAliasImpl( "padleft", false, Arrays.asList("PADLEFT:"))); /* c.addI18nAlias(new I18nAliasImpl( "padright", false, Arrays.asList("PADRIGHT"))); c.addI18nAlias(new I18nAliasImpl( "special", false, Arrays.asList("special"))); c.addI18nAlias(new I18nAliasImpl( "speciale", false, Arrays.asList("speciale"))); */ c.addI18nAlias(new I18nAliasImpl( "defaultsort", true, Arrays.asList("DEFAULTSORT:", "DEFAULTSORTKEY:", "DEFAULTCATEGORYSORT:"))); c.addI18nAlias(new I18nAliasImpl( "filepath", false, Arrays.asList("FILEPATH:"))); c.addI18nAlias(new I18nAliasImpl( "tag", false, Arrays.asList("#tag:"))); /* c.addI18nAlias(new I18nAliasImpl( "hiddencat", true, Arrays.asList("__HIDDENCAT__"))); c.addI18nAlias(new I18nAliasImpl( "pagesincategory", true, Arrays.asList("PAGESINCATEGORY", "PAGESINCAT"))); c.addI18nAlias(new I18nAliasImpl( "pagesize", true, Arrays.asList("PAGESIZE"))); c.addI18nAlias(new I18nAliasImpl( "index", true, Arrays.asList("__INDEX__"))); c.addI18nAlias(new I18nAliasImpl( "noindex", true, Arrays.asList("__NOINDEX__"))); c.addI18nAlias(new I18nAliasImpl( "numberingroup", true, Arrays.asList("NUMBERINGROUP", "NUMINGROUP"))); c.addI18nAlias(new I18nAliasImpl( "staticredirect", true, Arrays.asList("__STATICREDIRECT__"))); */ c.addI18nAlias(new I18nAliasImpl( "protectionlevel", true, Arrays.asList("PROTECTIONLEVEL:"))); /* c.addI18nAlias(new I18nAliasImpl( "formatdate", false, Arrays.asList("formatdate", "dateformat"))); c.addI18nAlias(new I18nAliasImpl( "url_path", false, Arrays.asList("PATH"))); c.addI18nAlias(new I18nAliasImpl( "url_wiki", false, Arrays.asList("WIKI"))); c.addI18nAlias(new I18nAliasImpl( "url_query", false, Arrays.asList("QUERY"))); c.addI18nAlias(new I18nAliasImpl( "defaultsort_noerror", false, Arrays.asList("noerror"))); c.addI18nAlias(new I18nAliasImpl( "defaultsort_noreplace", false, Arrays.asList("noreplace"))); */ } } EngineAstTextUtils.java000066400000000000000000000022541335270560400461600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.AstTextUtils; public interface EngineAstTextUtils extends AstTextUtils { public static final int DO_NOT_CONVERT_NOWIKI = AstTextUtils.AST_TO_TEXT_LAST_OPTION + 1; public static final int AST_TO_TEXT_LAST_OPTION = AstTextUtils.AST_TO_TEXT_LAST_OPTION + 2; public abstract WtNode trim(WtNode n); public abstract WtNode trimLeft(WtNode n); public abstract WtNode trimRight(WtNode n); } EngineAstTextUtilsImpl.java000066400000000000000000000141461335270560400470050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.util.ListIterator; import org.sweble.wikitext.engine.nodes.EngNode; import org.sweble.wikitext.engine.nodes.EngNowiki; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.utils.AstTextUtilsImpl; import org.sweble.wikitext.parser.utils.StringConversionException; import de.fau.cs.osr.utils.StringTools; public class EngineAstTextUtilsImpl extends AstTextUtilsImpl implements EngineAstTextUtils { public EngineAstTextUtilsImpl(ParserConfig parserConfig) { super(parserConfig); } // ========================================================================= @Override public WtNode trim(WtNode n) { return trimRight(trimLeft(n)); } @Override public WtNode trimLeft(WtNode n) { if (n.isList()) { WtNodeList l = (WtNodeList) n; ListIterator i = l.listIterator(); outer: while (i.hasNext()) { WtNode item = i.next(); switch (item.getNodeType()) { case WtNode.NT_TEXT: WtText t = (WtText) item; String text = t.getContent(); if (text.isEmpty()) { i.remove(); continue; } String trimmed = StringTools.trimLeft(text); if (trimmed.equals(text)) break outer; if (trimmed.isEmpty()) { i.remove(); continue; } else { t.setContent(trimmed); break outer; } case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: continue; default: break outer; } } return n; } else if (n.getNodeType() == WtNode.NT_TEXT) { WtText t = (WtText) n; t.setContent(StringTools.trimLeft(t.getContent())); return n; } else { return n; } } @Override public WtNode trimRight(WtNode n) { if (n.isList()) { WtNodeList l = (WtNodeList) n; ListIterator i = l.listIterator(l.size()); outer: while (i.hasPrevious()) { WtNode item = i.previous(); switch (item.getNodeType()) { case WtNode.NT_TEXT: WtText t = (WtText) item; String text = t.getContent(); if (text.isEmpty()) { i.remove(); continue; } String trimmed = StringTools.trimRight(text); if (trimmed.equals(text)) break outer; if (trimmed.isEmpty()) { i.remove(); continue; } else { t.setContent(trimmed); break outer; } case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: continue; default: break outer; } } return n; } else if (n.getNodeType() == WtNode.NT_TEXT) { WtText t = (WtText) n; t.setContent(StringTools.trimRight(t.getContent())); return n; } else { return n; } } // ========================================================================= @Override public String astToText(WtNode node) throws StringConversionException { return super.astToText(node, new SimpleEngineStringConverter()); } @Override public String astToText(WtNode node, int... options) throws StringConversionException { return super.astToText(node, new SimpleEngineStringConverter(options)); } @Override public PartialConversion astToTextPartial(WtNode node) { return super.astToTextPartial(node, new PartialEngineStringConverter()); } @Override public PartialConversion astToTextPartial(WtNode node, int... options) { return super.astToTextPartial(node, new PartialEngineStringConverter(options)); } // ========================================================================= public static class SimpleEngineStringConverter extends SimpleStringConverter { protected boolean doNotConvertNowiki; public SimpleEngineStringConverter() { doNotConvertNowiki = false; } public SimpleEngineStringConverter(int[] options) { this(); for (int option : options) setOption(option); } protected void setOption(int option) { switch (option) { case DO_NOT_CONVERT_NOWIKI: doNotConvertNowiki = true; break; default: super.setOption(option); break; } } @Override public void dispatch(WtNode node, int nodeType) throws StringConversionException { if (!doNotConvertNowiki && nodeType == EngNode.NT_NOWIKI) { visit((EngNowiki) node); } else { super.dispatch(node, nodeType); } } protected void visit(EngNowiki node) { b.append(node.getContent()); } } // ========================================================================= public class PartialEngineStringConverter extends PartialStringConverter { protected boolean doNotConvertNowiki; public PartialEngineStringConverter() { doNotConvertNowiki = false; } public PartialEngineStringConverter(int[] options) { this(); for (int option : options) setOption(option); } protected void setOption(int option) { switch (option) { case DO_NOT_CONVERT_NOWIKI: doNotConvertNowiki = true; break; default: super.setOption(option); break; } } @Override public void dispatch(WtNode node, int nodeType) throws StringConversionException { if (!doNotConvertNowiki && nodeType == EngNode.NT_NOWIKI) { visit((EngNowiki) node); } else { super.dispatch(node, nodeType); } } protected void visit(EngNowiki node) { b.append(node.getContent()); } } } EnginePrettyPrinter.java000066400000000000000000000042601335270560400463750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.engine.nodes.CompleteEngineVisitorNoReturn; import org.sweble.wikitext.engine.nodes.EngNowiki; import org.sweble.wikitext.engine.nodes.EngPage; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngSoftErrorNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.utils.WtPrettyPrinter; public class EnginePrettyPrinter extends WtPrettyPrinter implements CompleteEngineVisitorNoReturn { public void visit(EngNowiki n) { if (n.getContent().isEmpty()) { p.print(""); } else { p.print(""); p.print(n.getContent()); p.print(""); } } @Override public void visit(EngProcessedPage n) { dispatch(n.getPage()); } @Override public void visit(EngPage n) { iterate(n); } @Override public void visit(EngSoftErrorNode n) { visit((WtXmlElement) n); } // ========================================================================= public static String print(T node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, T node) { new EnginePrettyPrinter(writer).go(node); return writer; } // ========================================================================= public EnginePrettyPrinter(Writer writer) { super(writer); } } EngineRtDataPrettyPrinter.java000066400000000000000000000043161335270560400474770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.engine.nodes.CompleteEngineVisitorNoReturn; import org.sweble.wikitext.engine.nodes.EngNowiki; import org.sweble.wikitext.engine.nodes.EngPage; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngSoftErrorNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.utils.WtRtDataPrettyPrinter; public class EngineRtDataPrettyPrinter extends WtRtDataPrettyPrinter implements CompleteEngineVisitorNoReturn { public void visit(EngNowiki n) { if (n.getContent().isEmpty()) { p.print(""); } else { p.print(""); p.print(n.getContent()); p.print(""); } } @Override public void visit(EngProcessedPage n) { dispatch(n.getPage()); } @Override public void visit(EngPage n) { iterate(n); } @Override public void visit(EngSoftErrorNode n) { visit((WtXmlElement) n); } // ========================================================================= public static String print(T node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, T node) { new EngineRtDataPrettyPrinter(writer).go(node); return writer; } // ========================================================================= public EngineRtDataPrettyPrinter(Writer writer) { super(writer); } } LanguageConfigGenerator.java000066400000000000000000000237441335270560400471440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Collection; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.apache.commons.collections.map.MultiValueMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.config.I18nAliasImpl; import org.sweble.wikitext.engine.config.InterwikiImpl; import org.sweble.wikitext.engine.config.NamespaceImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; /** * @author Samy Ateia, samyateia@hotmail.de */ public class LanguageConfigGenerator { private static final Logger logger = LoggerFactory.getLogger(LanguageConfigGenerator.class); public static final String API_ENDPOINT_MAGICWORDS = ".wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=magicwords&format=xml"; public static final String API_ENDPOINT_INTERWIKIMAP = ".wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=interwikimap&format=xml"; public static final String API_ENDPOINT_NAMESPACES = ".wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml"; public static final String API_ENDPOINT_NAMESPACEALIASES = ".wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespacealiases&format=xml"; // ========================================================================= public static WikiConfig generateWikiConfig(String languagePrefix) throws IOException, ParserConfigurationException, SAXException { return generateWikiConfig( languagePrefix + " wiki", "https://" + languagePrefix + ".wikipedia.org", languagePrefix); } public static WikiConfig generateWikiConfig( String siteName, String siteURL, String languagePrefix) throws IOException, ParserConfigurationException, SAXException { String endpointPrefix = "https://" + languagePrefix; return generateWikiConfig( siteName, siteURL, languagePrefix, endpointPrefix + API_ENDPOINT_NAMESPACEALIASES, endpointPrefix + API_ENDPOINT_NAMESPACES, endpointPrefix + API_ENDPOINT_INTERWIKIMAP, endpointPrefix + API_ENDPOINT_MAGICWORDS); } public static WikiConfig generateWikiConfig( String siteName, String siteUrl, String languagePrefix, String apiUrlNamespacealiases, String apiUrlNamespaces, String apiUrlInterwikimap, String apiUrlMagicwords) throws IOException, ParserConfigurationException, SAXException { WikiConfigImpl wikiConfig = new WikiConfigImpl(); wikiConfig.setSiteName(siteName); wikiConfig.setWikiUrl(siteUrl); wikiConfig.setContentLang(languagePrefix); wikiConfig.setIwPrefix(languagePrefix); DefaultConfigEnWp config = new DefaultConfigEnWp(); config.configureEngine(wikiConfig); MultiValueMap namespaceAliases = getNamespaceAliases(apiUrlNamespacealiases); addNamespaces(wikiConfig, apiUrlNamespaces, namespaceAliases); addInterwikis(wikiConfig, apiUrlInterwikimap); addi18NAliases(wikiConfig, apiUrlMagicwords); config.addParserFunctions(wikiConfig, true); config.addTagExtensions(wikiConfig); return wikiConfig; } public static void addi18NAliases( WikiConfigImpl wikiConfig, String apiUrlMagicWords) throws IOException, ParserConfigurationException, SAXException { // Template when to add '#' prefix to i18n aliases WikiConfigImpl template = new WikiConfigImpl(); new DefaultConfigEnWp().addI18nAliases(template); Document document = getXMLFromUrl(apiUrlMagicWords); NodeList apiI18nAliases = document.getElementsByTagName("magicword"); for (int i = 0; i < apiI18nAliases.getLength(); i++) { Node apiI18nAlias = apiI18nAliases.item(i); NamedNodeMap attributes = apiI18nAlias.getAttributes(); String name = attributes.getNamedItem("name").getNodeValue(); boolean isCaseSensitive = attributes.getNamedItem("case-sensitive") != null; I18nAliasImpl defaultAlias = template.getI18nAliasById(name); String prefix = ""; String postfix = ""; boolean postOptional = false; if (defaultAlias != null) { for (String a : defaultAlias.getAliases()) { if (a.startsWith("#")) { prefix = "#"; } if (a.endsWith(":")) { postfix = ":"; } else { postOptional = true; } } } Node aliasesNode = apiI18nAlias.getFirstChild(); NodeList aliasesList = aliasesNode.getChildNodes(); ArrayList aliases = new ArrayList(); for (int j = 0; j < aliasesList.getLength(); j++) { Node aliasNode = aliasesList.item(j); String aliasString = aliasNode.getTextContent(); if (prefix.length() > 0 && !aliasString.startsWith(prefix)) { aliasString = prefix + aliasString; } if (postOptional || postfix.length() == 0 || aliasString.endsWith(postfix)) { // Add without change to the postfix: aliases.add(aliasString); } if (postfix.length() > 0) { if (!aliasString.endsWith(postfix)) { // Add missing postfix: aliases.add(aliasString + postfix); } else if (postOptional) { // Remove existing, optional postfix: aliases.add(aliasString.substring(0, aliasString.length() - postfix.length())); } } } I18nAliasImpl i18nAlias = new I18nAliasImpl(name, isCaseSensitive, aliases); try { wikiConfig.addI18nAlias(i18nAlias); } catch (IllegalArgumentException e) { // TODO resolve conflicts problem logger.warn(e.getMessage()); } } } public static void addInterwikis( WikiConfigImpl wikiConfig, String apiUrlInterwikiMap) throws IOException, ParserConfigurationException, SAXException { Document document = getXMLFromUrl(apiUrlInterwikiMap); NodeList apiInterwikis = document.getElementsByTagName("iw"); for (int i = 0; i < apiInterwikis.getLength(); i++) { Node apiInterWiki = apiInterwikis.item(i); NamedNodeMap attributes = apiInterWiki.getAttributes(); String prefixString = attributes.getNamedItem("prefix").getNodeValue(); boolean isLocal = false; // if present set true else false Node localNode = attributes.getNamedItem("local"); if (localNode != null) { isLocal = true; } boolean isTrans = false; // TODO check dokumentation if really always false? String urlStringApi = attributes.getNamedItem("url").getNodeValue(); InterwikiImpl interwiki = new InterwikiImpl(prefixString, urlStringApi, isLocal, isTrans); wikiConfig.addInterwiki(interwiki); } } public static void addNamespaces( WikiConfigImpl wikiConfig, String apiUrlNamespaces, MultiValueMap nameSpaceAliases) throws IOException, ParserConfigurationException, SAXException { Document document = getXMLFromUrl(apiUrlNamespaces); NodeList apiNamespaces = document.getElementsByTagName("ns"); for (int i = 0; i < apiNamespaces.getLength(); i++) { Node apiNamespace = apiNamespaces.item(i); String name = apiNamespace.getTextContent(); NamedNodeMap attributes = apiNamespace.getAttributes(); Integer id = new Integer(attributes.getNamedItem("id").getNodeValue()); String canonical = ""; if (attributes.getNamedItem("canonical") != null) { canonical = attributes.getNamedItem("canonical").getNodeValue(); } boolean fileNs = false; if (canonical.equals("File")) { fileNs = true; } Node subpages = attributes.getNamedItem("subpages"); boolean canHaveSubpages = false; if (subpages != null) { canHaveSubpages = true; } Collection aliases = new ArrayList(); if (nameSpaceAliases.containsKey(id)) { @SuppressWarnings("unchecked") Collection tmp = nameSpaceAliases.getCollection(id); aliases = tmp; } NamespaceImpl namespace = new NamespaceImpl( id.intValue(), name, canonical, canHaveSubpages, fileNs, aliases); wikiConfig.addNamespace(namespace); if (canonical.equals("Template")) { wikiConfig.setTemplateNamespace(namespace); } else if (id.intValue() == 0) { wikiConfig.setDefaultNamespace(namespace); } } } public static MultiValueMap getNamespaceAliases( String apiUrlNamespaceAliases) throws IOException, ParserConfigurationException, SAXException { Document document = getXMLFromUrl(apiUrlNamespaceAliases); NodeList namespaceAliasess = document.getElementsByTagName("ns"); MultiValueMap namespaces = new MultiValueMap(); for (int i = 0; i < namespaceAliasess.getLength(); i++) { Node aliasNode = namespaceAliasess.item(i); NamedNodeMap attributes = aliasNode.getAttributes(); Integer id = new Integer(attributes.getNamedItem("id").getNodeValue()); String aliasString = aliasNode.getTextContent(); namespaces.put(id, aliasString); } return namespaces; } public static Document getXMLFromUrl(String urlString) throws IOException, ParserConfigurationException, SAXException { URL url = new URL(urlString); URLConnection connection = url.openConnection(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = docBuilder.parse(connection.getInputStream()); return document; } } NoTransparentRtDataPrettyPrinter.java000066400000000000000000000032701335270560400510660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; public final class NoTransparentRtDataPrettyPrinter extends EngineRtDataPrettyPrinter { @Override public Object dispatch(WtNode node) { switch (node.getNodeType()) { case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: return null; case WtNode.NT_ONLY_INCLUDE: visit((WtNodeList) node); return null; default: return super.dispatch(node); } } // ===================================================================== public static String print(WtNode node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, WtNode node) { new NoTransparentRtDataPrettyPrinter(writer).go(node); return writer; } // ===================================================================== public NoTransparentRtDataPrettyPrinter(Writer writer) { super(writer); } } NoTransparentRtDataPrinter.java000066400000000000000000000033231335270560400476550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; public final class NoTransparentRtDataPrinter extends WtRtDataPrinter { @Override public void dispatch(WtNode node) { switch (node.getNodeType()) { case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: break; case WtNode.NT_ONLY_INCLUDE: printNodeList((WtNodeList) node); break; default: super.dispatch(node); break; } } // ===================================================================== public static String print(WtNode node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, WtNode node) { new NoTransparentRtDataPrinter(writer).go(node); return writer; } // ===================================================================== public NoTransparentRtDataPrinter(Writer writer) { super(writer); } } StringToDateTimeConverter.java000066400000000000000000000127351335270560400475000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.TimeZone; import java.util.regex.Pattern; /** * Converter class to extract date and time values from Strings. */ public final class StringToDateTimeConverter { private ArrayList matchers = new ArrayList(); /** * Holds additional date time parameters like the Time Zone, * Daylight Saving Time, the language specific weekday Locale etc. * * @note The contained timestamp may not be in a valid state and should * therefore not be used directly. */ private final Calendar calendar; /** * Default constructor. Uses UTC as time base and English as Locale. */ public StringToDateTimeConverter() { calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ENGLISH); calendar.set(Calendar.DST_OFFSET, 0); initDefault(); } public StringToDateTimeConverter(Calendar cal) { this.calendar = cal; initDefault(); } private void initDefault() { matchers.add(new NowMatcher()); matchers.add(new TomorrowMatcher()); matchers.add(new DaysMatcher()); matchers.add(new UnixTimestampMatcher()); matchers.add(new DateFormatMatcher("dd.MM.yyyy")); matchers.add(new DateFormatMatcher("d MMM yyyy")); matchers.add(new DateFormatMatcher("yyyy.MM.dd G 'at' HH:mm:ss z")); matchers.add(new DateFormatMatcher("EEE, d MMM yyyy HH:mm:ss Z")); matchers.add(new DateFormatMatcher("yyyy MM dd")); matchers.add(new DateFormatMatcher("yyyy-MM-dd")); } public void registerDateTimeMatcher(DateTimeMatcher matcher) { matchers.add(matcher); } /** * Tries to convert and interpret the input string which contains the time * and date informations using the registered DateTimeMatcher. * * @param input The String to convert. * @return A Date object with the extracted date/time value, or null on * error. */ public Date convertString(String input) { for (DateTimeMatcher matcher : matchers) { Date date = matcher.tryConvert(input); if (date != null) { return date; } } return null; } public static interface DateTimeMatcher { public Date tryConvert(String input); } private class DateFormatMatcher implements DateTimeMatcher { private final DateFormat dateFormat; /** * Constructor. The time zone and other details (e.g. Daylight Saving * Time, Weekday Locale) are taken from the calendar * object. * * @param dateFormat The DateFormat String defining the pattern. */ public DateFormatMatcher(final String dateString) { dateFormat = new SimpleDateFormat(dateString); dateFormat.setCalendar(calendar); } @Override public Date tryConvert(String input) { try { return dateFormat.parse(input); } catch (ParseException ex) { return null; } } } private class NowMatcher implements DateTimeMatcher { private final Pattern now = Pattern.compile("now"); @Override public Date tryConvert(String input) { if (now.matcher(input).matches()) { return new Date(); } else { return null; } } } private class TomorrowMatcher implements DateTimeMatcher { private final Pattern tomorrow = Pattern.compile("tomorrow"); @Override public Date tryConvert(String input) { if (tomorrow.matcher(input).matches()) { calendar.setTime(new Date()); // set current time calendar.add(Calendar.DAY_OF_YEAR, + 1); return calendar.getTime(); } else { return null; } } } private class DaysMatcher implements DateTimeMatcher { private final Pattern days = Pattern.compile("[\\-\\+]?\\d+ days"); @Override public Date tryConvert(String input) { if (days.matcher(input).matches()) { try { int day = Integer.parseInt(input.split(" ")[0]); calendar.setTime(new Date()); // set current time calendar.add(Calendar.DAY_OF_YEAR, day); return calendar.getTime(); } catch (Exception ex) { return null; } } return null; } } /** * Handles the Unix timestamp as parameter in the form of "@1512163343", * where '@' identifies it as a Unix timestamp with a exact digit count of * 10, representing the seconds since 01 January 1970 00:00:00. */ private class UnixTimestampMatcher implements DateTimeMatcher { private final Pattern unixTimestamp = Pattern.compile("@?\\d{10}"); @Override public Date tryConvert(String input) { if (unixTimestamp.matcher(input).matches()) { try { long timestamp = Long.parseUnsignedLong(input.substring(1)); calendar.setTimeInMillis(timestamp * 1000L); return calendar.getTime(); } catch (Exception ex) { return null; } } return null; } } } UrlEncoding.java000066400000000000000000000051501335270560400446240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import de.fau.cs.osr.utils.WrappedException; public enum UrlEncoding { QUERY { @Override public String encode(String text) { try { return URLEncoder.encode(text, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new WrappedException(e); } } }, WIKI { @Override public String encode(String text) { text = text.replace(' ', '_'); try { text = URLEncoder.encode(text, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new WrappedException(e); } StringBuilder b = new StringBuilder(); for (int i = 0; i < text.length(); ++i) { char ch = text.charAt(i); if (ch == '%') { char ch1 = text.charAt(++i); char ch2 = text.charAt(++i); int code = hexToDec(ch1) * 0x10 + hexToDec(ch2); switch (code) { case 0x21: case 0x24: case 0x28: case 0x29: case 0x2A: case 0x2C: case 0x2F: case 0x3A: case 0x3B: case 0x40: b.append((char) code); break; default: b.append(ch); b.append(ch1); b.append(ch2); break; } } else b.append(ch); } return b.toString(); } private int hexToDec(char ch) { if (ch >= 'A' && ch <= 'F') return ch - 'A' + 0xA; else if (ch >= 'a' && ch <= 'f') return ch - 'a' + 0xA; else if (ch >= '0' && ch <= '9') return ch - '0' + 0x0; else throw new IllegalArgumentException("Not a valid hex digit!"); } }, PATH { @Override public String encode(String text) { try { return URLEncoder.encode(text, "UTF-8").replace("+", "%20"); } catch (UnsupportedEncodingException e) { throw new WrappedException(e); } } }; // ===================================================================== public abstract String encode(String text); } UrlService.java000066400000000000000000000050471335270560400445030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.net.MalformedURLException; import java.net.URL; import java.util.Map; import java.util.Map.Entry; import org.sweble.wikitext.engine.PageTitle; public class UrlService { public URL convertUrl(UrlType full, URL titleUrl) { return titleUrl; } /** * Takes a parameterized URL like * "http://localhost/wiki/index.php?title=$1", replace the parameter "$1" * with the URL-encoded normalized full title and returns the resulting URL. */ public static URL makeUrlToArticle(String parametrizedUrl, PageTitle title) throws MalformedURLException { String encodedTitle = UrlEncoding.WIKI.encode(title.getNormalizedFullTitle()); return new URL(parametrizedUrl.replace("$1", encodedTitle)); } /** * Appends (possibly additional) query parameter to a URL. * * @param urlEncodedQuery * A URL-encoded query string, e.g.: "key=value&key2=value2&...". */ public static URL appendQuery(URL url, String urlEncodedQuery) throws MalformedURLException { String ef = url.toExternalForm(); return (ef.indexOf('?') != -1) ? new URL(ef + "&" + urlEncodedQuery) : new URL(ef + "?" + urlEncodedQuery); } /** * Appends (possibly additional) query parameter to a URL. */ public static URL appendQuery(URL url, Map query) throws MalformedURLException { return appendQuery(url, queryMapToString(query)); } /** * Converts a map of key=value pairs to the URL-encoded query part of an * URL. */ public static String queryMapToString(Map query) { StringBuilder b = new StringBuilder(); UrlEncoding encoder = UrlEncoding.QUERY; boolean first = true; for (Entry e : query.entrySet()) { if (!first) b.append('&'); b.append(encoder.encode(e.getKey())); b.append('&'); b.append(encoder.encode(e.getValue())); first = false; } return b.toString(); } } UrlType.java000066400000000000000000000013711335270560400440200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; public enum UrlType { FULL, LOCAL, CANONICAL } WtEngineToolbox.java000066400000000000000000000071331335270560400455050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.ExpansionCallback; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.FullPage; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.parser.LinkTargetException; import de.fau.cs.osr.ptk.common.AstPrinter; /** * Starter-Kit for those who want to play with the Engine. */ public class WtEngineToolbox { private WikiConfigImpl wikiConfig; private WtEngineImpl engine; // ========================================================================= public WtEngineToolbox() { restartEngine(DefaultConfigEnWp.generate()); } // ========================================================================= public void restartEngine(WikiConfigImpl wikiConfig) { this.wikiConfig = wikiConfig; this.engine = new WtEngineImpl(wikiConfig); } public WikiConfigImpl getWikiConfig() { return wikiConfig; } public WtEngineImpl getEngine() { return engine; } // ========================================================================= // AST helpers // ========================================================================= public PageId makePageId(String title) throws LinkTargetException { return makePageId(wikiConfig, title); } public PageId makePageId(String title, long id) throws LinkTargetException { return makePageId(wikiConfig, title, id); } public static PageId makePageId(WikiConfig wikiConfig, String title) throws LinkTargetException { return makePageId(wikiConfig, title, -1); } public static PageId makePageId(WikiConfig wikiConfig, String title, long id) throws LinkTargetException { PageTitle pageTitle = PageTitle.make(wikiConfig, title); return new PageId(pageTitle, id); } public EngProcessedPage wmToAst(PageId pageId, String wikitext) throws EngineException { return wmToAst(pageId, wikitext, new TestExpansionCallback()); } public EngProcessedPage wmToAst( PageId pageId, String wikitext, ExpansionCallback callback) throws EngineException { return engine.postprocess(pageId, wikitext, callback); } public static String printAst(EngProcessedPage ast) { return AstPrinter.print((WtNode) ast.getPage()); } // ========================================================================= public static final class TestExpansionCallback implements ExpansionCallback { @Override public FullPage retrieveWikitext( ExpansionFrame expansionFrame, PageTitle pageTitle) { return null; } @Override public String fileUrl(PageTitle pageTitle, int width, int height) { return null; } } } resources/000077500000000000000000000000001335270560400343135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/mainorg/000077500000000000000000000000001335270560400351025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resourcessweble/000077500000000000000000000000001335270560400363635ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resources/orgwikitext/000077500000000000000000000000001335270560400402335ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resources/org/swebleengine/000077500000000000000000000000001335270560400415005ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resources/org/sweble/wikitextutils/000077500000000000000000000000001335270560400426405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resources/org/sweble/wikitext/engineDefaultConfigEnWp.xml000066400000000000000000002743101335270560400466750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/main/resources/org/sweble/wikitext/engine/utils My English Wiki http://localhost/ en en WP WT Image Image talk BASEPAGENAME CONTENTLANG CONTENTLANGUAGE CURRENTDAY CURRENTMONTH CURRENTMONTH2 CURRENTYEAR DEFAULTCATEGORYSORT: DEFAULTSORT: DEFAULTSORTKEY: #expr: FILEPATH: FULLPAGENAME FULLPAGENAMEE FULLURL: #if: #ifeq: #iferror: #ifexist: #ifexpr: LC: LCFIRST: NAMESPACE NAMESPACE: NS: PADLEFT: PAGENAME PAGENAME: PAGENAMEE PAGENAMEE: PROTECTIONLEVEL: #REDIRECT SAFESUBST: SITENAME ARTICLEPAGENAME SUBJECTPAGENAME ARTICLESPACE SUBJECTSPACE #switch: #tag: TALKPAGENAME TALKPAGENAME: TALKSPACE #time: #timel: #titleparts: UC: UCFIRST: URLENCODE: convert true INFORMATIVE false true [a-z]+ true sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/000077500000000000000000000000001335270560400324135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/000077500000000000000000000000001335270560400333345ustar00rootroot00000000000000org/000077500000000000000000000000001335270560400340445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/javasweble/000077500000000000000000000000001335270560400353255ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/orgwikitext/000077500000000000000000000000001335270560400371755ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/swebleengine/000077500000000000000000000000001335270560400404425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitextEngineIntegrationTest.java000066400000000000000000000043061335270560400455610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class EngineIntegrationTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "engine/exp/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "engine/exp/expanded"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public EngineIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Test public void testAstAfterPostprocessingMatchesReference() throws Exception { expandPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR); } } ExpandPostprocessPrintAndCompareTest.java000066400000000000000000000045561335270560400506120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import org.sweble.wikitext.engine.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ExpandPostprocessPrintAndCompareTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "expandPostprocessPrintAndCompare/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "expandPostprocessPrintAndCompare/ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ExpandPostprocessPrintAndCompareTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Test public void testAstAfterPostprocessingMatchesReference() throws Exception { expandPostprocessPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, new TypedWtAstPrinter()); } } MassExpansionTest.java000066400000000000000000000406461335270560400447470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.config.WikiRuntimeInfo; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; import org.sweble.wikitext.engine.utils.NoTransparentRtDataPrinter; import org.sweble.wikitext.parser.parser.LinkTargetException; import de.fau.cs.osr.utils.NamedParametrizedSuites; import de.fau.cs.osr.utils.NamedParametrizedSuites.NamedParametrizedSuite; import de.fau.cs.osr.utils.NamedParametrizedSuites.Suites; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrizedSuites.class) public class MassExpansionTest { private static final String TESTS_DIR = "engine/mass-expansion"; // ========================================================================= private static final Pattern FILE_URL_RX = Pattern.compile("fileUrl-(.*?)-(-?\\d+)-(-?\\d+).txt"); private static final Pattern ARTICLE_RX = Pattern.compile("retrieveWikitext-(.*?)-(\\d+).wikitext"); private static final Pattern TEST_RX = Pattern.compile("(.*?).txt"); // ========================================================================= @Suites public static List enumerateSuites() throws Exception { File dir = TestResourcesFixture.resourceNameToFile( MassExpansionTest.class, "/" + TESTS_DIR); String[] testSetDirs = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return new File(dir, name).isDirectory(); } }); String[] testSetZips = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".zip"); } }); List suites = new ArrayList(); for (String testDir : testSetDirs) suites.add(enumerateSuiteTestCases(new File(dir, testDir))); for (String testZip : testSetZips) suites.add(enumerateSuiteTestCasesFromZip(new File(dir, testZip))); Collections.sort(suites); return suites; } private static NamedParametrizedSuite enumerateSuiteTestCasesFromZip( File zipFile) throws IOException { ZipFile zf = new ZipFile(zipFile); try { Enumeration entries = zf.entries(); String suiteName; { String zfname = zipFile.getName(); if (!zfname.toLowerCase().endsWith(".zip")) throw new AssertionError(); suiteName = zfname.substring(0, zfname.length() - 4); } String testPrefix = suiteName + "/tests/"; String resourcesPrefix = suiteName + "/resources/"; Map fileUrls = new HashMap(); Map articles = new HashMap(); List testCases = new ArrayList(); while (entries.hasMoreElements()) { ZipEntry ze = (ZipEntry) entries.nextElement(); // Skip directories if (ze.getName().endsWith("/")) continue; long longSize = ze.getSize(); if (longSize > Integer.MAX_VALUE) throw new IllegalArgumentException("Archives contains files too big to process!"); InputStream is = zf.getInputStream(ze); byte[] content = IOUtils.toByteArray(is); is.close(); String filename = ze.getName(); if (filename.startsWith(resourcesPrefix + "fileUrl-") && filename.endsWith(".txt")) { filename = filename.substring(resourcesPrefix.length()); Matcher m = FILE_URL_RX.matcher(filename); if (!m.matches()) throw new IllegalArgumentException("Wrong 'fileUrl' pattern: " + ze.getName()); String encName = m.group(1); int width = Integer.parseInt(m.group(2)); int height = Integer.parseInt(m.group(3)); FileUrlKey key = new FileUrlKey(encName, width, height); fileUrls.put(key, new String(content, "UTF8")); } else if (filename.startsWith(resourcesPrefix + "retrieveWikitext-") && filename.endsWith(".wikitext")) { filename = filename.substring(resourcesPrefix.length()); Matcher m = ARTICLE_RX.matcher(filename); if (!m.matches()) throw new IllegalArgumentException("Wrong 'retrieveWikitext' pattern: " + ze.getName()); String encName = m.group(1); long revision = Long.parseLong(m.group(2)); ArticleDesc article = new ArticleDesc( revision, new String(content, "UTF8")); articles.put(encName, article); } else if (filename.startsWith(testPrefix) && filename.endsWith(".txt")) { filename = filename.substring(testPrefix.length()); Matcher m = TEST_RX.matcher(filename); if (!m.matches()) throw new IllegalArgumentException("Invalid test case filename: " + ze.getName()); String title = m.group(1); String test = new String(content, "UTF8"); testCases.add(new Object[] { title, fileUrls, articles, test }); } else { System.err.println("Ignored file in " + zipFile + ": " + ze.getName()); continue; } } Collections.sort(testCases, new Comparator() { @Override public int compare(Object[] o1, Object[] o2) { return ((String) o1[0]).compareTo((String) o2[0]); } }); return new NamedParametrizedSuite( zipFile.getName(), MassExpansionTest.class.getSimpleName(), testCases); } finally { zf.close(); } } private static NamedParametrizedSuite enumerateSuiteTestCases(File dir) throws IOException { Map fileUrls = new HashMap(); Map articles = new HashMap(); File resourcesDir = new File(dir, "resources"); File testCasesDir = new File(dir, "tests"); String[] fileUrlFiles = resourcesDir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.startsWith("fileUrl-") && name.endsWith(".txt"); } }); String[] articleFiles = resourcesDir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.startsWith("retrieveWikitext-") && name.endsWith(".wikitext"); } }); for (String fileUrlFilename : fileUrlFiles) { Matcher m = FILE_URL_RX.matcher(fileUrlFilename); if (!m.matches()) throw new IllegalArgumentException("Wrong 'fileUrl' pattern: " + fileUrlFilename); String encName = m.group(1); int width = Integer.parseInt(m.group(2)); int height = Integer.parseInt(m.group(3)); File fileUrlFile = new File(resourcesDir, fileUrlFilename); String url = FileUtils.readFileToString(fileUrlFile, "UTF8"); FileUrlKey key = new FileUrlKey(encName, width, height); fileUrls.put(key, url); } for (String articleFilename : articleFiles) { Matcher m = ARTICLE_RX.matcher(articleFilename); if (!m.matches()) throw new IllegalArgumentException("Wrong 'retrieveWikitext' pattern: " + articleFilename); String encName = m.group(1); long revision = Long.parseLong(m.group(2)); File fileUrlFile = new File(resourcesDir, articleFilename); String content = FileUtils.readFileToString(fileUrlFile, "UTF8"); articles.put(encName, new ArticleDesc(revision, content)); } List testCases = new ArrayList(); String[] testCaseFiles = testCasesDir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".txt"); } }); Arrays.sort(testCaseFiles); for (String filename : testCaseFiles) { File file = new File(testCasesDir, filename); String content = FileUtils.readFileToString(file, "UTF-8"); testCases.add(new Object[] { filename, fileUrls, articles, content }); } return new NamedParametrizedSuite( dir.getName(), MassExpansionTest.class.getSimpleName(), testCases); } // ========================================================================= private final WikiConfigImpl config; private final WtEngineImpl engine; private final String title; private final Map fileUrls; private final Map articles; private final String inputFileContent; // ========================================================================= public MassExpansionTest( String title, Map fileUrls, Map articles, String inputFileContent) { this.config = fixConfig(DefaultConfigEnWp.generate()); this.engine = new WtEngineImpl(config); this.title = title; this.fileUrls = fileUrls; this.articles = articles; this.inputFileContent = inputFileContent; } // ========================================================================= private WikiConfigImpl fixConfig(WikiConfigImpl config) { config.setSiteName("English Wikipedia"); config.setRuntimeInfo(new WikiRuntimeInfo() { @Override public Calendar getDateAndTime(Locale locale) { Calendar timestamp = new GregorianCalendar(locale); timestamp.setLenient(true); timestamp.set(2012, 9, 18, 14, 25, 13); return timestamp; } @Override public Calendar getDateAndTime() { return getDateAndTime(Locale.getDefault()); } }); return config; } // ========================================================================= @Test public void testOurExpansionMatchesReference() throws Exception { ExpansionCallback callback = new MassExpansionCallback(); boolean forInclusion = false; TestDesc desc = buildTest(); PageTitle title = desc.getTitle(); PageId pageId = new PageId(title, -1); EngProcessedPage ast = engine.expand( pageId, desc.getStmt(), forInclusion, callback); String raw = NoTransparentRtDataPrinter.print(ast); String actual = polishRawResult(raw); assertEquals(desc.getExpected(), actual); } /** * Convert XML char refs to chars and convert "" to an * empty tag. */ private String polishRawResult(String raw) { StringBuilder b = new StringBuilder(); int copyFrom = 0; int searchFrom = 0; int i; while ((i = raw.indexOf("&#x", searchFrom)) != -1) { searchFrom = i + 3; int j = raw.indexOf(';', searchFrom); if (j == -1 || j > i + 12) continue; int ch = Integer.valueOf(raw.substring(i + 3, j), 0x10); switch (ch) { case 0x7B: // { case 0x7D: // } case 0x7C: // | case 0x3D: // = break; default: continue; } b.append(raw.substring(copyFrom, i)); b.append(Character.toChars(ch)); searchFrom = copyFrom = j + 1; } b.append(raw.substring(copyFrom, raw.length())); return b.toString().replace("", ""); } // ========================================================================= private TestDesc buildTest() throws IOException, LinkTargetException { String content = inputFileContent; String i0Delim = "==[ TITLE ]=====================================================================\n"; int i0 = content.indexOf(i0Delim); if (i0 != 0) wrongArticleFormat(); int from0 = i0 + i0Delim.length(); String i1Delim = "\n==[ STATEMENT ]=================================================================\n"; int i1 = content.indexOf(i1Delim, from0); if (i1 < 0) wrongArticleFormat(); int from1 = i1 + i1Delim.length(); String i2Delim = "\n==[ EXPECTED EXPANSION ]========================================================\n"; int i2 = content.indexOf(i2Delim, from1); if (i2 < 0) wrongArticleFormat(); int from2 = i2 + i2Delim.length(); String i3Delim = "\n==[ END ]=======================================================================\n"; int i3 = content.indexOf(i3Delim, from2); if (i3 < 0) wrongArticleFormat(); PageTitle pageTitle = PageTitle.make(config, content.substring(from0, i1)); String stmt = content.substring(from1, i2); String expected = content.substring(from2, i3); return new TestDesc(pageTitle, stmt, expected); } private void wrongArticleFormat() { throw new IllegalArgumentException("Wrong test case file format: " + title); } // ========================================================================= public final class MassExpansionCallback implements ExpansionCallback { @Override public FullPage retrieveWikitext( ExpansionFrame expansionFrame, PageTitle pageTitle) { String title = StringTools.safeFilename( pageTitle.getNormalizedFullTitle()); ArticleDesc article = articles.get(title); if (article == null) return null; PageId pageId = new PageId(pageTitle, article.getRevision()); return new FullPage(pageId, article.getContent()); } @Override public String fileUrl(PageTitle pageTitle, int width, int height) { String title = StringTools.safeFilename( pageTitle.getNormalizedFullTitle()); FileUrlKey key = new FileUrlKey(title, width, height); return fileUrls.get(key); } } // ========================================================================= public static final class TestDesc { private final PageTitle title; private final String stmt; private final String expected; public TestDesc(PageTitle title, String stmt, String expected) { super(); this.title = title; this.stmt = stmt; this.expected = expected; } public PageTitle getTitle() { return title; } public String getStmt() { return stmt; } public String getExpected() { return expected; } } // ========================================================================= public static final class ArticleDesc { private final long revision; private final String content; public ArticleDesc(long revision, String content) { super(); this.revision = revision; this.content = content; } public long getRevision() { return revision; } public String getContent() { return content; } @Override public String toString() { return "ArticleDesc [revision=" + revision + ", content=" + content + "]"; } } // ========================================================================= public static final class FileUrlKey { private String encName; private int width; private int height; public FileUrlKey(String encName, int width, int height) { this.encName = encName; this.width = width; this.height = height; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((encName == null) ? 0 : encName.hashCode()); result = prime * result + (int) (height ^ (height >>> 32)); result = prime * result + (int) (width ^ (width >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; FileUrlKey other = (FileUrlKey) obj; if (encName == null) { if (other.encName != null) return false; } else if (!encName.equals(other.encName)) return false; if (height != other.height) return false; if (width != other.width) return false; return true; } @Override public String toString() { return "FileUrlKey [encName=" + encName + ", width=" + width + ", height=" + height + "]"; } } } MediaWikiTestExample.java000066400000000000000000000047231335270560400453320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.File; import java.util.List; import java.util.Map; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import org.sweble.wikitext.engine.utils.MediaWikiTestGenerator; import org.sweble.wikitext.engine.utils.MediaWikiTestGenerator.TestDesc; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class MediaWikiTestExample extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.mwtest"; private static final String INPUT_SUB_DIR = "mediawiki"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); List testCollectionFiles = resources.gather(INPUT_SUB_DIR, FILTER_RX, false); return MediaWikiTestGenerator.enumerateInputs(resources, testCollectionFiles); } // ========================================================================= @SuppressWarnings("unused") private final String name; @SuppressWarnings("unused") private final TestDesc test; @SuppressWarnings("unused") private final Map articles; // ========================================================================= public MediaWikiTestExample( String name, TestResourcesFixture resources, TestDesc test, Map articles) { super(resources); this.name = name; this.test = test; this.articles = articles; } @Test @Ignore public void testAstAfterPostprocessingMatchesReference() throws Exception { } } PageTitleTest.java000066400000000000000000000027241335270560400440300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; public class PageTitleTest { /** Tests fix to issue #45. */ @Test public void testName() throws Exception { WikiConfigImpl config = DefaultConfigEnWp.generate(); // Must not fail with illegal entity error PageTitle title = PageTitle.make( config, "Template:Did you know nominations/Steve Taylor & The Perfect Foil; Wow to the Deadness"); PageTitle title2 = PageTitle.make( config, title.getNormalizedFullTitle()); assertEquals(title, title2); PageTitle title3 = PageTitle.make( config, title.getDenormalizedFullTitle()); assertEquals(title, title3); } } RedirectTest.java000066400000000000000000000045161335270560400437140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import org.sweble.wikitext.engine.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class RedirectTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "redirect/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "redirect/ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public RedirectTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; getConfig().getI18nAliasById("redirect").getAliases().add("#重定向"); } // ========================================================================= @Test public void testAstAfterPostprocessingMatchesReference() throws Exception { expandPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, new TypedWtAstPrinter()); } } VariousTest.java000066400000000000000000000033121335270560400435740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine; import java.io.File; import org.junit.Test; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import org.sweble.wikitext.engine.utils.TypedWtAstPrinter; public class VariousTest extends EngineIntegrationTestBase { private static final String INPUT_SUB_DIR = "various/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "various/ast"; private File inputSubDir; // ========================================================================= public VariousTest() { super(getTestResourcesFixture()); inputSubDir = new File(getResources().getBaseDirectory(), INPUT_SUB_DIR); } // ========================================================================= @Test public void testCaseInsensitiveTagExtensions() throws Exception { File inputFile = new File( inputSubDir, "uc-pre.wikitext"); getConfig().setTagExtensionNamesCaseSensitive(false); expandPostprocessPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, new TypedWtAstPrinter()); } } config/000077500000000000000000000000001335270560400417075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engineWikiConfigTest.java000066400000000000000000000044061335270560400454470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/config/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.config; import static org.junit.Assert.assertEquals; import java.io.StringReader; import java.io.StringWriter; import org.junit.Test; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; public class WikiConfigTest { @Test public void testSave() throws Exception { // We just want to know if the process works without failing fatally DefaultConfigEnWp.generate().save(new StringWriter()); } @Test public void testLoadConfig() throws Exception { WikiConfigImpl gconf = DefaultConfigEnWp.generate(); StringWriter writer = new StringWriter(); gconf.save(writer); String original = writer.toString(); StringReader reader = new StringReader(original); WikiConfigImpl c = WikiConfigImpl.load(reader); writer = new StringWriter(); c.save(writer); // First check if saved results looks identical (easier to debug) assertEquals(original, writer.toString()); // Now check if the configurations are really identical assertEquals(gconf, c); } @Test public void testXmlAndGeneratedConfigAreEqual() throws Exception { WikiConfigImpl gconf = DefaultConfigEnWp.generate(); StringWriter wgconf = new StringWriter(); gconf.save(wgconf); WikiConfigImpl xconf = WikiConfigImpl.load(getClass().getResourceAsStream( "/org/sweble/wikitext/engine/utils/DefaultConfigEnWp.xml")); StringWriter wxconf = new StringWriter(); xconf.save(wxconf); // First check if saved results looks identical (easier to debug) assertEquals(wxconf.toString(), wgconf.toString()); // Now check if the configurations are really identical assertEquals(xconf, gconf); } } ext/000077500000000000000000000000001335270560400412425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engineconvert/000077500000000000000000000000001335270560400427225ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/extConvertIntegrationTest.java000066400000000000000000000036721335270560400502610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ConvertIntegrationTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "ext/convert/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "ext/convert/expanded"; @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } private final File inputFile; public ConvertIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; getEngine().setCatchAll(false); } @Test public void testAstAfterPostprocessingMatchesReference() throws Exception { expandPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR); } } NumberFormaterTest.java000066400000000000000000000166241335270560400473660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/convert/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.convert; import org.junit.Test; import static org.junit.Assert.*; public class NumberFormaterTest { private static final double EPSILON = 1E-6; @Test public void testIsNumberValid() { assertTrue(NumberFormater.isNumberValid("1")); assertTrue(NumberFormater.isNumberValid("123")); assertTrue(NumberFormater.isNumberValid("–123")); // en dash (u+2013) assertTrue(NumberFormater.isNumberValid("1,234,567")); assertTrue(NumberFormater.isNumberValid("0.5")); assertTrue(NumberFormater.isNumberValid("12.3e-15")); assertTrue(NumberFormater.isNumberValid("12.3e–15")); // en dash assertTrue(NumberFormater.isNumberValid("1/2")); assertTrue(NumberFormater.isNumberValid("1⁄2")); assertTrue(NumberFormater.isNumberValid("2+1⁄2")); assertTrue(NumberFormater.isNumberValid("-2-1⁄2")); assertTrue(NumberFormater.isNumberValid("–2–1⁄2")); // en dash assertTrue(NumberFormater.isNumberValid("1//2")); assertTrue(NumberFormater.isNumberValid("2+1//2")); assertFalse(NumberFormater.isNumberValid("12 34")); assertFalse(NumberFormater.isNumberValid("0x1234")); assertFalse(NumberFormater.isNumberValid("1234d")); } @Test public void testParseNumber1() { assertEquals(1d, NumberFormater.parseNumber("1"), EPSILON); assertEquals(123d, NumberFormater.parseNumber("123"), EPSILON); assertEquals(-123d, NumberFormater.parseNumber("–123"), EPSILON); // en dash assertEquals(1234567d, NumberFormater.parseNumber("1,234,567"), EPSILON); assertEquals(0.5, NumberFormater.parseNumber("0.5"), EPSILON); assertEquals(1.23e-4, NumberFormater.parseNumber("12.3e-5"), EPSILON); assertEquals(1.23e-4, NumberFormater.parseNumber("12.3e–5"), EPSILON); // en dash assertEquals(0.5, NumberFormater.parseNumber("1/2"), EPSILON); assertEquals(0.33333333, NumberFormater.parseNumber("1⁄3"), EPSILON); assertEquals(2.5, NumberFormater.parseNumber("2+1⁄2"), EPSILON); assertEquals(-2.5, NumberFormater.parseNumber("-2-1⁄2"), EPSILON); assertEquals(0.5, NumberFormater.parseNumber("1//2"), EPSILON); assertEquals(2.5, NumberFormater.parseNumber("2+1//2"), EPSILON); assertEquals(123d, NumberFormater.parseNumber("+123"), EPSILON); assertEquals(-123d, NumberFormater.parseNumber("-123"), EPSILON); } @Test(expected=NumberFormatException.class) public void testParseNumber2() { NumberFormater.parseNumber("-2+1⁄2"); } @Test public void testFormatNumberDefault() { final int SIG_FIG = 2; assertEquals("1.0", NumberFormater.formatNumberDefault(1, SIG_FIG)); assertEquals("−1.0", NumberFormater.formatNumberDefault(-1, SIG_FIG)); assertEquals("11", NumberFormater.formatNumberDefault(11, SIG_FIG)); assertEquals("110", NumberFormater.formatNumberDefault(111, SIG_FIG)); assertEquals("120", NumberFormater.formatNumberDefault(115, SIG_FIG)); assertEquals("1,100", NumberFormater.formatNumberDefault(1111, SIG_FIG)); assertEquals("0.10", NumberFormater.formatNumberDefault(0.1, SIG_FIG)); assertEquals("0.11", NumberFormater.formatNumberDefault(0.11, SIG_FIG)); assertEquals("0.11", NumberFormater.formatNumberDefault(0.111, SIG_FIG)); assertEquals("0.11", NumberFormater.formatNumberDefault(0.114, SIG_FIG)); assertEquals("0.12", NumberFormater.formatNumberDefault(0.115, SIG_FIG)); assertEquals("−0.11", NumberFormater.formatNumberDefault(-0.114, SIG_FIG)); assertEquals("−0.12", NumberFormater.formatNumberDefault(-0.115, SIG_FIG)); assertEquals("0.0011", NumberFormater.formatNumberDefault(0.0011, SIG_FIG)); assertEquals("0.0000000010", NumberFormater.formatNumberDefault(0.000000001, SIG_FIG)); assertEquals("1.0×10⁻¹⁰", NumberFormater.formatNumberDefault(0.0000000001, SIG_FIG)); assertEquals("−1.0×10⁻¹⁰", NumberFormater.formatNumberDefault(-0.0000000001, SIG_FIG)); assertEquals("11,000,000", NumberFormater.formatNumberDefault(11000000, SIG_FIG)); assertEquals("−11,000,000", NumberFormater.formatNumberDefault(-11000000, SIG_FIG)); assertEquals("1.1×10¹⁰", NumberFormater.formatNumberDefault(11000000000d, SIG_FIG)); assertEquals("1", NumberFormater.formatNumberDefault(1.234, 1)); assertEquals("1.2", NumberFormater.formatNumberDefault(1.234, 2)); assertEquals("1.23", NumberFormater.formatNumberDefault(1.234, 3)); assertEquals("1.234", NumberFormater.formatNumberDefault(1.234, 4)); assertEquals("1.2340", NumberFormater.formatNumberDefault(1.234, 5)); assertEquals("10", NumberFormater.formatNumberDefault(12.34, 1)); assertEquals("12", NumberFormater.formatNumberDefault(12.34, 2)); assertEquals("12.3", NumberFormater.formatNumberDefault(12.34, 3)); assertEquals("12.34", NumberFormater.formatNumberDefault(12.34, 4)); assertEquals("12.340", NumberFormater.formatNumberDefault(12.34, 5)); assertEquals("100", NumberFormater.formatNumberDefault(123.4, 1)); assertEquals("120", NumberFormater.formatNumberDefault(123.4, 2)); assertEquals("123", NumberFormater.formatNumberDefault(123.4, 3)); assertEquals("123.4", NumberFormater.formatNumberDefault(123.4, 4)); assertEquals("123.40", NumberFormater.formatNumberDefault(123.4, 5)); assertEquals("1,000", NumberFormater.formatNumberDefault(1234.5, 1)); assertEquals("1,200", NumberFormater.formatNumberDefault(1234.5, 2)); assertEquals("1,230", NumberFormater.formatNumberDefault(1234.5, 3)); assertEquals("1,235", NumberFormater.formatNumberDefault(1234.5, 4)); assertEquals("1,234.5", NumberFormater.formatNumberDefault(1234.5, 5)); } @Test public void testFormatNumberRounded() { assertEquals("1", NumberFormater.formatNumberRounded(1.123456789, 0)); assertEquals("1.1", NumberFormater.formatNumberRounded(1.123456789, 1)); assertEquals("1.12", NumberFormater.formatNumberRounded(1.123456789, 2)); assertEquals("1.123", NumberFormater.formatNumberRounded(1.123456789, 3)); assertEquals("1", NumberFormater.formatNumberRounded(1.4, 0)); assertEquals("2", NumberFormater.formatNumberRounded(1.5, 0)); assertEquals("−1", NumberFormater.formatNumberRounded(-1.4, 0)); assertEquals("−2", NumberFormater.formatNumberRounded(-1.5, 0)); assertEquals("1", NumberFormater.formatNumberRounded(1.123456789, -1)); assertEquals("1.123456789012346", NumberFormater.formatNumberRounded(1.123456789012345678, 15)); assertEquals("1.1234567890123457", NumberFormater.formatNumberRounded(1.123456789012345678, 16)); assertEquals("1.1234567890123457", NumberFormater.formatNumberRounded(1.123456789012345678, 17)); assertEquals("−1.123456789012346", NumberFormater.formatNumberRounded(-1.123456789012345678, 15)); assertEquals("−1.1234567890123457", NumberFormater.formatNumberRounded(-1.123456789012345678, 16)); assertEquals("−1.1234567890123457", NumberFormater.formatNumberRounded(-1.123456789012345678, 17)); assertEquals("100,000.00", NumberFormater.formatNumberRounded(100000, 2)); } } parser_functions/000077500000000000000000000000001335270560400446265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/extExprTest.java000066400000000000000000000131541335270560400472530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import static org.junit.Assert.assertEquals; import java.math.BigDecimal; import org.junit.Before; import org.junit.Test; public class ExprTest { private ExprParser p; @Before public void setUp() { p = new ExprParser(); } @Test public void testConstantsOnlyReturnConstant() throws Exception { assertEquals(Math.E, Double.parseDouble(p.parse("e")), 0); assertEquals(Math.PI, Double.parseDouble(p.parse("pi")), 0); } @Test public void testScientificNotationWorks() throws Exception { assertEquals(1.5e5, Double.parseDouble(p.parse("1.5e5")), 0); } @Test public void testUnaryPlusMinusAndNotWork() throws Exception { assertEquals(-5, Double.parseDouble(p.parse("-5")), 0); assertEquals(+5, Double.parseDouble(p.parse("+5")), 0); assertEquals(0, Double.parseDouble(p.parse("not 5")), 0); assertEquals(1, Double.parseDouble(p.parse("not 0")), 0); } @Test public void testUnaryFunctionsWork() throws Exception { assertEquals(Math.sin(.5), Double.parseDouble(p.parse("sin 0.5")), 0); assertEquals(Math.cos(.5), Double.parseDouble(p.parse("cos 0.5")), 0); assertEquals(Math.tan(.5), Double.parseDouble(p.parse("tan 0.5")), 0); assertEquals(Math.asin(.5), Double.parseDouble(p.parse("asin 0.5")), 0); assertEquals(Math.acos(.5), Double.parseDouble(p.parse("acos 0.5")), 0); assertEquals(Math.atan(.5), Double.parseDouble(p.parse("atan 0.5")), 0); assertEquals(Math.exp(.5), Double.parseDouble(p.parse("exp 0.5")), 0); assertEquals(Math.log(.5), Double.parseDouble(p.parse("ln 0.5")), 0); assertEquals(Math.abs(-.5), Double.parseDouble(p.parse("abs -0.5")), 0); assertEquals(Math.floor(.5), Double.parseDouble(p.parse("floor 0.5")), 0); assertEquals((double) (int) (.5), Double.parseDouble(p.parse("trunc 0.5")), 0); assertEquals(Math.ceil(.5), Double.parseDouble(p.parse("ceil 0.5")), 0); } @Test public void testBinaryFunctionsWork() throws Exception { assertEquals(256, Double.parseDouble(p.parse("2^8")), 0); assertEquals(16, Double.parseDouble(p.parse("2*8")), 0); assertEquals(2 / 8., Double.parseDouble(p.parse("2/8")), 0); assertEquals(2., Double.parseDouble(p.parse("2mod8")), 0); assertEquals(2.57, Double.parseDouble(p.parse("2.567 round 2")), 0); assertEquals(10, Double.parseDouble(p.parse("2+8")), 0); assertEquals(-6, Double.parseDouble(p.parse("2-8")), 0); } @Test public void testComparisonOperatorsWork() throws Exception { assertEquals(1, Double.parseDouble(p.parse("1=1")), 0); assertEquals(0, Double.parseDouble(p.parse("1=0")), 0); assertEquals(0, Double.parseDouble(p.parse("1!=1")), 0); assertEquals(1, Double.parseDouble(p.parse("1!=0")), 0); assertEquals(0, Double.parseDouble(p.parse("1<>1")), 0); assertEquals(1, Double.parseDouble(p.parse("1<>0")), 0); assertEquals(0, Double.parseDouble(p.parse("1<0")), 0); assertEquals(1, Double.parseDouble(p.parse("0<1")), 0); assertEquals(0, Double.parseDouble(p.parse("0<0")), 0); assertEquals(1, Double.parseDouble(p.parse("1>0")), 0); assertEquals(0, Double.parseDouble(p.parse("0>1")), 0); assertEquals(0, Double.parseDouble(p.parse("0>0")), 0); assertEquals(1, Double.parseDouble(p.parse("1>=0")), 0); assertEquals(0, Double.parseDouble(p.parse("0>=1")), 0); assertEquals(1, Double.parseDouble(p.parse("0>=0")), 0); assertEquals(0, Double.parseDouble(p.parse("1<=0")), 0); assertEquals(1, Double.parseDouble(p.parse("0<=1")), 0); assertEquals(1, Double.parseDouble(p.parse("0<=0")), 0); } @Test public void testLogicalOperatorsWork() throws Exception { assertEquals(1, Double.parseDouble(p.parse("1 and 1")), 0); assertEquals(0, Double.parseDouble(p.parse("1 and 0")), 0); assertEquals(0, Double.parseDouble(p.parse("0 and 1")), 0); assertEquals(0, Double.parseDouble(p.parse("0 and 0")), 0); assertEquals(1, Double.parseDouble(p.parse("1 or 1")), 0); assertEquals(1, Double.parseDouble(p.parse("1 or 0")), 0); assertEquals(1, Double.parseDouble(p.parse("0 or 1")), 0); assertEquals(0, Double.parseDouble(p.parse("0 or 0")), 0); assertEquals(1, Double.parseDouble(p.parse("0.1 and 0.1")), 0); assertEquals(1, Double.parseDouble(p.parse("0 or 0.1")), 0); } @Test public void testPrecedenceRules() throws Exception { assertEquals( (5 + (5 * Math.pow(2, (Math.sin(2e5))))), Double.parseDouble(p.parse("5 + 5 * 2 ^ sin 2e5")), 0); assertEquals( round(5.1234 + 5.1234, 2), Double.parseDouble(p.parse("5.1234 + 5.1234 round 2")), 0); assertEquals( true, // true && (false == false), Double.parseDouble(p.parse("1 and 0 = 0")) == 1.); } @Test public void testParantheses() throws Exception { assertEquals( (5 + 5) * 5, Double.parseDouble(p.parse("(5 + 5) * 5")), 0); assertEquals( (5 + (5 + 5)) * 5, Double.parseDouble(p.parse("(5 + (5 + 5)) * 5")), 0); } private static double round(double value, int digits) { return new BigDecimal(value) .setScale(digits, BigDecimal.ROUND_HALF_UP) .doubleValue(); } } ParserFunctionIntegrationTest.java000066400000000000000000000044071335270560400535040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ParserFunctionIntegrationTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "ext/pfn/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "ext/pfn/expanded"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ParserFunctionIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; getEngine().setCatchAll(false); } // ========================================================================= @Test public void testAstAfterPostprocessingMatchesReference() throws Exception { expandPrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR); } } ParserFunctionTimeLocalTest.java000066400000000000000000000102571335270560400530720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; import org.junit.Test; import static org.junit.Assert.*; public class ParserFunctionTimeLocalTest { @Test public void testFormat() { // Tuesday, 7th March 2017, 01:02:03 AM final Calendar timestamp = new GregorianCalendar(2017, Calendar.MARCH, 7, 1, 2, 3); timestamp.setTimeZone(TimeZone.getTimeZone("Europe/Berlin")); Locale locale = Locale.GERMAN; String format = "h"; String expResult = "01"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check Unix time format = "U"; expResult = "1488848523"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone identifier format = "e"; expResult = "Europe/Berlin"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check if Daylight Saving Time is currently used format = "I"; expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); Calendar activeDst = new GregorianCalendar(2017, Calendar.JULY, 7, 1, 2, 3); activeDst.setTimeZone(TimeZone.getTimeZone("Europe/Berlin")); expResult = "1"; assertEquals(expResult, ParserFunctionTime.format(format, activeDst, locale)); format = "O"; expResult = "+0100"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "P"; expResult = "+01:00"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone offset in seconds format = "Z"; expResult = "3600"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone abbreviation format = "T"; expResult = "Europe/Berlin"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); timestamp.setTimeZone(TimeZone.getTimeZone("PST")); // UTC-08:00 locale = Locale.US; // check time zone identifier format = "e"; expResult = "PST"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check if Daylight Saving Time is currently used format = "I"; expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); activeDst = new GregorianCalendar(2017, Calendar.JULY, 7, 1, 2, 3); activeDst.setTimeZone(TimeZone.getTimeZone("PST")); expResult = "1"; assertEquals(expResult, ParserFunctionTime.format(format, activeDst, locale)); format = "O"; expResult = "-0800"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "P"; expResult = "-08:00"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone offset in seconds format = "Z"; expResult = "-28800"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // test also with Australian Central Standard Time timestamp.setTimeZone(TimeZone.getTimeZone("ACT")); // UTC+09:30 format = "P"; expResult = "+09:30"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "O"; expResult = "+0930"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "P"; expResult = "+09:30"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "Z"; expResult = "34200"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); } } ParserFunctionTimeTest.java000066400000000000000000000174271335270560400521250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/ext/parser_functions/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.ext.parser_functions; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; import org.junit.Test; import static org.junit.Assert.*; public class ParserFunctionTimeTest { @Test public void testFormat() { // Tuesday, 7th March 2017, 01:02:03 AM final Calendar timestamp = new GregorianCalendar(2017, Calendar.MARCH, 7, 1, 2, 3); timestamp.setTimeZone(TimeZone.getTimeZone("UTC")); Locale locale = Locale.ENGLISH; // check year 4-digit String format = "Y"; String expResult = "2017"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check year 2-digit format = "y"; expResult = "17"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check if leap year format = "L"; expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); Calendar leap = new GregorianCalendar(2016, 1, 1, 0, 0, 0); expResult = "1"; assertEquals(expResult, ParserFunctionTime.format(format, leap, locale)); // check month index, not zero-padded format = "n"; expResult = "3"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check month index, zero-padded format = "m"; expResult = "03"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check abbreviation of the month name format = "M"; expResult = "Mar"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); expResult = "Mär"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, Locale.GERMAN)); // check full month name format = "F"; expResult = "March"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); expResult = "März"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, Locale.GERMAN)); // check ISO 8601 week number, zero-padded. format = "W"; expResult = "10"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); //check day of the month, not zero-padded format = "j"; expResult = "7"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check day of the month, zero-padded format = "d"; expResult = "07"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check day of the year (January 1 = 0) format = "z"; expResult = "0"; Calendar firstDayInTheYear = new GregorianCalendar(2017, Calendar.JANUARY, 1, 0, 0, 0); assertEquals(expResult, ParserFunctionTime.format(format, firstDayInTheYear, locale)); expResult = "364"; Calendar lastDayInTheYear = new GregorianCalendar(2017, Calendar.DECEMBER, 31, 23, 59, 59); assertEquals(expResult, ParserFunctionTime.format(format, lastDayInTheYear, locale)); // check abbreviation for the day of the week format = "D"; expResult = "Tue"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); expResult = "Di"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, Locale.GERMAN)); // check full weekday name format = "l"; expResult = "Tuesday"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); expResult = "Dienstag"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, Locale.GERMAN)); // check ISO 8601 day of the week (Monday = 1, Sunday = 7) format = "N"; expResult = "2"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check number of the day of the week (Sunday = 0, Saturday = 6) format = "w"; expResult = "2"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); Calendar sunday = new GregorianCalendar(2017, Calendar.DECEMBER, 24, 0, 0, 0); expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, sunday, locale)); // check am/pm format = "a"; expResult = "am"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check AM/PM format = "A"; expResult = "AM"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check hour in 12-hour format, not zero-padded format = "g"; expResult = "1"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check hour in 12-hour format, zero-padded format = "h"; expResult = "01"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check hour in 24-hour format, not zero-padded format = "G"; expResult = "1"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check hour in 24-hour format, zero-padded format = "H"; expResult = "01"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check minutes past the hour, zero-padded format = "i"; expResult = "02"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check seconds past the minute, zero-padded format = "s"; expResult = "03"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check Unix time format = "U"; expResult = "1488848523"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone identifier format = "e"; expResult = "UTC"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check if Daylight Saving Time is currently used format = "I"; expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "O"; expResult = "+0000"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "P"; expResult = "+00:00"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone offset in seconds format = "Z"; expResult = "0"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check time zone abbreviation format = "T"; expResult = "UTC"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check number of days in the current month format = "t"; expResult = "31"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check ISO 8601 formatted date, equivalent to Y-m-d"T"H:i:s+00:00 format = "c"; expResult = "2017-03-07T01:02:03+00:00"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "Y-m-d\"T\"H:i:s+00:00"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check RFC 5322 formatted date, equivalent to D, j M Y H:i:s +0000 format = "r"; expResult = "Tue, 7 Mar 2017 01:02:03 +0000"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); format = "D, j M Y H:i:s +0000"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); // check ignored comments format = "Y-\"Ymds h\"-m-\"CD\"-d"; expResult = "2017-Ymds h-03-CD-07"; assertEquals(expResult, ParserFunctionTime.format(format, timestamp, locale)); } } output/000077500000000000000000000000001335270560400420025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engineHtmlRendererTest.java000066400000000000000000000107351335270560400461060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/output/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.output; import java.io.File; import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.ExpansionCallback; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.utils.EngineIntegrationTestBase; import org.sweble.wikitext.engine.utils.UrlEncoding; import org.sweble.wikitext.parser.nodes.WtUrl; import de.fau.cs.osr.utils.FileCompare; import de.fau.cs.osr.utils.FileContent; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class HtmlRendererTest extends EngineIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "engine/output/wikitext"; private static final String EXPECTED_AST_SUB_DIR = "engine/output/rendered"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public HtmlRendererTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Test @Ignore public void testRenderHtml() throws Exception { FileContent inputFileContent = new FileContent(inputFile); WikiConfig wikiConfig = getConfig(); PageTitle pageTitle = PageTitle.make(wikiConfig, inputFile.getName()); PageId pageId = new PageId(pageTitle, -1); String wikitext = inputFileContent.getContent(); ExpansionCallback expCallback = null; EngProcessedPage ast = getEngine().postprocess(pageId, wikitext, expCallback); TestCallback rendererCallback = new TestCallback(); String actual = HtmlRenderer.print(rendererCallback, wikiConfig, pageTitle, ast); File expectedFile = TestResourcesFixture.rebase( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, "html", true /* don't throw if file doesn't exist */); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } // ========================================================================= private static final class TestCallback implements HtmlRendererCallback { protected static final String LOCAL_URL = "/mediawiki/index.php/"; @Override public boolean resourceExists(PageTitle target) { // TODO: Add proper check return false; } @Override public MediaInfo getMediaInfo(String title, int width, int height) { // TODO: Return proper media info return null; } @Override public String makeUrl(PageTitle target) { String page = UrlEncoding.WIKI.encode(target.getNormalizedFullTitle()); String f = target.getFragment(); String url = page; if (f != null && !f.isEmpty()) url = page + "#" + UrlEncoding.WIKI.encode(f); return LOCAL_URL + "/" + url; } @Override public String makeUrl(WtUrl target) { if (target.getProtocol() == "") return target.getPath(); return target.getProtocol() + ":" + target.getPath(); } @Override public String makeUrlMissingTarget(String path) { return LOCAL_URL + "?title=" + path + "&action=edit&redlink=1"; } } } utils/000077500000000000000000000000001335270560400416025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engineDefaultConfigEnZhWp.java000066400000000000000000003110231335270560400462530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.util.ArrayList; import java.util.Arrays; import org.sweble.wikitext.engine.config.I18nAliasImpl; import org.sweble.wikitext.engine.config.InterwikiImpl; import org.sweble.wikitext.engine.config.NamespaceImpl; import org.sweble.wikitext.engine.config.ParserConfigImpl; import org.sweble.wikitext.engine.config.WikiConfigImpl; /** * Programatically generate a default configuration that is similar to that of * the English Wikipedia but additionally configures some basic LCT mappings * like in the Chinese Wikipedia. */ public class DefaultConfigEnZhWp extends DefaultConfig { public static WikiConfigImpl generate() { WikiConfigImpl c = new WikiConfigImpl(); new DefaultConfigEnZhWp().configureWiki(c); return c; } protected void configureSiteProperties(WikiConfigImpl c) { c.setSiteName("My English Wiki"); c.setWikiUrl("http://localhost/"); c.setContentLang("en"); c.setIwPrefix("en"); } protected ParserConfigImpl configureParser(WikiConfigImpl c) { ParserConfigImpl pc = super.configureParser(c); // --[ Link classification and parsing ]-- pc.setInternalLinkPrefixPattern(null); pc.setInternalLinkPostfixPattern("[a-z]+"); return pc; } protected void addNamespaces(WikiConfigImpl c) { c.addNamespace(new NamespaceImpl( -2, "Media", "Media", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( -1, "Special", "Special", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 0, "", "", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 1, "Talk", "Talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 2, "User", "User", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 3, "User talk", "User talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 4, "Wikipedia", "Project", false, false, Arrays.asList("WP"))); c.addNamespace(new NamespaceImpl( 5, "Wikipedia talk", "Project talk", false, false, Arrays.asList("WT"))); c.addNamespace(new NamespaceImpl( 6, "File", "File", false, true, Arrays.asList("Image"))); c.addNamespace(new NamespaceImpl( 7, "File talk", "File talk", false, false, Arrays.asList("Image talk"))); c.addNamespace(new NamespaceImpl( 8, "MediaWiki", "MediaWiki", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 9, "MediaWiki talk", "MediaWiki talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 10, "Template", "Template", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 11, "Template talk", "Template talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 12, "Help", "Help", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 13, "Help talk", "Help talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 14, "Category", "Category", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 15, "Category talk", "Category talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 100, "Portal", "Portal", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 101, "Portal talk", "Portal talk", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 108, "Book", "Book", false, false, new ArrayList())); c.addNamespace(new NamespaceImpl( 109, "Book talk", "Book talk", false, false, new ArrayList())); c.setDefaultNamespace(c.getNamespace(0)); c.setTemplateNamespace(c.getNamespace(10)); } protected void addInterwikis(WikiConfigImpl c) { c.addInterwiki(new InterwikiImpl( "aa", "http://aa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ab", "http://ab.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "abbenormal", "http://ourpla.net/cgi/pikie?$1", false, false)); c.addInterwiki(new InterwikiImpl( "acronym", "http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=$1", false, false)); c.addInterwiki(new InterwikiImpl( "advisory", "http://advisory.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "advogato", "http://www.advogato.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "aew", "http://wiki.arabeyes.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "af", "http://af.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "airwarfare", "http://airwarfare.com/mediawiki-1.4.5/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "aiwiki", "http://www.ifi.unizh.ch/ailab/aiwiki/aiw.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ak", "http://ak.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "allwiki", "http://allwiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "als", "http://als.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "am", "http://am.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "an", "http://an.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ang", "http://ang.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "appropedia", "http://www.appropedia.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "aquariumwiki", "http://www.theaquariumwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ar", "http://ar.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "arc", "http://arc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "arxiv", "http://arxiv.org/abs/$1", false, false)); c.addInterwiki(new InterwikiImpl( "arz", "http://arz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "as", "http://as.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "aspienetwiki", "http://aspie.mela.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ast", "http://ast.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "atmwiki", "http://www.otterstedt.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "av", "http://av.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ay", "http://ay.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "az", "http://az.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "b", "http://en.wikibooks.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ba", "http://ba.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bar", "http://bar.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bat-smg", "http://bat-smg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "battlestarwiki", "http://en.battlestarwiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bcl", "http://bcl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "be", "http://be.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "be-x-old", "http://be-x-old.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bemi", "http://bemi.free.fr/vikio/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "benefitswiki", "http://www.benefitslink.com/cgi-bin/wiki.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "betawiki", "http://translatewiki.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "betawikiversity", "http://beta.wikiversity.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bg", "http://bg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bh", "http://bh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bi", "http://bi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "biblewiki", "http://bible.tmtm.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bluwiki", "http://www.bluwiki.org/go/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bm", "http://bm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bn", "http://bn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bo", "http://bo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "botwiki", "http://botwiki.sno.cc/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "boxrec", "http://www.boxrec.com/media/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "bpy", "http://bpy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "br", "http://br.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "brickwiki", "http://brickwiki.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "bridgeswiki", "http://c2.com:8000/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bs", "http://bs.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bug", "http://bug.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bugzilla", "https://bugzilla.wikimedia.org/show_bug.cgi?id=$1", true, false)); c.addInterwiki(new InterwikiImpl( "buzztard", "http://buzztard.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "bxr", "http://bxr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "bytesmiths", "http://www.Bytesmiths.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "c2", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "c2find", "http://c2.com/cgi/wiki?FindPage&value=$1", false, false)); c.addInterwiki(new InterwikiImpl( "ca", "http://ca.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cache", "http://www.google.com/search?q=cache:$1", false, false)); c.addInterwiki(new InterwikiImpl( "canwiki", "http://www.can-wiki.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "canyonwiki", "http://www.canyonwiki.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cbk-zam", "http://cbk-zam.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cdo", "http://cdo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ce", "http://ce.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ceb", "http://ceb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cellwiki", "http://cell.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "centralwikia", "http://www.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ch", "http://ch.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chapter", "http://en.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cho", "http://cho.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "choralwiki", "http://www.cpdl.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "chr", "http://chr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "chy", "http://chy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ciscavate", "http://ciscavate.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "citizendium", "http://en.citizendium.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ckwiss", "http://ck-wissen.de/ckwiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "closed-zh-tw", "http://closed-zh-tw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cndbname", "http://cndb.com/actor.html?name=$1", false, false)); c.addInterwiki(new InterwikiImpl( "cndbtitle", "http://cndb.com/movie.html?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "co", "http://co.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "colab", "http://colab.info", false, false)); c.addInterwiki(new InterwikiImpl( "comcom", "http://comcom.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "comixpedia", "http://www.comixpedia.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "commons", "http://commons.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "communityscheme", "http://community.schemewiki.org/?c=s&key=$1", false, false)); c.addInterwiki(new InterwikiImpl( "comune", "http://rete.comuni-italiani.it/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "consciousness", "http://teadvus.inspiral.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "corpknowpedia", "http://corpknowpedia.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cr", "http://cr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "crazyhacks", "http://www.crazy-hacks.org/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "creatureswiki", "http://creatures.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "crh", "http://crh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cs", "http://cs.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "csb", "http://csb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cu", "http://cu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cv", "http://cv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cxej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "cy", "http://cy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "cz", "http://cz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "da", "http://da.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dawiki", "http://www.dienstag-abend.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dbdump", "http://download.wikimedia.org/$1/latest/", true, false)); c.addInterwiki(new InterwikiImpl( "dcc", "http://www.dccwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dcdatabase", "http://www.dcdatabaseproject.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dcma", "http://www.christian-morgenstern.de/dcma/$1", false, false)); c.addInterwiki(new InterwikiImpl( "de", "http://de.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dejanews", "http://www.deja.com/=dnc/getdoc.xp?AN=$1", false, false)); c.addInterwiki(new InterwikiImpl( "delicious", "http://del.icio.us/tag/$1", false, false)); c.addInterwiki(new InterwikiImpl( "demokraatia", "http://wiki.demokraatia.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "devmo", "http://developer.mozilla.org/en/docs/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dict", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "dictionary", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "diq", "http://diq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "disinfopedia", "http://www.sourcewatch.org/wiki.phtml?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "distributedproofreaders", "http://www.pgdp.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "distributedproofreadersca", "http://www.pgdpcanada.net/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dk", "http://dk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dmoz", "http://www.dmoz.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dmozs", "http://www.dmoz.org/cgi-bin/search?search=$1", false, false)); c.addInterwiki(new InterwikiImpl( "docbook", "http://wiki.docbook.org/topic/$1", false, false)); c.addInterwiki(new InterwikiImpl( "doi", "http://dx.doi.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "doom_wiki", "http://doom.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "download", "http://download.wikimedia.org/$1", true, false)); c.addInterwiki(new InterwikiImpl( "drae", "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1", false, false)); c.addInterwiki(new InterwikiImpl( "dreamhost", "http://wiki.dreamhost.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "drumcorpswiki", "http://www.drumcorpswiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "dsb", "http://dsb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dv", "http://dv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "dwjwiki", "http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "dz", "http://dz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "echei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ecoreality", "http://www.EcoReality.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ecxei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "ee", "http://ee.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "efnetceewiki", "http://purl.net/wiki/c/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetcppwiki", "http://purl.net/wiki/cpp/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetpythonwiki", "http://purl.net/wiki/python/$1", false, false)); c.addInterwiki(new InterwikiImpl( "efnetxmlwiki", "http://purl.net/wiki/xml/$1", false, false)); c.addInterwiki(new InterwikiImpl( "el", "http://el.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "elibre", "http://enciclopedia.us.es/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "emacswiki", "http://www.emacswiki.org/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "eml", "http://eml.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "en", "http://en.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "energiewiki", "http://www.netzwerk-energieberater.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "eo", "http://eo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "eokulturcentro", "http://esperanto.toulouse.free.fr/nova/wikini/wakka.php?wiki=$1", false, false)); c.addInterwiki(new InterwikiImpl( "epo", "http://epo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "es", "http://es.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "et", "http://et.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ethnologue", "http://www.ethnologue.com/show_language.asp?code=$1", false, false)); c.addInterwiki(new InterwikiImpl( "eu", "http://eu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "evowiki", "http://wiki.cotch.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "exotica", "http://www.exotica.org.uk/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ext", "http://ext.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "e\u0109ei", "http://www.ikso.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "fa", "http://fa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fanimutationwiki", "http://wiki.animutationportal.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ff", "http://ff.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fi", "http://fi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "finalempire", "http://final-empire.sourceforge.net/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "finalfantasy", "http://finalfantasy.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "finnix", "http://www.finnix.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "fiu-vro", "http://fiu-vro.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fj", "http://fj.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "flickruser", "http://www.flickr.com/people/$1", false, false)); c.addInterwiki(new InterwikiImpl( "floralwiki", "http://www.floralwiki.co.uk/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "flyerwiki-de", "http://de.flyerwiki.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "fo", "http://fo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "foldoc", "http://www.foldoc.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "forthfreak", "http://wiki.forthfreak.net/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "foundation", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "foxwiki", "http://fox.wikis.com/wc.dll?Wiki~$1", false, false)); c.addInterwiki(new InterwikiImpl( "fr", "http://fr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "freebio", "http://freebiology.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freebsdman", "http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1", false, false)); c.addInterwiki(new InterwikiImpl( "freeculturewiki", "http://wiki.freeculture.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freedomdefined", "http://freedomdefined.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freefeel", "http://freefeel.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "freekiwiki", "http://wiki.freegeek.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "frp", "http://frp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fur", "http://fur.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "fy", "http://fy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ga", "http://ga.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gan", "http://gan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ganfyd", "http://ganfyd.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "gausswiki", "http://gauss.ffii.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gd", "http://gd.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gentoo-wiki", "http://gentoo-wiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "genwiki", "http://wiki.genealogy.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gl", "http://gl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "glk", "http://glk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "globalvoices", "http://cyber.law.harvard.edu/dyn/globalvoices/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "glossarwiki", "http://glossar.hs-augsburg.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "glossarywiki", "http://glossary.hs-augsburg.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gn", "http://gn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "golem", "http://golem.linux.it/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "google", "http://www.google.com/search?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "googledefine", "http://www.google.com/search?q=define:$1", false, false)); c.addInterwiki(new InterwikiImpl( "googlegroups", "http://groups.google.com/groups?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "got", "http://got.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "gotamac", "http://www.got-a-mac.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "greatlakeswiki", "http://greatlakeswiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gu", "http://gu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "guildwiki", "http://gw.gamewikis.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gutenberg", "http://www.gutenberg.org/etext/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gutenbergwiki", "http://www.gutenberg.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "gv", "http://gv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "h2wiki", "http://halowiki.net/p/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ha", "http://ha.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hak", "http://hak.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hammondwiki", "http://www.dairiki.org/HammondWiki/index.php3?$1", false, false)); c.addInterwiki(new InterwikiImpl( "haw", "http://haw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "he", "http://he.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "heroeswiki", "http://heroeswiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "herzkinderwiki", "http://www.herzkinderinfo.de/Mediawiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hi", "http://hi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hif", "http://hif.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hkmule", "http://www.hkmule.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ho", "http://ho.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "holshamtraders", "http://www.holsham-traders.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hr", "http://hr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hrfwiki", "http://fanstuff.hrwiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hrwiki", "http://www.hrwiki.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hsb", "http://hsb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ht", "http://ht.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hu", "http://hu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "humancell", "http://www.humancell.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hupwiki", "http://wiki.hup.hu/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "hy", "http://hy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "hz", "http://hz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ia", "http://ia.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "id", "http://id.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ie", "http://ie.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ig", "http://ig.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ii", "http://ii.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ik", "http://ik.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ilo", "http://ilo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "imdbcharacter", "http://www.imdb.com/character/ch$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbcompany", "http://www.imdb.com/company/co$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbname", "http://www.imdb.com/name/nm$1/", false, false)); c.addInterwiki(new InterwikiImpl( "imdbtitle", "http://www.imdb.com/title/tt$1/", false, false)); c.addInterwiki(new InterwikiImpl( "incubator", "http://incubator.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "infoanarchy", "http://www.infoanarchy.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "infosecpedia", "http://www.infosecpedia.org/pedia/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "infosphere", "http://theinfosphere.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "io", "http://io.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "is", "http://is.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iso639-3", "http://www.sil.org/iso639-3/documentation.asp?id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "it", "http://it.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iu", "http://iu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "iuridictum", "http://iuridictum.pecina.cz/w/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ja", "http://ja.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jameshoward", "http://jameshoward.us/$1", false, false)); c.addInterwiki(new InterwikiImpl( "javanet", "http://wiki.java.net/bin/view/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "javapedia", "http://wiki.java.net/bin/view/Javapedia/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jbo", "http://jbo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jefo", "http://esperanto-jeunes.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jiniwiki", "http://www.cdegroot.com/cgi-bin/jini?$1", false, false)); c.addInterwiki(new InterwikiImpl( "jp", "http://jp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "jspwiki", "http://www.ecyrd.com/JSPWiki/Wiki.jsp?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "jstor", "http://www.jstor.org/journals/$1", false, false)); c.addInterwiki(new InterwikiImpl( "jv", "http://jv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ka", "http://ka.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kaa", "http://kaa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kab", "http://kab.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kamelo", "http://kamelopedia.mormo.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "karlsruhe", "http://ka.stadtwiki.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kerimwiki", "http://wiki.oxus.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kg", "http://kg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ki", "http://ki.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kinowiki", "http://kino.skripov.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kj", "http://kj.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kk", "http://kk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kl", "http://kl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "km", "http://km.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kmwiki", "http://kmwiki.wikispaces.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kn", "http://kn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ko", "http://ko.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kontuwiki", "http://kontu.merri.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "koslarwiki", "http://wiki.koslar.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kpopwiki", "http://www.kpopwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "kr", "http://kr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ks", "http://ks.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ksh", "http://ksh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ku", "http://ku.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kv", "http://kv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "kw", "http://kw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ky", "http://ky.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "la", "http://la.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lad", "http://lad.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lb", "http://lb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lbe", "http://lbe.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lg", "http://lg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "li", "http://li.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lij", "http://lij.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "linguistlist", "http://linguistlist.org/forms/langs/LLDescription.cfm?code=$1", false, false)); c.addInterwiki(new InterwikiImpl( "linuxwiki", "http://www.linuxwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "linuxwikide", "http://www.linuxwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "liswiki", "http://liswiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "literateprograms", "http://en.literateprograms.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "livepedia", "http://www.livepedia.gr/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lmo", "http://lmo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ln", "http://ln.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lo", "http://lo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lojban", "http://www.lojban.org/tiki/tiki-index.php?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lostpedia", "http://lostpedia.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "lqwiki", "http://wiki.linuxquestions.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "lt", "http://lt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lugkr", "http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "luxo", "http://toolserver.org/~luxo/contributions/contributions.php?user=$1", false, false)); c.addInterwiki(new InterwikiImpl( "lv", "http://lv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "lyricwiki", "http://www.lyricwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mail", "https://lists.wikimedia.org/mailman/listinfo/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mailarchive", "http://lists.wikimedia.org/pipermail/$1", true, false)); c.addInterwiki(new InterwikiImpl( "map-bms", "http://map-bms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mariowiki", "http://www.mariowiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "marveldatabase", "http://www.marveldatabase.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mdf", "http://mdf.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "meatball", "http://www.usemod.com/cgi-bin/mb.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "mediazilla", "https://bugzilla.wikimedia.org/$1", true, false)); c.addInterwiki(new InterwikiImpl( "memoryalpha", "http://memory-alpha.org/en/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "metawiki", "http://sunir.org/apps/meta.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "metawikipedia", "http://meta.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mg", "http://mg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mh", "http://mh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mi", "http://mi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mineralienatlas", "http://www.mineralienatlas.de/lexikon/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "minnan", "http://minnan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mk", "http://mk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ml", "http://ml.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mn", "http://mn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mo", "http://mo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "moinmoin", "http://moinmo.in/$1", false, false)); c.addInterwiki(new InterwikiImpl( "monstropedia", "http://www.monstropedia.org/?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "mosapedia", "http://mosapedia.de/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozcom", "http://mozilla.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozillawiki", "http://wiki.mozilla.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mozillazinekb", "http://kb.mozillazine.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mr", "http://mr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ms", "http://ms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mt", "http://mt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mus", "http://mus.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "musicbrainz", "http://wiki.musicbrainz.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mw", "http://www.mediawiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "mwod", "http://www.merriam-webster.com/cgi-bin/dictionary?book=Dictionary&va=$1", false, false)); c.addInterwiki(new InterwikiImpl( "mwot", "http://www.merriam-webster.com/cgi-bin/thesaurus?book=Thesaurus&va=$1", false, false)); c.addInterwiki(new InterwikiImpl( "my", "http://my.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "myv", "http://myv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "mzn", "http://mzn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "n", "http://en.wikinews.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "na", "http://na.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nah", "http://nah.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nan", "http://nan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nap", "http://nap.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nb", "http://nb.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nds", "http://nds.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nds-nl", "http://nds-nl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ne", "http://ne.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "netvillage", "http://www.netbros.com/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "new", "http://new.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ng", "http://ng.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nkcells", "http://www.nkcells.info/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "nl", "http://nl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nn", "http://nn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "no", "http://no.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nomcom", "http://nomcom.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nosmoke", "http://no-smok.net/nsmk/$1", false, false)); c.addInterwiki(new InterwikiImpl( "nost", "http://nostalgia.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nov", "http://nov.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nrm", "http://nrm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "nv", "http://nv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ny", "http://ny.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "oc", "http://oc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "oeis", "http://www.research.att.com/~njas/sequences/$1", false, false)); c.addInterwiki(new InterwikiImpl( "oldwikisource", "http://wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "olpc", "http://wiki.laptop.org/go/$1", false, false)); c.addInterwiki(new InterwikiImpl( "om", "http://om.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "onelook", "http://www.onelook.com/?ls=b&w=$1", false, false)); c.addInterwiki(new InterwikiImpl( "openfacts", "http://openfacts.berlios.de/index.phtml?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "openstreetmap", "http://wiki.openstreetmap.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "openwetware", "http://openwetware.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "openwiki", "http://openwiki.com/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "opera7wiki", "http://operawiki.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "or", "http://or.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "organicdesign", "http://www.organicdesign.co.nz/$1", false, false)); c.addInterwiki(new InterwikiImpl( "orgpatterns", "http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?$1", false, false)); c.addInterwiki(new InterwikiImpl( "orthodoxwiki", "http://orthodoxwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "os", "http://os.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "osi reference model", "http://wiki.tigma.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "otrs", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketID=$1", true, false)); c.addInterwiki(new InterwikiImpl( "otrswiki", "http://otrs-wiki.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ourmedia", "http://www.socialtext.net/ourmedia/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "pa", "http://pa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pag", "http://pag.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "paganwiki", "http://www.paganwiki.org/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "pam", "http://pam.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "panawiki", "http://wiki.alairelibre.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pangalacticorg", "http://www.pangalactic.org/Wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pap", "http://pap.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "patwiki", "http://gauss.ffii.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pdc", "http://pdc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "perlconfwiki", "http://perl.conf.hu/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "perlnet", "http://perl.net.au/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "personaltelco", "http://www.personaltelco.net/index.cgi/$1", false, false)); c.addInterwiki(new InterwikiImpl( "phpwiki", "http://phpwiki.sourceforge.net/phpwiki/index.php?$1", false, false)); c.addInterwiki(new InterwikiImpl( "phwiki", "http://wiki.pocketheaven.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pi", "http://pi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pih", "http://pih.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pl", "http://pl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "planetmath", "http://planetmath.org/?op=getobj&from=objects&id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "pmeg", "http://www.bertilow.com/pmeg/$1.php", false, false)); c.addInterwiki(new InterwikiImpl( "pms", "http://pms.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "pmwiki", "http://old.porplemontage.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pnt", "http://pnt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ps", "http://ps.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "psycle", "http://psycle.sourceforge.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pt", "http://pt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "purlnet", "http://purl.oclc.org/NET/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pythoninfo", "http://www.python.org/cgi-bin/moinmoin/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pythonwiki", "http://www.pythonwiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "pywiki", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "q", "http://en.wikiquote.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "qcwiki", "http://wiki.quantumchemistry.net/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "qu", "http://qu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "quality", "http://quality.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "qwiki", "http://qwiki.caltech.edu/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "r3000", "http://prinsig.se/weekee/$1", false, false)); c.addInterwiki(new InterwikiImpl( "raec", "http://www.raec.clacso.edu.ar:8080/raec/Members/raecpedia/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rakwiki", "http://rakwiki.no-ip.info/$1", false, false)); c.addInterwiki(new InterwikiImpl( "reuterswiki", "http://glossary.reuters.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rev", "http://www.mediawiki.org/wiki/Special:Code/MediaWiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "revo", "http://purl.org/NET/voko/revo/art/$1.html", false, false)); c.addInterwiki(new InterwikiImpl( "rfc", "http://tools.ietf.org/html/rfc$1", false, false)); c.addInterwiki(new InterwikiImpl( "rheinneckar", "http://wiki.rhein-neckar.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "rm", "http://rm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rmy", "http://rmy.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rn", "http://rn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ro", "http://ro.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "roa-rup", "http://roa-rup.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "roa-tara", "http://roa-tara.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "robowiki", "http://robowiki.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "rowiki", "http://wiki.rennkuckuck.de/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ru", "http://ru.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "rw", "http://rw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "s", "http://en.wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "s23wiki", "http://s23.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sa", "http://sa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sah", "http://sah.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sc", "http://sc.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scholar", "http://scholar.google.com/scholar?q=$1", false, false)); c.addInterwiki(new InterwikiImpl( "schoolswp", "http://schools-wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scn", "http://scn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sco", "http://sco.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "scores", "http://www.imslp.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "scoutwiki", "http://en.scoutwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "scramble", "http://www.scramble.nl/wiki/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "sd", "http://sd.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "se", "http://se.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "seapig", "http://www.seapig.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "seattlewiki", "http://seattlewiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "seattlewireless", "http://seattlewireless.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "senseislibrary", "http://senseis.xmp.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "sg", "http://sg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sh", "http://sh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "shakti", "http://cgi.algonet.se/htbin/cgiwrap/pgd/ShaktiWiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "si", "http://si.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "silcode", "http://www.sil.org/iso639-3/documentation.asp?id=$1", false, false)); c.addInterwiki(new InterwikiImpl( "simple", "http://simple.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sk", "http://sk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sl", "http://sl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "slashdot", "http://slashdot.org/article.pl?sid=$1", false, false)); c.addInterwiki(new InterwikiImpl( "slwiki", "http://wiki.secondlife.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sm", "http://sm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "smikipedia", "http://www.smiki.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sn", "http://sn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "so", "http://so.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sourceforge", "http://sourceforge.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "spcom", "http://spcom.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "species", "http://species.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sq", "http://sq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "squeak", "http://wiki.squeak.org/squeak/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sr", "http://sr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "srn", "http://srn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ss", "http://ss.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "st", "http://st.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "stable", "http://stable.toolserver.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "stq", "http://stq.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "strategywiki", "http://strategywiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "su", "http://su.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "sulutil", "http://toolserver.org/~vvv/sulutil.php?user=$1", false, false)); c.addInterwiki(new InterwikiImpl( "susning", "http://www.susning.nu/$1", false, false)); c.addInterwiki(new InterwikiImpl( "sv", "http://sv.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "svgwiki", "http://www.protocol7.com/svg-wiki/default.asp?$1", false, false)); c.addInterwiki(new InterwikiImpl( "svn", "http://svn.wikimedia.org/viewvc/mediawiki/$1?view=log", true, false)); c.addInterwiki(new InterwikiImpl( "sw", "http://sw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "swinbrain", "http://mercury.it.swin.edu.au/swinbrain/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "swingwiki", "http://www.swingwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "swtrain", "http://train.spottingworld.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "szl", "http://szl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ta", "http://ta.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tabwiki", "http://www.tabwiki.com/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "takipedia", "http://www.takipedia.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tavi", "http://tavi.sourceforge.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tclerswiki", "http://wiki.tcl.tk/$1", false, false)); c.addInterwiki(new InterwikiImpl( "te", "http://te.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "technorati", "http://www.technorati.com/search/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tejo", "http://www.tejo.org/vikio/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tesoltaiwan", "http://www.tesol-taiwan.org/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "testwiki", "http://test.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tet", "http://tet.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tg", "http://tg.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "th", "http://th.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "thelemapedia", "http://www.thelemapedia.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "theopedia", "http://www.theopedia.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "theppn", "http://wiki.theppn.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "thinkwiki", "http://www.thinkwiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ti", "http://ti.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tibiawiki", "http://tibia.erig.net/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ticket", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketNumber=$1", true, false)); c.addInterwiki(new InterwikiImpl( "tk", "http://tk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tl", "http://tl.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tmbw", "http://tmbw.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tmnet", "http://www.technomanifestos.net/?$1", false, false)); c.addInterwiki(new InterwikiImpl( "tmwiki", "http://www.EasyTopicMaps.com/?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "tn", "http://tn.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "to", "http://to.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tokipona", "http://tokipona.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tokyonights", "http://wiki.tokyo-nights.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tools", "http://toolserver.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tp", "http://tp.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tpi", "http://tpi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tr", "http://tr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "translatewiki", "http://translatewiki.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "trash!italia", "http://trashware.linux.it/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ts", "http://ts.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tswiki", "http://wiki.toolserver.org/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tt", "http://tt.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tum", "http://tum.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "turismo", "http://www.tejo.org/turismo/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tviv", "http://tviv.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tvtropes", "http://www.tvtropes.org/pmwiki/pmwiki.php/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "tw", "http://tw.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "twiki", "http://twiki.org/cgi-bin/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "twistedwiki", "http://purl.net/wiki/twisted/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ty", "http://ty.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "tyvawiki", "http://www.tyvawiki.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "udm", "http://udm.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "ug", "http://ug.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "uk", "http://uk.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "uncyclopedia", "http://uncyclopedia.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "unreal", "http://wiki.beyondunreal.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ur", "http://ur.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "urbandict", "http://www.urbandictionary.com/define.php?term=$1", false, false)); c.addInterwiki(new InterwikiImpl( "usej", "http://www.tejo.org/usej/$1", false, false)); c.addInterwiki(new InterwikiImpl( "usemod", "http://www.usemod.com/cgi-bin/wiki.pl?$1", false, false)); c.addInterwiki(new InterwikiImpl( "uz", "http://uz.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "v", "http://en.wikiversity.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "valuewiki", "http://www.valuewiki.com/w/$1", false, false)); c.addInterwiki(new InterwikiImpl( "ve", "http://ve.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vec", "http://vec.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "veropedia", "http://en.veropedia.com/a/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vi", "http://vi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vinismo", "http://vinismo.com/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vkol", "http://kol.coldfront.net/thekolwiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vlos", "http://www.thuvienkhoahoc.com/tusach/$1", false, false)); c.addInterwiki(new InterwikiImpl( "vls", "http://vls.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "vo", "http://vo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "voipinfo", "http://www.voip-info.org/wiki/view/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wa", "http://wa.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "war", "http://war.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "warpedview", "http://www.warpedview.com/mediawiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "webdevwikinl", "http://www.promo-it.nl/WebDevWiki/index.php?page=$1", false, false)); c.addInterwiki(new InterwikiImpl( "webisodes", "http://www.webisodes.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "webseitzwiki", "http://webseitz.fluxent.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wg", "http://wg.en.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wiki", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikia", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikianso", "http://www.ansorena.de/mediawiki/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiasite", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikible", "http://wikible.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikibooks", "http://en.wikibooks.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikichat", "http://www.wikichat.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikichristian", "http://www.wikichristian.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikicities", "http://www.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikicity", "http://www.wikia.com/wiki/c:$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikif1", "http://www.wikif1.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikifur", "http://en.wikifur.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikihow", "http://www.wikihow.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiindex", "http://wikiindex.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikilemon", "http://wiki.illemonati.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikilivres", "http://wikilivres.info/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimac-de", "http://apfelwiki.de/wiki/Main/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimac-fr", "http://www.wikimac.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikimedia", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinews", "http://en.wikinews.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinfo", "http://www.wikinfo.org/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinurse", "http://wikinurse.org/media/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikinvest", "http://www.wikinvest.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikipaltz", "http://www.wikipaltz.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikipediawikipedia", "http://en.wikipedia.org/wiki/Wikipedia:$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikiquote", "http://en.wikiquote.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikireason", "http://wikireason.net/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikischool", "http://www.wikischool.de/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikisophia", "http://wikisophia.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikisource", "http://en.wikisource.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikispecies", "http://species.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wikispot", "http://wikispot.org/?action=gotowikipage&v=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiti", "http://wikiti.denglend.net/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikitravel", "http://wikitravel.org/en/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikitree", "http://wikitree.org/index.php?title=$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiversity", "http://en.wikiversity.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikiwikiweb", "http://c2.com/cgi/wiki?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wikt", "http://en.wiktionary.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wiktionary", "http://en.wiktionary.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wipipedia", "http://www.londonfetishscene.com/wipi/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wlug", "http://www.wlug.org.nz/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wm2005", "http://wikimania2005.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2006", "http://wikimania2006.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2007", "http://wikimania2007.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2008", "http://wikimania2008.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2009", "http://wikimania2009.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wm2010", "http://wikimania2010.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmania", "http://wikimania.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmcz", "http://meta.wikimedia.org/wiki/Wikimedia_Czech_Republic/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmf", "http://wikimediafoundation.org/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wmrs", "http://rs.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wmse", "http://se.wikimedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wo", "http://wo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wookieepedia", "http://starwars.wikia.com/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "world66", "http://www.world66.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wowwiki", "http://www.wowwiki.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wqy", "http://wqy.sourceforge.net/cgi-bin/index.cgi?$1", false, false)); c.addInterwiki(new InterwikiImpl( "wurmpedia", "http://www.wurmonline.com/wiki/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "wuu", "http://wuu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "wznan", "http://www.wikiznanie.ru/wiki/article/$1", false, false)); c.addInterwiki(new InterwikiImpl( "xal", "http://xal.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "xboxic", "http://wiki.xboxic.com/$1", false, false)); c.addInterwiki(new InterwikiImpl( "xh", "http://xh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "yi", "http://yi.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "yo", "http://yo.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "za", "http://za.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zea", "http://zea.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-cfr", "http://zh-cfr.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-classical", "http://zh-classical.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-cn", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-min-nan", "http://zh-min-nan.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-tw", "http://zh.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zh-yue", "http://zh-yue.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zrhwiki", "http://www.zrhwiki.ch/wiki/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zu", "http://zu.wikipedia.org/wiki/$1", true, false)); c.addInterwiki(new InterwikiImpl( "zum", "http://wiki.zum.de/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zwiki", "http://www.zwiki.org/$1", false, false)); c.addInterwiki(new InterwikiImpl( "zzz wiki", "http://wiki.zzz.ee/index.php/$1", false, false)); c.addInterwiki(new InterwikiImpl( "\u0108ej", "http://esperanto.blahus.cz/cxej/vikio/index.php/$1", false, false)); } protected void addI18nAlises(WikiConfigImpl c) { /* c.addI18nAlias(new I18nAliasImpl( "img_lossy", false, Arrays.asList("lossy=$1"))); */ c.addI18nAlias(new I18nAliasImpl( "expr", false, Arrays.asList("#expr:"))); c.addI18nAlias(new I18nAliasImpl( "if", false, Arrays.asList("#if:"))); c.addI18nAlias(new I18nAliasImpl( "ifeq", false, Arrays.asList("#ifeq:"))); c.addI18nAlias(new I18nAliasImpl( "ifexpr", false, Arrays.asList("#ifexpr:"))); c.addI18nAlias(new I18nAliasImpl( "iferror", false, Arrays.asList("#iferror:"))); c.addI18nAlias(new I18nAliasImpl( "switch", false, Arrays.asList("#switch:"))); /* c.addI18nAlias(new I18nAliasImpl( "default", false, Arrays.asList("#default"))); */ c.addI18nAlias(new I18nAliasImpl( "ifexist", false, Arrays.asList("#ifexist:"))); c.addI18nAlias(new I18nAliasImpl( "time", false, Arrays.asList("#time:"))); c.addI18nAlias(new I18nAliasImpl( "timel", false, Arrays.asList("#timel:"))); /* c.addI18nAlias(new I18nAliasImpl( "rel2abs", false, Arrays.asList("rel2abs"))); */ c.addI18nAlias(new I18nAliasImpl( "titleparts", false, Arrays.asList("#titleparts:"))); /* c.addI18nAlias(new I18nAliasImpl( "convert", false, Arrays.asList("convert"))); c.addI18nAlias(new I18nAliasImpl( "sourceunit", false, Arrays.asList("#sourceunit"))); c.addI18nAlias(new I18nAliasImpl( "targetunit", false, Arrays.asList("#targetunit"))); c.addI18nAlias(new I18nAliasImpl( "linkunit", false, Arrays.asList("#linkunit"))); c.addI18nAlias(new I18nAliasImpl( "decimalplaces", false, Arrays.asList("#dp"))); c.addI18nAlias(new I18nAliasImpl( "significantfigures", false, Arrays.asList("#sf"))); c.addI18nAlias(new I18nAliasImpl( "abbreviate", false, Arrays.asList("#abbreviate"))); c.addI18nAlias(new I18nAliasImpl( "language", false, Arrays.asList("#language", "#LANGUAGE:"))); c.addI18nAlias(new I18nAliasImpl( "len", false, Arrays.asList("len"))); c.addI18nAlias(new I18nAliasImpl( "pos", false, Arrays.asList("pos"))); c.addI18nAlias(new I18nAliasImpl( "rpos", false, Arrays.asList("rpos"))); /* c.addI18nAlias(new I18nAliasImpl( "sub", false, Arrays.asList("sub"))); / c.addI18nAlias(new I18nAliasImpl( "count", false, Arrays.asList("count"))); c.addI18nAlias(new I18nAliasImpl( "replace", false, Arrays.asList("replace"))); c.addI18nAlias(new I18nAliasImpl( "explode", false, Arrays.asList("explode"))); c.addI18nAlias(new I18nAliasImpl( "urldecode", false, Arrays.asList("urldecode"))); c.addI18nAlias(new I18nAliasImpl( "categorytree", false, Arrays.asList("categorytree"))); c.addI18nAlias(new I18nAliasImpl( "ogg_noplayer", false, Arrays.asList("noplayer"))); c.addI18nAlias(new I18nAliasImpl( "ogg_noicon", false, Arrays.asList("noicon"))); c.addI18nAlias(new I18nAliasImpl( "ogg_thumbtime", false, Arrays.asList("thumbtime=$1"))); c.addI18nAlias(new I18nAliasImpl( "babel", false, Arrays.asList("babel"))); c.addI18nAlias(new I18nAliasImpl( "contributiontotal", false, Arrays.asList("contributiontotal"))); c.addI18nAlias(new I18nAliasImpl( "pagesusingpendingchanges", false, Arrays.asList("pagesusingpendingchanges"))); c.addI18nAlias(new I18nAliasImpl( "pendingchangelevel", false, Arrays.asList("pendingchangelevel"))); c.addI18nAlias(new I18nAliasImpl( "useliquidthreads", false, Arrays.asList("UseLiquidThreads"))); c.addI18nAlias(new I18nAliasImpl( "lqtpagelimit", false, Arrays.asList("lqtpagelimit"))); c.addI18nAlias(new I18nAliasImpl( "translationdialog", false, Arrays.asList("translationdialog"))); c.addI18nAlias(new I18nAliasImpl( "usertestwiki", false, Arrays.asList("USERTESTWIKI"))); c.addI18nAlias(new I18nAliasImpl( "redirect", false, Arrays.asList("#REDIRECT"))); c.addI18nAlias(new I18nAliasImpl( "notoc", false, Arrays.asList("__NOTOC__"))); c.addI18nAlias(new I18nAliasImpl( "nogallery", false, Arrays.asList("__NOGALLERY__"))); c.addI18nAlias(new I18nAliasImpl( "forcetoc", false, Arrays.asList("__FORCETOC__"))); c.addI18nAlias(new I18nAliasImpl( "toc", false, Arrays.asList("__TOC__"))); c.addI18nAlias(new I18nAliasImpl( "noeditsection", false, Arrays.asList("__NOEDITSECTION__"))); c.addI18nAlias(new I18nAliasImpl( "noheader", false, Arrays.asList("__NOHEADER__"))); */ c.addI18nAlias(new I18nAliasImpl( "currentmonth", true, Arrays.asList("CURRENTMONTH", "CURRENTMONTH2"))); /* c.addI18nAlias(new I18nAliasImpl( "currentmonth1", true, Arrays.asList("CURRENTMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthname", true, Arrays.asList("CURRENTMONTHNAME"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthnamegen", true, Arrays.asList("CURRENTMONTHNAMEGEN"))); c.addI18nAlias(new I18nAliasImpl( "currentmonthabbrev", true, Arrays.asList("CURRENTMONTHABBREV"))); */ c.addI18nAlias(new I18nAliasImpl( "currentday", true, Arrays.asList("CURRENTDAY"))); /* c.addI18nAlias(new I18nAliasImpl( "currentday2", true, Arrays.asList("CURRENTDAY2"))); c.addI18nAlias(new I18nAliasImpl( "currentdayname", true, Arrays.asList("CURRENTDAYNAME"))); */ c.addI18nAlias(new I18nAliasImpl( "currentyear", true, Arrays.asList("CURRENTYEAR"))); /* c.addI18nAlias(new I18nAliasImpl( "currenttime", true, Arrays.asList("CURRENTTIME"))); c.addI18nAlias(new I18nAliasImpl( "currenthour", true, Arrays.asList("CURRENTHOUR"))); c.addI18nAlias(new I18nAliasImpl( "localmonth", true, Arrays.asList("LOCALMONTH", "LOCALMONTH2"))); c.addI18nAlias(new I18nAliasImpl( "localmonth1", true, Arrays.asList("LOCALMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "localmonthname", true, Arrays.asList("LOCALMONTHNAME"))); c.addI18nAlias(new I18nAliasImpl( "localmonthnamegen", true, Arrays.asList("LOCALMONTHNAMEGEN"))); c.addI18nAlias(new I18nAliasImpl( "localmonthabbrev", true, Arrays.asList("LOCALMONTHABBREV"))); c.addI18nAlias(new I18nAliasImpl( "localday", true, Arrays.asList("LOCALDAY"))); c.addI18nAlias(new I18nAliasImpl( "localday2", true, Arrays.asList("LOCALDAY2"))); c.addI18nAlias(new I18nAliasImpl( "localdayname", true, Arrays.asList("LOCALDAYNAME"))); c.addI18nAlias(new I18nAliasImpl( "localyear", true, Arrays.asList("LOCALYEAR"))); c.addI18nAlias(new I18nAliasImpl( "localtime", true, Arrays.asList("LOCALTIME"))); c.addI18nAlias(new I18nAliasImpl( "localhour", true, Arrays.asList("LOCALHOUR"))); c.addI18nAlias(new I18nAliasImpl( "numberofpages", true, Arrays.asList("NUMBEROFPAGES"))); c.addI18nAlias(new I18nAliasImpl( "numberofarticles", true, Arrays.asList("NUMBEROFARTICLES"))); c.addI18nAlias(new I18nAliasImpl( "numberoffiles", true, Arrays.asList("NUMBEROFFILES"))); c.addI18nAlias(new I18nAliasImpl( "numberofusers", true, Arrays.asList("NUMBEROFUSERS"))); c.addI18nAlias(new I18nAliasImpl( "numberofactiveusers", true, Arrays.asList("NUMBEROFACTIVEUSERS"))); c.addI18nAlias(new I18nAliasImpl( "numberofedits", true, Arrays.asList("NUMBEROFEDITS"))); c.addI18nAlias(new I18nAliasImpl( "numberofviews", true, Arrays.asList("NUMBEROFVIEWS"))); */ c.addI18nAlias(new I18nAliasImpl( "pagename", true, Arrays.asList("PAGENAME", "PAGENAME:"))); c.addI18nAlias(new I18nAliasImpl( "pagenamee", true, Arrays.asList("PAGENAMEE", "PAGENAMEE:"))); c.addI18nAlias(new I18nAliasImpl( "namespace", true, Arrays.asList("NAMESPACE", "NAMESPACE:"))); /* c.addI18nAlias(new I18nAliasImpl( "namespacee", true, Arrays.asList("NAMESPACEE"))); c.addI18nAlias(new I18nAliasImpl( "namespacenumber", true, Arrays.asList("NAMESPACENUMBER"))); */ c.addI18nAlias(new I18nAliasImpl( "talkspace", true, Arrays.asList("TALKSPACE"))); /* c.addI18nAlias(new I18nAliasImpl( "talkspacee", true, Arrays.asList("TALKSPACEE"))); */ c.addI18nAlias(new I18nAliasImpl( "subjectspace", true, Arrays.asList("SUBJECTSPACE", "ARTICLESPACE"))); /* c.addI18nAlias(new I18nAliasImpl( "subjectspacee", true, Arrays.asList("SUBJECTSPACEE", "ARTICLESPACEE"))); */ c.addI18nAlias(new I18nAliasImpl( "fullpagename", true, Arrays.asList("FULLPAGENAME"))); c.addI18nAlias(new I18nAliasImpl( "fullpagenamee", true, Arrays.asList("FULLPAGENAMEE"))); /* c.addI18nAlias(new I18nAliasImpl( "subpagename", true, Arrays.asList("SUBPAGENAME"))); c.addI18nAlias(new I18nAliasImpl( "subpagenamee", true, Arrays.asList("SUBPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "basepagename", true, Arrays.asList("BASEPAGENAME"))); /* c.addI18nAlias(new I18nAliasImpl( "basepagenamee", true, Arrays.asList("BASEPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "talkpagename", true, Arrays.asList("TALKPAGENAME", "TALKPAGENAME:"))); /* c.addI18nAlias(new I18nAliasImpl( "talkpagenamee", true, Arrays.asList("TALKPAGENAMEE"))); */ c.addI18nAlias(new I18nAliasImpl( "subjectpagename", true, Arrays.asList("SUBJECTPAGENAME", "ARTICLEPAGENAME"))); /* c.addI18nAlias(new I18nAliasImpl( "subjectpagenamee", true, Arrays.asList("SUBJECTPAGENAMEE", "ARTICLEPAGENAMEE"))); c.addI18nAlias(new I18nAliasImpl( "msg", false, Arrays.asList("MSG:"))); c.addI18nAlias(new I18nAliasImpl( "subst", false, Arrays.asList("SUBST:"))); */ c.addI18nAlias(new I18nAliasImpl( "safesubst", false, Arrays.asList("SAFESUBST:"))); /* c.addI18nAlias(new I18nAliasImpl( "msgnw", false, Arrays.asList("MSGNW:"))); c.addI18nAlias(new I18nAliasImpl( "img_thumbnail", true, Arrays.asList("thumbnail", "thumb"))); c.addI18nAlias(new I18nAliasImpl( "img_manualthumb", true, Arrays.asList("thumbnail=$1", "thumb=$1"))); c.addI18nAlias(new I18nAliasImpl( "img_right", true, Arrays.asList("right"))); c.addI18nAlias(new I18nAliasImpl( "img_left", true, Arrays.asList("left"))); c.addI18nAlias(new I18nAliasImpl( "img_none", true, Arrays.asList("none"))); c.addI18nAlias(new I18nAliasImpl( "img_width", true, Arrays.asList("$1px"))); c.addI18nAlias(new I18nAliasImpl( "img_center", true, Arrays.asList("center", "centre"))); c.addI18nAlias(new I18nAliasImpl( "img_framed", true, Arrays.asList("framed", "enframed", "frame"))); c.addI18nAlias(new I18nAliasImpl( "img_frameless", true, Arrays.asList("frameless"))); c.addI18nAlias(new I18nAliasImpl( "img_page", true, Arrays.asList("page=$1", "page $1"))); c.addI18nAlias(new I18nAliasImpl( "img_upright", true, Arrays.asList("upright", "upright=$1", "upright $1"))); c.addI18nAlias(new I18nAliasImpl( "img_border", true, Arrays.asList("border"))); c.addI18nAlias(new I18nAliasImpl( "img_baseline", true, Arrays.asList("baseline"))); c.addI18nAlias(new I18nAliasImpl( "img_sub", true, Arrays.asList("sub"))); c.addI18nAlias(new I18nAliasImpl( "img_super", true, Arrays.asList("super", "sup"))); c.addI18nAlias(new I18nAliasImpl( "img_top", true, Arrays.asList("top"))); c.addI18nAlias(new I18nAliasImpl( "img_text_top", true, Arrays.asList("text-top"))); c.addI18nAlias(new I18nAliasImpl( "img_middle", true, Arrays.asList("middle"))); c.addI18nAlias(new I18nAliasImpl( "img_bottom", true, Arrays.asList("bottom"))); c.addI18nAlias(new I18nAliasImpl( "img_text_bottom", true, Arrays.asList("text-bottom"))); c.addI18nAlias(new I18nAliasImpl( "img_link", true, Arrays.asList("link=$1"))); c.addI18nAlias(new I18nAliasImpl( "img_alt", true, Arrays.asList("alt=$1"))); c.addI18nAlias(new I18nAliasImpl( "int", false, Arrays.asList("INT:"))); */ c.addI18nAlias(new I18nAliasImpl( "sitename", true, Arrays.asList("SITENAME"))); c.addI18nAlias(new I18nAliasImpl( "ns", false, Arrays.asList("NS:"))); /* c.addI18nAlias(new I18nAliasImpl( "nse", false, Arrays.asList("NSE:"))); c.addI18nAlias(new I18nAliasImpl( "localurl", false, Arrays.asList("LOCALURL:"))); c.addI18nAlias(new I18nAliasImpl( "localurle", false, Arrays.asList("LOCALURLE:"))); c.addI18nAlias(new I18nAliasImpl( "articlepath", false, Arrays.asList("ARTICLEPATH"))); c.addI18nAlias(new I18nAliasImpl( "server", false, Arrays.asList("SERVER"))); c.addI18nAlias(new I18nAliasImpl( "servername", false, Arrays.asList("SERVERNAME"))); c.addI18nAlias(new I18nAliasImpl( "scriptpath", false, Arrays.asList("SCRIPTPATH"))); c.addI18nAlias(new I18nAliasImpl( "stylepath", false, Arrays.asList("STYLEPATH"))); c.addI18nAlias(new I18nAliasImpl( "grammar", false, Arrays.asList("GRAMMAR:"))); c.addI18nAlias(new I18nAliasImpl( "gender", false, Arrays.asList("GENDER:"))); c.addI18nAlias(new I18nAliasImpl( "notitleconvert", false, Arrays.asList("__NOTITLECONVERT__", "__NOTC__"))); c.addI18nAlias(new I18nAliasImpl( "nocontentconvert", false, Arrays.asList("__NOCONTENTCONVERT__", "__NOCC__"))); c.addI18nAlias(new I18nAliasImpl( "currentweek", true, Arrays.asList("CURRENTWEEK"))); c.addI18nAlias(new I18nAliasImpl( "currentdow", true, Arrays.asList("CURRENTDOW"))); c.addI18nAlias(new I18nAliasImpl( "localweek", true, Arrays.asList("LOCALWEEK"))); c.addI18nAlias(new I18nAliasImpl( "localdow", true, Arrays.asList("LOCALDOW"))); c.addI18nAlias(new I18nAliasImpl( "revisionid", true, Arrays.asList("REVISIONID"))); c.addI18nAlias(new I18nAliasImpl( "revisionday", true, Arrays.asList("REVISIONDAY"))); c.addI18nAlias(new I18nAliasImpl( "revisionday2", true, Arrays.asList("REVISIONDAY2"))); c.addI18nAlias(new I18nAliasImpl( "revisionmonth", true, Arrays.asList("REVISIONMONTH"))); c.addI18nAlias(new I18nAliasImpl( "revisionmonth1", true, Arrays.asList("REVISIONMONTH1"))); c.addI18nAlias(new I18nAliasImpl( "revisionyear", true, Arrays.asList("REVISIONYEAR"))); c.addI18nAlias(new I18nAliasImpl( "revisiontimestamp", true, Arrays.asList("REVISIONTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "revisionuser", true, Arrays.asList("REVISIONUSER"))); c.addI18nAlias(new I18nAliasImpl( "plural", false, Arrays.asList("PLURAL:"))); */ c.addI18nAlias(new I18nAliasImpl( "fullurl", false, Arrays.asList("FULLURL:"))); /* c.addI18nAlias(new I18nAliasImpl( "fullurle", false, Arrays.asList("FULLURLE:"))); c.addI18nAlias(new I18nAliasImpl( "canonicalurl", false, Arrays.asList("CANONICALURL:"))); c.addI18nAlias(new I18nAliasImpl( "canonicalurle", false, Arrays.asList("CANONICALURLE:"))); */ c.addI18nAlias(new I18nAliasImpl( "lcfirst", false, Arrays.asList("LCFIRST:"))); c.addI18nAlias(new I18nAliasImpl( "ucfirst", false, Arrays.asList("UCFIRST:"))); c.addI18nAlias(new I18nAliasImpl( "lc", false, Arrays.asList("LC:"))); c.addI18nAlias(new I18nAliasImpl( "uc", false, Arrays.asList("UC:"))); /* c.addI18nAlias(new I18nAliasImpl( "raw", false, Arrays.asList("RAW:"))); c.addI18nAlias(new I18nAliasImpl( "displaytitle", true, Arrays.asList("DISPLAYTITLE"))); c.addI18nAlias(new I18nAliasImpl( "rawsuffix", true, Arrays.asList("R"))); c.addI18nAlias(new I18nAliasImpl( "newsectionlink", true, Arrays.asList("__NEWSECTIONLINK__"))); c.addI18nAlias(new I18nAliasImpl( "nonewsectionlink", true, Arrays.asList("__NONEWSECTIONLINK__"))); c.addI18nAlias(new I18nAliasImpl( "currentversion", true, Arrays.asList("CURRENTVERSION"))); */ c.addI18nAlias(new I18nAliasImpl( "urlencode", false, Arrays.asList("URLENCODE:"))); /* c.addI18nAlias(new I18nAliasImpl( "anchorencode", false, Arrays.asList("ANCHORENCODE"))); c.addI18nAlias(new I18nAliasImpl( "currenttimestamp", true, Arrays.asList("CURRENTTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "localtimestamp", true, Arrays.asList("LOCALTIMESTAMP"))); c.addI18nAlias(new I18nAliasImpl( "directionmark", true, Arrays.asList("DIRECTIONMARK", "DIRMARK"))); */ c.addI18nAlias(new I18nAliasImpl( "contentlanguage", true, Arrays.asList("CONTENTLANGUAGE", "CONTENTLANG"))); /* c.addI18nAlias(new I18nAliasImpl( "pagesinnamespace", true, Arrays.asList("PAGESINNAMESPACE:", "PAGESINNS:"))); c.addI18nAlias(new I18nAliasImpl( "numberofadmins", true, Arrays.asList("NUMBEROFADMINS"))); c.addI18nAlias(new I18nAliasImpl( "formatnum", false, Arrays.asList("FORMATNUM"))); */ c.addI18nAlias(new I18nAliasImpl( "padleft", false, Arrays.asList("PADLEFT:"))); /* c.addI18nAlias(new I18nAliasImpl( "padright", false, Arrays.asList("PADRIGHT"))); c.addI18nAlias(new I18nAliasImpl( "special", false, Arrays.asList("special"))); c.addI18nAlias(new I18nAliasImpl( "speciale", false, Arrays.asList("speciale"))); */ c.addI18nAlias(new I18nAliasImpl( "defaultsort", true, Arrays.asList("DEFAULTSORT:", "DEFAULTSORTKEY:", "DEFAULTCATEGORYSORT:"))); c.addI18nAlias(new I18nAliasImpl( "filepath", false, Arrays.asList("FILEPATH:"))); c.addI18nAlias(new I18nAliasImpl( "tag", false, Arrays.asList("#tag:"))); /* c.addI18nAlias(new I18nAliasImpl( "hiddencat", true, Arrays.asList("__HIDDENCAT__"))); c.addI18nAlias(new I18nAliasImpl( "pagesincategory", true, Arrays.asList("PAGESINCATEGORY", "PAGESINCAT"))); c.addI18nAlias(new I18nAliasImpl( "pagesize", true, Arrays.asList("PAGESIZE"))); c.addI18nAlias(new I18nAliasImpl( "index", true, Arrays.asList("__INDEX__"))); c.addI18nAlias(new I18nAliasImpl( "noindex", true, Arrays.asList("__NOINDEX__"))); c.addI18nAlias(new I18nAliasImpl( "numberingroup", true, Arrays.asList("NUMBERINGROUP", "NUMINGROUP"))); c.addI18nAlias(new I18nAliasImpl( "staticredirect", true, Arrays.asList("__STATICREDIRECT__"))); */ c.addI18nAlias(new I18nAliasImpl( "protectionlevel", true, Arrays.asList("PROTECTIONLEVEL:"))); /* c.addI18nAlias(new I18nAliasImpl( "formatdate", false, Arrays.asList("formatdate", "dateformat"))); c.addI18nAlias(new I18nAliasImpl( "url_path", false, Arrays.asList("PATH"))); c.addI18nAlias(new I18nAliasImpl( "url_wiki", false, Arrays.asList("WIKI"))); c.addI18nAlias(new I18nAliasImpl( "url_query", false, Arrays.asList("QUERY"))); c.addI18nAlias(new I18nAliasImpl( "defaultsort_noerror", false, Arrays.asList("noerror"))); c.addI18nAlias(new I18nAliasImpl( "defaultsort_noreplace", false, Arrays.asList("noreplace"))); */ c.addI18nAlias(new I18nAliasImpl( "convert", false, Arrays.asList("convert"))); } protected void addLctMappings(ParserConfigImpl pc) { // TOOD: This does not really make sense! It's for a Chinese wiki! pc.addLctFlagMapping("A", "A"); pc.addLctFlagMapping("T", "T"); pc.addLctFlagMapping("R", "R"); pc.addLctFlagMapping("D", "D"); pc.addLctFlagMapping("-", "-"); pc.addLctFlagMapping("H", "H"); pc.addLctFlagMapping("N", "N"); pc.addLctVariantMapping("zh", "zh"); pc.addLctVariantMapping("zh-hans", "zh-hans"); pc.addLctVariantMapping("zh-hant", "zh-hant"); pc.addLctVariantMapping("zh-cn", "zh-cn"); pc.addLctVariantMapping("zh-tw", "zh-tw"); pc.addLctVariantMapping("zh-hk", "zh-hk"); pc.addLctVariantMapping("zh-sg", "zh-sg"); } } EngineIntegrationTestBase.java000066400000000000000000000177241335270560400475240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.StringWriter; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.ExpansionCallback; import org.sweble.wikitext.engine.ExpansionFrame; import org.sweble.wikitext.engine.FullPage; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.parser.parser.LinkTargetException; import de.fau.cs.osr.ptk.common.PrinterInterface; import de.fau.cs.osr.utils.FileCompare; import de.fau.cs.osr.utils.FileContent; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.TestResourcesFixture; import de.fau.cs.osr.utils.WrappedException; public class EngineIntegrationTestBase { private static final Logger logger = LoggerFactory.getLogger(EngineIntegrationTestBase.class); private final TestResourcesFixture resources; private final WikiConfigImpl config; private final WtEngineImpl engine; // ========================================================================= public static TestResourcesFixture getTestResourcesFixture() { try { File path = TestResourcesFixture.resourceNameToFile( EngineIntegrationTestBase.class, "/"); return new TestResourcesFixture(path); } catch (FileNotFoundException e) { throw new WrappedException(e); } } // ========================================================================= public EngineIntegrationTestBase(TestResourcesFixture resources) { this.resources = resources; this.config = DefaultConfigEnWp.generate(); this.engine = new WtEngineImpl(config); } // ========================================================================= public TestResourcesFixture getResources() { return resources; } public WikiConfigImpl getConfig() { return config; } public WtEngineImpl getEngine() { return engine; } // ========================================================================= public void expandPrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, ExpansionCallback callback, boolean forInclusion, PrinterInterface printer) throws IOException, LinkTargetException, EngineException { EngProcessedPage ast = expand(inputFile, callback, forInclusion); printAndCompare(inputFile, inputSubDir, expectedSubDir, printer, ast); } public void expandPostprocessPrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, ExpansionCallback callback, boolean forInclusion, PrinterInterface printer) throws IOException, LinkTargetException, EngineException { FileContent inputFileContent = new FileContent(inputFile); String fileTitle = inputFile.getName(); int i = fileTitle.lastIndexOf('.'); if (i != -1) fileTitle = fileTitle.substring(0, i); PageTitle title = PageTitle.make(config, fileTitle); PageId pageId = new PageId(title, -1); EngProcessedPage ast = engine.postprocess( pageId, inputFileContent.getContent(), callback); printAndCompare(inputFile, inputSubDir, expectedSubDir, printer, ast); } private void printAndCompare(File inputFile, String inputSubDir, String expectedSubDir, PrinterInterface printer, EngProcessedPage ast) throws IOException { String actual1 = printToString(ast.getPage(), printer); String actual = actual1; File expectedFile = TestResourcesFixture.rebase( inputFile, inputSubDir, expectedSubDir, printer.getPrintoutType(), true /* don't throw if file doesn't exist */); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } private EngProcessedPage expand(File inputFile, ExpansionCallback callback, boolean forInclusion) throws IOException, LinkTargetException, EngineException { FileContent inputFileContent = new FileContent(inputFile); String fileTitle = inputFile.getName(); int i = fileTitle.lastIndexOf('.'); if (i != -1) fileTitle = fileTitle.substring(0, i); PageTitle title = PageTitle.make(config, fileTitle); PageId pageId = new PageId(title, -1); EngProcessedPage ast = engine.expand( pageId, inputFileContent.getContent(), forInclusion, callback); return ast; } public void expandPrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir) throws IOException, LinkTargetException, EngineException { TypedEnginePrettyPrinter printer = new TypedEnginePrettyPrinter(); expandPrintAndCompare( inputFile, inputSubDir, expectedSubDir, printer); } public void expandPrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, PrinterInterface printer) throws IOException, LinkTargetException, EngineException { ExpansionCallback callback = new TestExpansionCallback(inputSubDir); boolean forInclusion = false; expandPrintAndCompare( inputFile, inputSubDir, expectedSubDir, callback, forInclusion, printer); } public void expandPostprocessPrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, PrinterInterface printer) throws IOException, LinkTargetException, EngineException { ExpansionCallback callback = new TestExpansionCallback(inputSubDir); boolean forInclusion = false; expandPostprocessPrintAndCompare( inputFile, inputSubDir, expectedSubDir, callback, forInclusion, printer); } // ========================================================================= public String printToString(Object ast, PrinterInterface printer) throws IOException { StringWriter writer = new StringWriter(); printer.print(ast, writer); String result = writer.toString(); // We always operate with UNIX line end '\n': result = FileTools.lineEndToUnix(result); return resources.stripBaseDirectoryAndFixPath(result); } // ========================================================================= private final class TestExpansionCallback implements ExpansionCallback { private final String searchDir; public TestExpansionCallback(String searchDir) { this.searchDir = searchDir; } @Override public FullPage retrieveWikitext( ExpansionFrame expansionFrame, PageTitle pageTitle) { String fileTitle = pageTitle.getNormalizedFullTitle(); File base = new File(getResources().getBaseDirectory(), searchDir); File file = new File(base, StringTools.safeFilename(fileTitle)); if (!file.exists()) { logger.warn("Could not find page " + pageTitle + " at " + file); return null; } else { logger.trace("Retrieving wikitext: " + file); PageId pageId = new PageId(pageTitle, -1); try { String text = FileUtils.readFileToString(file, "UTF8"); return new FullPage(pageId, text); } catch (IOException e) { logger.warn("Failed to retrieve wikitext for page " + pageTitle + " at " + file, e); return null; } } } @Override public String fileUrl(PageTitle pageTitle, int width, int height) { return null; } } } EngineTextUtilsTest.java000066400000000000000000000053231335270560400464030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; public class EngineTextUtilsTest { WikiConfig config = DefaultConfigEnWp.generate(); EngineNodeFactory nf = config.getNodeFactory(); EngineAstTextUtils tu = config.getAstTextUtils(); @Test public void testTrimLeftLeavesUntrimmableTextUnaltered() throws Exception { assertEquals( nf.text("Hello World"), tu.trimLeft(nf.text("Hello World"))); } @Test public void testTrimLeftTrimsLeftWhitespace() throws Exception { assertEquals( nf.text("Hello World"), tu.trimLeft(nf.text(" Hello World"))); } @Test public void testTrimLeftCullsWhitespaceOnlyNodes() throws Exception { assertEquals( nf.list(nf.text("Hello World")), tu.trimLeft(nf.list(nf.text(" "), nf.text(" Hello World")))); } @Test public void testTrimLeftIgnoresCommentsAndIgnoredItems() throws Exception { assertEquals( nf.list(nf.comment("Comment"), nf.ignored(""), nf.text("Hello World")), tu.trimLeft(nf.list(nf.text(" "), nf.comment("Comment"), nf.ignored(""), nf.text(" Hello World")))); } // ------- @Test public void testTrimRightLeavesUntrimmableTextUnaltered() throws Exception { assertEquals( nf.text("Hello World"), tu.trimRight(nf.text("Hello World"))); } @Test public void testTrimRightTrimsRightWhitespace() throws Exception { assertEquals( nf.text("Hello World"), tu.trimRight(nf.text("Hello World "))); } @Test public void testTrimRightCullsWhitespaceOnlyNodes() throws Exception { assertEquals( nf.list(nf.text("Hello World")), tu.trimRight(nf.list(nf.text("Hello World "), nf.text(" ")))); } @Test public void testTrimRightIgnoresCommentsAndIgnoredItems() throws Exception { assertEquals( nf.list(nf.text("Hello World"), nf.comment("Comment"), nf.ignored("")), tu.trimRight(nf.list(nf.text("Hello World "), nf.comment("Comment"), nf.ignored(""), nf.text(" ")))); } } MediaWikiTestGenerator.java000066400000000000000000000137361335270560400470310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.io.FileUtils; import de.fau.cs.osr.utils.TestResourcesFixture; public class MediaWikiTestGenerator { /** * Generates a list of tuples (String testName, * TestDesc test, Map<String, * String> articles). */ public static List enumerateInputs( TestResourcesFixture resources, List testCollectionFiles) throws Exception { List tests = new ArrayList(); Map articles = new HashMap(); for (File inputFile : testCollectionFiles) readTestcases(inputFile, tests, articles); assertFalse(tests.isEmpty()); List inputs = new ArrayList(tests.size()); for (TestDesc test : tests) { String name = String.format( "%s - %s", test.getInputFile().getName(), test.getName()); int eol1 = name.indexOf('\n'); int eol2 = name.indexOf('\r'); int par = name.indexOf('('); int i = name.length(); if (par != -1 && par < i) i = par; if (eol1 != -1 && eol1 < i) i = eol1; if (eol2 != -1 && eol2 < i) i = eol2; if (i != -1) name = name.substring(0, i); inputs.add(new Object[] { name, resources, test, articles }); } return inputs; } // ========================================================================= private static void readTestcases( File inputFile, List tests, Map articles) throws IOException { String src = FileUtils.readFileToString(inputFile, "UTF-8"); Pattern p = Pattern.compile( "(?m)^[ \t]*!![ \t]*(\\w+):?[ \t]*(?:\r\n?|\n)"); Matcher m = p.matcher(src); int i = 0; while (m.find(i)) { String kw = m.group(1); if (kw.equals("article")) { int aStart = m.end(); if (m.find(aStart)) { kw = m.group(1); if (kw.equals("text")) { int aEnd = m.start(); int tStart = m.end(); String article = src.substring(aStart, aEnd).trim(); if (m.find(tStart)) { kw = m.group(1); if (kw.equals("endarticle")) { int tEnd = m.start(); String text = src.substring(tStart, tEnd); articles.put(article, text); i = m.end(); continue; } } } } } else if (kw.equals("test")) { String last = "test"; int start = m.end(); String test = null; String options = null; String config = null; String input = null; String result = null; boolean ok = false; while (m.find(start)) { String str = src.substring(start, m.start()); if ("test".equals(last)) { if (test != null) break; test = str.trim(); } else if ("options".equals(last)) { if (options != null) break; options = str.trim(); } else if ("config".equals(last)) { if (config != null) break; config = str.trim(); } else if ("input".equals(last)) { if (input != null) break; input = str; } else if ("result".equals(last)) { if (result != null) break; result = str; } last = m.group(1); if ("end".equals(last)) { if (input != null && result != null) { ok = true; break; } else break; } else if (!"options,config,input,result".contains(last)) { break; } start = m.end(); } if (ok) { tests.add(new TestDesc(inputFile, test, options, input, config, result)); i = m.end(); continue; } } StringWriter sw = new StringWriter(); PrintWriter w = new PrintWriter(sw); w.println("Syntax error @ " + m.start()); w.println("Extract:"); int end = m.end() + 128; if (end > src.length()) end = src.length(); w.println(src.substring(m.start(), end)); w.println(); fail(sw.toString()); i = m.end(); } } // ========================================================================= public static final class TestDesc { private final File inputFile; private final String name; private final String options; private final String input; private final String config; private final String result; // ===================================================================== public TestDesc( File inputFile, String name, String options, String input, String config, String result) { this.inputFile = inputFile; this.name = name; this.options = options; this.input = input; this.config = config; this.result = result; } // ===================================================================== public File getInputFile() { return inputFile; } public String getName() { return name; } public String getOptions() { return options; } public String getInput() { return input; } public String getConfig() { return config; } public String getResult() { return result; } } } TypedEnginePrettyPrinter.java000066400000000000000000000022631335270560400474370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.IOException; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.PrinterInterface; public final class TypedEnginePrettyPrinter implements PrinterInterface { @Override public String getPrintoutType() { return "wikitext"; } @Override public void print(Object ast, Writer out) throws IOException { EnginePrettyPrinter pp = new EnginePrettyPrinter(out); pp.setNewlineAtEof(true); pp.go((WtNode) ast); } } TypedWtAstPrinter.java000066400000000000000000000022331335270560400460610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import java.io.IOException; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.WtAstPrinter; import de.fau.cs.osr.ptk.common.PrinterInterface; public final class TypedWtAstPrinter implements PrinterInterface { @Override public String getPrintoutType() { return "ast"; } @Override public void print(Object ast, Writer out) throws IOException { new WtAstPrinter(out).go((WtNode) ast); } } UnicodeBehavior.java000066400000000000000000000024351335270560400455170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/java/org/sweble/wikitext/engine/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.engine.utils; import org.junit.Assert; import org.junit.Test; public class UnicodeBehavior { @Test public void testNonBmpSplit() { // non BMP Unicode Character U+20000 = U+D840 U+DC00 in UTF-16 String x = "\uD840\uDC00..."; Assert.assertEquals(5, x.length()); Assert.assertEquals("\uD840", x.substring(0, 1)); Assert.assertEquals("\uDC00", x.substring(1, 2)); Assert.assertEquals(2, x.indexOf('.')); Assert.assertEquals(0, x.indexOf(0x20000)); Assert.assertEquals(0x20000, x.codePointAt(0)); Assert.assertEquals(0xDC00, x.codePointAt(1)); Assert.assertEquals('.', x.codePointAt(2)); } } resources/000077500000000000000000000000001335270560400343465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/testengine/000077500000000000000000000000001335270560400356135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesexp/000077500000000000000000000000001335270560400364075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engineexpanded/000077500000000000000000000000001335270560400401775ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/expboston_red_sox.wikitext000066400000000000000000000000541335270560400450170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expandedFounded in [[1901 in baseball|1901]] as one regression-1.wikitext000066400000000000000000000002221335270560400443030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expandedAugust {{Documentation}} regression-2.wikitext000066400000000000000000000000231335270560400443030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expanded: regression-3.wikitext000066400000000000000000000002261335270560400443110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expanded|- ! colspan="3" style="border-top: 5px solid #FFF179;" |Awards and achievements {{documentation}} simple_transclusion-1.wikitext000066400000000000000000000000151335270560400462200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expandedHello World! simple_transclusion-2.wikitext000066400000000000000000000001301335270560400462170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/expanded''' some bold text ''' ''italic default value'' {{some template|{{{2|[[some link]]}}}}} wikitext/000077500000000000000000000000001335270560400402575ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/expTemplate%3ABaseball_year000066400000000000000000000000371335270560400446540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext[[{{{1}}} in baseball|{{{1}}}]]Template%3ABy000066400000000000000000000000441335270560400424770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext#REDIRECT [[Template:Baseball year]]Template%3AMONTHNAME000066400000000000000000000006031335270560400434540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext{{#if:{{{1|}}}|{{#switch:{{MONTHNUMBER|{{{1}}}}}|1=January|2=February|3=March|4=April|5=May|6=June|7=July|8=August|9=September|10=October|11=November|12=December|Incorrect required parameter 1=''month''!}}|Missing required parameter 1=''month''!}} {{Documentation}} Template%3AMONTHNUMBER000066400000000000000000000012171335270560400437260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext{{#if:{{{1|}}} |{{#switch:{{lc:{{{1}}}}} |january|jan=1 |february|feb=2 |march|mar=3 |apr|april=4 |may=5 |june|jun=6 |july|jul=7 |august|aug=8 |september|sep|sept=9 |october|oct=10 |november|nov=11 |december|dec=12 |{{#ifexpr:{{{1}}}<0 |{{#ifexpr:(({{{1}}})round 0)!=({{{1}}}) |{{#expr:12-(((0.5-({{{1}}}))round 0)mod 12)}} |{{#expr:12-(((11.5-({{{1}}}))round 0)mod 12)}} }} |{{#expr:(((10.5+{{{1}}})round 0)mod 12)+1}} }} }} |Missing required parameter 1=''month''! }} {{Documentation}} Template%3AS%2Dach000066400000000000000000000005371335270560400432450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext|- ! colspan="3" style="border-top: 5px solid #FFF179;" |{{#if:{{{1}}}||Awards and achievements titles}}{{#switch:{{{1}}} |#default={{#if:{{{1}}}|Awards and achievements}} |rec=Records |aw=Awards |ach=Achievements |awards=Awards |records=Records |achievements=Achievements }} {{documentation}} Template%3AWorld000066400000000000000000000000051335270560400432110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitextWorldboston_red_sox.wikitext000066400000000000000000000000351335270560400450760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitextFounded in {{by|1901}} as oneregression-1.wikitext000066400000000000000000000000211335270560400443600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext{{MONTHNAME|aug}}regression-2.wikitext000066400000000000000000000001141335270560400443640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext{{ #if: New York |: |. }}regression-3.wikitext000066400000000000000000000000121335270560400443620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext {{s-ach}}simple_transclusion-1.wikitext000066400000000000000000000000201335270560400462740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitextHello {{World}}!simple_transclusion-2.wikitext000066400000000000000000000001371335270560400463060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/exp/wikitext''' some bold text ''' {{{1|''italic default value''}}} {{some template|{{{2|[[some link]]}}}}}mass-expansion/000077500000000000000000000000001335270560400405605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engineBarack Obama.zip000066400000000000000000025051121335270560400434750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/mass-expansionPK TSA Barack Obama/UT PPux dPK k}RABarack Obama/tests/UT zPPux dPK!|RAdzBarack Obama/tests/if-0038.txtUT  PPux dV qUrJ,JLVOJMB3Ӭ33 RS2RKJRSJ2sRkr2m(5"9p #y\B0PK%|RAƦ%eBarack Obama/tests/if-1411.txtUT PPux dˎ0}nt 8a( "d¢`qA08cwrT.#Y;$=$W̰0VjZV'D@( ԞET7EglB A#9N)*;& ֫Lծy^į9G<3,Zӂ%}`|CU~F|+Ef#ɲ̏\)B)0c7Ge@2YNӾl{! |$%BEq” C^L,UIauL4T}&JZMhC)saƸp/ R#v ~&C!W6YМmJZW3UKT]i33K4o~1 FQ_[F:wrIB>HH*&IQM(sYVF>Hh-iwMi &hL ovx1v4BT(Tn/4_ڌ)MVWI͎V+fc:YMmsA?ܺi׺:ʲLD7$!C2)znkk\2PK!|RA^X{Barack Obama/tests/if-0034.txtUT  PPux dV qUrJ,JLVOJMB3ӬFAMLI/.HLNq]Id@|(C"ZhU]jP[[S] ($d#qC\Cjaj:@!Tb8{\\N&PK&|RA60mBarack Obama/tests/if-1488.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IbL)!. _nₘBPK!|RAv#Barack Obama/tests/padleft-0002.txtUT  PPux dV qUrJ,JLVOJMB SrRJjjK2KrR Jm15U5"9p #1PBsRPK0|RAV|(Barack Obama/tests/talkpagename-0003.txtUT ,PPux dV qUrJ,JLVOJMBC}]}]BRs rKRBR3SRJkkF:~~什 fBIbN6u\@PK-|RAGjiJ Barack Obama/tests/ifeq-0148.txtUT %PPux dMK0# օT+6‚vJ5iU+I8/a3;a۱ Y8G[4W?`$ 2Hc6!.D]3!MZԥ^ru|n֛cPmxCƒ~%G Ao+w(iMS2էN?.Pb 4Z8zJat}"q}0~<;FnPB&dPK%|RARe<=#Barack Obama/tests/H%3AIPA-0004.txtUT PPux dQ 0SDARР@$[54mߛ/=\8p1NFtK c`%svgR#1ڋ^O89%dIja|-Y (K .ـ=_u&6وui*Y h Q\iܽyn(PlYJj_JoPK%|RA\kmBarack Obama/tests/if-1470.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I##bL)!. _nₘBPK(|RA}gBarack Obama/tests/if-1965.txtUT PPux dV qUrJ,JLVOJMB3ӬJRLt ,kP8 `[]#\C\]@ G`O?Bb h:PK!|RA',Barack Obama/tests/namespace detect-0001.txtUT  PPux d 0 }Hn l:XCL֖1ktO0/q*S'b`Pu(~Ug6iB^c*03w=[waP:CX-yc>Bɕ֮l c˲*oyT2%׬?m<3PK)|RANBarack Obama/tests/if-1994.txtUT PPux dV qUrJ,JLVOJMB@93J_" SRZ\[Z[qB@iqFjofJjbqB@jbr*5jFbjʖ@!^[ kDs G &P)^&PK(|RA <LBarack Obama/tests/if-1921.txtUT PPux dMO@ MRLa?'cE;@pm4@EbLwEM⤪QF-h_毡,-%It:.-MqH1F:͉ϓԺ8O8M|@8eA2NH>m{h+X'U%1+ZXmtX

    t4BXpb,Oڄ1/g,Z*n)W{qiR:qe)  mB:s gv)mFԪH'\Srh o͕04m|G7WTP.>JJxɎ RI?Zxi17;c2:mB oNnV oxSr6rzPK%|RAK!0Barack Obama/tests/Infobox officeholder-0001.txtUT PPux dYn6\MNtMʀK6 t%W4Hʎ[; $;,Idn5P~w<^=]^:Fo!885/ǯ.֠V/i@bB"k AǫZGEaZbA24EfUvg*K, )CఁN2LR#S0UhB4|X~DhBu }#H4%Ha#f@0%,J@ ER V4d8R`ҡ Rd;Į#jrw"i}5͓پ}|ET1A֩x.!ẑ0~|Eu_I wjC_1*݅ݗD J"Rth`Q|PKJ%)Sބ:}92(%W"$@}** ul**w7g3eZ2FjV¶5Ii U-nYx ?EDb (qZQ+`&ԇD6Q\Xr:%/Qhd!=j@芓U'mgϞNj/8ihꣶ@DcOuv&̼"eCSԜT)B 4' MJF)djڽzHՈ>;hQ +S!;{k{ok{yӐtA腐FBc11¡0><)%")SI೿;3yV Q,N;؜\1n`S97A`a-$}N%HacZQ=s6 `92DXV-:z"Bf/`0m$ hm;IN.'Hl饩nN=(9+Ԥ 9U7ˀPDAKknE#$=*j(?6l£&%+[:̍@$Mb \2b[?Ώ.{G*+^802'4>jHRd7SxVKJMPQ# ,1܇zV^}띪^˶jYEӍ(TRFOJ4t?{ɃPi9R3`M}H14=7Eqvվ6 8z=z} V`/ t(*&`kXEڭWoM9/edCm ߕن."j ɆȟV,Q>&(]{(3ջΜ 'ƢbBu]MzQ3]y`Ѿp+&|[#+ހjfr?RΡثLH4LoA!4kGs)[\]q601dfMf7 3xKx,̻T& dY̗/nSޥ7w ܕRs!2[4~Y lV=-*]F7+OhV^ s7G; 2DIjl"k婵"nT3p\9G*OS!ݾ0[N;ѕb̍Ԍ+nRe ː2'Ug5GPK,|RA2ʁ%Barack Obama/tests/urlencode-0055.txtUT #PPux dV qUrJ,JLVOJMBKrRSRC2RS2RRcckkF:~~[ϥjD`۴!imS5u"}~.T A}PK!|RǍ Barack Obama/tests/ifeq-0026.txtUT  PPux dV qUrJ,JLVOJMB3R j*S8ɉ%E y)9EI9@gd($*"멭;5"9p #\\@PK&|RA}c"Barack Obama/tests/nowrap-0010.txtUT PPux dn0V'(\fJJQ1U&+j= .ydp0@ gMְN7|9'>bY#4wmthW{hY~k+C|4G#ALp@DHYВ'|s3>'G7Nt|b0&qȱۚҀFĥŅg$Gqrdyq&-caD6hHI(k.=oK"p[N1CRBޯ>!&hIsLE[GHb&zA1v]<QkD:X*^;hHf1\1)ޑXIŠr'lq h(:F0Cz!b8S)ͼJnbYP4H>o!uxp rÙG.\"WG~u@!gjp|H7ogKʡ:`Y`B#* KX@\Y[ Yk֧"TQ Ek8?_a~9w࠿7(oBnSMpnPu[Ve ntqP%X3Ur*U!d)pyP\Vr"|@&^;ai!a)r/ŕXA"L%tA"-yaV.y1@ j>a*v uY!;ZowET;+PK!|RAW?xBarack Obama/tests/if-0270.txtUT PPux dSN0+Tj/G+jH@s( !U=8麲ݗjKȗ&@Bimggg֞70+I 132 0CZjǔ!4ON.,enNX!&&,hhu];f<܉lFI!Ea;()K ٜj4=6 5֝ñCpJZeݳvGH0 Bxvyhb©9C9MX) 3_*Ps\oZ*hu%m6}g9f9% .1|.MfU9 ~oG*bqSǼYUKF0 =L07,Su=Cpup{IJu՗ie$?Nw~L6釙n?PK |RAT"Barack Obama/tests/switch-0001.txtUT  PPux dQA 0C{(Զ xM&4E$*^{XvYdV'*)޽"1 d ȹ [^1 >յV03f"&5j3M߶3{'{;Wn ky;"΄Iz)[=9F!8٠c,@PK'|RA͒Barack Obama/tests/if-1765.txtUT PPux dV qUrJ,JLVOJMBrfP ԋSKRKRRRs0tը)Y ֪)[Z cZo]#\C\]@ G`O?1υJq4PK(|RAu$2m~Barack Obama/tests/if-1837.txtUT PPux dV qUrJ,JLVOJMB@93J7YF(D4ɶ('5/9?% ,W[ V@.qpuqu1=wRE\@PK,|RA +Barack Obama/tests/Citation%2Fcore-0006.txtUT #PPux dVmo8ίX)[ JJ)"ݪLbZfh6YHO"<3g<36`|/ڈHn|ERð t2 COe$cB!i %GaL<{rJ …KNz`xq% $PԝtJ-E z%@-k390œ TX.*Wa S]A4ODGdg"`8,)KJHtnILe:@CgBX% )"&1wbŸrb_  73Yp7*9`l$ņrȻ?N>۽ޙ};K\ܹ.(S@s΅cb[_G0Ai0lPsi-7]' ^5D2"S%]",ɇvc_3(?Ȝ 뗾C'7|o>i:ݒ򺬇.zFߑ&sih5ن{ʧ[yHuk_~LZ0Ab43_HN2Z4X}  }1~7(+|;ɻnMw{羭;CkhXbmX!"ac% k&A7a a;pFG?0*3ܪP]~K{KWz!,Y9HYԢeK#FB> L8:к)J*QRe7@_oL[%6s*gw?PK |RA^lBarack Obama/tests/ns-0015.txtUT  PPux dV qUrJ,JLVOJMB#{qdG?3ptve&^Hy&4-iL'g.r3pvyAjfAjvA-HڻS#Kv: :%z@w]S!ؽ  %+2Id"yu'r LXT*2C edbl^YnbȚGf;Vm0X !𲯭U@8`> LaGbC>⎦=;l0FHb8H&H\oӱ 2Anc><8Y]·>nXp:B=iu1LHc:}$6ܵkhX:d bQ m*UmCR$(4hy>t@3;MX*-Nǐ@m6kNO>4z|/MLa~{}~/愔+~x0buu qp_b7~[!` gԴn^g~=X_Շe[62쫗g6jj:KLelƗqًҸC <# ~!  B՛X=p<լoVפ,p#X(cXBtd!cN W[|GKU$^Ei5RnA{cڿ Y#a9)Z(g,XM΍U) ]'8[OqpW3}X PK)|RAtA%Barack Obama/tests/urlencode-0017.txtUT PPux dV qUrJ,JLVOJMBKrRSRSRR3|Ks2su *g+f&(&&ւ]b8{,. .P5rAmnυJa tPK%|RA9%Barack Obama/tests/H%3Atitle-0013.txtUT PPux dV qUrJ,JLVOJMB=J2KrRk2TfzBM^m-:׈WW/ߏ|{l *٨P\R O/JI-M/)ϵ2,PH2SSlAAB0: PK!|RA91OBarack Obama/tests/if-0307.txtUT PPux dM@ +bu?f[ A(=6agkߖ^ă4H% - C[C[\J#B9z8Ȓ/eo9|'JMp#U,]ZL~zPףisq:,]d(28\/~й XKe v0*TcUqGwLi7`(8fiqPK)|RAV)z~Barack Obama/tests/if-1977.txtUT PPux dV qUrJ,JLVOJMBrfH5Du5Hu XF-1Y}m- z׈WW/ߏ|op! l h8PK |RA0WvT%Barack Obama/tests/pp%2Dmeta-0001.txtUT  PPux dMk1+{ޔ؃ЮZX:̈́$.芴z(6Ǽ˄)e%J ahD£"s7" 54*tB))؂udB 9#$S] V àmy i޻{|zbRC(Zۡ_x P Hf-Qȅ˻{Kgʖ~ ]&ӝuZ< ,J3(.ȣfCM6tvp!gTˎ^cQCu]p%l}$y#Ԓ쌌 Ѫ?ͦ7SOPK%|RAqV Barack Obama/tests/ifeq-0053.txtUT PPux dA @+:ED@rBYK{0Z{kQx*0`>wЂpM. a6%kG~5j5QծKc5+s27q,D?qʀRi*-"0̤.8 ҒGdzQc>DRߒ%%N#lonw<;`PK&|RA*}mBarack Obama/tests/if-1487.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IcKbL)!. _nₘBPK/|RAgJ!Barack Obama/tests/small-0016.txtUT *PPux dV qUrJ,JLVOJMBssrj4ҋRrK2R4kk6F:~~[eS\P\RjW[Yjeajdj>H ~.T IPK4|RALa6Barack Obama/tests/Dated maintenance category-0001.txtUT 3PPux d @> ZƘC;6;0![H\7M}Q;MVs==/;7eIIWx"91<F(#D0[^OZA;/j[tt'ݱM1VԀ8﫹+hm^uV.[:@Y$O!q:+--$i95m}[߉,r9vBvh=cY#gL@t4(s7DNqheû0t~?Is$]7I8㍣HJ4b`, }}N@!œuO7@Am͐}לZrg txtE#(X?f1G?PK&|RA|mBarack Obama/tests/if-1493.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝ISbL)!. _nₘBPK!|RA[Barack Obama/tests/if-0375.txtUT PPux dœQK0)n+6D|:+5Hu1(}u aN~w7$w%R`{C,_a''llBD[2F5bW%z:cFmZ~(f4RR4`5z =Yj P:1nnBh%r ohˊ0ڵ:6MwOOO򀪖*ؙ<ۖO`͊ ,Ne #G@!PK'|RA$Barack Obama/tests/if-1682.txtUT PPux dV qUrJ,JLVOJMB3ӬjlJlJRs l!55F 9j.JI%%J %9Pa%;; QdU[ vkDs G FP)lFPK&|RAmBarack Obama/tests/if-1486.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝Ic bL)!. _nₘBPK2|RA 㶬"Barack Obama/tests/navbox-0004.txtUT 0PPux dTj0}W\ #mXǰ2$$=\K"%#9iB8]=mXHsϽR!fS 9Fp9$}fC:(\zl'Dk/w.@nZCEWeUs?*#.NO2 JXV(3Q7\Bp p9 z+bamv_\-4Oh WƩ T m/D0>.Kpg@M)VNWɛét@ƍfcg/nGxe n:L75R P$B85T`%ZZ8Tʮѫ*[o%O\Uߋq=Jc`uFѧ ۧTN{ ub/W^_kf~ڂEQjaAg4][-ξh48S.PK%|RA3+lBarack Obama/tests/if-1457.txtUT PPux d0}!zZزk ("I`&J;^9}03c C7`K_9KmGNk׶A:7,gd/Ԣ])ęHk}еZm͖URя:w m(=> Q@sͱZ<C%IL>0^zvPK+|RA3%Barack Obama/tests/urlencode-0038.txtUT !PPux dV qUrJ,JLVOJMBKrRSRX)*T|ԢZ!. _R5u"Ǝ 6kkmV5u"~.T WPK%|RAt9F1"Barack Obama/tests/switch-0053.txtUT PPux d 0E~, ڊf!R5imSBj jpυJC_2Cfh0=B`[>l|>@G\O)UZgP9>LJ:# L\YP%fJ,؞{a ~&1 9:isxԉB-2h.t("MދlLtF1w_'PK |RAF2bk+Barack Obama/tests/protectionlevel-0002.txtUT  PPux dV qUrJ,JLVOJMBC\C<|\\}rRkk6Fe\]@ G`䂘BpPK-|RA?_ Barack Obama/tests/ifeq-0141.txtUT %PPux dV qUrJ,JLVOJMB3R $fMtsbIjz~QU@~QIbBR~BIjnAPX83/]!?8?'$U\ Xư:׵66x׈WW/ߏ|_pALsRPMPK)|RAGn{Barack Obama/tests/if-1984.txtUT PPux dV qUrJ,JLVOJMB@@93J4/UDG"\lld, ф.ZMLM,/I\XZ. kDs G8b h PK!|RAy\"Barack Obama/tests/switch-0029.txtUT  PPux dV qUrJ,JLVOJMB3K3RPQL-Ӈ(((1XSI+IN,ւb8{8.~.T APK-|RAUubw#Barack Obama/tests/ucfirst-0003.txtUT %PPux dV qUrJ,JLVOJMBK2K 쩭b8{o%pP)PK4|RAKֵ|#Barack Obama/tests/Link FA-0006.txtUT 3PPux dV qUrJ,JLVOJMB}2k2jkF:~~eS\bWZT[dgXBZ PK%|RAʁBarack Obama/tests/if-1460.txtUT PPux dA 0E=]-P5`Q`@ڨڔ& B['0Jc!_0Hh㌱V)^ѡ6}Ζ,ɣ'^Ϧg^;ۭلi A WNgK,֔Xx+/V?jϊS.7{a%. pSeLTTްAfQdķuF6O|Eӎ>dPK'|RA7F Barack Obama/tests/ifeq-0098.txtUT PPux dV qUrJ,JLVOJMB3R j*SkRRRX%$X+'@ւb8{2.~.T >PK4|RArz#Barack Obama/tests/Link FA-0001.txtUT 3PPux dV qUrJ,JLVOJMB}2k2kkF:~~eS\bWZTDJv6 9;~.T 1PK'|RAK:\#Barack Obama/tests/Rellink-0012.txtUT PPux d 0w D5P q6-P߽:t(Jnq,d9QΎk^V6S3,$8pJɦų7Aw^J@eB%Bdͯ |:42䔐=#|1AgyYo!+rW,!-~4PK)|RA KBarack Obama/tests/if-2043.txtUT PPux dV qUrJ,JLVOJMB @93J+5-M('5/9?%JGM$^[ Q Appuqu1=w6~.T FPK!|RA0"Barack Obama/tests/switch-0030.txtUT  PPux dV qUrJ,JLVOJMB3K3jlA,ԂT$ QR)y%ɉ% T.P[ 61?/$@b8{\\]@PK*|RAPT{)Barack Obama/tests/only in print-0001.txtUT  PPux dV qUrJ,JLVOJMBr*2 2J3O-/@L@ ׈WW/ߏ|GqALsRMPK!|RA8o%Barack Obama/tests/safesubst-0022.txtUT  PPux dM 0 as?zt VCݺ1UnUT8җIR!֠j"a#XlQ;mA3 Wr*@VcC-x+9K2h#r[Uey̫귆Ǩfo@:%6K k"EϗHmkЄ6R2\,F^y`jᶋr5C%G,Ƴ}PK&|RA/ Barack Obama/tests/ifeq-0089.txtUT PPux dAPfwM dc nʹ̠MpV9L`v`3lx 3Yhcg }~ѱqw'+r Sߛ(YZZ>P]ޡ=":./$7<^I=T-FF57SI$q>ccAzl57쉨f5o?PK!|RA_ n#Barack Obama/tests/iferror-0002.txtUT  PPux dV qUrJ,JLVOJMB3RlKsmJvEřy e yEyũ) E) JiE9@eJz6cjj *jk.vpuqu1=w:D?*/DPK*|RABy]xR#Barack Obama/tests/Reflist-0001.txtUT  PPux d\r8Ou-QL&%۹lwR]]*$ &H)O8O$u!)igJx;~rc MK>NiHxO߼x Rx.^t3a3oI"$]X>KR>>M_~ׯ)#+6%yqpAAx뚳)OE~| 3rΗˎIRG]yRmww[dpuaV25:c1MҐE)-"]u mrnn)``fv3d0gijj^Ӟ˥6H+Qjl%d4f2 q03ϔ:s7-.0,A[ͻ9Ψbqh\D.x蕆17iL[uA!S ZӸ f'E~ Ƴx2a~V[&s4`!mw!.z`M}O&ku2Y\pCWI~Or-`T7I.,A}kE-^f?Hnf&~- PoU$$ lϞ. thV*);`p+ZQXWVPzͣGs6lFx励f( l ޾fD;TA)\!@,9e,"Sw-0 `G#Gсh w ._ w.߈7R閦-rAB,$X)sm* ,t 1M'>#2q*| 9yNڧb48*Cה[hS-' aXO ' u\89"B`ЃPA p7 Z#C6KdHAeGFn^-4p`|Np䖐m*(Y%$5ڂ"/tz:8/DޗL(b~0ռnqZ֌TU=F#)`CM2hD'q`D|Dќ7v)s#5;5V#bhX {g;tpgNzlPmAQ{L F6&>%Q=+.Q0.eB4W1 g]PԀӀ\=L<W 6g(ƪS}uEA(K +0ML0*,@ &YnT'(e jdOXSxx l^ྑ"u9+ cnU7!a~Ht1ͰfxF:J89ӳܞqݮv+}˄ڗiZ)DzMH]N.B`pؘdiqb2A' 1ϲ@ns7c95 YzC <ɛ<)<1MMr7~i,~kU6$RުJ܀I!9,. ŎKںK.-DM늏2OO̿4\!#ۘYy ea8oiq 8H1 #߶L,iokb_~Lx09J01WcܸynMZdb:Mmc$نʜ v]Ϝj?u4Zuvhd}"q&#< 2)N^v%}"g҇Qp+zimS[׈R 9$2j<$&<nH>*bڔP1jz*68|Jhw]1k)v _d@B\E% .=L-./xVSOeT(\bE{:So~S⫔~Lݹ6mtZquwKodN܎Y }w;#N wL[KjD\3\& L2E)3ۘXTԊvE}zxyOSs,< 9^Q1YQ K1Lb͝e<gd~뛓xs}N74!H_#HMbbѧgu >ۧCum>r~8ӿ$'W59w7`I#=sW{uէbe6 HlUt/gnHV ,#+i7Q,ꝍk`֩i '~"Yswˊׁ-|tžLNz]0.2d[V؊f$@s/tᛈ+['׉AOլΐ ĥxd p,Bm˺e\l30Qz;?ژkAEYqdj'uQu~k8<;=8YS?8m#IJcﹷ6uϦWk^jXܧKM2 p:PR ɮrT3|(a T0UU9(.K%9az|o#4ޝ)*RYꀤД:".5>! Y ȷþ4C%eh"\|jX'8qƗ0hwJalqw5W1|(Y@e NQ|ΐz^My=)8^ﺕJNqvZRH:Us,4쥠ݱro@.0dV& כa~KٕSJb8͒`kW?D4S`9J0JAңI7=breЧ412jҷˎʃsjkSBB_}? rcP悔3)JsŖm -À624ӂl(jCY)rYbpՑ)N3 +tV.~9‰u%uTi8G`6)d͑ZJ)d9}rDE_2k G%*EB/^CX`u#B`JfUC2؝)F o6N>_GCVRw Uo,.GJFy 'lwM vG;ÖmIj;" h $;>pau K \O`p 9t!:, DoGI *0 & ?#|آL+-a Kt_;MB%e%L4  cwl! ]ýʚyԵX]R/)h`fuu% $&1H*1eV55 M:?hq  @\>=;^NU_ 1pgwݰέ4~@r:p?~in1h_L[HoKi>7h#a#^E DQm ZlO a7FSi5v6bS#ov-0NF E` n1d;+$F;F@_aV%- ~x|9:0=ݲC ^\e~gsGJ?qe ++ai8-3*Gm~\w(vc*:FA,jk¯5Ys<^FM|ZՊ4#$(sǮS11::.m?F'uK I:*7/Qk0>}SF_z=D[Y;4,R+[*oXFl/RF.vHXg /aݚˌ B3U@R3^.#0̴&=] ȿO455Z5);92Pae%ap#l7vmYUK~Fͬ:5vCw¦XXn2`滖1cWȬdadm5Bw-Y^iǭHMu>VMH>w0fM6s7鹛5l2f p=q1`붒TQ@dD ñwLm8(uyİmgYi22g0nW?yaۼ9%%z/drdKa1]udؖvs4Ly77"šT|G k.T5r|8>=>[ 0!/=lS>j8mں!jktS= 974:QUfdĨmU] f]?{@ާ Xۃd(28zN-_%/ 9XFO VzE ~jXyQ@9L,mkiEˣl]z8A <@EmwI:ҕzHP w+ 8O0Q/ƣЮ&%xitVw`oqk bOhg_~=a- ϟR,As^2{vkgD-B _87\"Œ<mi~U/f*?y iĵZkMe5z6Y]HcZ>&/yW,xn | \Ds 'gǹ [75$:2ⴔTA|Df{n>7eϭyo KG(d(k,?e3w _09S[r.C54]p ֛dk`(;M%9=?ZHk` 6:i/~蘆=>+߼|ɏN`b>vxwLf L8ʜ36pbbyUx5>f/Vnϋ1/2c⹯C +v N|r:16)rau./;wG}vrWEP҈Qm3#o˲S^Pݔ3Flw?=<_,,A"e bF[|¼mQ^;L`&-榌z)quQF?`ٻ-ƋBA?rKP Ϲ!,6\gD<fDHZsj ac:\EtWPFK-D%h:u.ش[0Imݵmt'߰Bm}ISe)Al$yR 87IJ" | {!.y+O'u['q.K2(8sP"8Ez+s%,̛޺"yM]pɔVǪ4Nsxj\t"R̿m=cr$n0/p:}VQMRqvš?gG9?x@E վFQnvV٬œ9yB#z# XjXӊTyiYǰR'&Q{S4Z)͇q2Tb^s3SgzU<{( 8. _0޻7vw߬]r%?.dvo }?,BxG9\FNB&'tyt=ՠ&$SXe{ u{kp?X"181|b&{w?xC~QM[51]]X;^dؖl /u-C,U3:"eRQ R=ݵ`Wj?&Ϡ>8[8c+ $w٦m -=S4uW.QqaA}Vl18dʭzpa{^; Ν5WҾdQf<7ؗ,nLQ_>~p8 =@&XדPf*|O3igh!?@?V娣y=W4ܙFZ9rWZS+2tQːARYdP<1 >gzY^'LR.d/u8Ǧqp[t/ S0a)ͽ͔tW'|6eiZ85& Ki ': Uegv3[[2lf3{pDBI~e؃A{*FTsSDUm=Vw|Z@EwxlR =xő.9Xq֒d:@Lk:AP[ :0Ų }H׳O\\WT<|O YK+팿4QӴ/ Z ,Y~(CM!4 > 1 F c؀1l68JDUEѓfa<^9kx TA=>;n?]<u~ZDߤzA:c0#mC䄉*-@c/adfM$'8#4q*i.1#Vt, ̾׳=*_̿Ĵޫd"7@: .Jg{ P|EuE88[!hegbZOJD4!ئ Icܵ8$$F.I}Ub2x(1tow1fp6? ڇH{N h"-9?0 QW=DAs ¨ȿa7+*BAפ $ Cz\ayUwܡ>\`ȫ;Lʧ H>sDkYs'M~QTFykfdЪ+MAgFM1k3]nC t.5ϽnZj2' u1,/)Moנ q aG%1.Y6%|/X&ݭ./#rSlń)u>kç*gȣ[d )ԎgªM;iu4AL4۶-n %޶5ƻM+aL0q̷$6wl殽Gml?(Ҧ?xv.wD~Ivv4BLic364!C'OstI:`>UNfTH&5=buMxtUnrD:&cCWb|΍0,N|P\=х*ˍw~uuZBUXS ;Jh껈xZ>Ey3]DQ ~#!.i  ~Z͂P-6D+v<lZq[RCQVEֲ4^sY3 .8^5'ddJC!ͳYy_j^HV{#R!m9Q>0u+*ż3$>)z^-&@be/?C%AeȖ\t,(cYN UzMϢx}$(UFhNKfuDiَPA$Aa#Ic+sw3pKnز3/;{߱,ke #2JnH+1 !\I@?R%!#'.Xv(,ilExyT$+6.ѷJ~VYmug>bfCOJ<_'G!;F-^XfY̖|\2?"Nsq}F) 2`݂!z&t=g62. c.jۦն:rF]q Z.B&R ><.nj$ʥGkgFeE ƌEԀZ}jQ-f|sw~y ;8)(noO‹O24kз{JҐ0\tt}WPy+2}8P` pY8y{'I@Q0Qh5gJIL_,{'p8 hiity*zAVb[y`Bvu GSNH R\T9 E#*3:tfdg(T~A ሐ^)7HWNw:Q^9՞u`~s:]F[zAcORS'cFɻ( z[6ZF3P5%u{㍎aaz'Eڑ9O:hnS)khٜ*L%TG_ Kyt֒vᒸ #9SY9ϠVh5r(4<۽B -ak_մFw*di8-g6wg3iL s2iwδmG[AsI "'qƺF%?b64k&IMS;ڂwݻ\@Ҟ^\Ls(8tlou΂cAZT;SH7YМ&pnfl-*Fru-¶%KkeSc̛YV^\#r9`^dL e#+n j%ַgW]Ҟ6}~jfUpkA[oixE鰵bt(NRx$Szf~@YCxS&r Yr/;XK~@Ghk2i",:M$5_rū7GfZ;ě=kl96G:i0uP.lxhq?yqO#$[a}rr82SZ8aT(e;9w\&xV!ӄH5y5&Ʌfó_ynp'ef(GY4M@I1r5>m*T<x`]XG'n4 ss~I ON7`ޗ|̭5guܥ![rn Zŋ7$BOIzMʳPgHܔ;sC8ٕiF3p'rQ~`mnG Z'dT^ZL%Z͔JlU5e c+$dРVC<v|dS2T%]ݠ3sFyRRjP޷`,Rp}>2<c?F^43✬WȨj խ,:Ep|֫|0(^p$ wEjtHY/udZSthwf1N٘m|?8oH5o!wimM3PyC=P s۞qzm E%{A t& HkyA?# jfŔY۷^vy %59. "vDmlǕ5\rjvIFAwVHACyFB>+{ANH{%EYlϗLN{ݮ|d:۶vv̗:9w5qnyֿܯ.gќuXVg7FH_.SЕ+$'khMg?v BBh=16n9ˇ M11!ti5hǗf|cwp$utׂfYSrF<»nʸPiB"YEW%Y@põol3@/l<֘UEٛ kS::gA_E'#Nj$ϲj &h˞B9٧j=k/^lȧ-%hSWC(厎Yٳ-k`V:ɹl`{uLsqbwg3Fe%{ }C(zm7Q?f5 !?S&vz-%RYמj* %%M҅n=ϬeYY#"q_F_;gaؔUݺ|쫇9|OG嘶6A?t&ɕKwrIh_'j7Y'͸֭8C<*R3Q ɤ C^#_'ߦQle5ih&+##Epjœ(WM; EX#!EGANu!ˈ=ˆl_"Rې79dM줍27 *v+t ;l=I62*_T ?~xB-=FèMԹ&qdZWDcEGWQ0 Om*]XִƂLKLj|ASA)A9ȶ5n[ *T#p׀qtؘT(ֹ}!6%U.Yn"$1H6X(hKn~/yQ|R9p}GG`guZb"U'R$̀ dw'zya1^ "ZQ٨2O! b¹C`SV" ZgjYCgza]]D՛@E:T J<^"Dj+|80~j/h6zE;V$JDZvMـ  SHфC &"c f2Vf[؃Jp34Z5jiQv|09~p]rȕ@MjhՖ-Ɏصr@"Cʏ}}+^Cֹ&Z%;lZۃsp0tߎR_1-l4aK|<Ǖ~ZLRb :yE 6FzgGS4xu*t>P[ Bhs?h' \QxXl{`z}Vy챻z;2G̎kFAk[Rpg<|q:NYf>Q)D, pA#F-zW=EEU< ZcBJ.җTRb^8º д&_208W>捒>""h&eh#O\f5/.3G8-Dz(z5hdv˜$$NmT9Ĩ 6h\\.b+.U9j\?ꮸ"5; l ˪mY\4[*4\K b =Z,jQ 7\#M~Cgw+۰?Uz1uC@`HI)z1g#ܯ3/rasx8a]z3ZXklϓ1wHdtY=ךB'=1 y~T@h4޶MAkv06I:ְi0 .rW̃U֗ds3 hm8{~}2 c0=c.70:6 }0x1Mmn5)=gzN|\Y5T1H#hfY_^6Ǝl jrɑLvuCTV7$.b `w-$Sٱch &XI$Kj(OPPPrӸw/FQ#wӀxXݮ|-&h#DZ5ٞJM,x? U0(ӗoPWDXl.I"w#yoK]>'GUv.Љ bE(ajZzk?-%Efp[Vy}ɒ :^ {_2X}'1("| ǽI>BSn''6FOܓIF ma=`o­7¥4 bvh1; H`UBʗ4zJ^cDϓ$z+XF ¼w!XJIxg⍞VTxzSHLx)h`@òpHV6K Ywb ׭Р5c7wP!G,F=(l#){8\ǪwCW^PBdk?%̪]ik. $_}pj\7_p;\p(\[wH)&Ep}@ZBf:\- ,̋UepX)Fj_z.ᤘ~UE"dkO;BY'0]VIjN؅# \Y.ŷ\/g޲O`h|v C@*T  f)xiIi$7u_k8Hd6j=#$-ag;IW#{fCo+W܏}7t#Gʕ!|?'sӘJ;Q̊5=HyJw8/9Zo ͰV7!RuaR4o|U؋Yè`d=!pVAE#Uv'SD㛔ӷ2nݡe:|ܽ3SFBk?L$i/['8^`t Coڮ<۴ԧ΂˨&F=h dBDo]x}ޅV[P<4+=RczK$nڟFȾP۬g0\c DEǶu[oXEn,${7bӅw^<тNBd{z/!4 Ȏ"?\ ٿ4a\Ʊ-W:?*ƅL ]TA4,e{. "rF^7/(`:KHy5hf}6Εn\qc瘷J|j8S+9M*%xM&SfsK%snpˎgRZdAS]a?M0G9r!?s*.F)ɵgd?Yi"(?TO .xGK@;VD5ߟڙa34oj%:YD*ms lz *z*HQ> fn}D#v-ܞHs_mpoϮnv펉?O0ae9;u`^>']RԠN}<c]$ƾ삊ށ$o]ݦf'N`v(07yѡ n{]0ǮiiؼN'Ϙ |R +1#UT'ARBMϲۇeM|LώQ?;-}(q,F*ayvaR=B]rO1v,J,H{lP`3k)>J330wl\sۗN|R~_L`IN\c'Ŕ-qJ .LXV6 (܇$TW"JUbzS&5Ih T[$p6K):Lk1_~y-& ,-EK `vi[Q{n^ ceiVy4`v([5 ddXh4W`L((`,<Ȑŀ?}(`/lY[TggGc7K!챆"bu1U]Y}ֲ`&+$,j):N X1K_j\9i TԾ[}.ؐDWO$τC d V;65{M%/st֎x3U.|A놁44Sm_(<$a%gKQJ/'W}rqr\c3O;xz FW ~bZ8cuK8{F"W>Dc`ըŏ_}Figc0;t0]nYF`Pp0:l}^ۅeaۀMjC9۵Z;kmtjK8rxwi8EFD.*󈜷 6 LGSyKGUT ܸ__H\a~ug~Yʟ^)5WCl ;leZ[ұyỈ:a t^Zsc?h5k}{g kaXmۧz';0OSVk QUb=%_-7n*3ıH;$ҭ*B% xL-ѣ$_3kF4 'Ր=r4tsm:YqzS>5:lgv ~B6iu[Vu<AO&k՝tXnI\!L5DaN+s7uG Fm̢p'ւs{"8Z}".}K?v Dpr3ǣ"/}r9(oYH_!7Y0&xfD#``Kk݋C/e.4ނ7-v]w3I:iw;jdy8T  n :Sa;zX/MY`<ĽxTzaL{zGX/,;5L9l=+YJ@x[. vt?v*fBL@}pBͩ2SL̼ %myFنՔU&LC5b VzzX&$Ĕ-ŌiiO@KE{=X5uॽ^ftI (CDo1(a>.ŷ:aQT7*`2QW͏_a$j/_/zUQQ Q*L%36M`zniUh[Fo ?{iR,?rpu-,VևE˚*-%[ uo ??n4E;<־~~/PK-|RA2:=#Barack Obama/tests/s%2Dbef-0001.txtUT &PPux d1k0w !hinep 1DCxK"HF!PX{+pM(*P_x-A :ox+:D6<ЪʍVKaCZia-}썳8f.o . P;$蝝+`{݄=%/Ow_ %WJw}׊aLbAAͽ]TYW~lHzл}cLCGOgTv_,'PK/|RAp!Barack Obama/tests/small-0018.txtUT *PPux dV qUrJ,JLVOJMBssrj4K2Rt3ts5kkF:~~eS\P\RjW[Yjeajd}r;3\@gPK%|RAy Barack Obama/tests/if-1456.txtUT PPux dQ 0c>ѫ4rT4(ˍԉC.qdA= uI?=Ng\q8 ?>#}0rk#kyRuך* M.:V jM9nZ(ns^hk Dk@/Y?+ֲƲ|9A̷SM PK%|RAm|v#Barack Obama/tests/ucfirst-0001.txtUT PPux dV qUrJ,JLVOJMBK2K23s J3K-*H;5"9p #-\DY υJ PK%|RA]VVGBarack Obama/tests/if-1398.txtUT PPux dn6l4-P#lmH8Fà$fCIu{djvPwt;liAsW Kߢ8h{~oa iNm>hDc2,!)Ya~qJPhVHVW\Qq5ʮ:N.+8N#NHi:k"I#6r<<& E\JS=#<&ϸNLtD4VQtJ1NHn"N$feCU0OXy-BcdLz&&s=,0[D!$ 3"/J{ZUShcOȅc$7bɨY^TD)ި1I(/rJIVCq?MI98I]n𖄘iިLK8aǤ0WVLJcA>=&L3MgRL+nsC.e$ۮ_^Tk=SmB٨٢`j30fFeP?5X!ȽZvƑ0;k?mVd*5M1-{}7 6c&wT7PVʫXH#3/*6p-.<g-s@_L '-3νZ#/㨡'*_Mixl]RӸB²;ro wv{//|/x;@PTQ_ @Aޓ4%م)@,UPV;\qS~Sbv9%*,kqy x"WD܏XӲ~*p Zb.1Z8%)qN <`=, 4'c9}~~TYz Xg>rr+4"L"hḃ+)77nv+*Ɋg)|ۜ|G `a 6f CI*lu44{|3TGQC(y2K":$:4&06c#;z^5iW5aч?|y xC!<5(g{?/]PqՌ|F.DO$b YtWt]KpLU6uq"I(" /NkXF^8aQK^_\q 2"dV_m4{A@g&-Vަ\{հV3Iᕥe_Rf\=٩72Y mS+9dAa!i`}f+͈lINuj sPasnWD["\Xi|aH95d c"8|%aB͍ Hz:^7UZ]3V]P #Q5۫ٗ5q=FŅTw@ʢlc-Li)$P5?TP6Un@Ik!8rN1mmM3c9= PK!|RAr%lx Barack Obama/tests/ifeq-0024.txtUT  PPux dV qUrJ,JLVOJMB3R jJJS@ kkֺF:~~1υJ4PK |RA#~ mq Barack Obama/tests/ifeq-0015.txtUT  PPux dQk0) {&Sgg3(lu`5faݗ{]8W"3;| +}M09[J /d+VxTn^9 $M_k'i](422}OQK]JY釃..M樸SFpsŖ}) Sڶv:nCcDO)gY<3{4|ڶ[7x'KJ",uJwz$w8PK!|RAmBarack Obama/tests/if-0045.txtUT  PPux d @ݫB *1Sޖ$gΏ pC[(T6*㖾s)"8婛*ukR[DW׶hDh Bq-:x\N䦂 dUN:g5Ѷ %jkzӶ |]Cb)*.؄KvPK)|RA pt}%Barack Obama/tests/urlencode-0024.txtUT PPux dV qUrJ,JLVOJMBKrRSRtԔsjk6F:~~[ɥjjdjdlljb B hPK-|RA__Z+Barack Obama/tests/sec link%2Ftext-0004.txtUT %PPux d0>Ž (Hh`bΦZ(%.蠳o/ cp5mɑ*!QM g{*C\0tZAU2w<`;3ePFMɩ<=ke[O"= r݂|'y@(8a[D+}vPK1|RAr|"Barack Obama/tests/switch-0155.txtUT -PPux dV qUrJ,JLVOJMB3K332sRjKҋK jT[Zͮ!. _N2B PK!|RAً^e'Barack Obama/tests/MONTHNUMBER-0001.txtUT  PPux dV qUrJ,JLVOJMB}BEIO0\6:!;9A ņPK'|RA$xc%Barack Obama/tests/urlencode-0002.txtUT PPux dV qUrJ,JLVOJMBKrRSR3K +%*嗤+&ւwpuqu1=wNmF[jClB PK-|RAۡ Barack Obama/tests/ifeq-0161.txtUT %PPux d_K0)"\`jj# pPd%Be&V|wCv@.\ιy Fc,Jd`uPG'|^L>D=ϙ3D%vTL[jfz6&|R_WZ+)3ʄ{p!2B*B$]n~Jq ;!PTFb`pޜ&b:݃'|G \, Av)lKh /C Ň0PK |RA}Barack Obama/tests/if-0016.txtUT  PPux dV qUrJ,JLVOJMB3ӬjlJRsmr+t3sS23JlKRjk.ppuqu1=w H?*HPK |RA %"Barack Obama/tests/switch-0006.txtUT  PPux dQ0$&P:h!qxV 0wA7Û^rwy0>;lĹ%mO #1r$-fe䷍BN++q.xC3Bkt-YQ /WDȉ1"⅔ϒXÔrlu5z;ttJ{7BN!1G}@ɠB3^PK(|RAP__g%Barack Obama/tests/urlencode-0005.txtUT PPux dV qUrJ,JLVOJMBKrRSRBskkVF:~~4b h(PK)|RAϑNBarack Obama/tests/if-1992.txtUT PPux dV qUrJ,JLVOJMBЁrfBFII~yy^^eIfnj^r~~y~QN~nfJJNjjbq P(R/$7*X[  ׈WW/ߏ`ԉ`P)PK-|RAt_ip$Barack Obama/tests/sitename-0001.txtUT %PPux dV qUrJ,JLVOJMB=C\}]kkF:~~[嚗YY 񀫟 hPK&|RA3^JT#Barack Obama/tests/Rellink-0006.txtUT PPux d 0< D5P qH5`T?T:K8}pdC~- EE=>e| hNRkT|]';bWP լ~ֱ9c·j)2_}֎#&nr?YS{RLjXL ='{3^_r;xfa6>?+BT&~L'nǧUywMmdI -h o@#Tꉳ-L~rzU#Iͫv5i]Mx &I1Qsbjw4I] -b2h #Z[:uʚUu̺If&hmqM? 6LDvx5Ss\שbW'Wwn@c6ھ&LC$|X@8(A[Uqd;# !]=U')x/[w+V^vg>|?tx??PK!|RAblBarack Obama/tests/age-0001.txtUT  PPux dV qUrJ,JLVOJMBSj - (ւ-rpuqu1=ȷb h&PK-|RANPBarack Obama/tests/ns0-0001.txtUT %PPux dV qUrJ,JLVOJMB jKR*J2sR3K22KS2r3rKcckkppuqu1=wi.B0PK'|RAVlDt["Barack Obama/tests/switch-0088.txtUT PPux dTM0+x7*M$q tAZ.q[Z&c޼L~`=>9o8Q!Nw<64_PK!|RAl .Barack Obama/tests/birth date and age-0001.txtUT  PPux dV qUrJ,JLVOJMB2J2RKRRSk - k,jLjkF:~~X^Z\`Ŧ 1O2'V)% '*/?/UNA"X\lXdңk`k`bӄ(j 2JSSC3AF}T\`mj EPK'|RAƊBarack Obama/tests/if-1674.txtUT PPux dV qUrJ,JLVOJMB3ӬjlJRsmr+t3sS23JԔ+̝I,bL藤qւ]b8{l..~.T \PK!|RAB}Barack Obama/tests/if-0273.txtUT PPux dj0$7&86d/R: !d^)Hʟ }>dˁ5IC(ٌGtw !GwS1ʪXP'(աRee&~AP*Ub.K8o n s:zOQV }̵`"F#=1w}<³.qewfG+J2oqM/˒[(#Yv]n4luE^8;pW6VPK)|RAuuBarack Obama/tests/if-1995.txtUT PPux dA @++AA=i{nV&OTҜ\7{wAKV S {L=J>ˣss0.ҺTF*Զ؞c{ks$Lv+ģ2rM< \*=yCCtיH ,}+?Ȋ_0^oD~3@PK=RA Sc"Barack Obama/tests/navbox-0007.txtUT 6PPux d]S8_bZ=>aJURbXm$n;$&!ae%-ֲ:uE[9KxaV3=2D B=8%$@R![RvwvǸC8HRhәyx;DBa8fCAY 9$Or{4 tS:B C{Au:mm.?]Q>D14;Ƒt~f078!wՋGXHBu܏A"!M0a>ɰrHOMVrF+^+ʲ9!>90FטZ/L1oENG:#1  AZ24maS!>4uSE<`O$pć`F IiHXC%b/O?[^EҒǀ=r0`E "i)"mI6r= qA`&I;>ťē} a4 <Ռ侶1#igq]^l)~ɦ*F7 FБ"TO~K: /,%n{ (x}6NurF}b#ApȄ9_10%_,5bewE.LF_=2%Q`c8ꐌ!kjE.?&, ցڄAHah>$`MQϣ `3ޡ 63h̭zg nfB{"-`5Zt؄֦| . AGv}oo?h9DcP5"tmS`͐ a1BS--0N:w)5Gq?̷ij[jMz]07РH[j>aW^E]žhP.W4 }ǾpIgj2hb,U)x<bàGuZjO{cwד="s9&DJ8oEJ Roxv6-x邰ZܓB̃ QEfaV>믎z( ɽE|]cx~X 74vvY+Aaeĕ{ 9} wTQz>@y\*s(BS|JB(!+EŎƄWqu&Q!1î\ S5̑rMtKތevoգwsb$)Vp"3ssJ]o(CaHw{X{]A tF jkK ! l>1{v1fJ &8=]&إNac8@2\Temzw:L E8 IK@ճ*3㪠D>$rcwC0!Zr i8 =V bu4i'=]zxyp\b\D`}M@%n2~lE|i(I+R K yd(px=sF-%o.gBWX+In1"ׇIbP Zb\a#ɧk@>vo,FqdVwV̥=-`Iś}uo1A'O&(Ucr1,tuh|^KKr}IG27:Gi` >.W@MRR+p`O<>Be8GI#oyEܾOWOr, *PB215fh j.sH*GO7!Mf0J5Q y21ǻL>lO#q9PӖu|ck~2`_)sAsQG<Xm ӥWzF{9QY(*ׇjݱ2շE=> nя78 F+VN?qD8j}rLwz+Do%XU} tI*,ܷ45 YB{4$ =x Tr\ZeXnA~G"PI7c@iFZwl%GLP|gv8w`DYg?VҴe5?ߡ^<^+T,O0T|6%~\p)dv҄>cwh&,M/.1vMYhWnS @t/[.ΑӗLJ%.:Y²VPK-|RA2"f"Barack Obama/tests/switch-0116.txtUT %PPux d͊ >{a)tӅzXX`ӕVmi(I}Ĵ񲁥^of4ctKw&h >a!FQL_T¦? lP+q vn/eֺ1({ XqbjP8PMgO%PԵԖ;:IuJO])`f lDQ!慧  VH>VxaM൞ST[$s_Q~j)b#h0E:9Zc ff*-fu; XUռT@wGXX;A2 0 m}~DkmXƇ>3D\o^pPK'|RAcrlBarack Obama/tests/if-1744.txtUT PPux dV qUrJ,JLVOJMB3ӬRJ* u ,j0EjkF:~~; ~.T >PK'|RA 7#Barack Obama/tests/ifexist-0002.txtUT PPux dO @~.UrC lFݛs~x^ ro|r5ZS$+$XӴW҃qkUht8Ł8bUcnۦmYst)~tYoR<59Tݙ*]EyE|Y|Y)ga"=֏(•@7PK3|RA(Barack Obama/tests/talkpagename-0005.txtUT 2PPux dV qUrJ,JLVOJMBC}]}]BRs rKRB2KRSKb̔ԼԜ<#CZ\#\C\]@ G`O?]sBIbN6N8υJ!tPK(|RA{<#Barack Obama/tests/iferror-0008.txtUT PPux dR=o0+6 m ő@$,eG<В7\\!;#,fdK(~U'x@k. ZZF%t#c2歔 DJ[)[-ڵJ7+䙻a 1 `ߑ#4O3s$dyPK'|RAFq Barack Obama/tests/ifeq-0104.txtUT PPux dn@ wJ;ͥJ"5$'bX9oIr{J<oHAԧL̡]7.u DmX0!ߟ(ǿ_;[yZ[`w5(yeݒl^0<6``Z*R" dL $'P?}_@SrY~ui@_G787&0P1La<PK |RAQAb"Barack Obama/tests/switch-0021.txtUT  PPux dRA 0!6A[9aFD7VPz%3kȦ(IS|c1|Κ<'uL(溁*2ʵ  s:*Fk(XEU][{F}أUU}ºYNp3g?8QWwYE!C~PK%|RAےd%Barack Obama/tests/H%3Atitle-0004.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkԋ2TeBMQm-6׈WW/ߏ|kl *ZP\R N/JI-M/)ϵ2,PH2SSlA sRPK&|RAq|%Barack Obama/tests/namespace-0030.txtUT PPux dV qUrJ,JLVOJMB}]] r3s2K*2JRRJ2̤Z\#\C\]@ G`O?1υJ4PK(|RA!UjBarack Obama/tests/if-1962.txtUT PPux dV qUrJ,JLVOJMB@93J!J_?/K//$3?/1'+H%嗤ҋjԊJ3SlKrRSR_[ Hb8{7.@Q5vT5r"NJ 9 ȃυJt PK(|RA_iSBarack Obama/tests/if-1878.txtUT PPux dV qUrJ,JLVOJMB3Ӭ2JJ K2sK^r~~Y~IjP}#gR"=>;V)I7> W*t2 &\gAٱAt3?)IJv ޶ UՅbu?_jw15mهtQUũ`c8ܕ8w8'm p-v+bi'pE/]pfPK!|RAu;& Barack Obama/tests/ifeq-0028.txtUT  PPux dV qUrJ,JLVOJMB3R jsS@l(YAej1XIn%( ʒKR*2RrRr^,.Q(HLOUES[˅Rppuqu1= .~.T.PK |RA">a Barack Obama/tests/ifeq-0005.txtUT  PPux dQk0= <ؙ32{aj\e;ފ'B,%pŋO{31)[`gJWOp'ѵ)ù;.VIHx؜F,A_F[akyE{4쫪WUX^<[=Huϓ84-I+M (z&|NWm&qTìs/8>m@Cf}z_b/PK,|RAaj%Barack Obama/tests/Cite book-0002.txtUT #PPux dmO0SXB7%QJSOHF@4/rvew(FQr./axic! .MWxO'Q| U%/QY`BS̩.wi*Hx?$_ꑈSo LqC죛!䋮> >\8"( 0M|`Quac*4Os*"WWaS^`e&ML^SgƈSAšaBehBc9SM`&EF"aHqXFpB ,AX954te;{QVh|WV"VvVP|UÙFDr\ zihz2Y@ nY~gzB=<{aw7cs+63 "6Y)!b,yb%C&/xk4kN锅`Ù2`𫒊D`Mg7"p3ρ{9_` &nK,G2X"0G\'TYڲexPpY}(R-s4y^o] pXbCJoXAp_od&j8Tٽv=ElaԶ{j{E4p GRY"h)/=kZ0f:.d hgc Ekp[)j-dKkXwV JG`Y1c\-d#(<mQVC) Hdpt4蠉 =D٩6ڜif-:#;kHȮY1暷/vNmf'Qӆ|ut$rI5|< ˱^?hAEXT.z T6~'RY9̞]\y#;9ğB,ZE7Ol@5;B 18KˠXjB:ג7| Gg{Օa}K_v.؅{fK"ksw}1PV^žZ.UhF߹ wR{<#َ<QѰ+$2 >:V ZGrXkٌ};:鶏$O 7u=~/3/Q`.^NZ *%=-Ԛ0" Y[pbUYIV(*h\eyQ@C ]˨!독oDq:EtDBy*l9t]_֣70Dk&PVY hPJfqeЋ[8K7H*_m+cZ*4̓T\B;_i6ey*  Ԧ.=+nf#{,i<ܴRn}4/qƲohPK%|RAI-; Barack Obama/tests/ifeq-0037.txtUT PPux dQ 0SDARYР@$545 {y ~.Ѐ xYsVs[nzlHH Xm;;]׶K'y}@# Jx>؆X) 72H$OR]G+t߄:mJ7u"1/.oδzBbHg>|+@1PK=RAt#Barack Obama/tests/fullurl-0004.txtUT 6PPux dM @໿bOSKXA( M'\?d潼p~cғG|1R)t8 _.phgThKJT% 5++u9i bEfھ8$nYpC/G)Qi&´ܑ&#&i4F_i4HW3݅;?PK |RAbk+Barack Obama/tests/protectionlevel-0001.txtUT  PPux dV qUrJ,JLVOJMBC\C<|\\}RS2Kjk6Fe\]@ G`䂘BpPK-|RAe/\"Barack Obama/tests/Portal-0001.txtUT %PPux d]O0+NFЫ!c$(3!A.L]Ʈ[Sw IO{quB#-Q$z$9}|3( t8R(r|w^fz/Є=Dc4S\jЊ; Yӂ~16L<BVVؐsKmc婼zGIqg{S/f6.c8~+zQfPBDXbL\0Lr8((N;UQ*JqLi%pJuAK?(_/:ÁN1 :ToNKDA.1e1d-D#.ا59۱@n]va[rF>gX.@pGP̔k՜Yy' t.)mPvvاUfVZW3+3;$op5[L7PK.|RAgG#Barack Obama/tests/s%2Dbef-0006.txtUT (PPux dQK0)B@чno[S.@A#I{1)ievCUq?(-0_K:EGD7R| DO0㱋$-gj ߼nV^UJt޷쉳XYdPp(#UcnI0 +ϐ %پkи'a렂k#v)t$_`iuM?Grl5χ#|PK'|RA)p>Barack Obama/tests/if-1771.txtUT PPux dTO0~_q A%ʌ4jb|f Tڱf4 9zw;,ju!hBba$AGww; (;YP;䚪HE!ŧq&vKC(eHDo*er% LϽk>$r%{ \_^mjQ4'ߏײh; ^GfՓH6?N^5c]BUn#_=tXʀTDcVlt+rH3;|ᴟMT":~ q PK%|RAQl|Barack Obama/tests/if-1448.txtUT PPux dV qUrJ,JLVOJMB3Ӭjbmmr~NqAb媭b8{..~.T (PK%|RAͮEBarack Obama/tests/if-1432.txtUT PPux dV qUrJ,JLVOJMB3Ӭ3JJ KW@QT(.IU*I(MLϳIM+VRVUOM*,IH2GW׈WW/ߏ|Osqqw 5$FR?*8ХPK'|RA$:5Barack Obama/tests/if-1812.txtUT PPux dMO@ MЀUS IjBxn)]]% ]>F(7$!&3&-0p\/8 J)pчq04לh4Z0-g29Jz^Qk;##)a_HVuj>1a@Ws[6t,ިlk ?b`N_<@OQ(վ'C0{Ucld\:Y&ZUI3- I(}owo u_'ᳪ잝VlAߐё~DPK1|RA`ޘ_ X븴K˵~흵q}f^7cjA< =:S0&b!ã,ۮ }\n0?G}Tؠ+ڒșkIv5R, irݡ }LL:gE4AimvM}:+$dcS* _8xh <la|u@;́f^g%}`b((_R*Rr…Yb|X\XcgV!3nA:ܨL= "LL>G1"6!n/`"IuKpG$ynI W })zն}(v.L4jh 4΁JyɧHf"qI3ʥ#o_*@f<2y&*LO[UTҊ)dK( XSUSTВΏ 'Q Awr@@tG 36[FXyl<_ϟN~ dgh҉c0 g,W{]]6b%n0;[kc#6 !- -^G=@vdqw7H1 ,@l[,%-,vri"G-%CV(dGDcӫۜ92\V<UcRzA7`{!̮z7C Jg{(JJ wƏƕiLtvs;Pޙ_N'5 PK%|RAgn5Barack Obama/tests/IPAc%2Den%2Fpronunciation-0004.txtUT PPux dV qUrJ,JLVOJMB=uS J3K2jjkF:~~1υJA4PK(|RAV%ak%Barack Obama/tests/urlencode-0009.txtUT PPux dV qUrJ,JLVOJMBKrRSR|kkF:~~6b h,PK!|RA|&Barack Obama/tests/if-0036.txtUT  PPux dTQo0~WܨMu/4 m4EJE$ă&bld;iX$)4)a@XWK~ <\Cz`hN>xG#rBA"\d .˕2[ ̠,E+H_b)*TȂo\q$X2!2X1m) x& p!B2`o5Ru{cS *!^ ұXM7WkJ 5ЦnOЦ|J D/zkIĠ ) =7Zx)BYj] !%ږCzs|uuz%)Nl2LV 9bi[j(V-fÁɈ#dh[G 2R M6,tp##Cw<5>m(ٜ I&LZ\WI=iWқ:?4.F#%Vx0>A־{h8!= <  >Vsgu {W;u}P\C=B6ƗsYV{> ajJ׈WW/ߏ|`vhCBPK |RAS- Barack Obama/tests/ifeq-0010.txtUT  PPux dn0E|H,(ڨ AU+!.L8HӇB*Ռ5shlYa+$85WT Nr W" 19VR=T(7W0< |r4o!+'aѯTc:r(1{}w<Pi _İL_) ,АgG㦆Z; 2J ;,̰7,'}l_mݿoON˙%{PK!|RAb Barack Obama/tests/ifeq-0030.txtUT  PPux dn0 y Ow )9 m&U=mڵKVD|v8 7U@o1 `b{MxX]ԁ> n shiP3 b2v BCǼZHIbetnTDU0NuP)W%UQ_Y.lUAt}* 8Af!wIFQG &S'ga4t <ָV;b휥l{f7867PK=RAG#Barack Obama/tests/fullurl-0003.txtUT 6PPux dV qUrJ,JLVOJMBJsrJrBRs rKRBR3SRJkK2lSS2KjkF:~~;+J_?'?91'#D߾$$'5ר!?*3-PK)|RA(gDBarack Obama/tests/if-1980.txtUT PPux dXMK@W z jM͡=4C!hBnҤݙd+4{{h\7?]Ǻ;,mdY?ţ|V[{oT~'q|vT d`t1|AQ$}:vb'||3=tmN9"Z@4*=8 PHgp]"%U9?E)3QjYJ.mՋlCfhxbҍo @&E$=PBApp=rBDY_ &C+Z57ilI47CdtLz׵{,v6p <XhPK/|RALr#Barack Obama/tests/s%2Dinc-0002.txtUT )PPux dV qUrJ,JLVOJMBu3kkfF:~~[USRadlgWZP_^\0TQWWK.M\5P)PK!|RA|4Barack Obama/tests/if-0043.txtUT  PPux dV qUrJ,JLVOJMB3ӬjԔm sm222uK2+K*sRՔ+]Jt3RssrN$ QkdFd]m-_!. _䂘BXPK%|RA}lj("Barack Obama/tests/switch-0081.txtUT PPux dn0eLcRleJv% CPbvWF $$@rpSR#F]䮒.2ٙ$/eaTѐ͙7\d٭3׼˧f<<巰}5Zw X3sk|Ҩ0KT4ܹu  JZ3n](PHx}2c{3 -"2F{;3Z7N.1|d! mg pS ~`,c5cZX V O2eC!b)1ba9VTeD$5jFy[]eL[L[YARV gF;qDK0ɀ&Wd}E3ȺQdӾ }CqI8s 77ttfY8l!}l QaIҼWo`9SW4 gʀJ*y59 (HÁk_~`?~Q'Tcð qSXhhSfyhRҔR =#VQZh(G"-wݱĀv& r ؿSTN` !.r=%O1APc֝HKgB@?#= 1aƷv-(LemZ^6<_q n'q( d?ތ]w)SvM l,Ra><>uR_ ,2]rѰ RZr{ɖ8ְ &9!b Ǹ[BNYGFQ1 cXR=T8aA#G;_iAz>Sm9[tF6v /א]c5o)^Nʝ 0&H $Nky@R=?5c8pѼp7\ ;;pQ;f'lO6ץ½[qs={Fv:V ZGrXkٌ};:鶏$O 7u=~/3/Q`.^NZ *%=-Ԛ0" Y[pbUYIV(*h\eyQ@C ]˨!독oDq:EtDBy*l9t]_֣70Dk&PVY hPJfqeЋ[8K7H*_m+cZ*4̓T\B;_i6ey*  Ԧ.=+nfw+Y<۴Rn˶}r/aPK+|RASeak%Barack Obama/tests/urlencode-0040.txtUT !PPux dV qUrJ,JLVOJMBKrRSR\2SjkF:~~6b h,PK-|RA> Barack Obama/tests/ifeq-0144.txtUT %PPux dV qUrJ,JLVOJMB3R hĒJ ܂xBiqf^B~Rq~NjIBm@FQqMRuukmmllm-ح!. _悘BPK!|RA8,Barack Obama/tests/if-0306.txtUT PPux dV qUrJ,JLVOJMB3ӬRKR2KSsR4 s2K234kecck RSRS@d /@׈WW/ߏ|r!1υJ! 4PK'|RA~C< Barack Obama/tests/ifeq-0106.txtUT PPux dV qUrJ,JLVOJMB3R j jkkKR*J2sR3K22KS2r3rKcckknrpuqu1=wi.BPK'|RAzC#Barack Obama/tests/rellink-0003.txtUT PPux d?0Oqq҉P$F:S/P(O|w]4~1ŚC8g5r@Xay>kRJRh vRQ])ѯ0$ VZ02m*iX~AQnՎw7l2Re.}!}OPK |RAt.+"Barack Obama/tests/switch-0027.txtUT  PPux dn0 } ݶv+lBDMBBcJDTaJ}.hv!؟$A93=BXlU+J1Ai姡x{guBc,bg -ugT]$sn GqpE51Kh WOA{3Ao$ R%[WcOGuM'A `yv⒇#cE䨍428Ym4/o2|Q8mxm{yc)&ty+11 PK!|RAU\Barack Obama/tests/lc-0029.txtUT  PPux dV qUrJ,JLVOJMBs,jk&F:~~[e1υJ4PK!|RA#ry Barack Obama/tests/expr-0003.txtUT  PPux dV qUrJ,JLVOJMBS+ 444 L-4KR 4sS 4 kkֺF:~~e1υJ4PK!|RA (aBarack Obama/tests/if-0050.txtUT  PPux dV qUrJ,JLVOJMB3ӬjbmBr~NqAbBqIeNrRIjEnbNfzBrj^IjD=P52XPX#tjkppuqu1=H?*:HPK%|RA.lBarack Obama/tests/if-1464.txtUT PPux d 0}#&X ʂ"1uh6%ڽK5'p8A($  b49U4]B ~ >[N]xvmS+7M׾> |!؅.jA/KqړϹTg|5F0AxAUQLkK!CC;W>*cjHcdN'Ȭev6铼8op9Їl7PK&|RA#w%Barack Obama/tests/namespace-0022.txtUT PPux dV qUrJ,JLVOJMB}]]żAwL !.*nDc=A8s0 y9^%2>Ҕ*\9u jr҇jճURS`C7v1S- J ]պHTE=&6Ė{@ cI0L7/,)ljL7p<7ѵgPK3|RAA8"Barack Obama/tests/switch-0181.txtUT 2PPux d? 0|Wu dE8Z4^Q w;.B,LL`%ۓM0[۝e艑FM6 8ZtÁanυ!Q˱r8K1[NX KlX`ݾlCVB(+ޡZPG"#\I,6;A$k?CQX օd}g=lQ;PK&|RAO NmBarack Obama/tests/if-1491.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IcbL)!. _nₘBPK-|RAvUå Barack Obama/tests/ifeq-0142.txtUT %PPux dV qUrJ,JLVOJMB3R $fMtsbIjz~QU@~QIbBR~BIjnAPX83/]!?8?'$U\ Xƨ:׵66x׈WW/ߏ|_pALsRPMPK0|RAߑ6 Barack Obama/tests/ifeq-0182.txtUT +PPux dV qUrJ,JLVOJMB3R j}]]BRs rKRWR<) 2J0$@A~spuqu1=$V7BsRPK!|RA*Barack Obama/tests/if-0047.txtUT  PPux dT=O0+Vbj;VHTR3 U%1uvh߱!`#{~w~OD!ݢx y4 yci!R*)|fӇd5PK-|RA%R#Barack Obama/tests/s%2Dpar-0001.txtUT &PPux d 01i$Barack Obama/tests/cite web-0001.txtUT  PPux dTk0Bx8l]FԁXKհRlG64wۇc,x{ x$UtqNM.3j 6FxyIf2`<+,PdaSXw&T1pg:o;ޖn3ncvSJX`|ӵ߽^GԢ]XW}wN}JsіR])KYbB|D޳!)@dSVBʨSqF2׎WrHYUt%3-Weof34rxy[PK)|RA2n_f Barack Obama/tests/expr-0009.txtUT PPux dV qUrJ,JLVOJMBS+  jkvF:~~[e1υJA4PK/|RAwS'#Barack Obama/tests/s%2Dttl-0007.txtUT )PPux dj1EG@f%K7FКPGaRJYӌ$[7ݸ{.OPc&S4!6N/0f"\O@ɉLT vMTd@1sM\ޭ!!%M-jc?MȆ~K%3bI:&1VW&Oqm@?օ]Xbt/\YwxEm-+6^[aXtPK)|RA l "Barack Obama/tests/switch-0094.txtUT PPux dQ 0+BJP5ZME=JYxY xKqq_8޽b #kB@݋&pLk"j~;C-g9܈TsQP6{Hq<%Ҝ-Y} sswMv2*/-i6ї PK%|RA\%Barack Obama/tests/H%3Atitle-0009.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkr2SjJOO[b8{o?MqAbb[%6+)TdRRtKJs *R%;lAAB0:PK |RADBarack Obama/tests/if-0019.txtUT  PPux dV qUrJ,JLVOJMB3ӬjBT.0aSX\l_ZQd`_bTW[D ׹F:~~; b h$PK%|RAL"Barack Obama/tests/switch-0077.txtUT PPux dn0eLcRleJv% CPbvWF $$@rpSR#F]䮒.6ٙ$/eaTѐ͙7\d٭3׼˧f<<巰}5nOkSfnu-/U&| Ɲ;n!5Z@@cӭ Ip߰/uVt8|>Oft,b{WBD^ƈ>%;-= іnA"oefU[CUg 蒤,!<6 k`k㆞E—#.qdn ]E^Lp}]dw݅C&?eب:1J9dP)`p m0yt2D&kO/s )3c) Pk`NXyD2RZ4F?!BgmpB##J(IX6T"!-KNhU M)nYF4N"_fa:V epfāéWAÿiZ9 8arE'Pd=E-?Y=G=8G؝c=؜͌p}MG@luCZfبof ƚ$͛6SZek}E#p "'X̀b4ūՀρ{9_`1&nk,G2X"0,H\VTYںex4u8>COUe9ڲpm**2Em6j-^;dF ј fz,Q<1& 7ņ0('QW.cF'lPD#g  <{ 0EET"RJh8y` ;f݉tf,3 Po|kقDP拚ܡeÓ<pl"`{9 >xAu{Ǒ2Un$`̦/"e.ɣĤ,$J$I:(!Kjܗĉ+HKޘ#Mq/u$c:",?#aN;ȝ-SUo I=Gd _i 795s<p-/mc`g#p2z {C@P(Nu@IP%,A%đLEy`6QlbAiv뜉JbP+0,gtgO1^DA  "}~)UVduizڅ5[mVlY(SDCF@YPK*|RA'ّ Barack Obama/tests/ifeq-0129.txtUT  PPux dV qUrJ,JLVOJMB@@93-J/\!2([΄@)z+ԼԜ`uyQfIIjBb 9 \׈WW/ߏ|?qALsRMPK)|RA2>7$Barack Obama/tests/if-1987.txtUT PPux dSk0~8*7c-A!p-֧aw|{޼!qGraN81<žK?QU>;6Bm\cs.@ʪZ1ARIL!aiw3MZOH(ӣ8rgk\"˓q (TҎO:tR~ njQhYnj-& 3@eiQAkb/AQS46g2SJQWj7#?=+g6hzPK(|RA4Barack Obama/tests/if-1818.txtUT PPux dV qUrJ,JLVOJMB @93J!$?WF(D/4-Ķ('5/9?% ([[ QAnqpuqu1=w@ 6P)$6PK |RAe-Barack Obama/tests/Pp%2Dmove%2Dindef-0001.txtUT  PPux dV qUrJ,JLVOJMB tsRu3RRjkvF:~~[X_TiYPZPY_T\PP_3JRs rڊkC 6>?*/}PK |RAZn!Barack Obama/tests/tmbox-0001.txtUT  PPux dR;k0+3d Q m4R' bDDvu8'@b wH tw r9bq +Fw N t$zl \LqHfJK<^Ow(gZ}ԛVPlcOO_OLp轌10DEk^lC(V9[n MBL3b-M٣#竘ʿ炍O00 NAM<]N;vPK)|RA}m#jBarack Obama/tests/if-1978.txtUT PPux dV qUrJ,JLVOJMBrfcNbp5Dm-E!. _NB l Bh6PK'|RA\Barack Obama/tests/if-1769.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (@5P &\ZTTXqzBpj^bIBX~IjBPjYjb\KuyQfIIjPT Bȇ!. _^傘BPK)|RAcV$Barack Obama/tests/if-2035.txtUT PPux dV qUrJ,JLVOJMB@@93J+14R@G"U`S\X\lTZZ\XdW] 4!JFFGMȺFL֦e`X`2ٮ1׈WW/ߏ|rf6?*E(mPK&|RA mBarack Obama/tests/if-1479.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IcCbL)!. _nₘBPK%|RAרBarack Obama/tests/if-1404.txtUT PPux dV qUrJ,JLVOJMB3Ӭ=sJsJccu<33uBlRsSm2J2tSJ22KRjljk.spuqu1=w"d~.T MPK%|RA"Barack Obama/tests/switch-0070.txtUT PPux dn0eLcRleJv% CPbvWF $$@rpSR#F]䮒.2ٙ$/eaTѐ͙7\d٭3׼˧f<<巰}57N}׵HFViT %N* wܺVh%- ˏL.B^$U}YAdf>ѱ\W y#HG ~`tH'ctx>3D[)mHeZ1V[o-b+'WqG$$"C&`-`|ϳ?Cw܅_6! ;>K #.p  T6BI#84"ru9U &Ο^1Xh\TUNA]0qf8D^Jv )+^FXYh'?C M-N`C|dD % ˆC2"Sb` r -ˈ&IdkԌ5LGʘ򵳂Ό80v85" 4=`3 M+Gӓ'LguȺ'3@?}衇qXnoͲNqSkC ,6[}XyfsJ,thΔ_T$kr<PU8\ 8~!{O`6q[c9!aA*=Dŧ͚'֥-s)EůgzJG,KQzE[8wwa/c)y2#` M}5.PeU6pο7/W߇RNBRpetxƒ|"-H(h0B̠7I$$WY7֖Ǚ "s\f#Jf>L W%Y=3>c$f&r$4j5Jq( }L@!Aԁ'<BR]{JJ 1/bo`Ǭ;,|Fv!q{ bV<>8o"[P|Q3۴lxr0?~OQl7'5"n8R:$LYY%yzD$iUG%>zCp288ytɰ;~G`:s)>XEdLGVg$LtbjmM8!ɵ\^!w&F=|Ta;ZNs6奭ylT4@,bdQ5NFOayo(R e( *š:8Q l@2S̒ڝ#h41.0{3QQIV5PXbT jfcnS`ÂH_JeWj\lVXg,&(iq||8x}ꤾ"Xd+a92m-qaEY%<+MIs,Beq "xp.F}b*Z4{"-qɃF vҠ&&}߃ghsݸl0^!!:dmǘkzS9;GM>`Lbwӑ>I$z~j.ǮxqyQb oPHwu'vw4̚NPQl0Ke{'Go0{vsyxn(  hO=9҇; (2_P/\ /K?/bRW A\K{/UWa.}Ed`ghoi/:K3@Yzju ȺV~b70JunJꓤ>3̼8Go)* c;{=J;i3dSkH0dm¡Ug%YhUDs]GYZ -w-?' ݖ ?w{AE:z p{@D"bksx^`v=Ycވ@[ 4:f5ŖnCaV*qƽ6A/n,n޼#tR~tjͪ@4¦Sq qw4[X/.S8D9w 0MK*ml.{ iPK!|RAAcBarack Obama/tests/if-0046.txtUT  PPux dM 0 as?zt VC:n$¶nUT8о4O 5T# +Qb=:d3̈́TWɱ T XQ4EA:6tXӞ; Z/9*ݩufRC+C{T *zt%\Fbs=y&3RzC'S ?PEB&kTA4M`Һb  N$QŐk♱]D퐇밠ĵE\)ɝ [_= gεO]VEgNrH8qZU$ mCQ 7^2.I h,:T{rѪK(Ћ2iޢ|18SZm{^>X63.?sk./PK.|RAL`X"Barack Obama/tests/switch-0121.txtUT (PPux dV qUrJ,JLVOJMB3K3RSJjK,[uuugS!#?'%((@@^rJjZbiN-4y5@ϼ$Z. y5"9p #?\XBXZPK!|RAo:"Barack Obama/tests/switch-0031.txtUT  PPux dQ 0+ Z mĔRM4؞sLfl;S6,5=䠁0{:_<:jI(%E5;t ԁ'}Nֲ/-B_& Q7 FBL ܌}F'1ib r: gqtJAML3}O|PK%|RA>mBarack Obama/tests/if-1471.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#cbL)!. _nₘBPK&|RA@h#Barack Obama/tests/rellink-0002.txtUT PPux dR;k@ +Dv̞ sC u `<ȵ;s: fhS1T7H )UٙZ1|`K1Qft d-Lq(Bϖ`1Z&Z9;6rlQ;ȰFNW{8-[rB <4?xrFO:7z;MQ߳'i˯p oq~)`Gr}PlgzOPK!|RA4+EBarack Obama/tests/if-0274.txtUT PPux dߊ@nbLtSX/&hӍgdf8}a,jEmL2s;dW^^H` 3~8;πhZGa X=T}Hk:*!p: P!o <9B| #Y ^3ӂ)V ѶT[=>5ɖ֯@q3'7O'ϖ-+"]n N};JbZX"60.ր[MgO-ClMycEFa& im/`tAg2-J݆-hjt(" Y{I/v={~-%2a;L#1,Ex K͚UOT8%ݑӣ6F{Be)& 듒7PK&|RAs|bj{%Barack Obama/tests/namespace-0026.txtUT PPux dV qUrJ,JLVOJMB}]]R3SR+b8{.~.T 'PK*|RA["0Barack Obama/tests/Citation%2Fmake link-0005.txtUT  PPux dV qUrJ,JLVOJMB3KK2sSr2`FжFV]&/<3;SA.:+\ YP_ZP^[ vkDs Gӹu %~.TKPK'|RAVv^&Barack Obama/tests/wikisource-0001.txtUT PPux dOO0oƁL/tK4YZgCגmAIC_y8!gPcU-EȦYz.3(ܨwN$33.an`&}KˇjWL,VA-И8hET70- \ .&cwA4e:m:0Jp =DC^j+VB| iГW-6,H|]B5jh^EwyAGac$wD:{$?A^ЀҼ@(Xp-Ȅ@;2F0rvA0drCstivZJZRpKx}:}2)$eӐ^BGN7}cBI-u96RY{}-PK4|RAKE! Barack Obama/tests/ifeq-0266.txtUT 3PPux dV qUrJ,JLVOJMB3R -M ,Mj%%9E%Ũ5 Ԋ"+CmZ !U|b8{%.K~.T yPK!|RA@+bs&Barack Obama/tests/titleparts-0002.txtUT  PPux dV qUrJ,JLVOJMBK2KrR J11b8{o5D?*DPK%|RA'GBarack Obama/tests/if-1423.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkss3KJRS J,׈WW/ߏ|qqAsR(PK-|RAEy#Barack Obama/tests/s%2Dbef-0002.txtUT &PPux dQK0W Veo| ha&Djm=E:00| J9l"sd [%$a^T @#keB:ac=jl`_;|tڦ{ F#!:I&R m]lϲ[|vˑQԵŮd Ãkoo=紹 Y7#xzG)r|Ga*8yТg~ uo&@>=alI]J$)g0E+VJU']媑BZhIֺO\ %5,-\{n[$MIF~w0Ł^ jHOb&"EiBE$h>@I`fѩ-o*"ZEt9'e=`S;ۈGOuPK!|RA^>"Barack Obama/tests/switch-0033.txtUT  PPux dTak0_q$0M~q@PXB<6pύ-i&,Mv=a82<k`+2m}U)vT.)4;k ~.dLjP׋^7!,y{&f֖)S9C6I`$Ю= !Wei;>NLu|+mi/z ;+-KWl} އhlګaD\ PK)|RA:lyBarack Obama/tests/if-1986.txtUT PPux dV qUrJ,JLVOJMB3ӬB2RR"B2sSkj 255@5"9p #\\J@PK&|RAD,oFmBarack Obama/tests/if-1484.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝Ic3bL)!. _nₘBPK)|RAc/dBarack Obama/tests/if-1998.txtUT PPux dSQk0~8|Mױ)}aVB,5\7mJA: L_~O?aWKu0^Ũ`#dJJe9iDA4i ­kRifDܓ"ED$"~}pc- \wYg38gqܱkaфO^FUf2`j?\gn5m)\ԦaN!j&_PK)|RA%Barack Obama/tests/urlencode-0026.txtUT PPux dV qUrJ,JLVOJMBKrRSR2JJ *K2sSs , LrRs3SRrRSKbEz%9`F:~~仓 $UcGU#7 BsP4 e`"LAJ@'e8υJt"PK%|RA7Barack Obama/tests/if-1414.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk\sSK2 JR J8׈WW/ߏ|WrqAsRXPK!|RA!QBarack Obama/tests/if-0244.txtUT PPux dSQk0~8t2*̓c DFF kqSwSab%w] O%3w'8N`ѧq?F(/)[xکzyЁevCK)6$p+~1` t;G iu=.8Au(x[(QLp( oclp۫T* (BT_EՓ-GN0Fah?1 /8qPK!|RABarack Obama/tests/if-0121.txtUT  PPux dk z+ Rm<|Or*riAuLw(= ɷ\vđ5^#pj}j*#^:uu"7 T4Z43V#4C`l/ӯTxIfT@^{C\nr_?h ːSzO3eJAl~z'uB"RPK(|RAp.}Barack Obama/tests/if-1896.txtUT PPux dV qUrJ,JLVOJMB3ӬK2sK4P* =5ec#k @rpuqu1=wD?*"DPK=RAVII* 4GBarack Obama/tests/United States presidential election%2C 2012-0001.txtUT 6PPux d[mo8_Ap4iNCޚ4mRF@KԑSz ˶؉ 4䐜gfH on_*=Zw'݋f7 cM" 0)~%Y>v>}}Bj#CzL :8պYt4D1f} j7?<KD}߶D]哢gQ3m'9fvL߁$ eBZjjd,QT`BI"L9 ړw 3veN4|6 RLqDq#v0U$dqޘq<Տ{.@cekf0MLiX@Id(ўzq6VCcq^sX }q..~i]X۷vYCfWߡ_qx[Y#Vb *&cv^gqu;޳dm(TEF R 50) NR]} P&0Ceܸ M0Uah!0s > lkK@h.i.<2[ f٥ E#0YJO2<Ңʌw&ck[[TG3)FV*hH~k+0 1tT\=p4Pǖ-<E_* !ׄLe_I9K;mp^) v. T7%ga>"ScÅ L|O)!$!\jU+'$びgb^72vnkkpZi c1 ,eV #K*{w,orJ_K ޺4"lDX^4 : ( S| 1B![1i3/ַ:^M>rH4yQ3vHG܁\tb\Wl ]Pj\"=gI|Z6mg(%:aC =V{u69b}q((v-4 a!I~!l]!Xɶ| M4ݖOI˫7s㽱5]Pȵ=nsB7IS!"yUC+`\V a-F6~D*CrKC.Q Wp!ſЀR# @pYA,qտk~R$)kMzI՘\@(gY)kг?S5aQN?&7'En&7ޙ4zaax7sԖH2WU[Zy2aD rfiv?0i,BWVo9>PV~m"̝2 F+X(S#I&n@ ܶlZdSC̙)9`kLK\eUry4MsP̀4=ʇ,SL8j;ڠ/uf%o0L|ʨvU#e>eTɩb(HI1S[]*}qr)Yc \u㊕T)aƟ:*I EҡPE4k-h2N8|ǶFjK XVe6q:Ώ9G{Q톴~a(wƙhom=ɉUN)+_;*lvG_b\1=[96x4rF*CC*{?Mf| ߔJ@}ba#QbP~hmCqW״*D (G +$Iuf1fuS(Aka-(ÕוP3%udo(olPs:bVzr׬T$SAUKޔm,9GCVBVJb!|;H[z[hЕQbNT~.2&|P1Oc=f7kZ i-FI_&xBū칽޹S!삿\j %e*&l+'d8ſc|@-/*u̷Lu՝I`rmc~qCosfa_TQ6Xmo&47,G%{ w@؟Hȥ#dgn(opn7fPK(|RA"Barack Obama/tests/switch-0092.txtUT PPux d 0 }/m" ׃ jױv0e!B(=`5#"RtBqqW<'؀cr{^6`Z0 TK)Ռ"Vٴ2T\e-uhvpyWun:|kaCDʼ`ЈdD7PK0|RAjT Barack Obama/tests/ifeq-0188.txtUT ,PPux dj0 ~ A_`|H[3 [ꤍY>䔵l4"K?Y9AԣOal'zR%B *ff_%}Ktm{7^I&=ͷ郐Z d zm|FW9j+uc8iI1ss K`Dbݝ衶qE9 NEGBarack Obama/tests/if-0101.txtUT  PPux dOk0Y zYQi:c0;ԕT:}iorϳx\{P;1ϸtfEup08R[\yq{4#w/ē {]Y=B̲J[. g]-JƭtN! 1 ZJP8'!xI<ЯSPK!|RA,hgn Barack Obama/tests/expr-0002.txtUT  PPux dV qUrJ,JLVOJMBS+  4 M5 jkVF:~~eh1υJA4PK&|RA ܶ5 Barack Obama/tests/Main-0003.txtUT PPux d 0<p/`kƂ))5B `}֡,wG+@&ġd[@^@Ҡe6I!껧IйlNsc$Й^P3bap1zlvQcB^` `Jw'%[]MImUkǝy][:Id91hܷJvUH/t< PK%|RANK%Barack Obama/tests/H%3Atitle-0008.txtUT PPux dV qUrJ,JLVOJMB=J2KrRk32Tf:UQ[ 5"9p #^.<Jh6*)TēRRtKJs *R% }vP)PK%|RAfV% Barack Obama/tests/ifeq-0051.txtUT PPux dŒAK0D"AXAgs(hW\C>iX6tԓ sxɃߏJs fP)YV.A_ &y&}~5;>qURNpyn5BV=aشءJAvh\ Ym4ZH5(uE7qui+loKc9#T>b%,eQTF8}Yf쉳xQIFM[S#'^PK1|RA@;&Z-"Barack Obama/tests/navbox-0002.txtUT .PPux dZRI"uИUS#\⏁)Al^zfwaaႫ\VEa+h>Um=OHҽ'9 7[VZk=o80 PLj9L3Emh*$m mQ\]MJx$Ĉ ]e~( qC@OWԱ c&v:a_0  ?\"j8e cGĵb'ONOi_퍜{ ?4ҏO;7 pˡO=gԅG%Q6pCm6"JSI<}|TӐ#V.s:\O,8-N]L.yg:5L FshnK8jrXN7ުr GRSߧp.4ֽp6`+2Y{I}ø(hޱk5JmM'֡R搝HS4Y&qJ~uBl$PM%1䖺a&Q敄Ku63KTŠӉ呞u!4w8D zZ&@`JDG2*mh߱NR)ڢ}ύ*tgS黔1*$rdhmGv '.XF'GW-Jb8,uF0mz3ٝ"Ũ01{DF`?:%]jX٢?CYoS9:/Rp*qC{uNo`BN&>W62>uHݒH7di*RI'v#&ix] uXreK+D nňb4赐j*:#Ihײods[6=qD6exХC[76vQe^;f+K8ϼ{[';s--m#zidCYQwoവ=JiH E0])@87eǡ(z6xi$y3W8j,X H6CL> ۆ|(ѳ_KhzJH?/Nq#3 _>YΗ~ X_T̥V .ֽƳWڌe'IG+f5ԡ23G+k$q\L`瞍Yz~KUm`0 HV%"5R{'kFdZ&E ] Ysx2x]ʘ/|Rs2 (T~˻K9PH;:.N0vFcPTXyftC@srVSukAy4h;ƪ(A]M$*!$ V4A١nUQt&)˪CmkT(\Mwk:etV`3_O~ϲf=#~PK |RA?mnxBarack Obama/tests/if-0005.txtUT  PPux dV qUrJ,JLVOJMB3ӬjԔKJ2s"%Vn Y: 5@5"9p #~.~.T $PK&|RA & Barack Obama/tests/Main-0002.txtUT PPux d 0<p/`kƂ pMSQCG)w1VCͶ(r@-20Barack Obama/tests/Citation%2Fmake link-0004.txtUT PPux d= 0= U3 Hh9&F;Ԃ8r#r>FjԩjExؾHB<:jUjЖz/ ƺv6رrg&Y[,-acQT z9 >@@AOMw.JuDn&$w>h'^_PK!|RAKMBarack Obama/tests/if-0122.txtUT  PPux dAK1VP9jQζ(-wIֹ%Fs2Oϰ{4GxL/J[!Ƽ& l.-)榵.k=$[^(NlFP!taÏWOUT|˼>RQ#_#>| f2eooc0SP V߇XH+#?PK%|RAv6o\"Barack Obama/tests/switch-0052.txtUT PPux dM0@//,x誇ʚ0ڴcˢMQ4EL/D6ţm}AѸܘ R7du 3 !#ZSJY -?ZyH{)( Q܀Ξ Tka4=+8VRK1.!h֮kӜCIWxG:$vU=BP!>^ŽV|~i& CmσMAX[4*0m(&-|4=Pe}XTlGGL~tGe:6ba9˭LVdW]eLPK-|RAblz%Barack Obama/tests/safesubst-0027.txtUT &PPux dV qUrJ,JLVOJMBRKK3Ӭ kJu3stSjkF:~~[7b h4PK%|RA0Barack Obama/tests/br separated entries-0001.txtUT PPux d_o0M tT m: $`G l!{S0`|hAgt%ia> ٟgHhס@r F CQFxo3=34.d2pI!P^m$*(2q0&kVwםU6 "a4$ ʼ_. Np;<$OuvpۯUJyW@Dt^7/UHɡíjtG"Sř<{d73*ShbcjBB#*DVNo,K4ԈsHJ%N+*"QRzk;"X PBC#yi|>gEV,Pj/eBOTw ml_Q{f8M:X4"oX z`e[-sܪijJSO>h'2A5?SLSPK!|RAZ?!"Barack Obama/tests/switch-0034.txtUT  PPux dRMK@WxI(lsvMAdkD ݝ  7onxdr!o{!>Zer倝3)D$I6aE2F(ulHTre "b*+Y_`BB#ym; @ֺjtk2DLU[o80I/Yh*[L+ln虲-R{G`<Lƶt0ex9Mx@> Gv5{q#,Z- |WiG~PK&|RA&1mBarack Obama/tests/if-1480.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝Ic#bL)!. _nₘBPK-|RA9lN*Barack Obama/tests/sec link image-0001.txtUT %PPux dV qUrJ,JLVOJMBSr22sSkssk R3sS3]Q[ vkDs Ggfg榦d&xXW?*6%PK!|RA;_f#Barack Obama/tests/padleft-0005.txtUT  PPux dV qUrJ,JLVOJMB SrRJLjj jkVF:~~e`1υJA4PK(|RA+%Barack Obama/tests/urlencode-0010.txtUT PPux dV qUrJ,JLVOJMBKrRSR2JJ rA^r~~f~m-!. _YjjD2S @& ~.T cPK!|RA{,GBarack Obama/tests/if-0099.txtUT  PPux dRMk@*(49`񰛬64q"?/$ڋ-̼f'4ǀNsg7:lq?(>!ef.1.MT,twh5 RWZ+bgs&Bjz@YJVvJf,@\1n _禦 \b[{ZriiI,{zAEU)7d,`ɹ(',Ehmݲk b<;sQZNs2EǓI(Ղct Y#/ GpE 5/OPK*|RA|u"Barack Obama/tests/switch-0095.txtUT  PPux dV qUrJ,JLVOJMB3K3F H71 #E(?71*_"^"֥`\adL.$TrJjZbiNmJjrfnbNm-!. _5b b h0PK'|RA}ܵBarack Obama/tests/if-1783.txtUT PPux dU[o0~WD Df`ȃemɲ]lb3 BU@dҴ]ZSY}?)zh M8c]]~q8(&w?CosDBëM^FF RMjݎۖ! b'3$BSp8PӄvĻ(]qL|c.*Os|3aဋqnο|Vۜ;'b{J)"JlK4AUdk&XO[ eS7`omd&J5xPnal B,*\7v$GtpvQ.5^[ YE~mZ+̞kNq%AP%>׽$Q)59 1E%*.5 fם*;]m<i=N`dr{#PK.|RAPc #Barack Obama/tests/s%2Daft-0004.txtUT (PPux dM 0 Mׁ=: ڵpvV8KIؚBF4 ~ 11뀀i~tOeHk 1Ͳä]0lYpLx Ε`0Umo #@rs}-m*0(lG>V*Ng7QG?&A;&=ǛyPK'|RA@ Barack Obama/tests/if-1770.txtUT PPux dVQk0~W![0 S![3&vl4hbmGa܇iz;c~ϰfrt"h:4]EEٚFelO8Έ-!! 1Y#YZs`@>;:)ƀ2ryuG4y2yaYF!^b8*[EBbxsjv}!8 )VCӝ&}d6=cG2"h)֝¥Aqi+p 1@(GJ. FTspڇ G"1 eQA z}'gNb=.i\߫Yd#EdMEwL3Zh[G?PK!|RAx)$Barack Obama/tests/top icon-0001.txtUT  PPux dAk1+k롗VWڵ`0D&!Vqږzh}o&3al|rXK(EXab>/^HGF'5P+J_Rb:)~6Hox7+a6~O@!c9@F(_xߢm* 4* h+lq.bZ>;P|Qcl2-N' ځ%Y*[L-hYB{V2 $hcZ#$Xe޴?I'΍ _bѻߐ шPK0|RAV0#"Barack Obama/tests/Navbox-0002.txtUT +PPux dZN#GSQư 7O&40 xj!(wKtWmAq馈AԀKN'eRxumxrp/ 恫7eM m B 5A@NFt'e<[)q AlDǟNZw 6!;,)Dɖuaj'h (B )iTqهYk G ]~/p~s#ȕa_7=PK&|RA|'#Barack Obama/tests/Rellink-0002.txtUT PPux d @> xW܃@fy/Gᕺc% ڭ1Ⲓ4AXdjǽކ(CL9T0JǬ!"ts"',ƻ4AD <[BTu+^<LaH4qQ~h2Ȏ&SIt)5g3XF~DIM֪_Fv$׬`5*+79oF$AHt&3 ".xXqU:3X,Y BxĂ&pa &L!w᧌4NoЬ -hUJz~vZCߧTrIÊ3X1 Z\SK==F: LpDaV@Vd.R .]7ۍu 2ۀ(7&]'ʕ-xK/>]Hp*⑐P烏"4U/Ȁg?P֕n"0TQ\>Z7 DޖH7>Bw:zrvddj/2oO>SolKPlx2}ز:M?"{}ꪀՏf>TYW®-t\x܀&䖒(!$$=TvmAoth;Aa'khci wmɃ@yt.[Ue Yo7\Eb%մC~bVЄa3@/:.~ *0H=ѯ8_{5psYp.hlF ǙN+,5zNGP1:I)@hxkyRT߾eC޻B({>ubUTn{0Ť}dnMv%ya~eCemVbțBI]u13`\_^-#ְsӤVNRkޝ~ RQ@L^}z iW; p6 bC{3epj+2pQ(P){Bsr|"`~,~w4E{3V#5O5뭯:&D ]*ݎ EqWozL2N&+؝]W-o94Nm‚vHO 0e*}lX2'zls=}Df2pJ=ޖJװṆAb˫{D}|*_ixpz<0 lynx ԱIna$)9bph[f%*m%;bNK?OTq|]'0|UռW ]*;kshSu=-_.9v.kZ#}c PK&|RA%Barack Obama/tests/namespace-0024.txtUT PPux dV qUrJ,JLVOJMB}]]B2KRSKKR R3SRJ2sRsRK2t ,jkqpuqu1=wD?*DPK!|RA* Barack Obama/tests/ifeq-0027.txtUT  PPux dV qUrJ,JLVOJMB3R j*SLJPA%'U*d$']Y\RP`[[ y5"9p #߇\\ @PK+|RAB[8]m%Barack Obama/tests/urlencode-0050.txtUT "PPux dV qUrJ,JLVOJMBKrRSR 6ւmqpuqu1=ȷ~.T PK4|RAnsÙdr'Barack Obama/tests/defaultsort-0001.txtUT 3PPux dV qUrJ,JLVOJMB]\C}BB(@쬭b8{o1H?*HPK!|RA3Barack Obama/tests/if-0040.txtUT  PPux dMO@ 12&lL0u X ,x71ҧM6o D*9{%"$+*z)b36~];omU94ѭ+2Ivwwף`]a;@ŦBrʶF_$fNjPYF9h7y Z$A6u.}V !˴`67B?PK*|RAl95"Barack Obama/tests/switch-0097.txtUT  PPux dX]o6}ϯZ"gZ^q\̅?] ckD$7?K:ؒ&pEs?C2h:-2q\PEٔCwA p/׹ )oY21%kbQge<.ͣKcC&1Zy\54֝Su =+++D1)>/f&aB9ŕc|oj jbqK%j,t@0m)o<.˰h#U1u:0O.pʋRPQuG4(%klԮK$&,aniYrcA2k0Es=~i#[qtHSB=\V%0}o4ԐUʚ`7;̓b1--ȤYbEwّ Yڝa9 )cLOPX,\͵RT(/C5P;s]kьքsO=*#c(jv!r_\ud6 SrM6h "ޘM2q$ѮWvճ KyTU۾G]{"I=c|cw?I5k2mVUNBm]&Mj !!>Z,vj\6*5,G  9-zt{z8h{Xmg+PE0M_UjgH>]֥ivOS'uHPK%|RA#"Barack Obama/tests/switch-0065.txtUT PPux dQj0)Bcn LBhK2:1a>\}pI3Zb{iu64@^}G_pFp!4'aC4ljJȅSZiQȹaxm<(m^ v&`e:ڂJRcV0WqgZ=nߥ0raAiPc57JJu2̗J3oJej 094ng(R.[/C_PK'|RAnBarack Obama/tests/if-1781.txtUT PPux dV qUrJ,JLVOJMB`@93J/δч$`Z\#\C\]@ G`O?ǥ1υJ4PK(|RAO_߀Barack Obama/tests/if-1887.txtUT PPux dV qUrJ,JLVOJMB@93JʮIԔ5l33lLM EpZMF@vpuqu1=>D?*DPK!|RA ,Barack Obama/tests/category handler-0001.txtUT  PPux dV qUrJ,JLVOJMBKR*2RrRjr3lkV % )%y%ɩű@յ`gF:~~仏 b h"PK'|RAD 1 Barack Obama/tests/ifeq-0114.txtUT PPux dA @ł= .ʬ̠KpN{gz)!o#XQiCl;w>SA,$Hn@ %|smK;78n,[ӑ.fG(F&=!aT5L@1¹"IdeZ.V=^E}PK'|RA:0NBarack Obama/tests/if-1696.txtUT PPux dQj0Wq3f*8xHj )p XDP(xBX U1lG"+{-J~r:1h‡sw53| }tZܣ_w!29H)v59{>Z01MBhIb-W뱬cqJRrקPK-|RAq*v!3Barack Obama/tests/sec link%2Frelative url-0005.txtUT %PPux d@ {>ܠr 7c࢓ץV=Yi81J̑f9'ffZf i ]$=*%3JY~=~{1ZW0sΠBzat4,N4BJ e.P]LrNߦEu^PK)|RAz> DBarack Obama/tests/if-2019.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP*./*rq!. _䂘BPK'|RA҃mBarack Obama/tests/if-1785.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (&&U*(X@@)! 20IҢJd=5ec#k!FAiRNfqFj&B0@ k׈WW/ߏ@炘B4PK!|RA 9Barack Obama/tests/Infobox officeholder%2FOffice-0001.txtUT  PPux dVmO0_uؤ1XT{rkjؕ0*N[4!"!sw{z"M32:}q_rB5eeN+Xjt<.F/!ITꖨ3)Q޺I1T"rFA-uǡN] ơ^BGhSchdU]҂rp6Xd3*|Sh-r[dpp-f9r%'])V\bNRy AS%/w^xbl[yI\@ɍ! PEv1Y\ގwgBEWxND.%f3gJqjM_$#I@HHk3 %P+ivwldxqTd+-9Ղ7"=h(1g}K ??\UL`PpYk+6y VZDj?$)`3Sh)xf :-hxnK7@û!kL,^_)FoS$nvÑ2YU9qF; \S?;y bZޮfތ~~ GSg_\]^<&{{C9i_H{9nR6)61>}rM*x) z!/#HͤG" 7^C666\1b? CAN{Rt;Ը--yN0dh}K0N'p AcԏFrZ />{ټ8}*p6PK |RA?oBarack Obama/tests/if-0013.txtUT  PPux dV qUrJ,JLVOJMB3Ӭj3sSkԔ+̝IxQfzF bL@L8*d84TTԂ@(!. _1υJQ4PK(|RACUBarack Obama/tests/if-1917.txtUT PPux dTKk0W rZl]'!M a!䠵eG-ee4XUrhJc4 @ Ys"I$'/:Uք%.XʞN~ΦIhި,gvYBgbz4•"V ŀziIeZ  ;v Z`Mm&f^׋ɞB^~l+uk'RP(RI6;KzL^nWqi${ΎD 4q)>5u`5u'|po]@ZFCC P)T\`ex 8 XrHa:5ʩdc,-sofNDWKoN=$FΆFp^%\L$+#f?5*a(>ܛYE,_\q PK!|RAw("Barack Obama/tests/switch-0032.txtUT  PPux dn0<ŭ2v(h! ڀDJ(M|C,UwD:5(>[9ڲgC4 K O 0Ew*X׫]] c4j `9QLhˁxdOӇYFxYh)42ÔCAB.ԐtBEǼvvx Nb !U+R@dB]1%EW؊;Ty~htS[c&*sPI G01 ^ ^  PB`~~; 环<6l_$끾NPK!|RA<Barack Obama/tests/if-0380.txtUT PPux dj0 z ; y5>t8AGw; mdX/2(2;K]k`^; *}b36'svY:Sj}?GRf٦dK;l+_U)c +ߌ{:bj;@[k>($7t$e!v'  u^d xWBBma Wu@}! d$R6Fys4=asc9|Å!k=i겣uAfH*znf I"Զ TlApb˹4"?Bf"wW/^blb޲A}R}7|w^ˑY?PK/|RALJ) Barack Obama/tests/Icon-0003.txtUT *PPux dV qUrJ,JLVOJMB=jJsjkF:~~햙j@*'U,];Q14+˶υJA tPK2|RAH(Barack Obama/tests/talkpagename-0004.txtUT /PPux dV qUrJ,JLVOJMBC}]}]BRs rKRB2KRSKb̔ԼԜ<#Z\#\C\]@ G`O?]sBIbN6N8υJ!tPK'|RA7 Barack Obama/tests/Main-0011.txtUT PPux d 0< D5`8`wol]]' cp(q ssJr! 2)jN`|vɣ5"3?'Ǒy2Fۖ[8L6 :ge/XuaNP{滕ʒN A}PK |RAK_f$Barack Obama/tests/pagetype-0001.txtUT  PPux dV qUrJ,JLVOJMB SK* RkkF:~~[ÕXT 1υJA4PK'|RAK$Barack Obama/tests/See also-0004.txtUT PPux d͊0yxZ)Ca v1$\Tw_@:acASA#Fm^Pȴ+v#\vMp-Fv \cO`9RUHwd#2lb>ߟ6ZmdUVž|Zoh 'agp9dؐDhPK娢MV-#=>PK0|RA Barack Obama/tests/ifeq-0190.txtUT ,PPux dV qUrJ,JLVOJMB3R j}]]BRs rKRCR3SRJjk&o T ptwmnR F:~~ +!P)PK-|RA. Barack Obama/tests/ifeq-0145.txtUT %PPux dV qUrJ,JLVOJMB3R hĒJ ܂xBiqf^B~Rq~NjIBm@FQqMNuukmmllm-ح!. _悘BPK&|RAPcqBarack Obama/tests/if-1594.txtUT PPux dV qUrJ,JLVOJMB3Ӭjtj RjkָF:~~7b Bh4PK%|RA3mBarack Obama/tests/if-1477.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#KbL)!. _nₘBPK)|RA2 bBarack Obama/tests/if-1993.txtUT PPux dV qUrJ,JLVOJMBPrfX * q)())///˫,M-K7207070//ILIIMM,.VTe`5֢ b;D JU!. _ɋRB,tPK+|RA>Mu%Barack Obama/tests/urlencode-0045.txtUT !PPux dV qUrJ,JLVOJMBKrRSRs3KS= Rsr2cckkF:~~什 jXjDK\@KPK&|RA[E/fBarack Obama/tests/if-1593.txtUT PPux dRj0+sO[@CA"GRU >=.0Vq/Tư=<G ~X!MFeݠŨ -F׎"Rޫy]yfĔ( %H)^ F*;"@39F 903ealZR*~o;7oB[z۬9PK'|RA,"Barack Obama/tests/switch-0091.txtUT PPux dQ 0 ) Is0N\x]NJAۺe!/`|,gkx Kn8į`^ l X DD{8 Q%k_:f9\5RsQ`6=Z8y GiȎ~|ss{X$e$ e^(I~%PK,|RAwE7lw%Barack Obama/tests/urlencode-0053.txtUT #PPux dV qUrJ,JLVOJMBKrRSR --Mu Ljk6F:~~[2]Yd>t?*tPK/|RAi+σ!Barack Obama/tests/small-0010.txtUT )PPux dV qUrJ,JLVOJMBssrj4 KS5kkF:~~eS\P\RjW[YjeajdFb h=PK=RAd#Barack Obama/tests/fullurl-0002.txtUT 6PPux dV qUrJ,JLVOJMBJsrJrBRs rKR-IL.ϳMM,[b8{+}Ĝ}̒T[4ăS\@PK)|RA%Barack Obama/tests/cite news-0001.txtUT PPux dT]O0}ﯰZ6*-T@ *PSǩliEGX { l\\kc|xj'DdHNjXxp9ƟPC)WR Ȳ#zt 3-ӢVh&+5aY_* "f(l̓,KÜ)56Xc))D3h.wD45k5Vr1!@ɼJ|1wŠ$u83"4+4Axs~5]krJ8JL{ZYh^ilQ<8O | ,vAoR{.1/J:(-:mJ0s<qh{or@O`wmk9SXCXo[GgW^9#A e”gE/2Zi@'0m}*ff`"MX?~eN=:=ǯ=v[m-ŷ8aI*գzjEf۸-Ts}]cUz?;5byh3Ÿ6M, Q#iLM!$(c]#+WTKcaJ唑eC5v_KuR}/PK%|RA[ǂ mBarack Obama/tests/if-1473.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#SbL)!. _nₘBPK |RAӎx9 Barack Obama/tests/ifeq-0004.txtUT  PPux dV qUrJ,JLVOJMB3R Ss3k2RRjjbV5jF֥y%9 @T+7,ȚZ0;5"9p #U\\t@PK%|RAK$Barack Obama/tests/filepath-0001.txtUT PPux dV qUrJ,JLVOJMB2sR K2\tKu!zf邭OO[b8{ +}҂ԔLuE ^Wooaߑ'P)NPK |RA=@0!Barack Obama/tests/fmbox-0001.txtUT  PPux dUn0 +8[/maإ k05E%Ddɐn%]4Xd[&{,2y '\.D#ѯI1:{`HfaVA\HG a;iY?\cX_jܜkpYS7c$0o_}8?M+k:yݛ4)ChͫHRΛΓVPڦYjբTF±Rf \__|VF9 S@? G90oU2 F(^lc8kbx!elJM1NνP,Ps5=];i>?iՐPu 6Sk eoP_uA6ڥmLo,:*Y١[%MKީ(ɯ<:Ft!xNr(B0G0< T50TkGrp+ 4mrNJ$QfH!!Ky h4+~;a4 )=lEaxe^dQGØf{~PK'|RARlzq|Barack Obama/tests/if-1745.txtUT PPux dV qUrJ,JLVOJMB3Ӭj3K V+%*嗤+&ւvpuqu1=wD?*DPK!|RADSBarack Obama/tests/if-0357.txtUT PPux dSN0+Tj/BA& 5HHUN@ljKȗ&@Bimggg֞70vKIw13" n0AZ.kǔ>O,e.NX!&Zzmqur'fRqR$]Hy턢.KdsN&hh'ZwbMW8ۇӒ vGH0 Bxvyhb©9C9MX) 3+PӬ@|UXL܏z*ht%7}g9f9% .!|*ufU9 ~SoK)bpSǼYuUKE0 =L/׵,Su5}pUp{wòu՗gq$?wҩ ;^OPK!|RAf0Barack Obama/tests/if-0272.txtUT PPux dj0g$7u%86d/2V!xޜ )_DC߰O2NKJ/dC4~0N1/dF,xE( ,km 79-lIg1f;_NX!6)h \;f<܉lEI!Ea7()+-'sjl:jl{1 /*9ݞaIAjS!rP4a悦2vj.j'jb,SiZv3uÜԘZW>V]JQSs >lcedI1}x}p臣]`Yjwd+^yk:Ҧ!]2;B9uDS?PK!|RA,&Barack Obama/tests/if-0358.txtUT PPux dQMo0 WdE*uvJV:&M;j:4UHߗ~~zlB0[wI@\o^rD{F4b=L@Hk'Qu2#Sdlh}4iU{.ku)`'b<^;1OA(XkQ$u>U)B xN$y?lna^ ؙe ;S~nәƢ]C]oD??J(^m 2 {zPK-|RA4*#Barack Obama/tests/ifexist-0004.txtUT &PPux dj0 ~ A %t!x09:XHKqDXB|Hw5`J͖ŀOCF,qeOt<Á:9cxĺ+^oTvS0Wf^~Ǧk/͎Ї:2aG%C93uL8%EW^?]&rW4s&/]*VPK&|RAg~Barack Obama/tests/if-1537.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i\I)r設媭{5"9p #g\\@PK0|RAGu/Q Barack Obama/tests/ifeq-0193.txtUT ,PPux dV qUrJ,JLVOJMB3R j r3jl K*sRmrK23J3SJ2Rs mAjjkrpuqu1=wD?*!DPK-|RAa^jBarack Obama/tests/lc-0051.txtUT %PPux dV qUrJ,JLVOJMBsssjk6F:~~[5b h0PK%|RA$Barack Obama/tests/if-1410.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkK2%\U[ vkDs G FP)FPK(|RA،QBarack Obama/tests/if-1816.txtUT PPux dV qUrJ,JLVOJMB`@93J!<#bzBpj^bIBX~IjBPjYjbByZQZ^zj^QmR~~vfIj.X($$'UMź('5/9?%Պѵ`8@(]#\C\]@ G`O? (؂< y6`okCi[\xPK+|RAFjF)Barack Obama/tests/hide in print-0003.txtUT "PPux d 07(JdBk0hӒ֩*7qQ@2>Dba`$_r%rCi X&Vsk[8e3 'ƷL\Kr(Mjx8Dq`a0fڴuݳ=ZcXq/zwPK%|RAÆBarack Obama/tests/if-1433.txtUT PPux dA @W<y=A{ê,mksz8K!n+>u2qRi ~h4k*dR+iV}%RO3J =[ dow3e.-؊"E/ʕʳ|H[j*'|&[hTsd!sJZv- Ȁ=PK%|RAz!PBarack Obama/tests/if-1413.txtUT PPux dV qUrJ,JLVOJMB3Ӭ}33RsrR!AIyy 6Ź99vF&hCkK*sRmJR+Jts2rRJkk KS55 |j 1J6!. _ŅC5HGjt!^sRzPK%|RA1`"Barack Obama/tests/switch-0073.txtUT PPux dn0eLcRleJv% CPbvWF $$@rpSR#F]䮒.2ٙ$/eaTѐ͙7\d٭3׼˧f<<巰}5Z8N}׵HFViT %N* wܺVh%- ˏL.B^$U}YAdf>ѱ\W y#HG ~`tH'ctx>3D[)mHeZ1V[o-b+'Wq%K$#$"D&e5#YzVg_Rt#đA}t'G7Ct]{}0Av}"pEPva#p8c8T(iUDB1*+M*?) 0Ό#ȋCî9zc}H=k= r!)" l(!e#b 1ba9VTeDl$5bFy[]eL[L[YAQV gF;qDK0ɀ&Wd}E3ȺQdӾ }CqI8s 77ttfY8l!}l QaIҼWo`9SW4 gʀJ*y59 (HÁk_~`?~Q'-TbðqSXhhSfyhRʔR =#VQZh(G"-wݱĀv& r ؿSTN` !.r=%O1APc֝HKgB@?#= 1aƷv-(LemZ^6<_q n'q( d?ތ]w)SvM l,Ra><>uR_ ,2]rѰ RZr{ɖ8ְ &9!b Ǹ[BNYGFQ1 cXR=T8aA#G;_iAz>Sm9[tF6v /א]c5o)^Nʝ 0&H $Nky@R=?5c8pѼp7\ ;;pQ;f'lO6ץ½[qs={Fv(+N|-/ڥ} [CI#1doE~'z*(P=kDMNZ[,?#v Jq|LH7PK%|RAdnBarack Obama/tests/if-1431.txtUT PPux dV qUrJ,JLVOJMB3Ӭ-Q(LK,)-J+.KQT(.IU*I(MJZ夦X+)TW+*ÔsAn9440(I)QS0vFV\S]Z[^ A!. _!Ņǟ5H~!(^CyF)?*PK(|RA9{Barack Obama/tests/if-1851.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-ߪ 7Y('5/9?%ժHb8{ .~.T 5PK&|RA܈L.#Barack Obama/tests/Rellink-0004.txtUT PPux dMK@COzCbVBc2Ȑ6.~T[= ;00BFB&8ZKX>bh'jBƪB^ߑlʆ^} 9aIk tY47쩀ģ'%Ϩ4Wf9e OO&iy XO{Ʊ{WfkM>k%ga'ew}AX3l] K ug_QNd ,V8.Xf9@rmT)!屇194IL_Mꇨ?ǥlE@Hw@pLslDITm!نAc?l&*4fH(~or-1iܪ) +,lXקWu}۹9;;2/HQf}qMgˢd%|0A4f=ŢiFBnzş}rSp'=7V?MYb(|FpG~PK-|RA[4yF)Barack Obama/tests/portal%2Fcore-0001.txtUT %PPux d=k0w#vRl4 DCAxˆ(¸DeJ7 zW [ cyF#H~kYG0˥CU ^} gY.x8Oĩ袊A)Lڨ8,2?_E]t1hYWYj0uUİ363/-*?9'94W('5/9?%ժHb8{(.~.T 9PK&|RATmBarack Obama/tests/if-1492.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IbL)!. _nₘBPK%|RAg%Barack Obama/tests/H%3Atitle-0015.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkr2ԓSRjOuւmupuqu1=ȷ˦ 1Ol6K*AIE)EI%%V )@fji6 s sRPK%|RAiȮ2W!Lzn1`lTEؘ %`ȕ/B0W6<:z` I5SW9uƙ1rDyq(y50Poozgbg_X36T[D8 %t$,*ˈN&Ey'7-#`'Q30o+cJd j83ԈH ZN4MO0"k(A֌"kП]S裇@g"NƱclL`FFAĆ#S6:!DLe#QladlcMz е;S ~SRf@WUD\!p=x!O`/6q[c9!aA*>Dŧ͚'֥-s)EůzJG,KQzIכ8ww`;c)y2#` M}5.PeU6pν7/WއRNBRpetx{ƒ|"-H(h0B[̠7I$$WY7֖Ù2"sTf#JfL W%Y=3>cs$f&r$4j5Jq( }L@!Aԁ'w<BR]}JJ 0/bm`G;,|Fv!q{ bF>8o [P|Q3[lx|0?~OQl''{5"n8R8$LYi%yzD$iUG%>zCp288ytʰ~Ia*s)>XEdLGVg$Lܩt 3bjeM8!ɵ윇^!&F=|T`;ZNr6奭ylT4@,`dQ5GOayo(R e( *:8Q l@2̒ڝ#h413{3QQIV5PXbT jfbn S`H_JeWj\lVXg,&(iq||}긾"Xda92m-qaYi%<+MIs,Beq "xp$1N1e|(Cic4bpu0?;D2E'3cxꐵcyMbfvP6mxG?QMGox?'tZG}YC mD] 5HAo ݦm؆ 0c8AUG}&_^ۥ7QH0@(4NU>vP T^4 |CCdp1.2J_-q-yptW]׻en` 쒁]ng$>w,ؗeUl1 ZndO lxpU81#X8혾( ? 5 ;B.Cku(7n(O@Sף2E[, bm|(E| R #-~V_dVUwei4 ޵*>.'tp(qq8#XPK&|RAu,HBarack Obama/tests/if-1596.txtUT PPux dV qUrJ,JLVOJMB3Ӭ|2K R3SRJ2sJ2 rSR*QUPT\`R[MAPskkՔ+̝#bLrւ5"9p #?D!@'BHPK)|RA9bBarack Obama/tests/if-1985.txtUT PPux dYN@}W\)RVQHH%yhApT{rgc* r83Fg>\ 긼 ~`xh"x˥И~&_JL v-cbE%4"zq֠5 ?.|;hݢLJSy[JAx %dZ憓V8*!PW:_Bq,dẠYiI!^)mrY;|+7@,Hjaf=ˆy=LL|4 9)=z3Q\|:#-7gBL C Ay qST]:HP٭8o|;j@W 1CW Wm\0[ AK:zhe$Nps*5iFeraLL3ff9scL0d|a6J؄;&splL`kMѫMS؞1D%.89i'p XX֮ךIfHHUW ᆱʲʨ[(3lb W,RN3`vME,kP,cʖ*YMA˦bF4?jd$[S({SPDaF`N`m,+qNh8'>M|+s~wp~17|f 6V!/-4y$3#5r[Iy _.-3M-̂n 6ʃ[lFJY\^nŋR/'~RwpfzPK-|RAĦ +Barack Obama/tests/Citation%2Fcore-0007.txtUT %PPux dVmo8ίX)[&֕ =N-T$UUP朤]~c;YHr!$ؠĤaw ] 5IbQlνLrkJn隆=lag{Ȟ(+&ڥ]N %蕠_9KCTX:֭^+LYw<ӮF3RD=4h$`Cli8@֏i  d1k1, %%}KciJ"5-G`%As֌ȰbwhO"buid9LA4[ȍ~VX%<'!ۈvFXfKWSΕ♣BR(El`® `BPV!+̩vte8މ_gd|_ <̌'ȝ'FRl({>=qN{'랝^ί]@sڅjd퍫)X\:JMS"jnb.8LGddqL "A1,Jf~\,-;휝s|i{}~Nb=tvÙ7{3]$[RzPO8K#+i75>>mj]_}oX-J1s9hHO4)O)Լ:+ͲxI.#L#@tV* ,]Td/u|k>E:g~]+_ D%fmUDUbW Ŋ5+oq F+\R.L%VJB*;C̎%ώEv,Fg _mdpŠIP1on6lDZ`0Dꌪ1Z*Fʖőt}-X|` aa*- i Wu<;%n?_(l~o PK+|RAʋ Barack Obama/tests/ifeq-0132.txtUT "PPux dV qUrJ,JLVOJMB@@93-J/\!2([΄@)z+`B5zjFE%%y %h(rAHG\#\C\]@ G`O?}1υJ4PK+|RA:u%Barack Obama/tests/urlencode-0042.txtUT !PPux dV qUrJ,JLVOJMBKrRSRtԔ]2SjkVF:~~ɥjjdjdlljb h PK0|RAGs&Barack Obama/tests/transclude-0005.txtUT ,PPux dV qUrJ,JLVOJMBKsJSRkBR3SRJkkF:~~[[Xjb?*PK)|RA)<Barack Obama/tests/if-2034.txtUT PPux dSAK0W и|NHYNZYe$8qfu{EKRf(!쬵oy!*'FiZpFU4?mct]pބ_tz^uPK'|RA E%Barack Obama/tests/pagenamee-0001.txtUT PPux d @><5tC1k߽͢4?FPJYo1*^.w(jiE^! jKGkrĈ\|袃kPO0#t!8 ni"1nJh;{q $2 )-:y2J3 Tʲ%VdP {Շ[~4hZfK*s̸{\1QsՄlX bB2E`0J5|{mKvX[wp^I4 ̌=WRݧj@5G;޸ӽS\*OֲP"F}(KnL!9gZHwa 6aI}-:#D`'!*8OpPK!|RA_qiYhBarack Obama/tests/lc-0026.txtUT  PPux dV qUrJ,JLVOJMBsvւ-ppuqu1=ȷ+ l4\?* \PK&|RATcBarack Obama/tests/if-1556.txtUT PPux dV qUrJ,JLVOJMB3ӬjtԔTb^ b8{o1 \V@PK%|RA-jeBarack Obama/tests/if-1402.txtUT PPux dS]k0}ϯ. ;ڭcC{Хxtp-Xbd$y^gh_G{9\]Fv)4侀}/kO0zz:٢cɥO?NI= Zq&D/!$`L%OǓya}\ZEi sauP,L]MԸ'JC:_n~"i }HzZn鿮JG0*4Xn A&gH3Rhѧ, ۶ ZbTgKn~ #)Sx(PO ,yvJەJ4|8ɷ`)lLQ[ݣ B0y~~C̳ml3D?PK4|RA%Barack Obama/tests/safesubst-0035.txtUT 3PPux dV qUrJ,JLVOJMBRKK3K3jP$ jkebMML *X_TY[` 2 ;׈WW/ߏ|orALsR\MPK(|RAW%M Barack Obama/tests/if-1964.txtUT PPux dRN0GYZ!8Ri=AT pmb5v"th(7Y{: gA-0_FK(2كk`pK\htۥqR9[ r*>))\')]8Zj uN^j"ҥۃS*]Hdڤ'A|seiwP/ |y 8^/Hy6܁x~)1y`lPK(|RAj%Barack Obama/tests/Cite news-0002.txtUT PPux dTQo0~ϯ2YlZL40Ifvd(*ﳓjh"lw|ţ.DOÌ5$}8zyRN6";ǖ.#rF%= _{[@}AQ.{.3mt0hPa G(c6D$ ei0@ϥ(>#Y ! CIFvBUamϧg`?~jE^='oV~IʹLq~}~=OAKM#OPRtJ, 5b.v[X[ b[Mk)?shzYU=&]P4ɠ!;STz8#=epo liZt>Cg3 5&ّ4FRJ\.ۧEv%T{\Je}1Πkl&r*{$G_PK!|RAݡ'Barack Obama/tests/if-0271.txtUT PPux dQn0+ KQSP*+C֩ YRT0!/{ *v/͌v |)!czJxR bcrAA!<e ?b6{BƦ7mVEnLS-& OVS IJa]K*lmN/^ބ uA0l(bP\nͲ P1o~;0FoC]D> BBdH?PK!|RAL{Barack Obama/tests/if-0312.txtUT PPux dTO0xzX#%Dv0Y8RHW0*^~^q>z0ŗ8h@o0Av{ew jAaGwlȲVdM)c1 "cO|G#L3\$Lj)yc̟Y&EVg1̶%b<qGnR`O#ŌImv}p]FjG/jެjU x?#ZwSf} bb?wz跥2MWD$MSvz1woRl3яí 'VPK-|RA<#Barack Obama/tests/ifexist-0003.txtUT %PPux dV qUrJ,JLVOJMB3R+2KBRs rKRJs=sS쯩-Y[!풚XSR[P[ vkDs G'AW\1υJA4PK'|RA};qy%Barack Obama/tests/namespace-0033.txtUT PPux dV qUrJ,JLVOJMB}]]\RK2v)$e)$ւupuqu1=wD?*DPK(|RAaBarack Obama/tests/if-1877.txtUT PPux dV qUrJ,JLVOJMB@93J_" Svo~qOfRjQbBpj^bI~g95ec#kdZ5eKCk a{5"9p #ߟ\\@PK-|RA )Barack Obama/tests/sec link auto-0004.txtUT %PPux dV qUrJ,JLVOJMBSr2KKk k R3sS3 ,/I,+5"9p #Q\yzٙ@{RA<}N;IX\@PK-|RA$Bary3Barack Obama/tests/S%2Dpar%2Fus%2Dil%2Dsen-0001.txtUT &PPux dV qUrJ,JLVOJMBu Ku3stSjkF:~~홓YX υJPK,|RA \4F)Barack Obama/tests/hide in print-0005.txtUT $PPux d? 0|܊Eҡ B2!õ ڦ%Sw*7qa(A$bGAc0+b$_"tO!xk2v[S[,hst9u]T!1SjbK7:3X^w.ӗ̓[_RYt#1D'{CO=ێ; PK'|RA-<-]eBarack Obama/tests/if-1678.txtUT PPux dV qUrJ,JLVOJMB3Ӭjdm-׈WW/ߏ|˸ &P)D&PK!|RAV#Barack Obama/tests/ifexist-0001.txtUT  PPux dTQo0~ϯҖV^RDhBhF$8`ؑm(.4`}wG=>=3,]Ӕ %hٜuA̋R2ǃ(Ni'Rn{l{GnrcSAd|H%6N()B^Lk˷HJ^ߙkOo_N39gnk.̓/9C.rs.9R ̠,E+L~(Q! r `J `Ŵ$X11۲+8PUXM9*UTC<ԇ:cS!AKndV/ ֔$iަ!TMN!Qȉ+_kujIVĠ ) =3 x)VBYj]sW!%LCz3<:*U|D'uhM5&Ni@F1SK+3 ~edWG 2BM7n~:[~zߑ\w&C8>)LFtj^^I%I[I|@ Fo/ᴬ8M9dS&EiT&2.wa=<b@Ok[~c9zG_FOKz-^PK!|RA=UN"Barack Obama/tests/switch-0039.txtUT PPux dn0w?ŅL{GJ-J8Up`D#k@MR?M' b{Di+G4cJ wf q9l7 k8sSYn^[ sxVt vܵE٣5rz`Nvh," ^٪nw@|_Z`n <x0:@{[B^."kulvswS->kȮXC4ut#X|'y:DY.o 0!E:Ӷ PK=RA\:_ L4(Barack Obama/tests/Barack Obama-0001.txtUT 6PPux dr6MdKvn96wd (eg}{{>$M,;$ʹX.{ ΎHsYۧo倆tmw{E3PX["_$uut;:ćEv  Y52 {5A'Fl6c;;WF^QõV....n5!C4»g@ b6 FQ hjs3=>CXq̜n X Ytbj{#Ņ!Q@p*rs@7^<=O8p.*:ErW@&&gxr!#;1p6b}n|C";_,ag`,cy[1Q{{;CR86f2.%%ͧs2ۨmGRYl綛l7/yPFKr,wd٩Z5%2щ1~9iY`{+d{gvBT|-wx|ɱ:W,$,Qd2":%mNPns ktGPHv}0uhlWNd([$ d Lሪ`JCR8 [ [u`f}RW,\i3fpk +5P@HMN9i5c\/< ,CEA@ 7H!@.rTɨY/[-C@NE%Hy.j aDd-k9g0Z?~}J@*U[Hw^9D-pLO6fg`52%OQC+ص0iAA> Ȱqi)C_=CS9̬%SCF$Qn X=7#z B"o-J3e9Zu^CxKBaxGDɂ,OL6` U_Bz̾b*-ŬkVN˗`/(5EWDax 6̞3Y,WN1m6poM- U`#*11dEZH)iY|obk%@vcAX( )YŗLJ88C9d.X+8"X)ry%eTD'*!x|[~>@D?@?"K_2iӐՆν&c&[paQ}s:A<> FЩ$BVzoo.W :Wt cp9"H,tn7+*E=w%n ef@`3)=HdRٗdÓM(W(l7ll,/ildv9iw9-,Ը@ wbLe^Ń*g7 vQ {݁"ۯ|F6 HQ#Ŧ0IYGH| 741N}Œ8,NVʇ`:TOK씭4` p>Q,?IVH9sC Iwک\,-& RRN8#% xΔ [R Lpu 6R5P"s Yd$h9)&p #:joNʣ'.U6oq\QԶ4]-ygƖ͡.ࠀV:|s~ T8lS@nj,3. r$ɣ-]0 aqC&#(~B-"(jz֒҉d yf6#ǔ+Hgh#Ǻ:m Nְ 5ҪN3sM^[oJ1]2gA2Ć@ZB}M^҆y! M.DJz_w>J26sFnhq;ˠ·Rɗ dchIJf6E^_\ؕ+MvK~1?1xәI\18"KAX17P*p?p!z91?' QC58[s« w(Ǎ/nV6oYKO}8xkgg_vd~k>1%fΜ#GC"]'qK^KC(XL-r?m͘l%riboal[lj+YG`M]H\|ON>>dV6tۋNUq'O3CF=p,h13fIg»<Ļ|"{wL;LiӀ F/.ʬaZDUTĀ 9ϖ:ƒg QϰJJ悿Mx_n!%RFK#NJFf^X_/@<^8!j(+ӧ/Ys*ly~@6Ӏ QHuhI tOd)Ϛ}a&^K?(~N֝ ~'cRG8i}Hpgr|ׂc u)s%$94 fPH Xԣǀ?QJAΒrot;t-V޸9sqPK/|RA 5X"Barack Obama/tests/switch-0122.txtUT )PPux dV qUrJ,JLVOJMB3K3Ԕ+̝ICbLr)(%fƱ<(X!1/E!19#3,575h`QjmPjr>PXn Q b'g:")KJ  @Ҁh(\#\C\]@ G`O? P)-PK'|RA4ı Barack Obama/tests/ifeq-0101.txtUT PPux dѽ 0=OqApdPA Bpը6'ݭ;.%H o;C 1lŸ@:z_ ]q48-Lp N8^[k>I˳k;kZTz#8(LKM;`ٯYe'Rkyu2#yf{];F^Op1ЃLPK)|RAЏ #Barack Obama/tests/iferror-0011.txtUT PPux dV qUrJ,JLVOJMB@93-(JIFMYEXP5FVjj5kkt qL]#\C\]@ G`O? ٙ`\m@PK)|RA0Barack Obama/tests/if-2045.txtUT PPux dV qUrJ,JLVOJMB @93J1'1O('5/9?%JGM$^[ Q Appuqu1=w6~.T FPK=RAP{$"Barack Obama/tests/navbox-0001.txtUT 6PPux dWmOF_1J~# T[9x'nN;kvZR gvg^= {?Co8`Ep5a k> bxƗ/-&%܎ڠOts1­9sh|<~Yy,$vG$\M!$r!AFDeNgXJXYa!/},Q%yIf-XI.ޅ?Amȓ;fcfNg:V0,kAY8(.dZpBE@qK8_0㄂OLAj )KY)3fӦ7$-a-E1![I](^,3(2Ѧ`|lzDZzbİ{Z-׈XEV%Q NȀ[oRJjq"VhkTka֡'%.P2U%Vؾ^"(UY9nN^PlZh͍^iTV*8NuW88j-1?E3AsNQʇ84iRfh)fCaQzYՊ/|Dޞ'᫈åx∆I!`)dTʥ .fwڂՕQD)-B91[_:zxrF߱ sQf X mu{AsB@Vvz~BeθOywo) zK^N#v%|Ʉ43:UxjEPUtc-wWK3#8bQ%&|ȇ P;r/Ey{lSaB[nAқAXpkJ+M8err~o{ߖbcaxKRz{rWܼnK1kڿ46g'9U/CK^O 9OoʣV#%T+cgv~7Wv.|yn~*Ƚ/|K :Zޱ7oJxs݅{un\c=k+Ysծ̳5:@ ym4oQ[ߢʿg4yvoH~R7PK!|RAj9Barack Obama/tests/if-0044.txtUT  PPux dV qUrJ,JLVOJMB3Ӭjll sm2sSjrmԔ+̝ɼĒ̲xx52Pc32>L-6 ւ5"9p #? &P)&PK4|RA|#Barack Obama/tests/Link FA-0002.txtUT 3PPux dV qUrJ,JLVOJMB}2krjkF:~~eS\bWZT[dgXBZ PK%|RA+!"Barack Obama/tests/switch-0061.txtUT PPux dn0eLcrleJv- CPbvWF $$spSR#F]䮒.2ٙ$/eaDѐ͙7\-,\c73>׼V~eW s7odjhXpok|Ҩ0KT4nݺ~ JZ3o.PHx2k;3-"2F;;3ZWn1~`!mg pS ~ˠS[CtIRdDpY nuKqCO" KNp~r82 egf>Ȯ2W!Lzn{2X`jTFؘ %`AdŜBwGhɣ V!5Y3U~zSPLa"N!G=s :&1Z:ChSLE3:QBG@I²o1a9VДeD3$5jFy_meJ_L_YARV gF;qDW` M+Gӓ'L ld Ȇ f 2 0q3XoͲNqSkCU,6[}XyVYZ_n8S ~SRf@WUD]bskwsp5y ;)ˑL59 8UiF&*>h+S:beYe&rԫ-B¹8 ;~.ߞJ xHk z캽H*lT0e fӗ'2QbSNeS%UE%z5yRlHSy {%Yt{ʑ8c:1Y0qrtdM8!ɵ잆^ &F=~TV`;!s6奭ylTN4D`dP!5FOayo(RC eũ.( *ơ:8I m@2c̒ڝ#h41N3{3QQIV5PXbT j cXw)Ƌh0a~AO/+5.E6+3Sp _{ִ8>a>>uT_ ,2]r5ѰϦ RZr{ɖ8ְ &9!b Ǹ[BɎY'FQ1 cXÇR=T8bA#;_iEzcm9n\t'6v /א]]k5o.^N݃1fH$NkGR=;6c8pQgL oPH#xg4aodǣtD("Q3`|Pd}Ɂ6< ,T^$ |CC`p6<2<J_-mp-yprW=׻En` 쑁=lg$z>w,ؗneUl) Znd O l|pkU8)X8혾(? 5 B..Kku 7|'I} ࿮{ym"T瑻'* cc}:i3dCkH0dmj¾E%YhUDsgYZ -:w,g On ?{AE:z p{@D}7Dqϲ-p %Z htL'Ů$pT* }8/~]YB]vGtR~tjͪ@4¦Sq qn-҅ե48|SmlfQBo%tIjoloKG:V/%PK+|RA/K0Barack Obama/tests/Citation%2Fmake link-0006.txtUT "PPux dA @+ͣ1r,rxl܅M{VDN!0}d% ԇBbb;%vIKw_? $~ ƶ CŦ[X}K+ E*x 1r:e:Ƞ;Glv-Gʚvc}\wΒdNwѡ덢V+eco73X*գ@F[r@ zȵNBr9k;lgP,& PK0|RAT "Barack Obama/tests/switch-0136.txtUT +PPux dV qUrJ,JLVOJMB3K3sr SSj r3jlkSRKsJlI9 @=iHҒ|upuqu1=w8;BsRPK%|RAw"Barack Obama/tests/switch-0074.txtUT PPux dQo)`@"Cr"J F$ޝF $$@pSR#F]䭒2Oҙݣ$caTБ%3;d٭3׼˧f<<0}5Hw5ة?3o* IAΝ[КD e~1օRՋ oX:+: '3:=J!"/cDi3couZ dGҞ@vhbж[ecՄ5"P@bxr IRdDpY f5Kѡge~%e_6! ѝnR,` EEP 0#pN|`Yuas*tUDB1ɽ*+MX3U~zSP\82FB"/%ꍕMT/#L,@c!tЦj'!t12eS!b)1baVДeDx5| 2D|)3#NM% Hd +>"d(n i5>F!E8z7cs+63 "6Y6(!bj-yb%SԮV_0$iެ7ٜ* C+: gʀJ*y59n (HÁ_~`?~Q'Tcð qCXhhKF yhRҔR~(R-7y^oœwݱĀyVF>z+'k4Qu]&U{ 8V){jڲp8_UTdդbx툒5Ƭh0cIVϜe1yjt.69 G tAb3 aL>v& ؿ<BR]d",BwbU:xfrBw bV<Əv-(K-|Q34<"_8$"}OQl7'5Ȣpwd?lnK[ب8hYi?̞P:0<ʪCPT렒BRH FSmk=l0^!!:dmǘk>zSm;GM>`LbБ>I$z~Z]!e.ߠr7Eh5PQl0Ke{'GoMqs=]^y#9ğR,ZEOl@5;B }%KeuePU,5UZB:ג7| G[{Օaޥ/sh` Bl33%5'gwƾt(Pb_*4O#\}b`Tᨯc3X8n 5vpNѡ gE:7ϓn(O@S2E),Lb|hI8A$%ZFZ!k+WݳC*?+ ES",2?7hhkUdp;Y`P=A]LA$tꚧ&{oMׯ~e>|#^ 3Kfl%@n[J ZTnAzp\8y ĪIն]N85M<~L%DO1L+WdnaWmR8y3sYB%tms)NȹF %PK!|RABarack Obama/tests/if-0255.txtUT PPux d0c z[K69,bRU6=/u03|3pd [Rdie~l+OHG߰+/aK]!3VS6#o8bvAP*S6Z@`B̕i&;糈s!['Z,*!~9x2vdBoqPƏbn,ezdPK(|RA5.Barack Obama/tests/if-1894.txtUT PPux dV qUrJ,JLVOJMB3Ӭt E^yE Ɔ: F=5ec#ktIN^Rh5 s'kd225/$sF&c!:kk $b8{.BPK,|RA%l{)Barack Obama/tests/only in print-0003.txtUT $PPux dV qUrJ,JLVOJMBr*2 2J3O-/@\R׈WW/ߏ|GqALsRMPK%|RAmBarack Obama/tests/if-1476.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I# bL)!. _nₘBPK'|RAIenBarack Obama/tests/if-1677.txtUT PPux dV qUrJ,JLVOJMB3ӬjjB8*׈WW/ߏ|;R fP)hfPK!|RA `Barack Obama/tests/if-0124.txtUT  PPux d= @ hM,7AжTk/{C'i|$DFm%fb~ k;3Z$Lo\EA9cQ`'Lӭ'Ysmp_3&l=dYTj>]4 t{ui n^WbV2hel3t0 PK'|RA Barack Obama/tests/ifeq-0102.txtUT PPux d@ kti0"H{ZVKm!讐9tmm=U5MyNv3ZoH&>AH{i\|#$ }8ZpmS(^C'PK4|RA+Ytgp$Barack Obama/tests/ParmPart-0005.txtUT 3PPux dV qUrJ,JLVOJMBrƨ&ODDlkDs G\&3\8@3PK&|RAgmBarack Obama/tests/if-1490.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#bL)!. _nₘBPK)|RA9Barack Obama/tests/if-2046.txtUT PPux dV qUrJ,JLVOJMB@@93J9<5'GF(D/Զ('5/9?% "W[ ☓PPGM$^[ Q $!. _98U#gU#3U#cc#Uc' 6P).6PK |RA%~z8v Barack Obama/tests/ifeq-0023.txtUT  PPux dV qUrJ,JLVOJMB3R jC}]kkF$1'/H-wpuqu1=w`~.T 2PK)|RArw%Barack Obama/tests/urlencode-0018.txtUT PPux dV qUrJ,JLVOJMBKrRSRB2RR"B2sSkk6F:~~[Eh6m-;\b@;PK(|RA>= Barack Obama/tests/if-1889.txtUT PPux dV qUrJ,JLVOJMB@93JʮQS66%d%(xuuuL}; (\S[ 7D0ZmkRppuqu1=.~.T7PK-|RAi*Barack Obama/tests/sec link image-0004.txtUT %PPux dV qUrJ,JLVOJMBSr22sSkk R3sS3KK2򋬐Q[ vkDs GS33KSA\}|ΉG BPK!|RA? Barack Obama/tests/if-0104.txtUT  PPux dj0YZ+8c{1/6bM$h{dRp+-=|$9Fyļƣ<`9xc=[s%I*T#hDQ Im e'\sYN%6p̨f KQ< 4l;0ߡf}.)"ˀ(tC86VQѱLpθ!.[)E|VZMC@Jem#cZHْMeA+̠mAe՟Tj 팳5XQׄ.,L`;Bp7V Xz}zO= ߟ^E0_E/K@^Tsjv=)jftKPK |RA:pjtBarack Obama/tests/ns-0017.txtUT  PPux dV qUrJ,JLVOJMBRKJskkF:~~Yb h>PK(|RA9VBarack Obama/tests/if-1817.txtUT PPux dV qUrJ,JLVOJMB@93Jʮ/-KQ+J+KO+JM,*LI$d.եE9y)V`,0H,RX!85/$U!,$X!(,51] 2KRsBI8l&d4n"4BY@ !. _Qw_U#bmHhC@H8υJ DPK%|RAғ#Barack Obama/tests/H%3AIPA-0006.txtUT PPux d 0}%z*MڀERJj&KM'ea1NFtK cd-(dGP#1zz>| +JA1SO7KR$'d#d6mF[!}{a)F*de ?[.i^SynWl'pgNoPK)|RAC|bm%Barack Obama/tests/urlencode-0023.txtUT PPux dV qUrJ,JLVOJMBKrRSRSsrjkF:~~[1b Bh.PK |RABarack Obama/tests/if-0020.txtUT  PPux dV qUrJ,JLVOJMB3Ӭjsjk*M-qptv($dC%E@m\ `7F:~~; lhlrd ΀{!8v ʊ$dO5+PK%|RAnz#Barack Obama/tests/H%3AIPA-0005.txtUT PPux dA 0E=]S6`Q`@ڨږ$ EKz> 4 61n0Kl"\Fp_v՜ 9 lE89}]a/ +ITkVr8_F\P. phB@@ݤʄj1׭NQdij*mbQSj7PK!|RA``Barack Obama/tests/if-0134.txtUT  PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk֎ G0U2 FȄ^w?`w56Mw!elJM1N ƽ)PQs5-]9i6;iUPuc6U+ eQ=_1ouA.%څuL,: Y١]KXSW_y 4vhBc48Gs aCsZOM]@rT* 쏏&?N>fp3^L\шĜGea:/$1$f[$StiĻ|J]v`3ɋ]^r`h@2 #a?ӫ߱~PK!|RA,hQBarack Obama/tests/if-0338.txtUT PPux dŒAK0[VD5js(]9; QVwcד=)s 1߄xtG3JB{7mYgH YGy(%-d`MS;"|L |領py 5qrGe묬\ʨEhz {WxVzYmּ}@7{kpxrP#P;K0L|20=={bf.u?>3 Barack Obama/tests/ifeq-0071.txtUT PPux dA @+H ~.T IPK&|RAlBarack Obama/tests/if-1536.txtUT PPux d1k0wWܩ!5R` B\ZQYZZl x㡲;g'*8SY|lV\h1[;:" *GC6uB,s&v=nz^cc̹Sw1Ihǿ D^'YCjb hVu$eb <ΪiP?lB,PK!|RA,!1^Barack Obama/tests/if-0250.txtUT PPux dQK0)nV0:ч`Hɤw7];P¤w~puwµ"T1-(qz.Boa)&U%L!0Ԡ 5hjtYN˕܋Ա(RTS0x0,HPTC(A]nwəCZ(䘘Y`<ϔ,Њs&$QDN] ~;}g 6XĨ@f`Z)FĜ0Ll#?1gSW?Pg޻ e,`?Gb{EDVN_XPK!|RA^CE Barack Obama/tests/if-0039.txtUT  PPux dRMK@WlRF8js(Thx$&|ɪx͛7of70$Xy>> U2ff,L]Ui%咉#P6<ZQT2&.0eಫ60ѓdv \U/k\ ܠ^Du@mT3*T0Q')T?Q*ԽŶeCQ<&p*62uƖe瓱*Y ̔x@>rGT˴|K1)BdP0ͬ42vxO}͑bM {Zf5PK+|RA"i{%Barack Obama/tests/urlencode-0046.txtUT !PPux dV qUrJ,JLVOJMBKrRSR t t ,L- tjkF:~~ʅbx?*xPK%|RA:2t5Barack Obama/tests/if-1441.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkKJrR BJ0׈WW/ߏ|rqAsR8PK'|RAUFBBarack Obama/tests/if-1809.txtUT PPux dV qUrJ,JLVOJMBʙiV D!V]FII~yy^nq^R2KL72627315'ʰZpظF:~~q[BZ PK!|RA-p Barack Obama/tests/expr-0005.txtUT  PPux dV qUrJ,JLVOJMBS+ 4 4u5 -  CM  "NK0I(hjւb8{2.SC~.T @PK%|RAԊ̦Barack Obama/tests/if-1437.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk"SS2S J8׈WW/ߏ|WrqAsRXPK,|RA*F1Barack Obama/tests/citation%2Fidentifier-0003.txtUT $PPux dѱ 0Oɭ*XT26CA Bpm#۴VUzp}p 3~$H9KBqGj| 0ځӍ t7,B7`fԦ::l8I_MLYv*0&hG/qwƓrl~X`|Q\mj%x.鿛D¡3@*5Լ:?&g&,)qetDC]L&C [a}hDJ1B YZ%}` 8#w&V18]inm= öm֡BqR_$zCc (j2{Q?îZvRRUMv>YA B[ S[>f؋9$L_,-,uzs{=:=xPK-|RA!8t%Barack Obama/tests/pagenamee-0008.txtUT %PPux dV qUrJ,JLVOJMB]}]]BRs rKR R3sS3KK2򋬐P[ vkDs GW?*.NPK'|RAw3Barack Obama/tests/sec link%2Frelative url-0001.txtUT PPux dN0 { rXF;`umi ֽ;iApG,K}GgFE5Z2M?V*+lku}0`[ l{OW. rjRŞZ|bݡ_ȝ{a#x]b,Barack Obama/tests/if-1856.txtUT PPux dV qUrJ,JLVOJMB@93J!J_\/8/)D%g+ԨgVW%秤Zly5"9p #G\07ܡjjDe LS\_@PK&|RAٗOW Barack Obama/tests/Main-0006.txtUT PPux dV qUrJ,JLVOJMB}3jR3SR+b8{o=MJfBrNbqRQjNNf^M^~yfv>H,*LIUV9XʳRv<ފ:9?*EsPK!|RAƗ(H[Barack Obama/tests/if-0399.txtUT PPux dT=o0+.tH;i)m$j*!qRA`D#|T4߇ӻ1z/=O-IH6s^׻By~z`RKDVy(`R؊ e#ݹ[# E?%36qpPUฝٝ] >02Ţk YgPp<ƐB6?=5I@$X{-.'iMT܂\/z<ֳtBiۯ}mis g,:R;Se{ypz~74h38Xx_+}79[.igҊq}pj,քQgx켨jxKFu}w\զR[TP090t hf8ʣP!y㻉lFG,pĽRq&x[O4Ug~ Y3% *DeaNWƐv!Ԕzd7`%Jr1 5]+[ Ks:2o҃y(xl>d3֭c/ijRrwn518z,`LV ݴ~UCp_vn6.Gqs7XK[tc<W̍U3 8a޺S &ۭ$7t0'" g i 0$8B-UW6y\ *PIx8on !%(VeR4rZA/*Ny5+WA9 6P< "KUtL/< ,wvԎvMq1t@;m N vŁ+߅rx3g؜WP%h $l_f87schQbDc\CPK%|RAt߃Barack Obama/tests/if-1434.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk2sS55 "J.׈WW/ߏ|rqAsR0PK'|RA [|Barack Obama/tests/if-1743.txtUT PPux dRj0+ɵ&S1!MN!:46X꺧bΰJ  ΰ٣BB-qރ*p CRM -L6vd& k2}CEA_EЙ JaT(8Hg,9jׇ7T8m V*QXT99]M4DF&qK=3+sc_O{zds1KMhfc)n'PK%|RAL.#Barack Obama/tests/H%3AIPA-0011.txtUT PPux d @>eZh+`9T8P "3ِ8(wo {8pb @kzVYؤԧdO":z>7Nxz}H֔8klAgz".h Y2R[UnXz 5rMPEgZ`,#e:./B FfEYfQTIX86g+7-Lΐbq{m.btŒDYVHU۹Jۙ}.Y޲f!RY} sQ75Ne[QVp1Ey0xk\2`eR TPQ?E^QMq RKQL~S/F@ BrfSb4}:u@I! kɡdcYb7l% az.R7<#(rZVQ mF+WૡH|͞7@H}}P@J`Bt1=RVJwZk,Y(FQ@6ɿ lJHePK%|RAr##Barack Obama/tests/H%3AIPA-0019.txtUT PPux dA @a;x`TP "n䪸{HZp.x1'@')Zwr&MzL=J$s _O89Ɇ^Q?rTj(*F$9hy)؈.MZ ux?|ZcAf6 Pyӕ֍\-FYv7M('ziPK/|RA"!Barack Obama/tests/small-0007.txtUT )PPux dV qUrJ,JLVOJMBssrj4S JRsR ,5kkF:~~eS\P\RjW[Yjeajd}r;3\@gPK!|RA+-~Barack Obama/tests/if-0356.txtUT PPux dV qUrJ,JLVOJMB3ӬjlԢ̼|ݜ VMȺ<$̀*\#\C\]@ G`O?1υJ!4PK)|RAyyBarack Obama/tests/if-1996.txtUT PPux dV qUrJ,JLVOJMB@93JΫSS66VS0wB!C2KrRKRA\kdN׈WW/ߏ|sALsRMPK |RA%GҦmBarack Obama/tests/lc-0011.txtUT  PPux dV qUrJ,JLVOJMBsԔ+̝ɔҒT5"9p #1@7TCBPK!|RA WBarack Obama/tests/if-0360.txtUT PPux dj0g$7ڥql_dln!. B.d[ɼ:R?%}ʖӅ0tw D{nc4C^7Xf&Jhxm11e)fNL Z8(Ϧ`"0 +jE!#SI`=W38!@NٱQBʀޫTŠKV!]Y\@_kzJ51:].hq9ÜgNIq + &{jIb>w_+uTKj2l 71JuTb_ePmJ !B肤>ST%&"hbр$ Xwý.XLc}c[YۏQ<ϻ& E _˒5ށ,ũm/@_imz!kc GzQuPK |RA•"v Barack Obama/tests/ifeq-0020.txtUT  PPux dSn@Lz &r0i+;eU=,7o޾ ,/.z) w0_шZD/ᄎ,x5~8%Z%<*YFh]UtC†L:`:Wq0u qq#8p<?+6"#A{lP_g­əD @`fTNCDzMK!A cPKV ]꾡rWP M{~-%-c $3XO w0NISMeUiyf堟(a?oU]3 DAūPU徿Ͼ;5[̲iƿ[эkĘ%A,QmЛPK&|RAag: Barack Obama/tests/ifeq-0079.txtUT PPux d@ }o1C9QB![h3킗,)$~qfmx:.A=7  Âk{SRo{9YdokЄ9P{>]z/B窱r~RrA;Ŏ|&5I=wT2pùd(Ǭp$:_oCFDT?z5ӛ PK%|RA?6 Barack Obama/tests/ifeq-0055.txtUT PPux dV qUrJ,JLVOJMB3R Ԕ+̝ɜ̼lL-R.==Ʀ 1O$$'(kb&/KA2'V))(%H7)$?ʰB!LMQRZb.6h+}T ŢZp F:~~61&H$'BBt PK'|RAo~Barack Obama/tests/if-1763.txtUT PPux dV qUrJ,JLVOJMBPrfBFII~yy^nq^R2KL72627315GXCZ\#\C\]@ G`O?}E+P)PK'|RAw/cvBarack Obama/tests/if-1780.txtUT PPux dV qUrJ,JLVOJMB@93JʮSS66jkF:~~1υJA4PK%|RA* Barack Obama/tests/ifeq-0040.txtUT PPux dѪ@}.C vZH:ǂ Dbԭ5wB{j a!$? 1颬Va-bgU=Gizsyo^$_FǭE0 GZCUbiJۀl/b/J l덬ִBzS~mZT;#8(LKI;`ڮYe'Rkyp2#yf{5#qG2ٞPK=RAސ  s"Barack Obama/tests/navbox-0003.txtUT 6PPux d]n8 2i;Ntq.rkI lO@`XD(Q(xja_l)Jl9|iZXˇ:-jk?GgvN{Gxqv+.3B B3%$ KI1C<':up@I*vnoKwtF(R%qpE"xFrpTm!nH)LNgGzC= iGPy&f} SXЈ#ƣ3M4K+KЇNS]@!Bw\蕪^e;ӊ0Bqā+0hЯNlȝ`ƸD׃u7$K T'd6? Vcxh+3n>bX{WDMk&SD<sa^(VRvn+?/] zff$NCFH(w<_(/wF|ЦnC4Gh|ًĉiM\Á Դ3?K mjZu&I3_qhh%4ojPq/O1WR1hFIo9,͘)fJ [kk Ae nV+ԁO<>8+s3t:Psy/DO- <0bDuUkɍvJHg@{dNPp`9A'̚.8';F2=C,$[ UDJDRH@+N%7:SXy :㮛W\s 7J9.Dt!UP Xe3"(DK)eDa%mE`} 1,!^`$ae`?`6 f/`fYQ0: <f(-Jt:uEc22=_N1U@dQ+s@jA%"x.ZO]۟>?oVQ]PsACTrRBǘQЄTsq˽E|(>Uoܻ]T1~dHLWz4Hclr fWEI De#N=A\>9iI%Roj{X+:/8A-_V17wI4LlYmtI~MSL23c.%%}"Nӵ1F鏱t AY}ӕ匐/_2=. IؖȪ^a HN~=\VX8dyC_9G{.>!_"}0h> pN>BȜR>OD (vQ$s3LcPaNL&F ;x}>rDzȝ<EzWć Qxxڿ>fOyDƋ;qV'ȤEiȎCF{S(a+Ҫtf{I{"3Li)|[N%ϛIU%!B=˟[53]1Kɝ[ao~S+Vt+`eV+c]Rߝ:rC`p2|!ag#AVT?K0E[{2,0=}Ez[D˙{81-{䭒C*Qx㈨|IIB4 }tBGh=]m*vmuq|zȬN1d)x>]p&BRSh7j3'fOG=9S zxThʩY8+둄ZAz,Q.셨X pX4# Y%*=Ix9 xE6[͛30A2:1Wٽ=W zq`9J'ec#dl⓽O*>UsEVtJ_IfOL -(=ɩZƙPƝ0LnΚ$' /[PTUnA_T9sPe xwn 9\58k08e6]V·\!n&5iS[`Xn_Ϲ.ܭl3K!ph2Vo[hZ]wḧCkK'@[h2%/]ggV]/:ƴ;sn6ľCk *}k[7AϿ1|<[=a`Ke@[ _V, ^TwoT󭁱%yMky"F¬ס᫆ToEC-( I]Wʥ<\sPoh2Rit1DAMTI>[8;PK-|RAo@; "Barack Obama/tests/switch-0120.txtUT &PPux dŗ 0yٴKV7wnj%Lf3?S){\uC٘᜷fi wtY xLlpZa>2lץ܏dp dN0e%d?c+GrχpBGHE J@i ino_ vj50wm  `:ZXYKb[K@xtS@v]!{ <%'f=n[U]eSoyWfJ,dgPK.|RADa#Barack Obama/tests/s%2Dttl-0003.txtUT 'PPux dRJ1+쩸JOCQSas5ڰۤdץ鿛՞e07Xr-9(6E{tf^ʥO\ 6rW2COd(X cPk9 9&@:Y!ZYeUZe t\(bYTkK5)8SJ& (h IȗVTDtH$h "a&-WM3acH3%b)m&( @Q^YF54 34"&.9ӜLyAf0r'z#3Sth>3.wɳ8/*UŠB"NI*wM [ b@k?ϹjLRəabN&.@1<*Xp/',OT%Pbq׍iy%lJ(oYLԍyv^z=αvL[:"(JjEIJn'"S4#;`)1F# FߑajLEFq[;; wOznW7J2_B"#Eqdl{M_=9&2<ѽQ aa`7\Ttؐ%N-'wp:bRNﰚX{S >95"֍bj29 i,>XՃzʭJ=DH69թ=E"ک CѴv֡|ڰNg P?~m5ƧBr[afڶN[ 9V;oVڃ*1RtBE촨s4N$0ֿpњh$dXְxtn8ςbFC16"`/PK!|RA=̟Barack Obama/tests/if-0081.txtUT  PPux d1o0wnYZ x@We0VS׊*ot r!!͔U6J m --:]!wha4a)B׍Ǵj@[ j|ߒpQv1UVh* Wn]p.IPK!|RA@vpBarack Obama/tests/if-0102.txtUT  PPux dj0ƤBz^ J/L?ao'YbH79;ge-xO6\ZX1Ù,Y}=v+8Phe<"R ޝ|{"q"bacnSS) 1}41%؄9:51Lr̴@Ye(N!VQb37Pc(3Ļx+o?Kͯvk7JuuMD|BPJ!mUB:iIM?f .sd0FL PNX8$(_,r_U5FgY7jͼ0Q'~}'=UbΝ ?`E`bs(ԱCjc m;Υu;.e/9~8@oVBQ'lPQKhKW D-} `NwW~FӤ\$"# -c#;rs!wy?v0`;7:2 qHk-IiOѾLw Ib9;҇Є\2GĤ٘ X vDa;.s3&Bu}Y%\~ZR@&@4JP gG ij+D -V3d XRGligzmQY, ']\ %4t4gPK'|RA`'Q8"Barack Obama/tests/sister-0001.txtUT PPux dSAk0W<XN[˜.> 1Evu{xFAzz|ό吭 vܡz ; 1o&Cjp˕b~QmoF=Ի,E;44oD14 ԀU`wjkAql {i^-;7dc:0Nyϕn#;7eu,M7$md5N]`:2Xp#Barack Obama/tests/Hatnote-0001.txtUT  PPux dՒJ0}!Ս݅ ͨ 뾻ib0|sr+h>+n0` kITrBq:cr>'@ `#A c (|rHHJ \oJ1I1! /"@(!Wx 6o)%a<{q+fhUUT,}1rf9XױW&Yfoe}PK%|RAMa IBarack Obama/tests/if-1438.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk LU[ vkDs G˸ FP)FPK4|RA^ڍVdo#Barack Obama/tests/padleft-0006.txtUT 3PPux dV qUrJ,JLVOJMB SrRJ ,Mjj jkF:~~[1b h.PK!|RASz*fBarack Obama/tests/if-0032.txtUT  PPux dV qUrJ,JLVOJMB3Ӭ*j@Wm-v׈WW/ߏ|gpALsRXMPK/|RAfX!Barack Obama/tests/small-0011.txtUT )PPux dV qUrJ,JLVOJMBssrj4rK2R4kkF:~~eS\P\RjW[YjeajdFb h=PK%|RAc Barack Obama/tests/ifeq-0061.txtUT PPux d 08: n)f~ a{@',G 뵕ninS^T:/@ÐozTnu,Ȥ؁lH1+ !fV .%؊eKa;!1'ƨ[1Qd5n)zEfUx5Ac {PK!|RAeTBarack Obama/tests/if-0117.txtUT  PPux dV qUrJ,JLVOJMB3Ӭ}2KR3SRJATм̒Ē "jbckZՔ%dDGe&*P5 sgkp@Qjk1b8{\6@sRPK%|RAaBarack Obama/tests/if-1424.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkJs2 |U[ vkDs G FP)FPK-|RAQ +Barack Obama/tests/sec link%2Ftext-0002.txtUT %PPux dA @+t`4pAtAMwՠP{k]c8cx<*R; g\bĆ S(Z c uiUϏ^кʺԍ1C9[2 K)f`8+_G=gAVw#y<ȭ,8j!BPK3|RArg.27("Barack Obama/tests/navbox-0006.txtUT 2PPux dZms8ίaIIB03$/if7ჰEŖ8Y$V1& ie&Hd)BC ])~ GD>HH jowy3'&ހ7" \I1FjPpS;$`W  ( aHg$>!`k(ߞY .Pi4 %~b${R25tX٩d K-å;Oٳg"dR|~9p΂n Z%,~aqFѣS5ykMeޚTj\9N0]$BZn9v| -ACmlͷ܇+6~vu{ֺ#)C'UR'ERYp~1Iy@ٷ af,آHj}Cr SD74(9&N}C sLRvZOֵwPDX7y'ǔ\;Ӽ["s X.muNsy7bw/w#Ch9s)+_fھHv03.H,4-:2m{ĎE(i|GNŀtN[V).cLK~?tpF)|j}mQH@ДH ."8I7`ho1}.ěl͇n!ե)QKN-&5J[ ˭<%!1Z%eE'@7{2'H[Y^^ZE N ӶQVםįFW2]+kz'UIej)=d,RQVV̵FOp-*#I5pw7u4ES]N.wAi9@ԏ}:?3+m F?}w_Z9h!tecK^~(4F*%8deUV4UͬSv@\ 8~0ߗND?4.>]<~\^S]Oϐx_9RDSV!#OFL˓w vz"S 9뭖3Jn(ZJ/Q w*;㺢[A% q?y/vhNN&W;FrRmcv@h<Է i23XZOKq{oX򂤵aST]J!-c V[j16$o" do,|6b#4ҋ _ܫWx]MnGUSnӱƻzY9qyn~!F|HjsͳÝ5oӰSV*/6m <`cK'9 fq(Y/yyBP==d'=!T9 <khԮr%:Wߵ6eOtI:U ?cf/^<9N?PK!|RAdXqBarack Obama/tests/lc-0028.txtUT  PPux dV qUrJ,JLVOJMBsPb8{o1D?*DPK(|RA :QBarack Obama/tests/if-1868.txtUT PPux dYj@}W\0K^ I-JJV[Hj,ɚ"Y)i献2f\;_l8+wwZԹt{T  Տ H!9=%Þo>Լ]|~Qt[}v Ψw(%X9|ٌcF (s}FWPƴآ )ɿ7dw7f6 l5[tE3QiYd]ZM]@@3b* _/C3`@аU4LL,CޞAY/S=ma G,ӣTF+"g`v-EKP*bJXL@J'Of$}IDY ۊ7!"<_izGX?:g[NDvV=^\ O{\op4hgً~믖D+L l~Z6E;zv6D&&fA 5]ܲf󍓦X~T3[9֚%O:\b^@&Y=2>kHuO<&Q &͓ͫ|EFY}?:\N׷/d\?PK=RAU\C"Barack Obama/tests/Navbar-0001.txtUT 6PPux dAK0{EkSvŠcHFX"IcaɧCJl'㆗+2+U<}L|6mݛVhS E[}7zJ4\ن0*~!ӗ>O'eͧ %ֲPƀBHJZYRKHT0LLb &E.֮IIn+,͇ʿ0ic&eL%q1lv^b бjfD%Ho{v+^"h|.9A>`-u#M}PK(|RA)%Barack Obama/tests/Cite news-0001.txtUT PPux dTmo0ί2uJZ/ $iSiUĉl]lCj"ބ_i E$# a? nQ//C(t))RaU)cX S)̈2[(јrsJtOUF$b!?SZ$ztZok"?}3嫥_wRT*Ǐ>CIƗ.ZYt7m6 ETvK~xkh3.f;fFǏ^$~۴<'4`Z/Vp1PK'|RAƧ\qhzBarack Obama/tests/if-1673.txtUT PPux dV qUrJ,JLVOJMB3ӬjJ2RS2sRb0lkDs G\p!FP)FPK4|RA|#Barack Obama/tests/Link FA-0004.txtUT 3PPux dV qUrJ,JLVOJMB}2kJ2jkF:~~eS\bWZT[dgXBZ PK%|RATBarack Obama/tests/if-1463.txtUT PPux dA 0E=Ő.q[LjVB))MJ<2UO Ճa3'@#$>ƙsXglӷ4dEbڃiW|zM3MZ~~C:mw:c]#kBAd.+%ԇ<R_܅ #M!0Bg/S\x@{TE=Ȕ1ꏪp MzPK'|RA:[RdM)Barack Obama/tests/listen%2Fcore-0001.txtUT PPux dS=o0+N[Hv 8TBDJ&j(6$Mۡruw=-$dhJJjOa}LhI]k0U%CP`yņ) I1brbؑIDRR\**ÍhiN@T'2 &g@FFPL%/ "@*v[Q^hV/&f 1 5vNjs ;,3#=H'nW+ipۍ쟔K&x*#K~J**YmuǏVv®8/xӷ~PK-|RAUu/J Barack Obama/tests/ifeq-0162.txtUT %PPux dS]K0}﯈ |sZ+t@; HV.#3inڢaBnr朜IJB,{E-0qVc͒~`#0hZL薼jaYtc FӜ- ;cMS*XcrMky=khJKlAbՈ8! ߓ NrǸo[Y9ІNdGԥ[rzÑ~s'k}Om:s481KI1}2]tσ@u2FsaeQֻDF}}B$Xm4qb"*T)3h˃+Ip+l ym-k,r*bT=P"Eؔ5P{BTG'`fr {zɇ (DV$~Rh iY5=]᯺kBHɰBn߷t:?Y䇬k/`9s-&QoC?PK-|RAu )Barack Obama/tests/sec link auto-0002.txtUT %PPux dѱ0OqO@w(H !, 6Pj@8n[K TrƐ-+H萰)]PjPۦsy5b[}!vX)8..~LNh^B!D$oJ]zߖtOi.DC&PK+|RAJ%Barack Obama/tests/Cite book-0001.txtUT !PPux dmo0SXL) e)F!Ր!$v(jwq IQw31&D-10}|+`L(bd S$LlJ,N= 0)tDb+@;)h(RŁ2ODD{~]J<`Ev|%2r"2,w~cl쿾j;ia( K GPp-bJԌa\]׺k˥<>]8 CؼEeQ2tUf+*>IBq!ۆT؃yHiH 4hІ~Qj*J˶Ӎ\՞$VaĚ8=[ c!Cz\R{7{c5`n MYdw+)&7n2㷈(_҄DhF!ZڅSE^uVӟMnbFd,nS*OiHKG9k (Sǂw2( .8 KOzWW7 PK0|RA! Barack Obama/tests/ifeq-0174.txtUT +PPux dV qUrJ,JLVOJMB3R jj̼<ʜT[̔ +\k%;k}ZZt3׌Z?]#\C\]@ G`O?=E3 NsR4PK%|RAh8ͪ%Barack Obama/tests/safesubst-0026.txtUT PPux dSj0}Wtű!]RB<:yo,1E2YA k ^UW[6.P[] 9$L~uee.X7w]'.oPK*|RAF)Barack Obama/tests/hide in print-0001.txtUT  PPux d? 0|܊ECk34AmPMKSwgpq( 2)DtX֐xF=s LL@h* B5HN;i,wh+t$MS 톌'L-.ZJi5:xsu}@Lԥ1cY 0֍ C}uKp,? DK 'yL&cַR"KK,Xm3:N_5zDK2~LYikPf< C 0)dYsr5WYr)R ^7ϸYerhC# Z[&)t=P3"yHJqaW5Q$~=H9令;`dG[3Wo+{/:n B\0Yؐe 1o~FWudo:Y %[K%/+M*p'-PK'|RAI3Barack Obama/tests/if-1794.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPJ JK mjk4׈WW/ߏ|7rALsR@MPK(|RAaF%Barack Obama/tests/if-1970.txtUT PPux dV qUrJ,JLVOJMB3ӬB2RR"B2sSkjSRR3|Ks2su P(-H-VLIM,.QHMLN5"9p #ߑ\\@PK-|RAoR¾3Barack Obama/tests/sec link%2Frelative url-0003.txtUT %PPux d0 E|ّ2P Zf@B`0 ߠC&*9aߏ_HOBp4Pǰ'}s[KDQ6ha; ـE_hpxz J s9Vr҉aVy/8LB,y-e6O-PK(|RAۣu%Barack Obama/tests/urlencode-0014.txtUT PPux dV qUrJ,JLVOJMBKrRSRJ* u ,jkF:~~[CPYd ?*PK=RAL*tQPd"Barack Obama/tests/Navbox-0003.txtUT 6PPux dn86ɡ:Ui>4;FA[FRrw縧7'RR$Kri;B3|qZ%iOHZğWTyץ.]{>:;:o/گQW|^<2B,(Èuy}D* ǡbvpѮ Ty<%?a>ԉb棗/*=8ʧ= {ýnhOO\K;ܻRO@Яv܊5wO I;$'R *FJX)3B=;9Ȁ}^a`/ sT3ݿԶ ȗqLF#Pk sv^ JgLdQ=*DIN J:ā\P)z*`TL9uE )TCl 4vwwS[8% x9dI Ni`pd?bȟ=0B K%# 5Yvkvi+EQ n `1.cw} ʫi?o0vAb'-񀠋6ᫍ{PE[#!@xfs4_l98w>Vx0K۟ATo(#s A?$;yvW4!ds–EV`{-8 - 60`6dC .HQpK Rl}J~^1&P]gGZC[5oqoˡ9ntbA:fRWVz%Ȇ-pU9UlG_ œ2j(8Hnu&dWwj5xY"2G8I~d.P*/,Z]Eu 65B039o/{` Rx+K?ݣ+{wCr%+<[H\XYaS;!Kǘ7ATt0}2w+0?r^gSӺytb%.smԪ+-D{}cpVMt evkc%>d})\LܘPOZC9jڹ'a+Z[3?ձpFFz 篩[e@cKQ LK3RW]%Z3dynE :٘Zٽo0VLW# +]q׹rI@zk*0t&jNq^au kŊkX=bmJjTb8 /$!AltA_<:ؾhlr a+SҚU^.rK5KY0ub!xOgF]clm3H)@ a(́U@!'B0]' 5.߈Il ]'ʲCiJ-`[#`k~sg !lݰ1!郞Y8>7%wpof$\V0yo̭?XowyOepT9^*e31(y[uTd*<[ImҬƚz|TTB֣UѪhz Y]G GYg 6w+z 4YVDFU#Ѫ ]BUsw-w~ tTPyƟ nݧv<вSQOF>fϒ?PK)|RADG"Barack Obama/tests/switch-0093.txtUT PPux dQ 0 + Is0M\xkNJ9Rv/z@^H#%E27(eZJj%;Ot U{1 #[Z?<-tk{PK1|RA@:"Barack Obama/tests/switch-0152.txtUT -PPux dV qUrJ,JLVOJMB3K3j r3jlkSRKsJlsr 3rRJ3ӬjԔ+̝ĒTI,-ɇZ `׻F:~~{ yȶAlsRmPK(|RAGz|Barack Obama/tests/if-1958.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-ߪ 73E('5/9?%ժHb8{".~.T 6PK |RAOBarack Obama/tests/if-0004.txtUT  PPux dM 09^, BiH?/`ڻ[N qV*U;gBl{mj j\JT8.\ySKނ5;ca@_,8j܁:(.v+P ް:5D˯ ;Mx[%efOP~}PK&|RAR_b Barack Obama/tests/ifeq-0085.txtUT PPux d?k0wB":J վ8GG{ׅt I ]vUB1 ,ϰpg*R2ZA!>җp1Z{sqD"ww5iRulNІ PC{{X.rk~Ɖ4k- jz{8w>Q,\ܩOr.M^ ܟ8Xn_d0{]◟nWڽPK-|RA~?{]uBarack Obama/tests/lc-0046.txtUT %PPux dV qUrJ,JLVOJMBsPPPb8{o!WĊ|/\\B@PK |RA`PX0lBarack Obama/tests/if-0015.txtUT  PPux dV qUrJ,JLVOJMB3ӬAdd&d*)ւmwpuqu1=w6{ P)PK&|RALX Barack Obama/tests/Main-0004.txtUT PPux dSj1+ = v`5M0 2l6.Ih)7[ (9721 Y}V {.R,E&{P`l]"ݫ+uSm 4.m&شHg<"fR`Uv%}@i{>pub7TS ɨC]hhg(]nX={O muV JF7l$PK.|RA")#Barack Obama/tests/s%2Dbef-0003.txtUT 'PPux dk0Wi{ӦfDV0(}HS4Љ_{wߏc,1rGWie{IXp_<=\ tj"kXdY6Tx"KoOaa4X!]$rS R-/Ow."W5msaLb}HceI7]bٺ!@EAg\IO_ ?PK!|RA,2Barack Obama/tests/if-0033.txtUT  PPux dV qUrJ,JLVOJMB3ӬPPKZUW98:Z)TW8xp5 %9HP'/WZp}X,Dxd5"p #? &P)z&PK(|RAA #Barack Obama/tests/iferror-0010.txtUT PPux dRMk1WLE)^*?rص`-aQ쒍oR=iO; 3o{0DN,y`C>ls9]VU V[6t67;XgXD.RHqi%ɿA%#4~{4ee]r:~ UQa2 (*F p{t<܉`䗺hrL m;Cm,Nn|qN'C})Eś=Il սs__Y@06ugH<[<PK'|RAb^;Barack Obama/tests/if-1767.txtUT PPux dV qUrJ,JLVOJMB3Ӭ2JJ rA^r~~f>BM4Q 3K .V/VNK,IU/I-VJ-KMQ!_׈WW/ߏ|sQP)nPK/|RA֊#Barack Obama/tests/s%2Daft-0005.txtUT )PPux d@ a`WsP PzȴіN)b}wz& O/?"R "/֘N?2GjVjc[v.q&4 1'2Ir? %}1.Xeq2dm )QFV:zX%OesP+,Sc!DTZH5Au0)]c>uBe/m$da[')_9U8EJ<o5ve G$ˡ•rr`Db4ݝ䡶B丢8"^b2Tfz؅(!"PK%|RAmyPO#Barack Obama/tests/H%3AIPA-0009.txtUT PPux dA 0E=]SU0P&jvJAQོz> 4)61@Tb{y&N£}Cf, m܋z>z^!g:2s)E\C IVK%VVsm޿V\Q9{};Dc6Jxu H$w Mzs{PK'|RA?Barack Obama/tests/if-1726.txtUT PPux dRj@ *ztiq7Z+ GpVK99X$CRV s,@sXEbRnxaB4 YdY4Ra='L L=!:4S/0Vռg0x}خ/YM1[_z1c\*IфAIIhnGCб Ŗ |#W$E6%w׈ޗRgE6PK&|RARr3\Barack Obama/tests/if-1557.txtUT PPux dV qUrJ,JLVOJMB3ӬP((J-LI+LQHN-HLQ020RhQS66Ry)`6:XjU[[ kDs G~p:&Ά8υJ hPK-|RAv&n#Barack Obama/tests/lcfirst-0003.txtUT %PPux dV qUrJ,JLVOJMBs2K R3sS3Ub8{bA,sR-PK%|RA;("Barack Obama/tests/switch-0068.txtUT PPux dn0eLcRleJv% CPbvWF $$@rpSR#F]䮒.2ٙ$/eaTѐ͙7\d٭3׼˧f<<巰}5;g_"XQa280hܹsZZ,/?f0ݺP zT RgE!dF"gpZ^)De#-wf 1 n@kӃ!]cB(m-"jYjX5nM:\x.I#k֌F`>YY|I[|܄_6! m;6K #.p  T6BI#84"ru9U &Ο^1Xh\TUNA]0qf8D^Jv )+^FXYh'?C M-N`C|dD % ˆC2"Sb` r -ˈ&IdkԌ5LGʘ򵳂Ό80v85" 4=`3 M+Gӓ'LguȺ'3@?+}衇qXnoͲNqSgC ,6[}Xy^sJ,thΔ_T$kr<PU8\ 8~!{O`6q[c9!aA*=Dŧ͚'֥-s)EůgzJG,KQzE[8wwa/c)y2#` M}5.PeU6pο7/W߇RNBRpetxƒ|"-H(h0B̠7I$$WY7֖Ǚ "s\f#Jf>L W%Y=3>c$f&r$4j5Jq( }L@!Aԁ'<BR]{JJ 1/bo`Ǭ;,|Fv!q{ bV<>8o"[P|Q3۴lxr0?~OQl7'5"n8R:$LYY%yzD$iUG%>zCp288ytɰ;~G`:s)>XEdLGVg$LtbjmM8!ɵ\^!w&F=|Ta;ZNs6奭ylT4@,bdQ5NFOayo(R e( *š:8Q l@2S̒ڝ#h41.0{3QQIV5PXbT jfcnS`ÂH_JeWj\lVXg,&(iq||8x}ꤾ"Xd+a92m-qaEY%<+MIs,Beq "xp.F}b*Z4{"-qɃF vҠ&&}߃ghsݸl0^!!:dmǘkzS9;GM>`Lbwӑ>I$z~j.ǮxqyQb oPHwu'vw4̚NPQl0Ke{'Go0{vsyxn(  hO=9҇; (2_P/\ /K?/bRW A\K{/UWa.}Ed`ghoi/:K3@Yzju ȺV~b70JunJꓤ>3̼8Go)* c;{=J;i3dSkH0dm¡Ug%YhUDs]GYZ -w-?' ݖ ?w{AE:z p{@D"bksx^`v=Ycވ@[ 4:f5ŖnCaV*qƽ6A/n,n޼#tR~tjͪ@4¦Sq qw4[X/.S8D9w0MK*ml.a#2ZgL[PK |RATMVw Barack Obama/tests/ifeq-0016.txtUT  PPux dV qUrJ,JLVOJMB3R j*SjC}]}]kkn>>(@׈WW/ߏ|WazυJ4PK(|RAs1{Barack Obama/tests/if-1947.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-*%?S('5/9?%ժHb8{ .~.T 5PK.|RA0"yM#Barack Obama/tests/s%2Dbef-0005.txtUT (PPux dK0+B@Cmk EhWXB!i޺`MJsnś%kpE((FhT%g,\@x :eYjVζZ s~Ӫ:ή[8[2߮7!C xhuc5x|A0 V~OgHɅw".I(Ԡ@]w yHewdK*=t6JfD9|PK(|RA0$ԅBarack Obama/tests/if-1820.txtUT PPux dV qUrJ,JLVOJMB @93J!$?W('5/9?%JGM(\[ QAppuqu1=w 2~.T CPK(|RA;y{Barack Obama/tests/if-1855.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-ߪ*)G('5/9?%ժHb8{ .~.T 5PK=RAc&f;"Barack Obama/tests/Navbar-0003.txtUT 6PPux dK0+=xR:=Ca*%k},KKVmIc 2S |>0B:JcX-S,_xΖ M$C'xY̙}nTE_V)&u͔ *jv/]fLFx'(\0CWVBIP R\h(jJEwv(X(\4h:Md-@H6v[nMfxJL,YWZ~ca.*g4y7A۳"۷v8c!(oƳ#㙑IN'f?PK.|RAA/ؒ#Barack Obama/tests/s%2Dinc-0001.txtUT (PPux dV qUrJ,JLVOJMBu3kRSJjkVF:~~USRadlg,HI( (`T_\q U q BPK&|RA}d#Barack Obama/tests/rellink-0001.txtUT PPux dAk1+Y`B"=dM EF롇e >ؕ]kj)zl: ݍ[k;BBq: =Lǔ!Q]dOD"% nbY;:^ $C߅iONjR6 yrү/za&Ym?qPZ\>xj|rT?rȌWPK |RAYbBarack Obama/tests/ns-0012.txtUT  PPux dV qUrJ,JLVOJMBBskkF:~~2b h*PK%|RAٙW^Barack Obama/tests/lc-0037.txtUT PPux dV qUrJ,JLVOJMBsNwւvpuqu1=ȷtL?*LPK)|RAvu Barack Obama/tests/if-1997.txtUT PPux dRKk@+9Z҄=@5BP9lm]t5L0*&=u``vx bIwSj z |+,>!<\*}7S!\0m ,Ci0#) e > 85f?Ck8vR!u_GTUΑ碯8Ԩ 6٤mԾ'r7/"*`/mk _dII+~YsGpv(K;_PK-|RA+k"Barack Obama/tests/switch-0104.txtUT %PPux d͊ >{ۆMaaكILWZ$}u ,3:C'+NcV|7 }K4yKR:BԶpʠ7b/ ;Du].6)u)+b!2CB@5ɴ B^S-wi@]W9`f륎Ӈ %8rőnY>|VyeO[Ve8w?| I0gb'Vn/T^g vMLxܦ &v؉8 ZtRQ]9&ɂ&K0vI.ѯz)HPK%|RA3, Barack Obama/tests/ifeq-0042.txtUT PPux dj0w=@RJZC qP0Xr$Al"yTRo-q)]-blsV1{Q! Yyg>kߖ> )v\#izمnX 4kxШbmRy`ܴEVNpR\=Y/M }x-Je:IYcRm|;%d&O/_o$Ɯ'PK&|RALG>@ Barack Obama/tests/ifeq-0083.txtUT PPux dj0 y CPX܂=69hҊIE~yY2G=ih5"{Dvox,ONWڸ4=pGJJ t4v_Z=6,)CEn/$7ƙ'svfS&nIwz>zKȜ ~ 3 Yt+O\?vO겒8X{aFPW kpsŅ v\\\Γqsnȳ2Qe/|բX7PK.|RAU?#Barack Obama/tests/s%2Daft-0003.txtUT 'PPux dM 0 Mׁ=:Vu8;*CNoe@/yxc1XsHXEh0V s#1|Chʰ8ޠV&I^v|!faچ i ֫U~: Ȳh|@.;zSyPK3|RAKF"Barack Obama/tests/switch-0179.txtUT 2PPux dA @ I&ݔ=T!( Cv-l6Ƶ 4x3ߛ!d%[Q@(gΑ˳NO،5+,RДZf:Ok00K#\j#a0UW.5I^mo Di`C+J 4d mwtQdGa^޲PK'|RA}"Barack Obama/tests/switch-0089.txtUT PPux dTMk0W R=uѡhrm*K%[ d+eɀ%ǛyI&d!E!xjӝlinpĿY`N=\yuT\Isaz6eb*K*F}-5v4{J Mt5w#P$&Py;]KA#\q*țŅ9,Ri 3|iXQi79>I{v9Kpܔ"ZWf>>(˰=YR-=~Gkahӟp#oȿMg?t1u4HMܫ9xr7 gIAyٕ~L_PK'|RA&uBarack Obama/tests/if-1749.txtUT PPux dV qUrJ,JLVOJMB3Ӭjj3K v+%*嗤+&ւvpuqu1=w!;!6P)$6PK |RAB1^lBarack Obama/tests/ns-0018.txtUT  PPux dV qUrJ,JLVOJMB󊭜Jskk6F:~~[7b h4PK4|RAv#H.|#Barack Obama/tests/Link GA-0002.txtUT 3PPux dV qUrJ,JLVOJMB}2kRkkF:~~eS\bWZTZdgXBZ PK!|RA<4wv#Barack Obama/tests/padleft-0003.txtUT  PPux dV qUrJ,JLVOJMB SrRJjLjK2KrR Jm15U5"9p #1`BLsRMPK*|RAXp{%Barack Obama/tests/urlencode-0034.txtUT PPux dV qUrJ,JLVOJMBKrRSRJRu ,kkvF:~~[2_XYd|?*|PK(|RA[1u{Barack Obama/tests/if-1853.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-ߪ(-Y('5/9?%ժHb8{ .~.T 5PK(|RA˃tX_Barack Obama/tests/if-1866.txtUT PPux dV qUrJ,JLVOJMB3ӬjjjkF:~~¥1υJa4PK&|RAp%Barack Obama/tests/IPAc%2Den-0001.txtUT PPux dn0V&Hq5eK‚]"4MǎlRͻ˽oRR8M?!MЛ'uax i|or8'$^FBt>I=Dl2ˆzF=dyV7WǛTPnPhIQb߷S\^nУ7idz<9 D )H "t([rX;isLˡxj{a!e~SB秬ؿE#,$gg+B'eFh,H O YijNK)x no+IJ%yjJ(FJ& "S0!u$C0":gADsEo{qzy?nZh-4+8[93ĽIɪ@; 2D3NDZ,!paH#m N ZoBR\Fqy'_!#1uޏԫ_A143(mA9b #  13>cK_ f/Ѱ.龢zXffu:Loh]҉RPK%|RAHIBarack Obama/tests/if-1440.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkssR \U[ vkDs G븸 FP) FPK%|RAu'Barack Obama/tests/if-1399.txtUT PPux dUn8}WL]H[&".X(Hq~IGJAg朹L|,7L^׹"п6$)L0z3,,n6/ݽaCrø`qn,`l2"ؽ`nM&~(d)ԛTc&0"]ލrwz?Ji.-|TY6j IbF&=5ۂ$) 5$zWIePhψ[ot~vv-֕fG unpBQb51 U3wP54qrPEX ]( (QI rbsIrɍ=뫖"B)3&"1Ґḭy9vZS߿VR\AЃkR{Y;mҧL[4TRv'_%j`mbNA_8M 4JMJ ./O$Xvc "8yP[N∇qﯱ9~gib#?O&R.7G;,E+-Uۈc_G}4iawLn-+g|r<'ZZ*Ms?p|όL?(D=ӿJ'%/@L-NjP&JTa9)hazt %f~Hxԅ' U09otCZ2#@!11=˾>R,@5Lw= Ur ө]Z7 \nۛv:ϔOs~-{ JPK'|RACT8$Barack Obama/tests/Side box-0001.txtUT PPux dTMk0W lN[u"C!Mư :"$u;Mz,9 z3o>fl 2!eXj,αFQMrĿUru#Jj+TQcŁn0I|"UnڛCI쿍YӴ[ `avh@iQe\%Xv' aBw5`c_0[c+l($PK&|RAz_#Barack Obama/tests/Rellink-0008.txtUT PPux dŒ 0>.MjA Bkԣi"iw7.J~!))QH y(G{cN6xJ*hv*Y+5JB)Pw; ]34+qhW0;/-Qck4z"Wl^㧈Y2]{O K|9cA>CPwrԒ`㞞ˑxPK,|RAa%Barack Obama/tests/urlencode-0058.txtUT $PPux dѽ 0ݧ)cOBf(CIq(wo.NpC88Id!sxG[n_hC GwOKGd FwmWn))9ݕJ=A氓wZJ@Jzp⬦USXbT@rd0Ln|>b`Q 44ӐH3bzٌ@?3Rc׌&i:>(XZPK%|RABarack Obama/tests/if-1442.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkR U[ vkDs G۸ FP)FPK/|RAHw Barack Obama/tests/Icon-0001.txtUT *PPux dV qUrJ,JLVOJMB=jkkƻF:~~햙j\E!9'H,](gfgd&TdeB\BPK3|RA&%Barack Obama/tests/namespace-0091.txtUT 2PPux dV qUrJ,JLVOJMB}]]BRs rKRC2KRSKb̔ԼԜ<#C#Z\#\C\]@ G`O?1υJ4PK4|RAPQMfo$Barack Obama/tests/ParmPart-0001.txtUT 3PPux dV qUrJ,JLVOJMBrư&ODDlkDs G\y#\6@#PK*|RA;dPe"]QBarack Obama/tests/tag-0001.txtUT  PPux d\rF蚩-y2.J|d$Ůl*jM#̏y''syT$;Ln^&|}wBSߑSヌ܎o__polRLo4bela,4c_ O^Ogؔӗ\ܳ$!qXf< ӧ d_vLͥd<&u82#!cwOe2:䭈E~Jw]g,i8e4rA[뛒|r`vv%i.,96j]E ;KS/ilF03g<_%g+5LPsc&Ҩ3%!@^Ͽ`otrq՚Ѣey5 #Bbr2@22!ڄU4 E_0di܈%M)<\yg3S!?@`\OlшRX3>_ �"RbcN _wFu5u4f+YBĎ;0%)<\[P:q9YpIf`6r];qq{Cl*TA74%+B7]b3dJ& `Y $F3tw.sJJw4KX:]_'c))ǶYXh #XGKpםA3xɡKr=3 TdLۚK)9 z `"O}, >X-J#ňexX;Y*".=B5pjC6Gni&sUAR-x_OOw_G?S<3)}̯ƶ0{Xڑݶts$lvH)T4.['C7ݍiF:](rWGvF&Ȣ-Tj!L0D~pEBœ.Rh WᡊfM|r6uqyR fЇB"b@tcG*7A52ױ=k8eS%y UXFGe;d}_ miC炦i]eJ%B3z!84$NI϶=\ Vϙ3d7=:vt<Ќ!lq2!ː1!g]Rjl UD!<W>Fc)>\>|}kT) - Lưxs@].@ױ:vu=LyzHK rPk ?!  |.Q׀g ,]֭E-fQ !?_l鸅*YPt3si&d~F)+|ꊂQ0%e cG%3e44>5e*yn4P; Ɏg= Ncp}# RA[@䖂DW~U^k*_;Oqޏ7cr+ŴÚK%V߰kz=[ _dY!u!8acvg9&4mGrZ< Ye܁e @Ѿy$]9y]11v*p~tk{$9>G(_sӠIkۢzA@e}/ aq;WŽ  p#AW%DкlRC`lT){\Ufs)v<%KS\{x$@O6-]`M\٥󨸹,, >41{ x^uKa@H96,"Ε 2.7{Zm+0`&8}4hr_"y',I^8fiNAצVc4-9Tݛ,(򜺵NEt|^Ь,mM Y*yin׎i)%&v\fcncfXm7lʢeM{ŋ}4 co\t߳I גLA!p?dXAuHdfFA0?" 2D(&UZtwyׂV>2yzߤtsljc%Y1Oӊ2Dk4Bj&xc+l˱##9\}tn2+! JRڎPQo*q**4*ijYT286, :QS<^)gH!QC̄=uVсbo ش[Ri!Գz/a[${=]gAs=Cكk fq=)JwCڶb=E9_u,Bz=eXhfnH{}g8SsWU }~ 3/Q{fbO0:7rTˀRbaoYa+*Փ)wAY$7wWvOʟlY!ScKK:%Xۖ5˖f`ܚQg Nϱ6&/hϵX~J˪{a&Y< A䣗L)<YOF1}T!%c*W\,=,ݩqɱj m6Dm6m[#㷧bbc*qx@'/kE3fk&e 5V4+*k><6:aj {&!pR,u<ӋR\C5ځg4ӞnqOK9o1WS7G}hqUǾ~aԴTW@=RUmR(Isl6Z񒩥>Y#]1{$n[12iKR,z%ds=6ޯ#U$_W[a[xy_|hO~rڅO}.*Ѧtz zӫ%i嗣>'7u|~:WK[BDhe֮֟XTK@öء$-z{,mi5OTmA|P+VVH҂iXmUwo={hw}kػrLabӣzHj7L.;.&KOUȼK;3aˬHMB/py>:6O! lIUl7Gz  m˜d;㜊M߲(/ځn(f)]PZu@rjtC_Ǡz6yo[8j[ru޸vL Q{^ܚ3X n}9옆u9q zOMHCНUH&9Q).|嗖Nm0D N vSYic]1iau @NYhHv[rt1NݚYVqOݡ<̪b6jX cre+\5e`ŘܨP>]:~noiLցOvu/{@ k]!S\X ]rLg9}6B vYJRGeл|;5D5>/P)b3oI_V)@,D% -;0Qro i{m +9g15y/~k@ 4Q}[Y/}+kzm!ԖI4 6M$6MMT'~~ݡa[3CgY}o{n#[QxvaQXE6tlT6tm!/%bVoСhRMM7FX9hxy4n 縦F*M5@yY}{K6u^-> _;;?lիHD1 hcG#d7VBdGOY(V/Hz ' \D>Blʍ/!X]GUv;9qHr%hT5кW*lL!)&H#.5pTpZV/T>\)$N l:9_ѤT*4׫tM1JxK Ǹ:VoHW$da5xW4mgw9Eݕ.$O$$vP|JGT۱`ID 8!ka I63 W ۻ=DKa<$sqgy_ϳred d⹬?If\v(N*^I\.\EXIc-RSUAO6kشWb8550ji2趉0xxSKOw2 ~XCID*^$,ؓVd銵1`1tD RkYٴJbtQRq5UQPȡv2AFޑ^:xot&[bas&Ƿ`qpɍM?cO:VfN]Ǜ6lC9V126_F*CP%83܀30}A/>q`=Ef(&wiR؊ |Ne 7_b1k@r&16`X%@NW DPے ; [nwnqLU©Ӻc<_u)Jo05Žfe\Iz/4#j0q@x\anxnڮV8\AI$W"+ =/'Pq¼Owd2m fv($6L*lȟ^Bo\t ˜?RNRiՂ9yԴe>!j¾aph,-ֆJL #~lK0NmoݸWڙ <4&<mɀ!cۗyQȡ?Jrzd#9!e6"Alx|5u$Z|iu_Ikz.;}WNyp~&p09g5l5ĸ5ĸ5> ?2gAk|MI_4T)c_dFN s߄(W&j0tb, mR6`]^to(07-/(|y\2g:Gޖe)g8-?:~Ν{x¿YYE A1 wy׎(wtM[MRnb?U'~<Ųw ! B7ZU~҅ϗ0:(sq% CX&94`<j)QRc+?i44yW@oc4J{\Q\.3nvR=oYFj D&qm414S],Gbo42)BWyXlruz8tJG#ث5P_#S&]X"[wS"#D C|tWJUJXX9(q3 ػ|#n\_{yI]p͔VǪ4Nsxj.3f<݇qޱ g Z 楜nYJ7*I*AUXlf;#<"ɋZLPj_PY#ըh{lVaCWDvNLY{ 1Az<zIygʈ(Y%_HSztר+c9.(ٻFI\qi*c0z>7~wu ~CmA .@@fB[pȁM6rr49C[%/5߿~&*ۻf7i_wڝپ 3{XH;U_/iдSIJEEv؉].^2tRKЋ93,Sv)E ~#_ Ei #$3 Mc! /lm*ڦٲ3AJSw%DwnE`cLܪl6w0IX^`ox~%LoyCB#Г TjO}= %aZhWړ|d+|~mǩy` &yAJdܮɓت"jGx]<)La9eS-j#$3 :N{":j1zل^oDNkoL;m/ gKA4Sn} -gЊu48犆;H=E5C*R+tjb~[&N]vyr1x2H; ͷCĬsǙ]nA.Fg9 Krݦlm\". ,Bԥbm $tUJs5B3 0z0XZ׎E5u:môljC(lg`ٙ'50n6 4[P|R9yXm``v1:qcs0QUn띶خ7->P|Q TcO80gq+NV$N:P!ӚNPֿszw<n~rUm#%#dC{)Ҋd;/0MAg04 )C+K{ .p_na4/wAlAD- ccC cQ6` 8 ΀RsuUQY=?0W?4 otzxPxOA7eP7éH!9abJ 'D mfo~ HJړKAȩ ?DC/%6l/1|9H NK]*T6_Qs+VyHa&Zٙb48f4+|?v)25w- mvZwؤ ^=e ۝rehh0F!ςQ0Ědi_T$UQކYqz5jJsдQSLRL%݅ gd'^˜q(R(ϴ5r9SxƸ\r_9ބSnN(u᥿ 3{PD)?fKUeYub/ֿɾ(gu8hsa&5L rfd spAK5(anS s,q| ` Vn$IuH\ [1ac+YDJ+*yl?">4-x2Vg,[\UGtp>r$379%j”I=cTQ? dK+I݊/ 664x:-o6mk[pBm.y󲙕Պ:l%̄JHT c̚ ǩx24XRJAFl˴Osڻ+ V8YKM j]+W?ڷ+2&h)pݶm۶&xWp^ViO0i&Ŏ޽:Nm=sPWoiȨsWS4^㉽ (1HF?؇''Uw֌| 0A]Uu1: Fs{ oZ@F.ۃcj9w~uuZBUXS ;Jh껈xZ>Ey3]DQ ~#!?4 D&7 2M|ҋWXް ǍeuaN| %_otwp *-گtܯ>f;Ig5N %% wbyk1tS[ߘ"6^GcJ {r('╷ #zrĊzV΁,}?9.0EJ̥Llێ1˃jZPW Щ;_TpLm~cAK6R{9݆1=w/_{:tJ;3XxSd&ߥUmVÿi8MpbX Z3onukm`$kzq B}%W["nj 8ɥDk!>rx@U{d{%Fsb8i_B $p>n_KŔ/f0&b#[g^_D.(#H` w=9 %fɲw,چADZݒc/;-[8'ݑ@Aԗck&\_//[jw=+ԹSPKr tu fhe}crH5\R|h Bs@WY ViX卋؊⧰%E K%T.d4vՖt') +F7ϚbOχkxE?VqP> BuU^סk,)]YŐMlۅ"8O?EO&M9d`?"dYqiVF9S阦Z%ŀftk  x9K& ẗX05uG2xCYU̘)i[ftBSdF?W՞j6vf/_MmSLS(9!`YT=@8|&9Ækh@-7$hE_:_wj -}  -: ^J;ՊNAa;@yd_hFآ:qI@ϡ>`hM^DYR5% \Y#CW C\by،0 6%c登\ΟE(lӫ('}7Oz.w+UnÝAa8IЁCB#gtҌunAzo=Gv:=QT1Pimj[98xn@X!%i=.z$ʁFk'|Fe< zf E8ZkjQ-f|sw~y ;8>'9ͭSP@~߀T5W 8s5 X 6I4t`m1(NRx$Szf~@zYCxS&r Yr.;XK~@Ghk2i",M$5qE7DžfZ;ě=kl96G:i0uP.lxhq̣?zqO#$[a}m 82/Y8=Se;9p\&xT!H|BkهVcR6& qYeMPҽd d %f 9.s@#~n4ƅ99 ON7`ޗ[kTrGB8,XK; oHίӅIzdg!EeHɗf]jnp>#$KY}#Nnt.@Cx&/.x z٦ ic^Ǽ\8]GR[t7APo4A7*g!UD;L7[7!]5D,w+!"$3z[! 5t$icI d+k7XME-\7b>nQ^ټqLOh̲ " 8q¼[t^*CFs=[fof1ь~]_dJ0XaǺH@bm4M&M+pQnɵcݎ=3lѩ~q/N^/z2SS[CC*CJX0 okq-HIZ(WfMw Ŗn)GW,ViC=L d|TFifWˉTn:_:_eKIW@"=2BI);nwIǻ,C;BWǷ*Kܿv:v~P ]#VV:io;pӓznpZflQlJ ěʑD iͭOAC-uk0G *sPI ײOu[N")-\vGd&Y+#;>5-3(zsЍęSl< uM?>~]9_;G#njGpg$d8$jb*j^Pb%.]e ̶!ph糬7 a֪ &轜3k/-`S'Ԓ9x4}Ơ9d5ͼBFmWVHne)wqN((^Η=A݄'Y^+Rkާ# CS6tƴLlgq?v1?NGrx~+Gyk.S@ϰLnޠmꁢeN0>hM(* J|S5iThE_[w΃WE_W@gD^!Q_?WMS2K#u+4f G Eb!R^ȱ v+NmN6ȕ7A7|wIC6h"1ݠ4Bȥ;7`t/()w$(|ҕio5LtVnҟj-:y]M[ B q4gcFVɍC +2tʖZd5ُE]P;EZO DN!µ{9qLgL4]r_oE qSY kw 0~=uZglB2%THVg , S7]Dbek#[*Т)z3"㓎]X'['GTsDe! SwIqǵ/?6 {QGӖ) в{7J#melؤU~r.'+X^]>\btdvɼ{ܼ,mVcREsL!)?n*}6Ɲ-n(LJ0bꠑoK z(H* yVM%rDM}tZn^Ė)ڬkO5&}Bgֲ"f3^ѰsYlcmh>C>G'L#}rLl^c:;o9H$n|L5ňܬfsV|d  VCVj~(FRxՆ߷i0oT`0 kE &4{y"+wIV y&Νh]e",qj 'VueĞ_]aH6S/mH79dM줍27 _~DLŕj:^EV/W|?vaTHP&\8J2+"o1Ѣ(VLc'6.,Tn kݿ- s3|h8%pPpbkcBMàJ45`n\{$]$6Q9unim4}I ab[8\$Fi  `M%D/Ó'L^Z]9SYR9J35U)DDR8G^P\xT*!im\x`2{(BmzA5H8/(I*ҭNJ~]$~N k=qPHwzv]Y -m\$.] % M|"%t5;DqxLjyLhV,&ZA/1K``hg%2;#y ؕxM&~`T4G,Jt9[!eZOG7Yl&+‡שzRl3cHtkQag=nd`:D&el'͗5k@0y"\4[ TBUѪQ%nN5ǀ!8{lKu.yU$u d-YupIяc+:<:\ j+tmy\}T|0e{PqV9u6As uuW6e+1vO$ Cb˖dc¡Hp@01_8_2w U=UeK\yf]Q0A7!Yhc!"qO"rvE_8b g=܁=ݰ3jݗۓ1;M`EI*uq<|XI@i,IsAATeD*HQPa!0!G04mlԢicp 踨Jxaˠ5VX,zQ \L~Mgw+ダm_z^L'$))E &jswư F;=GUlj[@VnLJ7,'<8C鲚#z6w@Ơ/<IQuѴ6Qv0b~`׾ }ƿXW$KuT9NAN*4K+Z Yr< !ȶF[N_E/-̡3d06-s0x1Kmn5)=gY5U1H#_fY_\4EJ"pHLz֟MKVV7V\6>TA0갴X Z&NT:CKAI[L"Y4z0Ql?Np\q-FQ#wi _Xݾ|#%h# i5#cm2yx*aY7+2x`W?WĻV%퀮~#n+E{8trXJVomZx#Vj7X4s0(*Y1M^f•!@*I`m<^˶MN~]4o4 dPw$d}BJe[CsnJ#xeG ފ+W܏:Qr%i_}$sd.]rSS"CX1jY0gyi8o\YM"=2DgvT.smà { Gplč@ IN ,(B.W$_Qpp;C9_&ݫO> 5Z!Tqf*0lJ. ?A~SVr5|WgTYo}vՒք֨_ALC Dх%[]i#f߂]CHl9"SIܴ?u}Yy`r7} +01jaq| niO_ػHD-y.E"ЂNbθ _r0NKvp6=lO[2xfKd]ƅ ]TA4L u#0E8 F^7(b:KHy5jl{a+-C rōya2l-߇Fqsw 9211W{:˃rDeX'Xy86YOD4oM9A- 8]W[FKKH%T4DRLr*\laڶs{2SO%( zޠkԟ]=a`2#5rwC*A|NdkAܽy*!ɫƺ* GI}ŗVzZNue0=yFO.hIstЎ8PZvz=->&7/X*aE>pPꕢ4a*t,OuJ֡ϓ90Wc$<_H%V>-LBSC(OW >_ڍPiSSeϔ:0lf]4#1- yǞX1ްG4G:<#XWI1eKP gL. &-[+*ɇGk=)aIǭ L0طH/6K):Lkm0_} & ,EIP9uZmvۧB98jp .-VY;Y2. ZD-uâ¢diU:xq*A9kPhGGckQm*(14ASw (&9o6}dYpś|2d1_D6[6E5xvzuz8! 0~s"j.R*V[G"nH h[KMHXfS8~u @\| c|46 <rB/}w4]uį$ϤC x 85{C%/{| ֎|tZʙ*Q]$_кa`9 .vjb%g(WWǗ\gO;xt^jƗ W`: p<8pގ1E]nq[1jk"b1ejavfKÅّ{pJ4Ӈ,a.E  77ߛԆD]XshvXhD.:2ܽK< 0XEI#]]خ Ux4;5Mx_ʣ\\,ѠtthyX,KCˢDUjHeQ\_gNZVv\YQ2Y#:G[y\}\zԀ^ 8Gς@` }ܧZ:Q q{Xicz+قύb[֬?z=kX?Xc%jC>;a܁wxZCPڮB^)ji}P!CKs3U~<-ѣ$0kF4 'Ր=rLkzU*5:Ylq~F6iu[VuAO&k՝tېW$rrbx#&i?֘}ڜ+IrFQ[(\ $] (`K_ti.NnxT .٣X򶟍%[2}Mc⌗hI<8 (^^|,7;B.yM)(h4^=a#Rq-wlSF̦8]Fa4W'@+MAûRU!~,LpV& @]y 5V |:%X,wZc׺$WBe{QPBE*Cl!= 82de#j%jlUOsZd#}M0x#/?|/^O3Z+&X*4\|^pDU~W _QNh'naŮM)&A2pb]}r Efh>?x[?"5m { W+  "<7D?dnxwgaY"UΓ :q!x <ؽi ]x9tfA&n{y~q.,\ӶalWna<>7g6Q-+0K6cj[ԣ?rxaY>߱e[iQ^!R"ktQS97fꃓjN)Bе;8Vmb$[am[MHlf* Ո- wһ4!E 'pm)fHO"(/iR_9p7ցf㟛%TJ` ɿ5&pY<ro>\uzQy_6Lj<ΐ>Ka{D!FBF~LIo!˫"GM5d2̈l 7FG׃LtmH o˾%gbQӤqY*2:&كY1_)P=1 IFeM:-w[ Mo?ǿGoPK!|RA,zGBarack Obama/tests/if-0132.txtUT  PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAMPi^^f^BnbIjm-DBr@Ntpuqu1=w+D?*(DPK)|RA+&MZBarack Obama/tests/if-2036.txtUT PPux dTO0~_@\D#L=q-en7.M4G 3 ͞HH G/N]o eBm죕Rq$I(U<iu}sld-CX@wZ00yjc3ndCinIF@)g% }dL"D"ӊ: :i{J@PoE1?1ʠL¨ސhCDzvSWODN QfF׾Yq5׻%8VE'W9ܽqyy4wݑj֩ M->qCPK%|RABarack Obama/tests/if-1416.txtUT PPux dV qUrJ,JLVOJMB3Ӭ}s2!Ԁٱ 6Ź99vIEy 6!"}; >0]!\_BqIeNRIjE.О<Դk%jZ̜<.^X[[ b׈WW/ߏk]/\HPK%|RA>o"Barack Obama/tests/switch-0069.txtUT PPux dQo)`@"Cr"J F$ޝF $$@pSR#F]䭒6Oҙݣ$ccDՒۙ,O33r}yvcML5o/--~~a 0u[a_FM;g"XQa280hܺuZZ,??b0:W zT RgEg!dF"cpZ^)De#-sf 0AkӃᣓ!]cB(mS ~`,c5cXX V OȮP^ep='  UG6BI#8$"ru9LU &_0Xh͚㋜ƙ1rDyq(y50Pozgrg_P36T[D8 %t$,*ˈN%E',#ר}+Ʒ1}%2}+g%HY5q`pjD$%hz-o@V'N\ Y Fu Og~VO)1B?.G֓ XalͲAqSkS5,v&IfVYZ_6))H xx3ث*" 3s53p5{{)ˑL59 8UiF&*>h<ǀ.5n+M)*~>-g),2g9_mm܆ Wo%<3y4W[9Y2U׮7 cNY8Ư{׼\~J͝c.B%:$>% [uEZlQ"`Jh54IHt")n- 731PEEhM*Z׎(Qûh̊3\=d(|nu!L>Ihs(B['<6*F`x1dz7 )OTPbTRHJT(6khjc fI4ָ1{3QQIV5PXbT jfcnS`L_*Ը٬F+XLM,|QY~\`O@}:Pt\֒Kımp4q$ͱ S:5t %;dEEh]$TbJiPEZ$㘅|AML!ONfv3cxꐵcyubfvR6mxp0Q]GRox/'tZ={9v=;:k~ʥ_CC;85aݥ 7QJ0A(5NU>vPT^4 \|CC=gp!.2J[ZZZ/;l2 w.%=@{L{Iu}Y/5*ԫWc@66 [s𮁡+U8o Xb#vb6DOie%%aI,P @ vPK)|RA12x{Barack Obama/tests/if-2010.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (x*(XBjLB L2*5'5YFOME,QPYk~HF_jBd~QBHfnj150$B5"9p #? &P)MPK |RAd}i#Barack Obama/tests/if-0018.txtUT  PPux dAo  4'`%xJSi }غeE .1GҒvR*=b" G@3qXJ =5fau`$e`s RVsZ9eߧ%%;";[꣥I2NS}I3fH'/5fH>KGPR/ o{uQ,ӝ{ %$QRWQmw[LTŴL@ PK |RA{ Barack Obama/tests/ifeq-0021.txtUT  PPux dTQk0~Wه6vAlyRj âYV:NKP>{.kraf /z/^@;`eOw:riUP*Y ':@&,k_3G$l1 nwq:l[SnҴ?- N5hp$ĔQ̤<;"?8&) jh 4_n8_mv>2{Lo&ҟH5Nhi,ҽ }=5ybc,̵ٜKMQ \}w}S?dA?+*݇T,V$ GZz=Zh6c\:àʟPK |RA-dv Barack Obama/tests/ifeq-0014.txtUT  PPux dV qUrJ,JLVOJMB3R m I-I,IrM,/LN-RP1`gF:~~仇b B h$PK-|RA:3Barack Obama/tests/sec link%2Frelative url-0008.txtUT %PPux d @ {<nA[7"PϞWM[En뢓4I?QjfnjSd%d{ d6o<T> wz>zgF'|gRR\eK 9sO&#yPK!|RAGX"%6Barack Obama/tests/if-0315.txtUT PPux dUmO0_i4 F'uZ;iRUUNr-ǎlёI%; $D{q{) &d{/8F* z}<9/+d-9 'r`\KڿrJ0T fjV jUv jWtTkq\fChRi,|dLi*05$!_Y9"ΥC"@c( 3h5 C/1mLi0&t)@ d7j_U01j@1-A*b-`rX2ͩɔd 32[-7R1?)> g%xT"U\*Siis*\S8Ö{橂"O#9>2ciTrfXĨ fbYDC )ؙ*3Q<1ĀM)-2ugި]u{X;-qEd a$_$r)jcÑxwoI0k"8m{̝g;wاYVPԫkqN/ 82r&O 's{ FΆ xKuJEXq5B|z W?n"&Upzܛ&l):$4HNӍ (lv* o_۔f(IGH56Ğ"i5h8bP>ٷNlP?~oo[gS#{Sp0][FrX`+ҕ^|mke^_<_PK)|RA0߸*Barack Obama/tests/if-1979.txtUT PPux dV qUrJ,JLVOJMB@93J_P_1'1UFGM]66\ɅkDs G~qAd5?*E+PK.|RAud$2]h Barack Obama/tests/trim-0004.txtUT (PPux dV qUrJ,JLVOJMBK2skJuSjkF:~~1b h.PK)|RA*r "Barack Obama/tests/ifexpr-0003.txtUT PPux dXMk@W <`5Ղ9CZ,jЂo>n63q-tNx3z3G sn0x~S ^}}*8{EV`E8>lebOCnF(ea.vF+fw6 .1#el`X.%xk|NNv"-yEP*! y*7M*0҉D̼swQ.iE NψWm-D ia)G4TImo|Y)'@sKDVThRK`lH46BCdxLLRc,H g,4 #cI B n dF"*@FeĬ`ɗ0o*0.wVg֍T xjWuUCW! [`592(\;7Nc |o.h2?S-%~PK-|RAZ>_cx#Barack Obama/tests/ucfirst-0002.txtUT %PPux dV qUrJ,JLVOJMBK2K Q[b8{o'#pP)PK"|RA9Barack Obama/tests/Infobox officeholder%2FOffice-0007.txtUT PPux dTMo1cs!-{@JT !4سk#{6* :xzhyhY֓*WK|70^Z(F~jZ_`xFoR7`Ӓr,׍r<Ht7r~ @z%ZmAvf݆~"4XF_2g(/4-K yӁx2}xA 2BmOy[)߆^3"-]"F8clFN v&1L{,5EEq6][.i^S޼yVp(6i3NjNoPK)|RA ܺoBarack Obama/tests/if-1971.txtUT PPux dV qUrJ,JLVOJMB3ӬJ* t k@kkppuqu1=w m`\@PK)|RAecsBarack Obama/tests/if-1990.txtUT PPux dV qUrJ,JLVOJMB@@93J¬SS66qjk6F:~~[1υJ4PK'|RAeBarack Obama/tests/if-1754.txtUT PPux dV qUrJ,JLVOJMB@@93J¬ASS+ ,C-Z&%5Ǯ:'?V-5F$UӉf nLtBsiQQ%\$5ec#kXQ`3A(.wpuqu1=ȏ.VsRPK'|RAfՕBarack Obama/tests/if-1746.txtUT PPux dV qUrJ,JLVOJMB3Ӭ,Zhd*+}r⼤dodldnfbjTP[lQzA~spuqu1=$q.[BZ PK |RA Barack Obama/tests/ifeq-0022.txtUT  PPux d 0z r ;A ^X*4ps|?P[^kHK*;$N ~`},֨Q3 ߜ1= 4Yc1 3ر%,yU׿DmG|PK-|RA RPҮ+Barack Obama/tests/sec link%2Ftext-0005.txtUT %PPux d 0 }w7{6!+AZ]xO8JIQudӥ8TƱ' ui1 :>I;טˎtu( .hpEku,?VxB&>k Y7G\/D(Im4PK(|RA4~wBarack Obama/tests/if-1941.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D/5%$3?϶('5/9?%ժHb8{.~.T 1PK(|RA2BBarack Obama/tests/if-1911.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP-L *rm!. _䂘BPK |RAx"Barack Obama/tests/switch-0007.txtUT  PPux dQM 0 WveAMXx3Ų}8dY=B {~` KيZ%n{cΎ, L 4jǺJ:zX啹'֕0hZU64Z*j-LhTSQD[ 4',"N}WڦB?pPK |RA< ] Barack Obama/tests/ifeq-0013.txtUT  PPux dV qUrJ,JLVOJMB3R m I-I,IrM,/LN-RF!BMjEAfQ5\ \@rkDs Gk &P)H&PK!|RA%%Barack Obama/tests/safesubst-0021.txtUT  PPux dM 0 a?z&XA֍LD$ #P!HmLfA9΂`ɏ MMiD/ i^PK+|RA"Barack Obama/tests/switch-0099.txtUT "PPux dX]o6}ϯZ"[^q\̅?] ckD$7?K:ؒ&pEs?C2h:-2q\PEٔCwA p/׹ )o@Wzu=a{)H`H;a3j8{4U4vo4z%Bb6=q"kHALl"#4@4?Vn|n6 7ϤwmYîy6},1$]Z=+It]vo]C2*-=̋ш<_[̮uXY^Ae&I1|6$06ShJI,.3?53cnG.(3OdAmWf !\uɅXMj`"]N@l\ۚ<]P'†b4eR}'g*aSIЕp&Tz4z3*K g|eRG?OvJ+n'}yRC"_ma@ 'Grvpa`ҤnWrf&aB9ŕc|oj jbqK%j,t@0m)o<.˰h#U1u:0O.pʋRPQuG4(%klԮK$&,aniYrcA2k0Es=~i#[qtHSB=\V%0}o4ԐUʚ`7;̓b1--ȤYbEwّ Yڝa9 )cLOPX,\͵RT(/C5P;s]kьքsO=*#c(jv!r_\ud6 SrM6h "ޘM2q$ѮWvճ KyTU۾G]{"I=c|cw?I5k2mVUNBm]&Mj !!>Z,vj\6*5,G  9-zt{z8h{Xmg+PE0M_UjgH>]֥ivOS'uHPK!|RAB^P"Barack Obama/tests/ifexpr-0002.txtUT  PPux dV qUrJ,JLVOJMB3R+ ,l j"Ey) @H,mhag +OQ04ҬŦj0 R4\]!X!kDs G~pY@sRPK!|RARdBarack Obama/tests/if-0048.txtUT  PPux dR=k0+ tJ2[14&x( lȒ._+:ht==݅e> ^`z+ BW}DI;(AӌE>oujikTXIz_/#+OQB!%dF0v4omn"Iv]v6lP0R3Z(T]RQ2`IDI =Da&*aBh<!CsO&|YQS,فQgXq-,pIppj'P\ba TEs+T;'L=Vk|޳HQ>o޾?WJO,<)7'Ӡ_-CNcJPK3|RA4BȒ%Barack Obama/tests/namespace-0092.txtUT 2PPux dV qUrJ,JLVOJMB}]]B2KRSKKR R3SRJ2sRsRK2t jkNqpuqu1=wD?*DPK!|RABqy8Barack Obama/tests/category handler%2Fblacklist-0001.txtUT  PPux dV qUrJ,JLVOJMBKR*2RrRrd($*ւupuqu1=wD?*DPK!|RA[lBarack Obama/tests/lc-0025.txtUT  PPux dV qUrJ,JLVOJMBs`v(ւppuqu1=ȷ+ bx>d?* dPK%|RA>"Barack Obama/tests/switch-0079.txtUT PPux dQo)`@"Cr"J F$ޝF $$@pSR#F]䭒2Oҙݣ$caTБ%Ygfnk\c S3H_Z[[aw¾^1N}׵HFViT )N* wܺ5V6ߢh_~`uB"P iu8|1Oft,b{WBD^ƈ9%;,= і.A"oefU[CUlg 蒤,!<6 k`kゞE—#*qdn ]E׎&d#*p=O,@06#lLZpiYE*,s !ܫBL?b Ѥ5SW9u-=c) Pk`NXyD2RZ4F?!BgmpB##J(IX6T"!-KNhU M*nYF4J"_fוa:_Vԕԕ epfāéWAÿiZ9 8arE'Pd=E-?Y>G=8Gؕc=؜͌p}MG@luCJfXof<5I ,6BZL0UIE"O&dz^Ui8puՀ=/j\`9#r,r&$ MT|Qy'6/5nKM)*~>+S:beYe&r-B¾ظ {~K xHۛngirF5\eZJs߀btw6~UjIH =L"TC"@l,WX+҂d#TMztBpIaUcmYHp}쉁*J2EnR1Z;dF 1+LrX3y=f0_Mnv a"qNBQ4]njOؠ$ADx@S=BH܃{OI)<˧APc֝ؖ,|}Fv!qy bV<^_[&vm^<90?\~OQl7'5"nR&:$%LY˳HK(1Se$J$I:(%z5~RˬDSydK#Mq/u$c:",?#ƝN;[- ߄\9{*~0nr*Nyh!`)4gs^ښFAt"FvPQdҁ!Y`\NoMa(Q% g*B{ro fvJQd!^2^V~^UTS_-s-yptW]en` 쒁]mi$>w,ؗeU1 ZvdO lxp+U81#X8혾) ?7B;#j2jvpNա gE:7ϓn(O@S73EI, b|hI8A$%ZFZ!k+WC*?+ ES",2?7hhkU|#^ #Kfl%@n[J ZTnAzX_8y ĪIն]N85M<~L%ĕ޹c~J+W1T_\S8D9ws` u%tml.7phl[-/PK-|RAec Barack Obama/tests/ifeq-0153.txtUT %PPux dV qUrJ,JLVOJMB3R R3sS3KR*mWIN,*.!N}m-GwW?G_WW܂1z!. _ȅxDP)=mPK'|RA,oBarack Obama/tests/if-1676.txtUT PPux dj@C椢b6=5 . 9:1dݛ4R=Jp0 ;|?C0h<\O -gK&rd,R0]!u,}#?3Z( \wg;ڀb*# l" R#la}'yƃ޲:;f\@JmL5%ڪ)'帪`1b2:z}uZײ)zu-nk#!,fϜ͛dn׸eD7PZ$ἣۨ|PK(|RA}ҌLBarack Obama/tests/if-1918.txtUT PPux dV qUrJ,JLVOJMBʙiV D!V]FII~^^^bIf~^bNV~iK//I-ebm-8\#\C\]@ G`O?C'sRPK'|RA=4ьBarack Obama/tests/if-1807.txtUT PPux dTk0F9vPa0;66qiH}I_VA=_|=rO|99d0܁p{ޫw`0c[0p*~l!T HEG|9+;LvB3Ma W@)Yſ(M"@&-Umu-{۲ǣfd ijOȺYY0E۔Fm.JDYՠp8żRFX1!N{=lB,z񴂃XRHod0Yńz'IuD+(B>ZC-,&¢ղ{i|ܴI(b2.e'rhj>޼E-u﫵KlN/BPK'|RA)QlBarack Obama/tests/if-1750.txtUT PPux dV qUrJ,JLVOJMB3ӬJRLu ,jPx\ Pĵ`]#\C\]@ G`O?jx?*xPK&|RA$Barack Obama/tests/if-1602.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i\I1r設媭5"9p #k\\@PK)|RA55Kam%Barack Obama/tests/urlencode-0021.txtUT PPux dV qUrJ,JLVOJMBKrRSRRZ-!. _qALB PK&|RAm< Barack Obama/tests/ifeq-0091.txtUT PPux dj0 y CVXB<69ڊ6I~Y R@OiZ]w u:G%9j-&KY]hcg0$;}テ=G`B,Р#p] KcO[(p1ssp=8T HJ|#i˨&= ʹM]ÔccqZŭL\ϖɨf1G PK-|RAץ"Barack Obama/tests/switch-0118.txtUT %PPux dQK 0EYm,EA\LclBM1Rޠŷyyd)OZT7tHhR%̅a|٨LF'l+(4MQ}xg,D=BZ7`YΪ{ƱmӭFćN8 1ierD]V`(vIPK |RA:ОU?a"Barack Obama/tests/switch-0002.txtUT  PPux dT]k0}WB5e c0B5i5n3um,${IBo.Yh<ЌF;7)udߒ%O8 3Tpr }z9OU8XP*$ x,$gSG}nE "%c"THj8.{5@G`߫؍-JDlsVGWR5XS݉[7ďeHvO/™ MOVa0=XIwL|dU{/x|u-銚K!jz }\6 L_xUOJq59L!PK'|RA?{Barack Obama/tests/if-1681.txtUT PPux dV qUrJ,JLVOJMB3ӬjlJRsmr+t3sS23JlKRjkF:~~; b h$PK'|RABarack Obama/tests/if-1784.txtUT PPux dV qUrJ,JLVOJMB3ӬK* +@eRJ* u , r5zjF0P`jNddjb_~I*bLBtrAH 5"9p #? &P)&PK'|RAN Barack Obama/tests/if-1753.txtUT PPux dV qUrJ,JLVOJMB@93JΫVq.-*DRU$Tlld"X[0 l0 y5"9p #?BX 6υJ4PK(|RA/ahBarack Obama/tests/if-1923.txtUT PPux dV qUrJ,JLVOJMB3ӬjԔ54jkָF:~~1υJ4PK%|RAUwBarack Obama/tests/if-1400.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkJ3K2 bjNd*52 ѧU[ kDs G FP)FPK%|RAct"Barack Obama/tests/switch-0072.txtUT PPux dn0eLcRleJv% CPbvWF 8$@rpSR#F]䮒.2ٙ$/eaDѐ͙7\MO`Ksys-4xF gnz'˨`'LߺZ$#_4*L'۷oD@k@+=SIp߰/uVt8|1Oft,b{WBD^ƈ9%;,= іnA"oed[Cg 蒤,!<: `㆞E—#.qdn ]E^Lp}]dw݅C&?e0ب:1J9d++0_)`pm0ytD&kOr )3c) Pk`NXyD2RZ4F BgmpB##J(IX6T"!MNhU M)nZF4N"_fa*V epfāéAÿiZ9 8arE&Pd-E,?Y=G=8E؝c=ؘp} G@luCZFبF ƚ$͛:6Zek}E#Xw "'X̀b4 fksp5})ˑL59 8UiF&*>h<ǀ.5n+M)*~ ?+S:beYe&rMBĹ;8~K xHkm6wO-;{6+liAEA*fYH`&!EϺ,$8>A6TLQ2јe fz,Q<3& 7ņ08'QsW.#F'lPDcg  < 0EED"SRJh8yto;bݱtf,3 P3o|kقDP拚ܢfӷK>odǣt+GQ3`PhF}ɡ>0 fi(8D"zbxI]ex TKMRZZZ/{l2 w.%=@{L{Iu}Y/1*ԫWc@6 ;sNpxcvGq$1}S~'B;#j2vp\&G*\WAPk-o:}'_'QR$)Gof9|SMQYl"r\QDNg[[PbE*F=l$DPK=RAM%(I"Barack Obama/tests/Navbar-0002.txtUT 6PPux dN@;_1Tˡ&Ec4fU&.dw1mݢLf7qvqy7\b lY6̒$zx٤͹>`R(2*dWۗ>л, sxZU+2 6?k] ^"~F/Q 񇇸\{ΡFh1=KHU5 ueU ;=K/xAX+D܉yqu騧nPK!|RAY4Barack Obama/tests/if-0041.txtUT  PPux dV qUrJ,JLVOJMB3ӬjTjEAImBu_kEmm _INm-I!. _nr,M/-.Q0сB PK!|RA|ob&Barack Obama/tests/titleparts-0004.txtUT  PPux dV qUrJ,JLVOJMBK2KrR J11b8{o5\\V@PK-|RA+A Barack Obama/tests/ifeq-0146.txtUT %PPux dV qUrJ,JLVOJMB3R hĒJ ܂xBiqf^B~Rq~NjIBm@FQqMnuukmmllm-ح!. _悘BPK%|RAho5Barack Obama/tests/IPAc%2Den%2Fpronunciation-0006.txtUT PPux dV qUrJ,JLVOJMB=uS J3K2jNwւmspuqu1=ȷ b h"PK0|RAڌcr Barack Obama/tests/ifeq-0176.txtUT +PPux dV qUrJ,JLVOJMB3R  jD~J Q[ 5"9p #Z.C\<@CPK&|RA/7$Barack Obama/tests/See also-0001.txtUT PPux dMk0 /8Ю>`!՘kt}>`]@zu q[NOQjG+][t4n J]>Hزd@)J!9>R,vB4{*UC"z6R*7F5I}@9]hV-ж [YO" PK(|RA϶UBarack Obama/tests/if-1901.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP,N *rm!. _䂘BPK-|RAp?%Barack Obama/tests/pagenamee-0004.txtUT %PPux dV qUrJ,JLVOJMB]}]]BRs rKR R3sS3bEVNQP;5"9p #]\mG h+PK |RA܏f3dk%Barack Obama/tests/safesubst-0001.txtUT  PPux dV qUrJ,JLVOJMBRKK}]]kk6F:~~[1υJ4PK |RA~=_pBarack Obama/tests/ns-0016.txtUT  PPux dV qUrJ,JLVOJMBJs8lkDs Ge\HC sR PK/|RAm<."Barack Obama/tests/Navbox-0001.txtUT *PPux dZNH?OJՃHR*@^OBx7{u ҽý=ͮ8)$P❝߬gh.ഃC:bZ?h:g$~/CqsIHP.ik*E b_Q2 si|4b6. $f#4g5&lYX_GS6s,\0[.SA֯⢃;EnBccI\RYVIsxﺌ Pr}R;` K8-Q&ldžBu [J0"Kf3ɯPV8VVb>c [b0" y$8xT)?rPڵ"Q" ?n';3Nh `F tI?9rlmMx/⟿>Q̡- $pYDdbq"ًbCcYhsAq Q#'nY5ۍ`[n0{NܚlD ՉyBOӴ>L.k:w3ן@xu"0.\9qZXP)8fX @g ӴQa}>OcV0/NbRDaW!2:GWt0_!qJ/CYdE>:{m.\ϥ>sia_I[ ߥǒzco\i!CS{ya1*<JeX16w `-)Iᡳ):AolS{B(OG((zܛCR O5yNZϾOЬBV\f `Bm.׿|̑ .H𠪠b5߾yW>0S֔%@@y#(H:A2V¼ަEIlsӉD7#sxxP/QⵥU^QW˭F}٥חLΥ]̊fWiwNŻ9>g]6ZQ|NPNˇeUDŠ0cƹ:`phر"R*(✳ k('-Rk>lC Lltĭٷ <O}CU7zE47zʺn|]g_OG 5rq^ESks'^.GŸzB~˭ne|n8@}AuEԯp:SpvŘ9)/!Br#ԝ|)\W3 Qa%jZx)G^ous u+az\*PM"J (zO76 :C]X&~6$0Hʵ2]Tŵ>!nڌU5(GhB;E5߬O8Ku*Kq}6bd)K`CUKUӥ`/?W fÿI=5 ޜ^Pv@TpW7T̕h1L=Tj^9s|v>ng1ƽh84/h_ eKTkAJm"uh兤V/6۽O B֠sC!ܐ/5 vxĞqUpX*GH,?b6?cʺӇt<)?9秎S1='P&V(~ϰ%+5gc#:b?@Barack Obama/tests/Infobox officeholder%2FPersonal data-0001.txtUT PPux dWN8ާ=V--PR` ն+N*$nbڑt ҽý=ɍ$=nu|hɌqb Mb[t99pxҟ}: O!1QDDFD&cp-C*xNt& .. &~B}k$1GZ1a$fxu'ڱ>Isx^{Zw;8ii)E,)W轐>d"ƑXqHp/ڥ$3qqNקǒxH*DEUHW1cE8(h4s8M"D]Gڈs&$gJ%#Vk\6+LP,Z8SN%V\$ѹ OEC6ߓDW$C]\pRN/1Ks|[hD* -' ,ߚ!0WAt !A0џ E+Xq3Vc_\wHvpXJ6{dN3$ P5ƈlV? r$sXo}t?u! !/f쵞Dp<^CGwOVʪ3rvŖ.l.+V3bVJYer]t&HĴ9Mj5Woj&@@Bft] s\,`@+653\`x~$HTmC+!as:X&|?M LH10'm|r]HBӯPz0`E'jVK0+W r~" (Sp?U⎅T3ȋƶA>)F+ɦw@i>>dU^q-E%쪞']#KA/Ž%!YzlDH,%?PK |RADz7]d%Barack Obama/tests/talkspace-0002.txtUT  PPux dV qUrJ,JLVOJMBC}]kkƻF:~~ 1υJ4PK-|RAqis Barack Obama/tests/ifeq-0139.txtUT %PPux dV qUrJ,JLVOJMB3R j*SkljԔkkF:~~6b h,PK!|RAQ}"Barack Obama/tests/nowrap-0007.txtUT PPux dV qUrJ,JLVOJMBˋ j=2SZ]!. _r$)$$*AUCFb h9PK,|RA+}[0Barack Obama/tests/Citation%2Fmake link-0007.txtUT #PPux d 0y(z#TU4hDjDx$9 0y 2SoCl%4}%C)f"-,GOv j[5ty =. :4Ŝ&o>?Tɐ݃*)G Qdg!I* 1"z0YwdoAwPK'|RAZiyBarack Obama/tests/if-1756.txtUT PPux dV qUrJ,JLVOJMB@@93J¬QS60VS66 ւupuqu1=wD?*DPK |RA/@btBarack Obama/tests/ns-0020.txtUT  PPux dV qUrJ,JLVOJMBBRs rKRJskkF:~~[Džbx?*xPK |RAm\n%Barack Obama/tests/namespace-0014.txtUT  PPux dV qUrJ,JLVOJMB}]]Pl[b8{o+D?* DPK'|RAWZE0Barack Obama/tests/Citation%2Fmake link-0001.txtUT PPux d @>Х[K{0݃P[RxmA+rɃi=@Üf~0tC!HX?ݓ{.H؉F1U%EJ`H sk}PZ,0,*sܨabi 6Ĩ?i*P+8ZUpRO٤x~=r[rgh,q&^PK |RAtkx Barack Obama/tests/ifeq-0019.txtUT  PPux dV qUrJ,JLVOJMB3R j*Sk * *jL *Ltm->׈WW/ߏ|FC sR  PK!|RAdwBarack Obama/tests/if-0308.txtUT PPux dV qUrJ,JLVOJMB3ӬsRJ2cckKS ԔԔZ!. _[1υJ4PK&|RA j~Barack Obama/tests/if-1507.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#k(kkՔ+̝IKbL*6׈WW/ߏ|/qALsRMPK!|RA#*7Barack Obama/tests/raw%3ASpecial%3AWhatlinkshere%2FVice %5B%5BList of Presidents of the United States%7C44th President of the United States%5D%5D-0001.txtUT  PPux dV qUrJ,JLVOJMB˭ R3s3Kr23RR2S}2KR3SRJATм̒Ē "jbckk~ppuqu1=̀υJq PK-|RA~~ /0Barack Obama/tests/Sister project links-0001.txtUT %PPux dTQo0~ϯ8 RIF7%&h$nؙm 65,_|/3H&-Jpa^hdD_iWNpMYҹ0n1jR =>6_q]hOn ;XFRЄ*(f$dBD(h8,X &dpq޽Cx,y8U(KCd{hiۊu5TBL,4tXtNkRP*vVvہ:e4 ɖlvM ƢW=&JW\ʸʄ6I_w$ȂφAC&EiυI%QT.*[)-Ly6,O#|N8jӿHܦi<6-}B6Nǃo5u-𬧉?!H_Tz0jFϿ8z`"g6mzFη'PK(|RAճBarack Obama/tests/if-1902.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP,. *rm!. _䂘BPK'|RA|R<Barack Obama/tests/if-1808.txtUT PPux dTk0_q@iLw7j;7XC֤KIV7,499}4Y7ep# | 9A8zpz4Qn7dMLGݸXL$+.+Z9e+d'HbV0$T"I9TaxɈ$"_.e,($ȧo3;(~9^6mjvUBZWX8<&]Q*UR|;nF7G7 SN_}+;"L5u-խu˜MT%6]/S[\5i(klgNB1nZ!h}R8=; ߻܍jUb %{GМAW?R] 1&țRk%6X:vO-~5iUJE.>w&0_IM ^濿C q>EgPK&|RA/: Barack Obama/tests/Main-0005.txtUT PPux d1k0w#LZhU( Yò,I{C`-zB{\\W3vhE\Jacɟ=E[C1&C6N7lH|oEE,j-oX^!Ig#~M z.d6uA;-'uWj(\gBK\PK!|RA0 XBarack Obama/tests/if-0377.txtUT PPux dœK0+V6D<Cu!CӠ$鲃T!{~!/ACE0"L3K0XzF4ZE A<^L5S9c5ߵ~OA1vow^y2lDoMGQ֮|lpy#Z!|+0J~c>l kPoρ6yO.r~O6EQ诡=4tnj0Uc-iEEC&H"?PK!|RA{"/Barack Obama/tests/if-0340.txtUT PPux dŔAk0zze0V0~Ek/!m!_qqH=QIwe(dKx* 45o>kh7g+23Ym6N3b'eS^ 9%ଛ$票"&b֖U #_i}N4=du5h;~(Y r^\:Ms,b:45!=E_#ePtG}d [bF.iυ[`F?PK(|RAdBarack Obama/tests/if-1897.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPM,,*rq!. _䂘BPK3|RA=+"Barack Obama/tests/switch-0178.txtUT 2PPux dV qUrJ,JLVOJMB3K3KKsr Sk r3jlkSRKsJlI9 @miZprjp׈WW/ߏ|p!6M~.T ~MPK'|RA("TBarack Obama/tests/if-1735.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52ih]I9:ri媭5"9p #s\\@PK%|RA_ 2Barack Obama/tests/if-1403.txtUT PPux dQo0+,*UD 麭 ) TIQ.f,Jk65S`9ι Ils-HO>= BC_438 LU =:QohBƻdV= vL鉥̚Q\d˸c*}0tr .'Y'k쟧D-NHS.EkP%T|[)qGl)ƃBB]ˋ?_oL#i1#u}覟LW>HT,GJPLNdЂ$^/b&-<6B4 {Q#su=m֪J+ ۇ|8SZY`C.PJ1Rg(%B+ff!n]sOol吢lL4ď^L{;ɯd&VcwU|ePK!|RAjacj-Barack Obama/tests/Active editnotice-0001.txtUT  PPux dV qUrJ,JLVOJMBK2RRS2KK2SkkF:~~[1υJ4PK/|RA6'#Barack Obama/tests/s%2Dttl-0008.txtUT )PPux dOK@)ɩkWh u$4&Il[͓wz c.JCj Q}cgV?ic ؍kRynڒj+̻_X'd*'Iӻ黝~Ջrm_Sл~S6>VL;a^ T0{ lː$_9Mۻ>3\Cf4}PK'|RA!P Barack Obama/tests/Main-0010.txtUT PPux dM 09]#ؚOYh] H[ Y1 c(Îhn!C HE&7H`J{H5-~.T ?[PK'|RA1$tx#Barack Obama/tests/rellink-0004.txtUT PPux dAk0 BNān!x09"]l 9Y;LRS ' xaf*fmVWfr d-J_,HQ=[ gBF`+hU鄂Ca‰:FAo:%D8ܑN dirضۈ_ћAUg?`R;d'\@_@gtVC[m&zD PK |RA?vBarack Obama/tests/if-0003.txtUT  PPux dV qUrJ,JLVOJMB3Ӭjl33lҼtIfnBBdM-b8{.~.T 1PK |RAVbt(Barack Obama/tests/talkpagename-0001.txtUT  PPux dV qUrJ,JLVOJMBC}]}]kk6F:~~[m W?* PK!|RAo׳ Barack Obama/tests/expr-0007.txtUT PPux d 0DK܉DjhADn|RwkY 9 c[sر*D& U|^=c\ HL7mua:kΠHO17+><¥!(Ո<ڹ(ul&qO6VY2*DP9PK=RAc5) )Barack Obama/tests/US Presidents-0001.txtUT 6PPux dV[S*G~WtJ.PQ4STӰggO.,zL%*, !]#?St}uu}@JZrR۷,Fq; _V=ALJ)RO:Fbu#\痊:Ցڱhmo#r) faq~rQ NyM'&}&#.ĚMoQ圵ئ Y7tp2{^zEtö T+ g|B*,9L,n01<5K~iQT?/D:k mhm!ғgrCβum7!9I|1"8+r'>i2|g`4h><2,ϔaRQT$[(xS@0vSkn>yyo0,⹞ƒ27v.k^q1DZ;A)4jW~d > Jn67=Ro $v0#Ȓ%=I&d< 2B+QS("6z—n)#d@U<Fj%rxҟ=}ݢ?ڟzM7 kهyLK'I0XA0{ZKRRȥ:ȡ@ލ1Vg_a nz2yr%{_˵=_I.M2͙VM5 F_)K;6:,Z?PK1|RA2pI"Barack Obama/tests/switch-0151.txtUT -PPux dQM 0 W 7 zt CmNݩxy兗lI`@7lƬ -q4DKTقMV'JTʗv$tBimsIz0 k•gkxf2fno:S 0˚|~$WG@_o_8j_ PK%|RA!QBarack Obama/tests/if-1449.txtUT PPux d0E+`MP0Q0 㢼09977 qL~ amCɞxWR\g w k!q"̒LHg1r-mH4eI,XL4"GO@*OY&Dvx J/5j3PK!|RA \cBarack Obama/tests/if-0245.txtUT PPux dV qUrJ,JLVOJMB3ӬjtSsRKjk6F:~~[1υJ4PK&|RA)% Barack Obama/tests/Main-0009.txtUT PPux dV qUrJ,JLVOJMB}3j232K4 5L.(J-N+Ѭ[b8{..2b[Ԝ̼lL;}( (XT t,drgM'hl>YvP)&PK'|RABarack Obama/tests/if-1661.txtUT PPux dV qUrJ,JLVOJMB3Ӭjlssr좣kk3Ks2kbkkccm! kkqpuqu1=wD?*DPK&|RAEZ}%Barack Obama/tests/namespace-0029.txtUT PPux dV qUrJ,JLVOJMB}]]232K4 5L.(J-N+Ѭ;5"9p #-\\`@PK)|RA@[* Barack Obama/tests/if-1981.txtUT PPux dXKK@W =Ik}Dsm9(GwnR7ݙt+&fo @d.?nͲno\UY>HVF6ԂJ85Kr?;W+HIGW,%UdOkݜy>yd!3SJY1I`S16Sm(TUȝd5[IQ Cs38>+^SX4`d]D4tE}o|Y)'@sKĬVmh(rl$J0[M 6$!2P&&z۱s$v³pipP!SwHRjи5r֑-Ĭ`70O.tY6\UϬԮYQU]$O#kۗ\}iF5*u\cr 5[,P=xO jfWdC40V&JXg&]љmD t`}]k%aF+˕6,C̿L8 i_ V: 6:t萧`ڇ9`g1恃WGƇFMo[ΔҮO5M]Pqy9rTwn\N>[h*ȟ$X[['=,:ꙧ>>_ō7+ft$jɏmo5OBO1iZVd@D\{`ǡ_4E,G:!%)G|u)0DZ83֯,AaE Cgs'4*?S.Kީ s2]Ϡ#}QȺxRJa\n8j0f^I}zFnHTDG  Bcx[{~!_cYYqu VԦq9~ڒLUݓx=6̓?4ӗꣿ{0D.Kw)NdG%[͖Ws}PK'|RA82a Barack Obama/tests/ifeq-0103.txtUT PPux dn@<8ih݃IE6 ᰴC,Kuy&>a|/D j>$db _W8ԁQ c5~#o+\k YQY7gaĥ6* OM, CK\CJ 1mT7o},[aն<仒6q?㝃vO"x7Q:PK-|RA=`7l8Barack Obama/tests/Spoken Wikipedia boilerplate-0001.txtUT %PPux dTn@+F:M(đBk "H&^ekv7!ކBOkfޛ:RHfɧ^d/iErϻ_6rC k`+8#- .`8hc<2 9 ,1~o;Lz޸`;)\ ڌFU2t/!k#K r+Rlj+Z&jOβ񥅚<@l?5'dMR1 -~\յ5 (1ͤScݠ]_vՉGաpNM4i,ƚSn@oWoI F:>J'5¹BEine_Y)BxR# mLOz^ƢLWu;@?e7vRiky/RΡ (>] Fok2h5D+EӥVD#.Rwvr9r݊\=ӏ^_PK |RA\ (Barack Obama/tests/tmbox%2Fcore-0001.txtUT  PPux dM0z*MABsXQKIdEɛI}D(N^f78WqGbuA`#Zj.J'ʅJc=P(٣(\J ıPuWIT[klZU&P(3 (IVϧο.CCv(Sa>MJ77 L4s{Jw] ކ̔Ꚃnf FY!K]rKOX(L}=ڬOB/QPK!|RAS$"Barack Obama/tests/switch-0038.txtUT PPux dn0w?ő#A URq X Ŏ(u:T`wl!}!1ZOXglvcDt}I~(aYi,WL(.spq\-o- Y&7C,\eVȭbcPK-|RA03Barack Obama/tests/sec link%2Frelative url-0006.txtUT %PPux d0>=M:v Q01l.P)T 7}ݝ;PZI؋)1 ;bL 鹊\TM0=`x t2H 5Ϥ YNtɿz =4t.Pr9BI\t3i:RCǎ4<|(D$^PK)|RA1lBarack Obama/tests/if-2011.txtUT PPux dV qUrJ,JLVOJMB3ӬB2RR"B2sS25 VUa)Y8\@rkDs G &P)&PK |RAcgn0Barack Obama/tests/pp%2Dmeta%2Fpagetype-0003.txtUT  PPux dV qUrJ,JLVOJMB tsSK SK* RkkF:~~[ǕXT 1υJA4PK-|RA&G@ Barack Obama/tests/ifeq-0155.txtUT %PPux d]K0+"\`jFh'4JVC?2*Iҋ"C89'0c x/F5Rs(US ݛR,;BQ(cQa@Zb133ӄ`K)fIԚkD5JrhQtba[ RmAikM^h~i?KubhHʕ;=pPK |RAbƴgz%Barack Obama/tests/safesubst-0016.txtUT  PPux dV qUrJ,JLVOJMBRKKB}|]}]kkF:~~ۊW?*tPK'|RA#kBarack Obama/tests/if-1758.txtUT PPux dV qUrJ,JLVOJMB@@93J-54RPG"Wlld! ю8ZMLM,/I\XZ. kDs Gopb hPK(|RA'Barack Obama/tests/if-1906.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP-r JK mjk2׈WW/ߏ|'rALsR8MPK(|RA}Barack Obama/tests/if-1840.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-*)3)9?%U('5ĶkR F:~~; b Bh"PK-|RAcr Barack Obama/tests/ifeq-0165.txtUT %PPux dV qUrJ,JLVOJMB3R j jk&713F!$#,Yb8{.S\X@SPK(|RABarack Obama/tests/if-1916.txtUT PPux dTk0W = A `iljX(&|{|yx{| 2f:w``W5xR*~]!TM fe9rL=)&{!T@)YGKiF3P7׿N'R:HL5vD3H9b*N6sI슳^c=)k)@6y7Y . 6c B#Ƚhpr/p0?Mj8X`iӍ!GzOG,h6Fۥj@_ƊӰZ>Ysp3iN0v_=CmW#KًܘX3~R<3 UmUNOBPK'|RA Barack Obama/tests/Main-0012.txtUT PPux d @{wW" ńSAS=gb",;߰BBuP-G]CRbLd6H`l#KCk~S+O<(0`0m<vmyFZ(kAo8iPK%|RAVz#Barack Obama/tests/H%3AIPA-0007.txtUT PPux dj0 y ]:miX D[L]>}9힠D }H ơasT-;a"}#ry)f0$ˢc{:ςb]^oIޢ^,4O6GI?޼x2(b)|uI hq2:*F)reG(mA >'Jg@3!# iˇI5\\x?PK!|RAV\\_f#Barack Obama/tests/padleft-0004.txtUT  PPux dV qUrJ,JLVOJMB SrRJ,jj jkVF:~~e`1υJA4PK'|RAL)2Barack Obama/tests/Case preserving encode-0001.txtUT PPux d 0 {"/҃=a0F6he w_`S!? &3ܣDlmz(j;X!ze"J, wOsW ׌-=4Xgn%/t- FE,wr3X-:*1*}7BP|}gd>7:㌿PK)|RA IBarack Obama/tests/if-2008.txtUT PPux dVj0}W +M]ԅC`XK V8r옴#љhdxYID.,`knٸ v@^Qi ?|R# q"9 {rfx+aJ%KZ8&Ef0NS] ˜ ]=aM+Ig͐z vޗEܢbzU4=?);v+mu]UIDOgyv+۟ԣ:  "X < M5K2 lڡ'{BqFG~_P3sǣR̶X ke崙ZR<ޏTH)H~.zlxz_qD>cKif4Նvsِ ͚^< ӭ=uSme+]K7״}a=`k*'ihz{ iG?!WPK%|RAgU\Barack Obama/tests/lc-0034.txtUT PPux dV qUrJ,JLVOJMBsjk&F:~~[1υJ4PK=RAt_ Barack Obama/tests/ifeq-0008.txtUT 6PPux dUQo6~8ĀCV4C, +`M$ɒc!Qt2`aHw4]zq3,} lb1}~xCQDE=M%OȰ,9Y<ZG鉱#[\8#YK;)eϟvzr\^׬Rrv6ePX `]JhFKۡZtJ8` .hgfJ?9&@5׵) |=4&+KL%Ё.@P%Fc A*rЅAgDZo0 0*"5hkPyپΔE1_TxE!84*)5$ HvCY6P5^- :ȱ0*7 Sߚ02^&B[F~ Y7, szz:υWvyn-09AפB 9NCKkkݸ}\,y!wX:3[;~8}CE8_ACi広ߩ3Ӄ/mk׋2Dlearp ↩&LLVo^}o &]u5 x}o#e5I p]@L)2/ aP5WL)*^ NyggGVA}Lk77}>=3Gu}Ux.wx5ةQq'ĉ6:zWSpp&N1#J'C7jAnR69gRi~O2B ߥb~_ojs^W2PK(|RA@6xvBarack Obama/tests/if-1832.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D,?47ն('5/9?%ժHb8{.~.T 0PK(|RA|Barack Obama/tests/if-1854.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-ߪ(O('5/9?%ժHb8{".~.T 6PK&|RAPBarack Obama/tests/if-1554.txtUT PPux dV qUrJ,JLVOJMB3ӬP((J-LI+LQHN-HLQ020QS66y)`,׈WW/ߏ|qA쁘B PK'|RAƠ.A"Barack Obama/tests/listen-0001.txtUT PPux dTkk0_qq`Nl̉3%6-K`"zIir{|hmd!t=fW1$1h-6%x1> gdv șT0D/ %;M ˩$D)pMp~sftm&ɩLM՛ϯ)h̨hU澨ðZלR?O$\(-e?$z8Dиs pt%% wYL)7mUe9KC<)Jf43tC6.n95f%~zjGn2Ln'BƉ1/%9Dց VJTG(Y'Bcqy)tt<^!?$p2?؋U*Aph TEeYEmx>Iuへ&I? ,ziPRV6 !=﷔MV-vU$ϙ,.V؅tKtH*wpOȁnJP{H]ǹT,Snyr3Wyn^(B#mMȸREݮ}BIFƈVN+0XBޙw?ÔRbT4g$q#W8Lj\] ΚAB 7P[q! eZm;v\H/PK(|RA&P0Barack Obama/tests/Citation%2Fmake link-0002.txtUT PPux dK 09uS6 G, "MQR73X" C^爘iv؀)k$y[C'dX6\xר`]k VH&AVV5@(u,z'Y&휰 2&hPK%|RA?Barack Obama/tests/if-1421.txtUT PPux dj0 ~ =ݻz>ڴPw8cG{z`/}?4Uz$mYG@Ht1󥫪jlRZm~bqVߦmJF^wkݕ6xr>L(:E4s |BMqlP"¤F=[r%ivX;N'sx$oH"i]+PK,|RA`"Barack Obama/tests/switch-0101.txtUT $PPux dX]o6}ϯZ"g+^q\̅?] ckD$7?K:ؒ&pEs?C2h:-2q\PEٔCwA p/׹ )o@Wzu=a{)H`H;a3j8{4U4vo4z%Bb6=q"kHALl"#4@4?Vn|n6 7ϤwmYîy6},1$]Z=+It]vo]C2*-=̋ш<_[̮uXY^Ae&I1|6$063o +'nhBdxPẌ [ ?F\5-sg'b5Tw+:Mbrok+v!hBA hwmo J}C<NIz'[BW™RRΨ ,Z/W'4rKuzfW?*[IZJ~r%Lb6BJ6Z6K]șb?k"(vM%{̥J"<,\Yc>fp*2!A*Y1@"4v!Lc) 5WƎ񽽫iŵ/y/TlثT=%K,âT`пֽjC?8ʳqH+/^KCEcҔb@k{c|NSv_/̛㓳eAZɰ\]]lj n =O+gVF pq<$KXEaVlRCV)kU4J8XC"JfYgGdiw~w*֦tr~q3?A'`p5KS Y@ @M%veJF3f<[S?y̪w(YZZY؅$j|q[,L!bE7Uؠ (xxc6FđDD_U&^~,QUD>C64}UGO"tjZ ?M'?;׽#}CPK |RAרޠ6Barack Obama/tests/if-0011.txtUT  PPux dV qUrJ,JLVOJMB3ӬjRKKK2KrR JP%@jՔ+̝ICbL֠s ptwsuZ.tkd:5"9p #?0υJQ 4PK-|RA+GW^Barack Obama/tests/lc-0061.txtUT %PPux dV qUrJ,JLVOJMBsjkfF:~~[U 1υJA4PK-|RAST`n Barack Obama/tests/trim-0001.txtUT &PPux dV qUrJ,JLVOJMBK2skJu3stSjkvF:~~[7b h4PK*|RA5ak%Barack Obama/tests/urlencode-0031.txtUT PPux dV qUrJ,JLVOJMBKrRSRRSkkF:~~6b h,PK(|RAby2Barack Obama/tests/if-1936.txtUT PPux dV qUrJ,JLVOJMB@93J+14RPGBF(D/%$ն('5/9?% ]]m- rkDs GKZmlj b hPK%|RA﹛"Barack Obama/tests/switch-0067.txtUT PPux doW,2EJE*ٕ6bI.uKo;Q'zIIj!2 F[%=mh( H|gvfyɖγ[3ogys-6xO }iyny oa۷ 2jzןOkSfnu-/U&| Ɲ;n!5Z@@cӭ Ip߰/uVt8|1Oft,b{WBD^ƈ9%;,= і:Šm V2V3ƪ kEա`* IRdDpY f5Kѡge~%e_6! ѝnR,` EEP 0#pN|`Yuas*4Os*"WWaS^`e&ݬ*?) na#N!G]s {H=k= Иr!)" l](#$aTqXFpJ ,AX.:U54teD6F(+_t4++_;+(Aʪ̈cS#"9@Ӄh =Ҵr4=p䊬OzY7[@@?zwMzq=M`=؜͌pcMGl CZfبof<5I7 l6FL0UIE"O&^Ui8p}u j=/j\`5#j,F,G\ 'ŧ͚'ϖ-s)Eg =#VQZh(G"-wݱĀy6F>f+'k4Qu]&U{ 8V){j8o"[Pf&i{:"x($~OQl7'5Ȣx];)r&IR@n,R?), Cy@:8%A8XG2a0JhXFqYRc5 ^LTTU Zf>{E4p G헶+5.E6+3Sr _{ִ8>~8x}긾"Xd+a92m-qaEY%<+MIs*BeŔq ]BNYGFQ>y:v>1 cXR=T8fA#;_iAz>Sm{ݷl0^!!:dmǘk:)^ʝæ 0&H $Nky@R=?u/ǮxqyQb oPHwu'vw4̚NPQo0Ke{'Go0{Fv:V Zֲwum%IR'u=z/3/Qd.^3dSkH0dmkw5VdVUwei4k ޵*Xx,v[n0kP^߉ )t :`uSd=7DĦz -p%Z3h j 7E-%݆tT*7 {=l8/^YBݼyGbUVj[.'՚UiM?w4[X/.V8D̜;q/XB%tvms nv\F} WѾPK-|RALn Barack Obama/tests/ifeq-0138.txtUT %PPux dV qUrJ,JLVOJMB3R j*Sij.*Pc ւ]b8{,.,@,sRp-PK'|RA+ÈBarack Obama/tests/if-1702.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i\I1r設媭5"9p #k\\@PK=RAsD(> >GBarack Obama/tests/United States presidential election%2C 2008-0001.txtUT 6PPux d[n8?OAxqfq٤vq9M4i`{%"BEuTb7(G"9)!9ǏhܠyC o%!N'e 3*⣞Š($>b#=8ן;qr;x ;;G Aa,GQ;!8n8ՔFm(OX?8<) ~%¾F_MDQ~X!O0A8Q> G9'r8CX Jb ,y\SI\Ş<tST1RӒ;x{|\HRP0"z0(aބ1)Ԏon$K{H˃x'T@c,FYImh`Ѿz<3 Εi¦i%q 2d&>U sTTg,w*ƂٿZ|qkEk#6 4h!:6e ~s\߼9 ߹)"b :(d9 t<}{/ 1&&M6pjokF㝟Z䋭<:Vt[aSt(A]L["աfUB 䓡ã> }!c i4գʨ;+(RyށwJLcȥ;-&fL(=ΰ0ܲ,!|Lf}r%SkJ؃9htht~m+HDP`#gy{)d!3LF+f:Hn􁖧V~&Itx '3^,#'J&$k,.(;[ӹx0#^g6+{, . ǂQ0JCA \H~~ ki7(qX/LrndJ1IlyhJ$F5}e=EfjVܺ$NT\y-iܘ2Pc:{#G^X2%k!E ԫWl:|=^ɋ 4+=UQq(We7[4|I*cGѧnAMQly {X$!T}OX)sLJL(!.pZʔ6KķVEm)sE:K?ԜS*wJ<&,*1jAă%\ Vb;.:e_ Vb!DY ї2se\rՅ%J ⓯3K<(LxfnY2ylyj63%Mg^.^`dK[3@ZgmDz`h ,tPH |M޳!A}#k!:,ؒ<'T*SğQiʪ@^ q |FV|ݾ-..ȔX3f-<WٹQWh_H,ɞ*M)a-'T}=I|1w0F9*Niۈ*:Js>1P AYK無SIRw}ƒagvȹ fُy\L$Wd 4=;#kMt}h&}蓈p6:Aڝ9 &mF ĕS>b6/-Vҷ^WOx5mXZW?a+7fJ8m Pu\݊k) b(['}n t4h;ˊ nTP3bbzlP+=Ţm,%#j?&[qףpg6`7Hua[A%l}: z|* YN[_!O7ݮ;XԬgط-,nVyWw~~+[lODb(Zzel /If+ԛ[G p’={[n7M1Wҽ0,x wؔ>M͜|iUW *~ K~ ]$aZg)&mH. ^6NB"7H݊(ІG0*ƯbnǴY1Rh@!0^/"ַ})Pvg]|57H =x\ s*HI vx`;@Ȣ:j('sBcF38X.ED2) }]:QҖmw&o^ }QNwznFZ{IJaзːOߓx%BZ_.t@wv o"gBsYBO@Ρ-fcvu [Z͝qB9Zo+\k#a-QR8}HWB:RkY(nJCY3Už`DjR̻3C2A=/\[,~Ճ}s ~SJ}g?')+4_^INgwa$&OuN\P+>3W~#&>#F.li(Wgt?PK(|RA LPBarack Obama/tests/if-1967.txtUT PPux dV qUrJ,JLVOJMB3Ӭ,Zhd*+}rʒb\}#K}3}S̔XAQjE^FInZd(4nTPxF:~~ n;υJtPK'|RA˔,;Barack Obama/tests/if-1774.txtUT PPux dS]O0}hB2haM62#:Ĭ@ ߅MlBnoO4 R^X`pa!%%7Ħ#(<p$?y6{|=lSx;cS(M^IS<7` G~Nq[%V=xuC @(2%L[GōC_s ܲЮa-(l >4atu[!^!B }4e0"=W=d@,Vh'J&"N/e9* 8_4F,ngPUA7Y&E CPeetZzh0/IۜNH'e:4Ը8hq-.w4cvq^-.Oz[spuqu1="\~.T PK3|RAibc Barack Obama/tests/ifeq-0235.txtUT 1PPux dV qUrJ,JLVOJMB3R r3jj`"5!<ʜT[̔ +\k%;k}ZZt3׌Zg]#\C\]@ G`O?}E3 NsR\PK |RAQacvBarack Obama/tests/ns-0014.txtUT  PPux dV qUrJ,JLVOJMB|SS233JskkָF:~~Džj|?*|PK-|RAQ*Barack Obama/tests/sec link image-0002.txtUT %PPux dV qUrJ,JLVOJMBSr22sSkj R3sS3KR*R[ vkDs GS33RˋA}ΉG PK!|RAx]e(Barack Obama/tests/currentmonth-0002.txtUT  PPux dV qUrJ,JLVOJMBCxւmppuqu1=ȷb Bh&PK!|RAx#Barack Obama/tests/if-0246.txtUT PPux dj0 ~ `[|l  N37:]$B A)<(wX7jKX K1Ba7٫; C6q3mj͗&zi;/% Za#%'MH`bp}n cui(x[ʪX?!E)Gz+*PK(|RAwtBarack Obama/tests/if-1948.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D/8)϶('5/9?%ժ Hb8{.~.T .PK2|RAj8dk"Barack Obama/tests/switch-0160.txtUT /PPux dV qUrJ,JLVOJMB3K3j r3jl kk6F:~~[1υJ4PK%|RAK#Barack Obama/tests/H%3AIPA-0002.txtUT PPux d @>`O]ʂ Dbԭwzj 0 ،BL(k5GX$XEiZ Xd,x|fIGᇫ`\Ua iJ`l/(* l۝B:S~/9'6pFpQȓvY'xMֲ dF^OyqlḥloPK%|RAY%Barack Obama/tests/H%3Atitle-0006.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkԳ2Tf^BMvm-:׈WW/ߏ|{l *٨P\R O/JI-M/)ϵ2,PH2SSmAAB0: PK(|RABarack Obama/tests/if-1914.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPJ JK mjk4׈WW/ߏ|7rALsR@MPK4|RA4#Barack Obama/tests/ifexist-0006.txtUT 3PPux dPA 0 @Q`5Ƃ)C*1ZsZٙ xro 0ArZSsSW@q*Rua5{%r*j)jp;b'UEʧ5C4\ZZi+u # 8 ?(a7"_Gvt|PK |RA~Barack Obama/tests/if-0007.txtUT  PPux dV qUrJ,JLVOJMB3ӬjԔ+̝ICbLTW+'&X89m!. _ Bh:PK&|RApG҉Barack Obama/tests/if-1547.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52ih]I9:ri媭5"9p #s\\@PK=RAe;"Barack Obama/tests/Navbar-0004.txtUT 6PPux dAO0/;xL8:1!d*/ni3L r0}I^^B:Jcs,k^,`%M4~ /xu›͓B%L0PkaKRuYBټV }Hjʞ\k+] ۝Aߥmd4NNW($75*ZrT\!P;Ip>Ծ+ŻMX % e?95aR, $CVpSh1g`ߘEdDu/dUp9 7-Q۳";s(vo&p#ؑINgv?PK0|RAvr(Barack Obama/tests/talkpagename-0002.txtUT +PPux dV qUrJ,JLVOJMBC}]}]BRs rKRmb8{.E %9V~tsRPK(|RAJ |Barack Obama/tests/if-1955.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-*$S('5/9?%ժHb8{".~.T 6PK!|RAy'Y`Barack Obama/tests/lc-0020.txtUT  PPux dV qUrJ,JLVOJMBsQb8{o ס53\@3PK'|RAi+RV]Barack Obama/tests/if-1713.txtUT PPux dV qUrJ,JLVOJMB3ӬjkkfF:~~[1υJ!4PK2|RArk Barack Obama/tests/ifeq-0229.txtUT 0PPux dj0 ~ A_`|H[3 [ꤍY>䆮l4"K?Y9AԣOal'zR%B *ff_%}Ktm}Lwuhr|>@Ơwؖ;AWktNѬxl;Z[PbE*FFl$DPK!|RA 'Barack Obama/tests/if pagename-0001.txtUT  PPux dA @+\wa{҄6äS.KgFEpN3{ cpS[bE #jd|od E"R9 邚 AulWvVJ~:*i߫[K] 8l_˔M@f%ۢRlƣ~ AMnuEL^6PK0|RABM Barack Obama/tests/ifeq-0173.txtUT +PPux dV qUrJ,JLVOJMB3R j r3jjl K*sRmrKrRJ3SJ2Rs mAJjkrpuqu1=wɎ8υJatPK(|RA%{Barack Obama/tests/if-1880.txtUT PPux dR=k0+2Z;4$C2\*⨥Wnwcl26Fx`w s |˅tzJG [sQDzR5-l]V26XP+]{5TcՆټ.'wcr^!a̓a}F֥pl-~pߓZגgE{ 8"鴜OPK!|RA`Barack Obama/tests/if-0254.txtUT PPux d0o%wCA`B!֬c*iͻ0fR6(H_|~PAPA oF:~~3\\@PK-|RA ʃN Barack Obama/tests/ifeq-0143.txtUT %PPux dV qUrJ,JLVOJMB3R $fMtsbIjz~QU@~QIbBR~BIjnAPX83/]!?8?'$U\ XƸ:׵66x׈WW/ߏ|_pALsRPMPK |RASBarack Obama/tests/if-0002.txtUT  PPux dRj0 +C!Kj`5s6v!οOIѥ^)#:XxzkD4%^"К5wV3}GW<.},ES@qL O=TLlgaS᭨ef3ѕlj_hRKLWRݣ* f7h!ko.KFr0Dzn:)>){qpI?FieYt.W@P$OI*Oy>•)$ULZVd$ ݙD9N ~PP q6+ga,̾"-E-JE.6X2>E%/Q$x]c~*ZmPQO6UB.B{5GhQp`nC{Yё@0PK(|RA^?Barack Obama/tests/if-1830.txtUT PPux dV qUrJ,JLVOJMB@93J-54RPGBF(D/%$ն('5/9?% Cam- rkDs G[.٪mdj b BhPK.|RA# #Barack Obama/tests/s%2Dttl-0006.txtUT (PPux d͒J@y! 9vخPTL!I'fiv|'qs\rp.|2HQލ0\ò۞Qypv;;!j B tT#dٓ+HHZHPڠ|Q lR$B; r[p3χ- civ|dyC/WT3,< _i"JT{ b*˵krZ' GXPK(|RA[@&RBarack Obama/tests/if-1870.txtUT PPux dRo WJt89,;qұPGQ{2%}/?>[_(UBB72:MO(x)WH%4ʢrW\ihHdȹzձ-?X PK!|RĀ{"Barack Obama/tests/nowrap-0006.txtUT PPux dV qUrJ,JLVOJMBˋ jKSSSRS*kkF:~~eS\X\lSR} ;~.T >PK+|RA1Barack Obama/tests/citation%2Fidentifier-0002.txtUT "PPux d= 0_h?% B2\4FqJMqa, EN s; 'GBۭ0imdJm^ns<Wqz.\dIj[}F̃-(m ѡQڍ9K3n'ta޾&X;BяsIR~4COPK%|RA<5%Barack Obama/tests/H%3Atitle-0001.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkԓ2TiBMRm-6׈WW/ߏ|kl *ZP\R N/JI-M/)ϵ2,PH2SSlA sRPK4|RA$ht$Barack Obama/tests/ParmPart-0009.txtUT 3PPux dV qUrJ,JLVOJMBrƸ&ODDlkDs G\!P)PK'|RA{en Barack Obama/tests/ifeq-0099.txtUT PPux dV qUrJ,JLVOJMB3R jrRJjrK@LZe!. _rALsRMPK(|RAr"H|Barack Obama/tests/if-1839.txtUT PPux dV qUrJ,JLVOJMB@93JAF($>363/-*83O('5/9?%ժHb8{".~.T 6PK |RA| "Barack Obama/tests/switch-0004.txtUT  PPux dV qUrJ,JLVOJMB3K3jjkPmbQIfrN*D-3'YBP7$5 'V*S dU"T$CE*SRKsJPW(HLkDs G~(pqA}1υJQ4PK-|RA\nz Barack Obama/tests/ifeq-0137.txtUT %PPux dV qUrJ,JLVOJMB3R j*SdINjZBMIQfzFIm-J׈WW/ߏ| &CsR0PK)|RAkBarack Obama/tests/if-1988.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (@5P &W SS66./,)ISH,jW傐@kDs G_ &P)&PK)|RA?jFBarack Obama/tests/if-2020.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPIN *rm!. _䂘BPK4|RA3 Barack Obama/tests/ifeq-0272.txtUT 3PPux dRn0'u2Jjȃ8Զ"%Aj脪d{I\G*#؃v8M[bT |íCMKcJxw#kǧ+0Lg @;gO%%363/-*?'4W('5/9?%ժH\b8{$.~.T 7PK,|RA~bi{%Barack Obama/tests/urlencode-0066.txtUT $PPux dV qUrJ,JLVOJMBKrRSR t u,u-kkF:~~ʅbx?*xPK4|RA3M Barack Obama/tests/DMCA-0001.txtUT 3PPux dV qUrJ,JLVOJMB]|kBSrS*RKRkҊsk|3 jkF:~~;+:hUz~Q vBsRxPK%|RA*%Barack Obama/tests/H%3Atitle-0012.txtUT PPux dV qUrJ,JLVOJMB=J2KrRkr2ԓSjROb8{o=MqAb^[%l+)T$RRtKJs *R%;lAABPK'|RAUx#Barack Obama/tests/Rellink-0010.txtUT PPux d @> XA-jxk bEmC7 cHr6Fy+4x*a[`sb)xS1BwRN^ R4aF*4NJB04 Ȳt6Y47 miTk@L /fx㎯߼`m^2J !,: fM7#=}PK4|RA`s,Barack Obama/tests/FULLROOTPAGENAME-0003.txtUT 3PPux dV qUrJ,JLVOJMBB}|C]}]kkF:~~[W?*tPK(|RA|Barack Obama/tests/if-1861.txtUT PPux dV qUrJ,JLVOJMB3Ӭ,Zhd*+},ĒĜ" __ZK/*VE6xp]@@tpuqu1=. B PK)|RAvB#Barack Obama/tests/iferror-0013.txtUT PPux dRMk1WE'eGsPJNmp]I SYN̛pr,y`| ٗb&RY;Yĥ&ò͟.E'rEFm3M~T{ 9|f&"]8t @;FܺĭMMR*5ܕ09g]xFXPx\좘j) PK)|RAWBarack Obama/tests/if-2041.txtUT PPux dV qUrJ,JLVOJMB @93J+5-MF(D/4-Ķ('5/9?% $][ Aqpuqu1=w VP)0VPK(|RA|xRBarack Obama/tests/if-1819.txtUT PPux dV qUrJ,JLVOJMB@@93JRF(D/4'Ķ('5/9?% ,][  גY([[ Q$!. _Bv0ؑ(:b h%PK)|RA|Barack Obama/tests/if-2032.txtUT PPux dT]o0}W\)R&HSID"uiP)ʃMbpfdôϹpe@ zC<q7Ji_:*KkDc,iG_by,, ; Hf;Iw0DT AYƀ֒AxZRsvP?dLoItYvRt e{Җ%RJU1g)=f(]?$(կJ^]^8 ASKdrLnwxbrcکދj\QUd}#j$vZW )&lJl5r1E[ˌ:V1D4.>bnf \x'S;ӴީUˁT _ º:c 1K"=l1^,1QƔBȭ.k)=\^So1F\/j5;PK%|RAJCBarack Obama/tests/if-1435.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkksrR3S J,׈WW/ߏ|qqAsR(PK%|RAt#Barack Obama/tests/H%3AIPA-0003.txtUT PPux d 0}# 'Xʂ"2up6%}K5'9A($$k 48sh^mF+ '>N.g^㓎; 8m?quM Tk-zq|%YiMORz\_F+t Í`Zh$7 ~&U8j6{=I%O|E@oPK-|RA> Barack Obama/tests/dmoz-0001.txtUT &PPux dO @~ JnȦCn؟֥sN~ j2 yKtqkCz%vB ǣ6-[t6AiWyP3CcPK&|RAjT) Barack Obama/tests/Main-0007.txtUT PPux d 0 } xVpԁ CkZW7@9!|~g%ݢ V-dwP=g K~*@Ft 5FUK+j-Z1L.Y<(OY? !A-P)mle$7@cetx^8(V.wxO;7PK |RA x^lBarack Obama/tests/ns-0013.txtUT  PPux dV qUrJ,JLVOJMBBSJskk6F:~~[7b h4PK/|RAЌK ZbBarack Obama/tests/lc-0065.txtUT *PPux dV qUrJ,JLVOJMBskkF:~~•4b h*PK,|RA\j"Barack Obama/tests/switch-0100.txtUT #PPux dQM @:KAc{öT foSa`J"A81,y3qBz[hMhD[ضeU*tBN,\8ZRUJQIt̜O-2_l*b`pH[z޼04J/AH/#J~PK-|RANը Barack Obama/tests/ifeq-0140.txtUT %PPux dV qUrJ,JLVOJMB3R A ApkjKR*Js+JRs r řy I9% @E 5~`F:~~ b h"PK%|RA|+"Barack Obama/tests/switch-0055.txtUT PPux dAN0E>H=FrF,m:N8b [6ٌgcJ3x),ѡz%S䱘`9fͫ ]Hn ¢)ј[>7}Z+5z]o=sh'NSeٳq k nةmw'V*%Z=Wr?x ^[?Ar<7ȟ~'t`qj?PK3|RA*&Barack Obama/tests/transclude-0012.txtUT 2PPux dV qUrJ,JLVOJMBKsJSRkB2KRSKKR R3SRJ2sRsRK2t jk.qpuqu1=wWHjnAb+]q BPK&|RAmBarack Obama/tests/if-1485.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IcsbL)!. _nₘBPK!|RACt'Barack Obama/tests/if-0133.txtUT  PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk RJ45 "J.׈WW/ߏ|rqAsR0PK |RA>F%Barack Obama/tests/safesubst-0018.txtUT  PPux dV qUrJ,JLVOJMBRKK3ӬjPK2KrR J04Ԩ)W;Y# AZ 5X\@ 8׈WW/ߏČW?*E9tPK-|RAΟ %Barack Obama/tests/CongLinks-0001.txtUT &PPux dVko8_on$nA긅 b-HU )#C$rv8;0aox%5>0͢Gr3a;>^_+D8dr-䣩"VuxrZ͕&cچVU23UXy|Dͭ{ ۭy5Md8k_qaL`f*0V,<=.vWՔGݻVr. 4&g4U%dJExxzrz +œ쨍zai9FIz_hJ cR4ZPWaE)ãv%%bΨ}}Ohngؽr?.Mg2YIiYA9Sy "["nL>hc,i4g>՛h4qrX%ɭ2vI!b8/inLDZָ0yA^+p@*}[\ #eAԯK c2 F%eJV_y^KltRxJc1!-lxNuJ'4b21RWO'~M|-ֽYZ0+\h"XhUD3k|FZ=''7r< ZO=/D !6ҙ^\نe~vsr* w%$.]~(?W)"Tpdu_tzWO|I,J! NQ䎛Ĝ"T78x GhEkg_Gg2-yG,J֠NN=ZkVg\X:HDs"Ca0,g"+p0W֑3.#n 'A& ˄;OC0i!ŷ@"%*L o5OhI:K;Y2GgSP!y 4Y%͘Nw+/)sre#13UOƞnel9c3sƕB!WKPʡO)2+]xԿW (e7"~Zb=fu΃%Z; rP5’ͻؙ<y3;CG'@gJ+]^qPK-|RAh%Barack Obama/tests/s%2Dstart-0001.txtUT &PPux d0w!qĸ0ҁD&ᶩPh[LgCo9)I)8۱O`=8? _:;نSVE"" oQ;)m$=$FѰwmǪ!ym}eϾ?+q4KHm>ϝJ,S+8e&162PK&|RA#mEV#Barack Obama/tests/Rellink-0005.txtUT PPux dAK0{?c'a޴)Lub#!H 뾻aHO%AР^B!X-:,kXoHtjJfjh$c-Ƞ#.pid;ve~<` ;G+*oij˸=y(ϮUkWũEq8A) ,_FIů;&v5L$/ɴSHb/~PK/|RA+_U#Barack Obama/tests/s%2Daft-0006.txtUT )PPux d 0<ЭiSA*4P:$i`mJR:J>>ؖ(dB+^qyw=g۹VInह&M_t(utR,U*%w nT*Sٸu_TPG>zҗ]0y_y_h3[PK)|RA@[Barack Obama/tests/if-2009.txtUT PPux dV qUrJ,JLVOJMB3ӬRsR*+@JRLt ,!5zjF0=Pe`UjNddjb_~I*bLBtrAH y5"9p #\\E@PK4|RA6Fy&Barack Obama/tests/titleparts-0013.txtUT 3PPux dV qUrJ,JLVOJMBK2KrR J-M ,Mj kEVƵ@5"9p #\ P)ȀPK/|RAF#Barack Obama/tests/s%2Dbef-0008.txtUT )PPux dQM0W wٛ6U0CҎ6m%bt``ǼFJ%dbb[4=^JndFP`vCwPF;" qIklO]_J.!NmuxV(8]c=ϱ&t kmAoOP5?~λ ,煹͢pMMAXLS<+d8Wd9PK'|RABarack Obama/tests/if-1736.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52ih]I9:ri媭5"9p #s\\@PK!|RA| Barack Obama/tests/ifeq-0029.txtUT  PPux dV qUrJ,JLVOJMB3R jC}]kkF$1'[]U5"(b8{L.~.T KPK |RAi~%Barack Obama/tests/safesubst-0017.txtUT  PPux dV qUrJ,JLVOJMBRKK3ӬjԔ+̝ICbL֠s ptwsu3]#\C\]@ G`O?݋~.T `PK(|RA3]rBarack Obama/tests/if-1925.txtUT PPux dk vFY Y!xLjm, 3l~$ x +Jx.)#T@M $SFzۏnՋVaj2m6RWf-Ҽ:XRZ/\H-kNo6(lyڶ'*}_;܇T9P))-+yӍ}|sNIYg$^R∋#.5pOzJ~7FPK!|RANJ#Barack Obama/tests/iferror-0001.txtUT  PPux dV qUrJ,JLVOJMB3RlKsmJvEřy Pu@.P]~AjQb^BZ~>DW@(Z]#\C\]@ G`O?1υJa 4PK)|RAx{Barack Obama/tests/if-2027.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP-JK+(-1U"\#\C\]@ G`O?1υJ4PK |RA=駊p~ Barack Obama/tests/ifeq-0017.txtUT  PPux dV qUrJ,JLVOJMB3R jJsk kk,Z [b8{o;WHjnANbI*d?*dPK,|RA1Lr%Barack Obama/tests/urlencode-0062.txtUT $PPux dV qUrJ,JLVOJMBKrRSRtԔ!ւrpuqu1=ȷKYLH b?*PK1|RA6 Barack Obama/tests/ifeq-0195.txtUT -PPux dj0 ~ A_`|H[3 kZꤍY>Z6zX%e3, s[b v<#DOe,V$r>Q}cLJa)UCl?SU}ȥ/}$x+2Ŧ8ORN--pEyĮvFa}Uk. ")!d"Trf ]y2WEi` 4 @*Qo8j^X'fGl"&>PK-|RA\ϰ+Barack Obama/tests/sec link%2Ftext-0003.txtUT %PPux d0>Ž; L8hԨ]Ѕp7}Ϡz'KX'SJ5 ^iJ/ eUa(+nl2T3`ڰ)S&o(xޯIB/"pO@w<efJ21fWPK)|RAK>-hw Barack Obama/tests/ifeq-0123.txtUT PPux dV qUrJ,JLVOJMB3R jtjtԔjtPm-:׈WW/ߏ|{FC sR PK%|RA]Barack Obama/tests/if-1461.txtUT PPux dA @a=x*`T*P kn{(Z]101@C#)d-Y.wsV3  (ٓN@WW}q$!(Y&aϳ<2 ) ?M.Z^6צ;YVB- -t1G: 9@ϛ,onjw>0ȗ| gDo1PK&|RABarack Obama/tests/if-1600.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i\I1r設媭5"9p #k\\@PK=RA4#Barack Obama/tests/fullurl-0005.txtUT 6PPux dM @໿bOˣ t¥Oi; 7&=yΗc*XP2xJG}6MDE`_rMPZ'V!&]kfm[CFA wX?ib+LiB?hFsiFt5NN]?PK(|RAڔBarack Obama/tests/if-1966.txtUT PPux dV qUrJ,JLVOJMB3ӬB2RR"B2sSkSRR3|Ks2su nP(-H-VLIM,.QHMLN;5"9p #ߍ\b h?PK!|RA3h,Barack Obama/tests/Featured article-0001.txtUT  PPux dRKk@W k롗l B 4$C6*߻}xa0߃al |ş3(=Ųp}<{r>CNK~gEh=R\.4klfEQ WcSԴ>ܛb(%:^x#xm 6 +Tѱ\W y#HG ~`tH'ctx>3D[)mHeZ1V[o-b+'Wq%K$#$"D&e5#YzVg_Rt#đA}t'G7Ct]{}0Av}" pAM8ɎS  R|CV ŜBO,C4if*.83FB"/%ꍕMT/#L,@c!tЦj'!t>2eC!b)1ba9VTeD$5jFy[]eL[L[YARV gF;qDK0ɀ&Wd}E3ȺQdӾ }CqI8s 77ttfY8l!}l QaIҼWo`9SW4 gʀJ*y59 (HÁk_~`?~Q'Tcð qSXhhSfyhRҔR =#VQZh(G"-wݱĀv& r ؿSTN` !.r=%O1APc֝HKgB@?#= 1aƷv-(LemZ^6<_q n'q( d?ތ]w)SvM l,Ra><>uR_ ,2]rѰ RZr{ɖ8ְ &9!b Ǹ[BNYGFQ1 cXR=T8aA#G;_iAz>Sm9[tF6v /א]c5o)^Nʝ 0&H $Nky@R=?5c8pѼp7\ ;;pQ;f'lO6ץ½[qs={FvWwC:+5z]oઽrhn' N7Seًq k 4%Q|Ե-_vڟ |oj 9. |s>87Ix3w PK1|RAbLWfq"Barack Obama/tests/switch-0154.txtUT -PPux dV qUrJ,JLVOJMB3K3 r3j d~Zam-:׈WW/ߏ|{ !FP)tFPK!|RA DxBarack Obama/tests/if-0103.txtUT  PPux dj0YZ+8cb ^mt6; $;p [iII~'iN3r,45/q)wco\ańcX\@AQvZ0X/15(N!6k.KQbl  j`lR4 /:Gl6 <c).G=)[nӺ-5EV_xc{])KD]/Gry9:dGuK^ A&[Ƅ#b`B)% y̓r2RUUT\خsRkTPK(|RA_Oޏ%Barack Obama/tests/urlencode-0012.txtUT PPux dV qUrJ,JLVOJMBKrRSRVX)(d&%(%)x)ւb8{.Ǝ kC-Y υJ PK/|RArA!Barack Obama/tests/small-0013.txtUT )PPux dV qUrJ,JLVOJMBssrj4KR tK2R4kk6F:~~[eS\P\RjW[Yjeajdj>H ~.T IPK'|RA%mBarack Obama/tests/if-1669.txtUT PPux dV qUrJ,JLVOJMB3ӬjtNfqIj~r~Q*BMZfNj^bn*J2Kr<@JjqrQfAIf~D 1DAYEANb%@-=b8{.~.T nPK/|RAW!Barack Obama/tests/small-0005.txtUT )PPux dV qUrJ,JLVOJMBssrj4RJ* ,5kkvF:~~[eS\P\RjW[Yjeajd}j;+\@WPK&|RAlofr Barack Obama/tests/ifeq-0082.txtUT PPux dV qUrJ,JLVOJMB3R jjJ2sRk Skk6F:~~[5b h0PK!|RAYX_ Barack Obama/tests/expr-0004.txtUT  PPux dV qUrJ,JLVOJMBS+ LjkF:~~e1υJa4PK%|RAA+˥%Barack Obama/tests/H%3Atitle-0010.txtUT PPux dV qUrJ,JLVOJMB=J2KrRk 2s*KRsrˋkNwւupuqu1=wMqAbf[%V+ "ݤ\+  35Et>$; \@PK-|RA,!az%Barack Obama/tests/Cite book-0003.txtUT %PPux dTێ0}WXشm[H-jxhEXldK"3g| 2+We  vއ 8b7f_gw @Ì;*Qa&l8"j9˥E`0h>}mi P 8d N$`LV"E]~-b"{|b4Og8ӪۭNݲ;^}MT#w1w KEYTUjeX{ƶ4i|+I{Pv6 w4sZMg=YzA6JpĈ:+CBl7O|ĊbV7R"Eq_F,h5_hSXLdvq{nU!\E/Oۭ v?ܰ0^G w0ah C{LxJd|cC說7n"'LR3yGIex1nV`~~ÚV۰l2E@9RCVi $Ɣjk(#)ͳƦ?HlCh?al6(u)kUdU2~28PC'Kϧ;oR/PK0|RA4fw%Barack Obama/tests/namespace-0050.txtUT +PPux dV qUrJ,JLVOJMB}]]BRs rKRTb8{o=D?*DPK*|RAapbs Barack Obama/tests/ifeq-0128.txtUT  PPux dV qUrJ,JLVOJMB3R jkԔ L-aTm-.׈WW/ߏ|K &CsRPK'|RAZW6Barack Obama/tests/if-1782.txtUT PPux dV qUrJ,JLVOJMB@93J7*P"56yٙvV6P][lld0׈WW/ߏ|p!6υJA4PK!|RAuKrBarack Obama/tests/if-0120.txtUT  PPux dj0 z z+ Z|Z M7&UV`q}2ed[ Q^b%0x0b.Djd&s5@l0 )Ӎ禱nPͫ)woPk`O8/>>:t’ S̩=7or% af]". R|.FmY2ߎ PK!|RAc&Barack Obama/tests/titleparts-0006.txtUT  PPux dV qUrJ,JLVOJMBK2KrR J15[b8{o7\\X@PK(|RABarack Obama/tests/if-1829.txtUT PPux dV qUrJ,JLVOJMB@@93JAF(D/Զ('5/9?%ժ YZGMȺJ)S]#\C\]@ G`O?1υJ 4PK4|RAPl_f%Barack Obama/tests/safesubst-0034.txtUT 3PPux dV qUrJ,JLVOJMBRKK jkF:~~1υJA4PK%|RAQ;"Barack Obama/tests/switch-0062.txtUT PPux dQj@kh0TM*h3Mx%mNɒ`Jj}J~=jfH8MZۅyXigPK |RA,iYbBarack Obama/tests/lc-0005.txtUT  PPux dV qUrJ,JLVOJMBsSs3kkF:~~2b h*PK-|RA\uA Barack Obama/tests/ifeq-0152.txtUT %PPux dj0 ~ n]lt.ذB5nf؝>ӈA )M H6d`Naj;І41Yr2đ$J޹`Q ɓ/Q+\JϱҦ<خU\z/gc ^s(Zqy|LP`N ^(P#-F@zn_<[}68x4c.^B?A5XxGdMPK&|RAR #m$Barack Obama/tests/See also-0002.txtUT PPux dR=k0+ = !:k( eH$x>J͠ R该w'=&.?w%v;iZ"xcK`^0ow K%7XWv_߿Y/pcd-.s-?l) A$B.+h/#k}Lеh-GG fkxPK"|RAm$Barack Obama/tests/if-0803.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAMPi^^f^BnbIjm-DVM,( X#]\@ F:~~{ b h"PK!|RAH[c&Barack Obama/tests/currentday-0001.txtUT  PPux dV qUrJ,JLVOJMBC8Fւwpuqu1=ȷb h&PK*|RAu%Barack Obama/tests/urlencode-0033.txtUT PPux dV qUrJ,JLVOJMBKrRSRtԔRSkkVF:~~ɥjjdjdlljb h PK*|RA8%Barack Obama/tests/urlencode-0036.txtUT  PPux dV qUrJ,JLVOJMBKrRSR2JJ 32KR3KSrC2RuR3SRJt3tK))9%`F:~~; &UcGU#7 tP6 Eu@%P)fPK-|RAVKL`!Barack Obama/tests/space-0001.txtUT &PPux dV qUrJ,JLVOJMB Sk jkF:~~[åT\`M9 q 2PK |RAF\c'Barack Obama/tests/NAMESPACEID-0003.txtUT  PPux dV qUrJ,JLVOJMB}]]=]jkF:~~e1υJ4PK'|RAM#Barack Obama/tests/iferror-0006.txtUT PPux dRMk@AI$c B`)Fbv6+%$ݭjO%; 3o{0;ȹ|mM-jdܫXHe ƒ:ť9.òݟ&EH"#MѾ&T'L9|g&"] T:=V']w& 4;0Go |yJx=`~7|W1bq/ߐ]YKPK/|RAmS!Barack Obama/tests/small-0014.txtUT )PPux dV qUrJ,JLVOJMBssrj42st3KR4kk6F:~~[eS\P\RjW*TZz}Z;\@7PK&|RA>uG Barack Obama/tests/Main-0008.txtUT PPux d 0 } xv0CSúVݭWe9!|!rPKP!Mѣ aL홊\D p[#ΐ;@{*6&KM%g7nLKIL{64bKcVܺ+U* зM u@(z@lr"PK%|RAe Barack Obama/tests/if-1407.txtUT PPux d0@g~:"iDb[?0˻c솲'wAĺU/,YH~Bnpڝs .;K }LF=LH٧hm=:hm;BPfC̬iqA5_/(yB!7D(7lPPK(|RA$s{%Barack Obama/tests/urlencode-0007.txtUT PPux dV qUrJ,JLVOJMBKrRSRtԔCskkF:~~ȥjjdjdlljb hPK'|RAc-Barack Obama/tests/if-1663.txtUT PPux dV qUrJ,JLVOJMB3ӬjlR2K*sRm֥X%$X+V&dY夦 SR2ҭ *Ԕ+̝ɌĔ"fW[ kDs G &P)&PK1|RA\猔,"Barack Obama/tests/switch-0153.txtUT -PPux dQ 0+o%9 $mndFś H03,|Ƃ-bDP`!AW|ٜer8UF4UNںؾ,h $ezAQ\> eq܆މr%}ȧ:C@ .V(5w `%r:fY6mQ9!Ot}-$d ɗ#}K~PK'|RA-*5Barack Obama/tests/if-1698.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i \I1r設媭5"9p #k\\@PK |RAcҸ^r+Barack Obama/tests/subjectpagename-0003.txtUT  PPux dV qUrJ,JLVOJMBC\C]}]kkF]]@ G`O?m􂫟 h:PK"|RA|8Y`Barack Obama/tests/if-0568.txtUT PPux dV qUrJ,JLVOJMB3ӬjjRjkF:~~[Õ1υJ4PK |RAhSZBarack Obama/tests/lc-0014.txtUT  PPux dV qUrJ,JLVOJMBsjkF:~~1υJ4PK%|RA䵂Barack Obama/tests/if-1418.txtUT PPux dK0+Els XvkM[ MnЋr/<G9{l|2>tȅO"#L`t5˲ w"s@uZUH7+Qtw-Dn9[V߻ EV}IugeK|r$4[OخRH6qlwy]օ3YOoPK/|RAc['!Barack Obama/tests/small-0019.txtUT *PPux dV qUrJ,JLVOJMBssrj4s3s*R5kkF:~~eS\P\RjW[Yjeajdb>H ~.T GPK'|RA5iBarack Obama/tests/if-1752.txtUT PPux dV qUrJ,JLVOJMB@93J!$?YFGME׈WW/ߏ|'q!B PK(|RAN;SBarack Obama/tests/if-1907.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPOI *rm!. _䂘BPK&|RA0Z~Barack Obama/tests/if-1518.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#k(kkՔ+̝I bL*6׈WW/ߏ|/qALsRMPK1|RA}7X_ Barack Obama/tests/expr-0016.txtUT -PPux dV qUrJ,JLVOJMBS+ kkF:~~e1υJa4PK!|RAlBarack Obama/tests/if-0311.txtUT PPux dA @+F;Gwk={ô!mR/!07c(AL(bHhr H,ԊCa[EZtY+IR%[Jڄ1U +!LdȨN{ig#r ㇻ?F?1Pkj Y 6i#PK#|RAחBarack Obama/tests/if-1034.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAsFfjof^fqIjQm-D^ML)̅ X#}\@@rpuqu1=H?*HPK(|RADQ=Barack Obama/tests/if-1884.txtUT PPux dV qUrJ,JLVOJMB@93 lo~qOfRjQbBpj^bI~g9Tuum-E!. _N゘ 1υJ4PK/|RAӎ"Barack Obama/tests/switch-0127.txtUT *PPux d]o6+8fcH ں+a)Z,*)9M~H"iIVpW/oZ99 9>fy/Gᕺc%Bޟ#g.).+IeHF*|) {|m2$MA.x""IY09.8[!yDϱƻ4AD <[BTu+^<LaH4qQ~h2Ȏ&SIt)5g3XF~DIM֪_Fv$׬`5*+79oF$AHt&3 ".xXqU%:C[a^ t aL, Oi`fb<8j~'~HD ЂVgX~0}L)ׁJ;Z/00#sx@PE8Ns`?S Q07Nfh  nEݬ}"_h@KX( rP~cOE|\ق5xމT8" ym~>!/̿*RLSRK xcx8:qfr"0TQ\>Z7 DޖH7>Bw:zrvddj/2oO>SolKPlx2}ز:M?"{}ꪀՏf>TYW®-t\x܀&䖒(!$$=TvmAoth;Aa'khci wmɃ@yt.[Ue Yo7\Eb%մC~bVЄa3@/:.w d1dK( FTp~E 4ŝoV2 EF(@=u S y99Bf^0{}nĢG+I e}קRCsCg"W.nGv+ӷs{`mcxJJʇv+s; @ QQ鉡L UDOz `w絴/LfZivR6<0HlypO+4 Pg- o:; 5="O-q Q=m$pGii*sK|'ZU{5>'[_r~ߜ-n>,ؒkה[VHߚPK'|RA񓂉Barack Obama/tests/if-1709.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52ih]I9:ri媭5"9p #s\\@PK(|RA>yIBarack Obama/tests/if-1919.txtUT PPux dRk0x(xlCA9YWߗzS;$9||?c+qX.@` 0H9ODx$P/#fr5CU贁Xh8|l Z+TN7 Y&~][r˶犐R |r;}0 2_^NwK[)V՘m'rPUE<_#Jxܿ=}N0v>PK&|RAAF|Barack Obama/tests/if-1553.txtUT PPux dV qUrJ,JLVOJMB3ӬP((J-LI+Lr2s*s 3t ,jkknqpuqu1=wW1H?*HPK-|RA{%Barack Obama/tests/pagenamee-0007.txtUT %PPux dV qUrJ,JLVOJMB]}]]BRs rKR R3sS3]P[ vkDs GsZ𲫟 hPK+|RA?* +Barack Obama/tests/Citation%2Fcore-0005.txtUT !PPux dVmo8ίXީW`֕ ."]TU&1EbsNn~c;ِN'cìB )@\_LX)]a VX.*_a( ǀP"n_h qLTU%!śNJ4,(h%X?VSq{9td4':,SE r'G*L'V!vA0VΫSb|$@#Bpj 8oL۪`BP$1*̮Nt愄?A}'dD{ϳOйiϽ1FO 4SwG >onj@ra94\q@Z:"K׃VsG53b=k: }ƱN11f&wCQDKND*| 0YӝJlּ-kw/NU0h7=r~F"Ѕqy5qX-B֮)j`/jfS(ˁ9vmj|zz33Ժw\Z+Gn׭}ff3 tV !r"4Em9 ձ[Մ0麥v]WCվZIteɷ'*14spRD'3 {(vaMAOF7hU}rIO57#jrYDi7cY$c&ůY.M2W 4^òmaJ ӺTkvPK34#ۢn!+::|A,Ю,hQT?ЀO^߻nE;`1e ߘ2yCq77PK.|RA1U##Barack Obama/tests/s%2Dttl-0005.txtUT (PPux dJ1ÂT?j76Pm&|'1mE,xu.3BF26P:*ᖏ0G$l/X[hvMDQd4H`p% Q8(h5 ȔHq_qP]~%u,I.?C\=srNeș>Jlva3n^^d謹/I|p(^ɕ6Facf鞸&ibhs nT6 ?W:n¾ozmvYk/ߣӚn2PK%|RAL Barack Obama/tests/ifeq-0049.txtUT PPux d1 0;`6U0P:6BHjA1力IA>8k1+Q6a9Cغ霒 i ~wʼn_&=:^ %jnB`Hiuf Q;IPQAҷc')ʔк'R+y 뙜Y۬V$PϕÎ,) 1mnw_pXttGPK4|RA|#Barack Obama/tests/Link FA-0005.txtUT 3PPux dV qUrJ,JLVOJMB}2k2kkF:~~eS\bWZT[dgXBZ PK!|RAI&Barack Obama/tests/talk other-0001.txtUT  PPux dMk0 "t)t--ԇAAILc|ωX`y%پ ğ8OaV> Џ|+ LJhݐ-f ad GU(k%RUiӃ wuC2%ݭn+T!+< E[`ղ_-~m񀊬JGt=nx!5`gf9Ě咬!H IIہc87k{L왳`cQ0ӗ2OPK(|RACӎBarack Obama/tests/if-1898.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPM, BF \@rkDs Gk &P)H&PK!|RAjBarack Obama/tests/if-0058.txtUT  PPux dU]k0}쥅~1Cfбa`Jd$k'Ye$/9GWcg4Z<ˮA}"k x1LȐeXynq+ , Fq#ylKē Ɉ89| @Hˁ|W*KQjFTP\UdȺLTj՚xD7 (r.Jc64(*o|vo7DFcݘf(FGSTLX2&+3*a^EQh) d>;DNS8Ls0"¬LqR1 kK[K;DLHn<M֪;Rz)VT+̑r.Wf99%gQx;T|9eB;*%WLfe*5SXՎwzs9wF6:!Ӻ `Y.QI$qX`;kj WmgߓOA7 WU0mWR:f@ě)X.\.oT?Qo ̚:pڏle1qt~{?zӛؐPK&|RAF;m~Barack Obama/tests/if-1654.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#k(kkՔ+̝IsbL*6׈WW/ߏ|/qALsRMPK4|RAG/w&Barack Obama/tests/titleparts-0009.txtUT 3PPux dV qUrJ,JLVOJMBK2KrR J-M ,Mj kEVچ@5"9p #\y#\Z@#PK)|RA26@\jBarack Obama/tests/if-1973.txtUT PPux dV qUrJ,JLVOJMB@93J+5- YFGMU׈WW/ߏ|Gq!6υJa4PK&|RA [6%Barack Obama/tests/namespace-0027.txtUT PPux dV qUrJ,JLVOJMB}]]363/-*"L('5/9?%ժH\b8{$.~.T 7PK)|RA؜Barack Obama/tests/if-2040.txtUT PPux d=k0w.*-ECkԎ!ZJپ$@i,;M`-:r(}/ >{J$cQ,`!459=BV ,PCURjkwX*B2Hcף4ʱL4U,w:@T=jdBP$ضao=UH99Sipx׀2q?)m3Dv^#EYM%q''9qcvNtS&ПCYPK)|RAOBarack Obama/tests/if-2023.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPr JK mjk2׈WW/ߏ|'rALsR8MPK/|RAG`Y!Barack Obama/tests/small-0017.txtUT *PPux dV qUrJ,JLVOJMBssrj4rK2Rt3ts5kkvF:~~[eS\P\RjW[Yjeajd}j;+\@WPK"|RAzɜBarack Obama/tests/if-0456.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAOfjiIj^b^{~YjQ^~Qm-D b8{f..~.T YPK-|RA{qf"Barack Obama/tests/switch-0112.txtUT %PPux dTM + B7]e&1]i&c쇗 ,罙q2/Ltofo3&".iPML+l3q+ Ø`nM˹oWw栲B+V_`);$T5NF1h2 FETU-wjT噃AeFU%IJpƉ nܐ$g^a 7(enTd*ωr-VPL@Q1[HGkl,_^F~&cV׎pq6mK˜i$El=usu,k{us7`g1OPK!|RA= Barack Obama/tests/if-0083.txtUT  PPux dTMk +6[.mO CK q09Ķ u#gڌˆ*/b\] X)V?v^ž+JHN( 8$`MZ$6-EEN^7ЩZeU MZq \[ t)E!zG) o0pmKs*h1O20oU9UĨp$-l6lݍ/% mq{s#damyGn4}>'PK&|RAX8 Barack Obama/tests/ifeq-0097.txtUT PPux dj@ @w?t<87K-$"^kݿq]ҥX{Bn4-auk⁞L;!'>Ї=[׉= $wIb5_أON Dy.$W IQL LXPrdG3S/cf)*˭<JE>ЗPK |RA H "Barack Obama/tests/switch-0022.txtUT  PPux dS]o }Wܤ pY6)˖,{*X ,e+poV)wzA0NaawlƂu;@jR~ L :S2kd?.ilL?As"x ,&!ݕkwzvPK!|RA%Barack Obama/tests/if-0359.txtUT PPux dj0g$7uۥql_d . B.d[q:GAR}dB!_y#McA8I.&Sby0EmFG`YM#t~'.lA1pyKEbFk6knj;1M;Ȑ J:3$%v`AdZM&yBu7pSeC9g3 )]-~q*Dmp&,\&3kiv&b}l\]e wQ:dH"L]3$5֕e.*cQi3jh}ސr!6g1u̙,(/M(c3ƲhW 1djX(?^Y\GA4zpp~*XȪ[ziĚ4i5V'.6)1PK4|RAnt Barack Obama/tests/ifeq-0268.txtUT 3PPux dV qUrJ,JLVOJMB3R -M ,Mj%%9E%Ũ5 Ԋ"+CmZ !U|b8{%<~.T xPK |RAnSZBarack Obama/tests/ns-0007.txtUT  PPux dV qUrJ,JLVOJMBjkF:~~1υJ4PK |RAfmu%Barack Obama/tests/safesubst-0006.txtUT  PPux dV qUrJ,JLVOJMBRKK2bZ!. _sALsRMPK$|RA1Barack Obama/tests/if-1167.txtUT PPux dQAj0+6 fͱiCq ѡ|uj"Keeff8کbI./x(tA*M Kgm#vJ"}* c4lEFOWiӜm%YO<Ǿ - O!4Y)ϓqٵwܔ/']$qe#V|{J7͎C.F,cAPK%|RA@ho5Barack Obama/tests/IPAc%2Den%2Fpronunciation-0005.txtUT PPux dV qUrJ,JLVOJMB=uS J3K2jNάb8{o-D?* DPK'|RA.SBarack Obama/tests/if-1711.txtUT PPux d @EUhcXB1pxH#3YAxWwuz^<' 7E D*$H2>麙,@{ۂ8̬m\H.T[]=6/eSYe)E O f# W^/i)>ÈoO~DLtH|PK$|RAbhBarack Obama/tests/if-1191.txtUT PPux dj0}2ht az1^$vRM$ {#enȗs4z^ zܻcc\`˃h~]np دNx^yTל.R*l¥8.t'mgK$I*:A]3T~?«-_,Y["]ke[F}>M`\8 ε֪HUop*M+3AfTls;8)fň[ڄl1S鎒g|Rj`V e>%Dqd](|zQU b4!19sZ5qO1 g4}ڎB? PK*|RA][b Barack Obama/tests/ifeq-0126.txtUT PPux dV qUrJ,JLVOJMB3R jkjjkF:~~1υJ4PK"|RAWBarack Obama/tests/if-0483.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkK2KJS+ BJ.׈WW/ߏ|rALsR(MPK"|RAwHzBarack Obama/tests/if-0477.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAM@QjrjJjBRem-DBr@ntpuqu1=w,H?*)HPK'|RAAh{Barack Obama/tests/if-1779.txtUT PPux dV qUrJ,JLVOJMB@93JʮQS66PHM ւmvpuqu1=wD?*DPK'|RAgT[Barack Obama/tests/ns-0028.txtUT PPux dV qUrJ,JLVOJMB jk&F:~~[1υJ4PK(|RA݅݁Barack Obama/tests/if-1926.txtUT PPux dV qUrJ,JLVOJMB@@93JAF(D/4'Ķ('5/9?%ժ]iZfZJ $Avpuqu1=w=D?*1DPK!|RA2hBarack Obama/tests/if-0024.txtUT  PPux dV qUrJ,JLVOJMB3Ӭj]}]jk@nm-b׈WW/ߏ|`zυJA4PK$|RAẌэBarack Obama/tests/if-1268.txtUT PPux dTk0~_q* VplYǬ0>teuIt42npG}%1x=߾Ʋn# &dN,[׻Bn Ѵ!6ABv P,n3?MXòNHX(Ya"k( dynsJAdeH ^Q a(@ɒc|CQeX)굦0^25,wݛ%քA]⠔ #.X˴UL|oHW$$Rl|2y12B :k$Gv-:匐O* W)MA֮V%߁)w.R*O7d7;sBiUͬR{w<9M; ߿Z -PK'|RAoO3l}%Barack Obama/tests/namespace-0034.txtUT PPux dV qUrJ,JLVOJMB}]]Jr22sSmb8{.~.T )PK3|RAu7f Barack Obama/tests/ifeq-0255.txtUT 2PPux dA @+vMrv :lV{k!xe|߿/!d)ҹcdb ڕЁSBu!:UڨqQUe,@*3Ya |ԍ)'<1qLCexN12% ,\%PK-|RA W^Barack Obama/tests/lc-0055.txtUT %PPux dV qUrJ,JLVOJMBsjkfF:~~[•1υJA4PK'|RA% Barack Obama/tests/if-1811.txtUT PPux dV qUrJ,JLVOJMB@@93J4/UTG"^`S\X\lTZZ\XdW] ԞZhWSlld]TjkSK2SRSPMkW[ kDs G߸p0qxq 0PK0|RAsip%Barack Obama/tests/namespace-0059.txtUT ,PPux dV qUrJ,JLVOJMB}]]BR3SRJjkֹF:~~1υJ4PK#|RAsBarack Obama/tests/if-1016.txtUT PPux d1o0wnY` @ TJQGx@ȸ(KMoN'e +J!N36[^VkDێ}#]1namtd6f$Oa!!lm`?D(5o NJ) l)pU?]>?\rQ!"PK&|RAymBarack Obama/tests/if-1481.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IccbL)!. _nₘBPK'|RAh {Barack Obama/tests/if-1775.txtUT PPux dV qUrJ,JLVOJMB@93JʮQS66PS0wF&C2KrRC* RA\kdRD׈WW/ߏ|rALsRMPK(|RAYodkBarack Obama/tests/if-1913.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP-.. *rm!. _䂘BPK#|RA,Barack Obama/tests/if-0841.txtUT PPux d @cB7/vSP4hxtX- wo5;aa!$Fbk #`O13!Ai´,+Ū~bj?f?9\79fT.d&x/N0jMciԞ~'ZZC봃vdOz? E[d4y[EWx#`2PK'|RAc8Barack Obama/tests/if-1693.txtUT PPux dV qUrJ,JLVOJMB3ӬjԔ4Jr* 榖+d))[C܂ĒT̼ 3`F:~~付 b h"PK&|RAkF Barack Obama/tests/ifeq-0093.txtUT PPux dj0 y CzPXB +D8s|i#,^vI #iz_%<w1I{3- d5s@4hUVRXg`Wjn`[q1"๧&ГB`F穹3!,.iz L( t_ܬV%:\<#BX&OGkn2ULJ?jˣPK'|RADgyBarack Obama/tests/if-1762.txtUT PPux dV qUrJ,JLVOJMB@@93ʹ­SS66b8{o5d~.T %PK%|RA1eBarack Obama/tests/if-1436.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkS2S3 J4׈WW/ߏ|7rqAsRHPK'|RAh@Barack Obama/tests/if-1801.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP-M JK mjk4׈WW/ߏ|7rALsR@MPK-|RAj-w#Barack Obama/tests/lcfirst-0005.txtUT %PPux dV qUrJ,JLVOJMBs2K R3sS3KR*W;5"9p #-\DX υJ PK"|RA/.Barack Obama/tests/if-0682.txtUT PPux dQ;k0+. t3ts[k4N  ّSY*g$8Uf.{=R (`HXú[H!5u|f>9t.eߓ4(,ŠK8utfobqapJ"5Et@`Sӈ'm"Nz_ߗ1VPkNK6F?dg ̫g2|Å3UUhɄvU# 4> jul+=1\-\'-4Fu?pDg#u{jS4mSltY #fă~~MRD"[% GږW|PK)|RA-tDt}%Barack Obama/tests/urlencode-0022.txtUT PPux dV qUrJ,JLVOJMBKrRSRtԔRjk6F:~~[ɥjjdjdlljb B hPK!|RAVNBarack Obama/tests/if-0336.txtUT PPux dQk0)-M ۛB7}(v`!bI::ᄡð ;~w\|?RCb+2V3[h #:BBvK@Ƥ |4jpF ;  9Jj m;{H' fPC`OS/S0_W"z-*hJ0/h5o]3Ppmc{fB,`O k^B}eqaYEz}s $`e%?PK)|RASBarack Obama/tests/if-2044.txtUT PPux dV qUrJ,JLVOJMB@@93J!*5'5RF(D/Զ(jijJMKSAVlld (@z׈WW/ߏ|op q\@PK3|RAc+fn Barack Obama/tests/ifeq-0246.txtUT 1PPux dV qUrJ,JLVOJMB3R j jRRjSRjk6F:~~[4b h(PK%|RAff"xBarack Obama/tests/if-1405.txtUT PPux dSj0}Wtű!=RB<:yo,1E2+MqQa6L*;5CgPNۨ)HZ,.#wit5 [FK_s Er%{#eeI,T7 3$̙XjzmC1 *3%7V?K_ccPƔ`)R<'F}?j%O=0v.u])D#'+hs| 6j{U0y=?C̳~/osLPK"|RA59Barack Obama/tests/Infobox officeholder%2FOffice-0005.txtUT PPux dT;o0+46C4QCZk0 8' E )翗)ܡha bW%`| dUX!ߧ[+u-hncu+A*h0/'#6F]jݏzYR<8lZlj b-6[yA1Rk'ʒ;lR" Ƕ%#y\ cINQ.񋹱 sK@a_hwJDC`G@&u=R| :lj]S^b)+'C*|3ެL?#;ޘ5ȑq PAF0߆ah0 g0=v^pt-lBN 5;@{2ٰ)-,BlH$C7׸=mDz l~ `"h_~(A.^OVw;b?x8[N'$M.PK#|RAXIBarack Obama/tests/if-0876.txtUT PPux dQA0+ H¡j!D0*H"dv2b\" /1~{ئ,bdG([R5xhc'/[kk؉Z}g r/{T;FP St]Nqr:~Ԑre$HD$W#iClPK |RAPgBarack Obama/tests/if-0009.txtUT  PPux dV qUrJ,JLVOJMB3ӬjRKK}]]Ԕ+̝ICbL^ `F:~~; b h"PK2|RA %Barack Obama/tests/namespace-0074.txtUT /PPux dV qUrJ,JLVOJMB}]]BRs rKRC2KRSKb̔ԼԜ<# Z\#\C\]@ G`O?1υJ4PK-|RA[k*Barack Obama/tests/sec link image-0003.txtUT %PPux dV qUrJ,JLVOJMBSr22sSk k R3sS35"9p #)\yzٙ%zE >Vg#υJA tPK(|RAH/uBarack Obama/tests/if-1940.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D 1=ض('5/9?%ժ H\b8{.~.T /PK |RA7h"Barack Obama/tests/switch-0018.txtUT  PPux d 0 }NFz)ZAU;,)ud{2 Գ,'_O)vZO0ۉD%swu{lt(UzJU&m&&|6S 93@T"UٳV_~뿬ZQLV:Ńm (mh{y)e gh̢&v>"PK'|RA;7Barack Obama/tests/if-1810.txtUT PPux dV qUrJ,JLVOJMB@@93J!<#bzBpj^bIBX~IjBPjYjbDiMqAbBrNbqRAQf^I~^N5Dl%jkUQRR`_^^[ "s3S􍌍LL2FQ~twZ. k׈WW/ߏHoD$P)PK!|RABarack Obama/tests/if-0361.txtUT PPux dj0g$7ڥql_dt  B.d[ɼ:R8RHwI&؜.|d#yQt;c%HGxɂX>Q>3`vlS Œ0 B>^];Rtb.%_gI!y6g2I.vo,UӉcg,fu?F"o.jgRRFPF{ ]5"7нR E ܠMr"g?m?. q4Ȑ&|2ASe`/U_Y,ڭ뮫Lu}T1ŵ1Xq'$5eM&?AdZ ; BlYST5eiM dĒtj>QOpl jab[Y; ~ŝ|Ex` nVbUݍ"ot73xhStZPK"|RAڦBarack Obama/tests/if-0779.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbA{~YjQ^~{j^jQbNm-D b8{`..~.T VPK)|RA+4Barack Obama/tests/if-2042.txtUT PPux dV qUrJ,JLVOJMB@@93J!*5'5RF(D/4'Ķ(jijJMKkJ,B@׈WW/ߏ|q!NυJ1PK!|RA/er Barack Obama/tests/if-0049.txtUT  PPux dRMo0 Wx&z`Ґ6@Ii6"M| sZM$9*hrP.!6`pw a?`Zo)Ъr`E`w"VEY4:}ab+nEIPཅBcS<5 S5V٣д~e[V;YQsG^ժ^tӑ|ϓ4c4]LfIuY(PK/|RAa\fBarack Obama/tests/lc-0067.txtUT *PPux dV qUrJ,JLVOJMBsJsjkƻF:~~U6b h.PK |RA>JBarack Obama/tests/if-0014.txtUT  PPux dV qUrJ,JLVOJMB3ӬKJRJ2jlRrlRJK*sRmJt3R M TmSJD]m-q!. _"WP)PK4|RAJ[ٴ:&Barack Obama/tests/Persondata-0001.txtUT 3PPux dM0S=B蠍Ub:&V? 0FD]l(Ro|$5-V;Xlp SYίE=BBN^-v t2<%i-RVNYEN^XY(e%Q'0-V8Y EK/j(=zZHÍ`%zyp >}Ph KpYixmd 6, 6 k7O^P)tr%H1v2j VoQ0F[p)wP$C 7%Nkz7qp#S)k9EȺhjc C[c=UV6^Cgm+ihiABaufv2o*Rϔ# ~s PK)|RAwBarack Obama/tests/if-2037.txtUT PPux dV qUrJ,JLVOJMB3ӬjԔ|+Kss*c! 5jyIjy)M^~yfvr52XY_Z X#m굵\@kDs G &P) &PK%|RAJ%Barack Obama/tests/H%3Atitle-0019.txtUT PPux dV qUrJ,JLVOJMB=J2KrRks2TBMnm-2׈WW/ߏ|[l *اP\R M/JI-M/)ϵ2,PH2SSrmA sRPK'|RA |Barack Obama/tests/if-1738.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52ih ]I9:ri媭5"9p #s\\@PK |RAhbtBarack Obama/tests/ns-0021.txtUT  PPux dV qUrJ,JLVOJMB󊭜KR*JskkF:~~[Džbx?*xPK%|RAv'vpBarack Obama/tests/if-1419.txtUT PPux d͓Mk@+&=hL\hBX0MtUX7ik+)iz}l?9 N1Gw0L#6@BNYaQj-R/50q PK%|RA}2W^Barack Obama/tests/lc-0031.txtUT PPux dV qUrJ,JLVOJMBsNάb8{oə3\@3PK$|RAhxBarack Obama/tests/if-1305.txtUT PPux dV qUrJ,JLVOJMB3Ӭj RSRS@d /lkDs G\0!&P)&PK!|RAM$ Barack Obama/tests/ifeq-0031.txtUT  PPux dV qUrJ,JLVOJMB3R j jkkKR*RKJRSJ2sRcckknppuqu1=w ~!P)<PK%|RAI%Barack Obama/tests/H%3Atitle-0020.txtUT PPux dV qUrJ,JLVOJMB=J2KrRk32TR~iBə`k]#\C\]@ G`O?).HS[lfpI%H:)(%H7)$?ʰB!LMQ;9Fdā~.T sPK(|RAvuBarack Obama/tests/if-1825.txtUT PPux dV qUrJ,JLVOJMB@@93JAF(D/Զ('5/9?%ժ YZGMȺBIK]#\C\]@ G`O?1υJ 4PK%|RAxBarack Obama/tests/if-1467.txtUT PPux dA @a;x*`T*P kn䪸{HZ]11@')dX.r&HH' X}?WG}u!)ٌ YjX) /M!^6׺=V ux7|ZcATft6 Pyֵt cy<.Ƹe?mn&ziPK'|RAܛ0Barack Obama/tests/if-1764.txtUT PPux dV qUrJ,JLVOJMB@93JY>J_\/8/)D%gi!]Sm-2!. _AEP)rPK'|RAJBarack Obama/tests/if-1662.txtUT PPux dRJ0+oAVK]]asJ1nöIh-l)JA0$ 8Op v# o%tp3 %^nDޒh]-l]c5 ziD\A(dˢ;TLІ+4cT\F\(]`zVHL\ LjqwasKЬ gۀ4zfe9>Q0J'l?+<N`Yήt?\}PK-|RA3s:2Barack Obama/tests/Case preserving encode-0004.txtUT %PPux dV qUrJ,JLVOJMBS RS2RSRk R3sS3KR*P[ vkDs GӸ[W?*1VPK$|RAf"6AnBarack Obama/tests/if-1164.txtUT PPux dSQk0~8t{(}6V;4=%M$f/Վ=L K/q%*TQԋ"$u`0YTD}C~qo| (rT!hk|#`(46TUZ8.1)99U7ςkaݭIX?A?2JakeL"繻tz; 79h,Ϥֲ KF#@U z=R \ ]l#a#׺>sk~ܮ$%q팒t\>u 15PK |RAf^lBarack Obama/tests/lc-0002.txtUT  PPux dV qUrJ,JLVOJMBsJRR2RSjk6F:~~[7b h4PK3|RAcIX_ Barack Obama/tests/expr-0023.txtUT 2PPux dV qUrJ,JLVOJMBS+ jkF:~~e1υJa4PK(|RApuBarack Obama/tests/if-1951.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D/$ȶ('5/9?%ժ H\b8{.~.T /PK&|RAug=FwBarack Obama/tests/if-1510.txtUT PPux dV qUrJ,JLVOJMB3ӬRsJ2sRr3L;}( Z\#\C\]@ G`O?]E\@PK(|RAU|rsBarack Obama/tests/if-1844.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D/+-׶('5/9?%ժHwpuqu1=wD?*DPK.|RAns{.Barack Obama/tests/S%2Dpar%2Fus%2Dsen-0001.txtUT (PPux dV qUrJ,JLVOJMBu KuSjk6F:~~[Y\XZcc!6P)6PK(|RAjBarack Obama/tests/if-1821.txtUT PPux dV qUrJ,JLVOJMB@@93JRF(D/Զ('5/9?% ,U[ SPLGM(\[ Q$!. _^2U#gU#3U#cc#Uc'\ @PK&|RAjAmBarack Obama/tests/if-1496.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I bL)!. _nₘBPK!|RA_a%Barack Obama/tests/safesubst-0019.txtUT  PPux d @E8,'ŨH:7)[]cJe"Gv Tqi:E[d$ J3_ T[nqˉ%!Y$i*Di ^!kl@6 ꒾,y`3τPK!|RAy9 Barack Obama/tests/ifeq-0033.txtUT  PPux d=0w~EgD  #iN8BF4ɠtyRAFR:E%U$:,:rf!`uLxq2C"D &-*cոɦshШm]IS37IΘI] MJlq nTB-~Jlg8aG粞ЛPK!|RAJ.{MBarack Obama/tests/if-0335.txtUT PPux dAk@+& &f!@Pv[MI1szfcPmNb.xӬ/< FImT͐+SWX`mx.ZzX]gWE!W1%DښX K0ڂ}0pGg<)_kdce 0G0 SQqJ&wIOC4/#PK'|RA!XgBarack Obama/tests/if-1761.txtUT PPux dV qUrJ,JLVOJMB3Ӭjj`t-mqpuqu1=ȷ b h"PK!|RA*τBarack Obama/tests/if-0393.txtUT PPux dV qUrJ,JLVOJMB3Ӭs2SsrS4 s2K234kebck RSRS@d /0׈WW/ߏ|r!1υJ! 4PK!|RA mLZdBarack Obama/tests/lc-0027.txtUT  PPux dV qUrJ,JLVOJMBs@v(ւwpuqu1=ȷ+ h0T?*TPK!|RARBarack Obama/tests/if-0437.txtUT PPux dA0z[%Y aOE ;a,zP>$>a3 酞iV!A91@BVq w$w1ݏ'| Cl| hSl!vu@Y|4yᛁ-*'V-Y^,7ŋg= PK&|RA(;Barack Obama/tests/if-1540.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i \I1r設媭5"9p #k\\@PK&|RAdh%Barack Obama/tests/namespace-0025.txtUT PPux dV qUrJ,JLVOJMB}]]B2KRSKKR R3SRJ2sRsRK2t jkqpuqu1=wD?*DPK(|RAxckBarack Obama/tests/if-1883.txtUT PPux dV qUrJ,JLVOJMB3Ӭt&Wm-&׈WW/ߏ|+ &P)\&PK!|RAxBarack Obama/tests/if-0119.txtUT  PPux dAk ~ n)9tBgqe 9楕fC3a42TRFtAT/tN`qnēQC:FT`*slVm6ZSxh4BIsTfxN5(z*%ie Nl?w&^L.9Ck6>7!eJb7{RUY|/el0 reoҊ YحHxȩmaJU*J1 Mܚx6sg|ddpA/{7*)coPK&|RA~Barack Obama/tests/if-1570.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#k(kkՔ+̝IcbL*6׈WW/ߏ|/qALsRMPK!|RAP|Barack Obama/tests/if-0353.txtUT PPux dTK0~_qs=MA߶Ub;F:i;8KwӴUApG}% eFGHN,[$p]/AkfPʍK^E9+dJ6JX$F U b,=X;J5R)lZd|XpDdKrG#a25Sf6ݛ`|188sP%,eȿdL|J$!R6^Ǖ<ҌC5]aͣbMND'Fur򣔦&ϫNiW`-~gkC;t;(XesCf;|cJUj_n[4pʙxōlՈF|PK*|RAկd_g%Barack Obama/tests/urlencode-0032.txtUT PPux dV qUrJ,JLVOJMBKrRSR|RSkkVF:~~4b h(PK |RA>|Bt Barack Obama/tests/ifeq-0018.txtUT  PPux dV qUrJ,JLVOJMB3R Ԕ+̝ĜL-Mʯ+5"9p #q\\@PK!|RAA]uBarack Obama/tests/if-0395.txtUT PPux dV qUrJ,JLVOJMB3ӬsSKsbckKS ԔԔZ!. _[1υJa4PK&|RAthBarack Obama/tests/if-1539.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i\I1r設媭5"9p #k\\@PK"|RAy_fxBarack Obama/tests/if-0728.txtUT PPux dV qUrJ,JLVOJMB3ӬjKS ԔԔZm!. _r B@ PK&|RAttzBarack Obama/tests/if-1552.txtUT PPux dV qUrJ,JLVOJMB3Ӭ3sR rKRSSskl33l,,jkNrpuqu1=wQCsR(PK/|RApX`#Barack Obama/tests/s%2Dend-0001.txtUT )PPux dV qUrJ,JLVOJMBuSRjkfF:~~[U5υJ4PK4|RAO5ebi+Barack Obama/tests/Ns has subpages-0003.txtUT 3PPux dV qUrJ,JLVOJMB2K SkjkF:~~[1υJ4PK#|RA^kxBarack Obama/tests/if-0870.txtUT PPux dV qUrJ,JLVOJMB3ӬjRB JlkDs G\\#\H@#PK-|RAwF~,Barack Obama/tests/Spoken Wikipedia-0001.txtUT %PPux dT]o0}W\M*h>L괦IUblf;M>ېjʃXs9v$__#HxOHlKT#',nyh 3NV9Amļ΂zH(Q<l FbS8GT[tGWe6_\Lsr$\3E88(Q$eV%߂$RaS@Ca svjGq*Ud>d l*'a@|5}("z%KF%_4Mt)`:Iel4jm1MC=DثRPj5%acm,LӁ/zW0"hA8 >Ly>lث0)+ <\Ȳ(ŰA29׀@{" 9wMa{ OthvCw qHOr%04FAMNz)񯵖Jv>}1cV0mڙjc_饄H䪲J~@/.0?TIr-/a:7f@N>';ߤ`r8P5VHkICD8Qc(#Z'3z!S&5Rf*{̯v՗PK |RAh\o(Barack Obama/tests/basepagename-0002.txtUT  PPux dV qUrJ,JLVOJMB]]}]kk6F:~~[~W?* tPK2|RA|2p{"Barack Obama/tests/switch-0175.txtUT 0PPux dV qUrJ,JLVOJMB3K332sRjKҋK j ܼT[ZŮ!. _.2Bp PK |RA2|J"Barack Obama/tests/switch-0009.txtUT  PPux dTMk0 Wzi^ȡ[+iY36e8Қ:vvʶ}v'Iqr"<\E)IdD(Nv=eK@[ԜɊii Hf B*% RyrZ,PlX̎ Oa tLS~1սFR8nް6JQ0UbT ZR )R%\ȤJrF6gdaRnk߇Nng q]$zc־&r,=<9}B&AAulBb0<L'ɿCc-q5X?dE4dغŋgua_'r;t=PK/|RAZ!Barack Obama/tests/small-0012.txtUT )PPux dV qUrJ,JLVOJMBssrj4K2R4kkF:~~eS\P\RjW[YjeajdFb h=PK |RA: Barack Obama/tests/ifeq-0007.txtUT  PPux d@ wO@pjczP QsSG5tj" BQ[ΰ;pAR[4†&Qnau6$Vs7j.$ļtViN2'y. ~S0m%j}zBVp} \!rOeJ焋gt' ? \/FzPK+|RAiWh({)Barack Obama/tests/only in print-0002.txtUT "PPux dV qUrJ,JLVOJMBr*2 2J3O-/P@\׈WW/ߏ|GqALsRMPK"|RAݹ9Barack Obama/tests/if-0795.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk }2SKKRJjX$Nm-D b8{..~.T iPK!|RA玫Barack Obama/tests/if-0142.txtUT  PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAMpirrjjJjBRem-DV95"9p #ߕ\\@PK,|RA`p)Barack Obama/tests/fullpagenamee-0007.txtUT #PPux dV qUrJ,JLVOJMBB}|]}]]kkVF:~~@<~.T PK-|RAv<6 Barack Obama/tests/ifeq-0149.txtUT %PPux dV qUrJ,JLVOJMB3R R3sS3-UIN,*. IeuuUHjnANbI*^@HDqpuqu1=".v#υJQ PK-|RAu#Barack Obama/tests/lcfirst-0009.txtUT %PPux dV qUrJ,JLVOJMBs2K R3sS3KK2򋬐mW;5"9p #%\B PK$|RAKfBarack Obama/tests/if-1189.txtUT PPux dS]k0}ϯeo:pڇVa >ՕIIh% 0rs9) <2w:MXɈxA_AKWN҂cRQꣀ^w7xD Dr vaEn \Xb+Y~ȩX.sHz`@J!]{k񤮼ϯ^w84vxRMWz,X[՛{rq_I晃5+-xvtI|t]&XX(feMGu.!;њɹ@^"/8&-EpSF+} PK%|RAIBarack Obama/tests/if-1364.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkB3S3 |U[ vkDs G FP)FPK%|RA6UBarack Obama/tests/if-1465.txtUT PPux d_ 0SDARР@$\5nA}f rq'@%1d-Xw8+=)ّ@n"/nC1YR(gf%sF$9ȻE&>]Dk.mmMhsYhm@t;ydJp2cE<Ά?FPK%|RA bpBarack Obama/tests/if-1429.txtUT PPux dV qUrJ,JLVOJMB3ӬjLZ(U[ 5"9p #Z..~.T PK'|RAHBarack Obama/tests/if-1684.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#0kkՔ+̝I#bL*6׈WW/ߏ|/qALsRMPK/|RASb!Barack Obama/tests/small-0003.txtUT )PPux dV qUrJ,JLVOJMBssrj4 ,4kkVF:~~eS\P\RjW[YjeajdFb h9PK$|RAܳ=Barack Obama/tests/if-1094.txtUT PPux dQ 0 )]6a=clc8[i(nB P_ad#lrEo8uOdR Z34˴P˧@"!9"eIxnhxcs4h?RVpB%x"6Xe)X &,ȴ瓾m"U#x_a?ts,@?sY%aJ/M%-4jQQ946Q"3ALX)<ÙEjWFQ;e7>^%B;K$!X6 U u[F}|r(˼j 0!-=o?J&dIC=k 9Ii/컨6t8ulc:H m.%ɵtgkNZ=^ 6S?E3S?ǧxd:|z6۽: + Bk+!*Z*jp#4xN2x1D vO&/xfcQߙ7Gy㚳_PK/|RAE#Barack Obama/tests/s%2Dach-0001.txtUT )PPux dV qUrJ,JLVOJMBu3jkfF:~~[U˥S\gdP\Rj_Z[_``ZPPfhniPXXRt[fjYjnj^I1ĉ~.T ZPK"|RA Y`Barack Obama/tests/if-0488.txtUT PPux dV qUrJ,JLVOJMB3ӬjtkkkF:~~[1υJ4PK/|RA0b"Barack Obama/tests/switch-0126.txtUT *PPux d]o6+8fcH ں+a(Z,*I9MKI}XIlC_<<PƬ1"xG 9@$҈}z2`ę-n 4LcH4SV~hHr7N'Lr"qt)5n`sh7Aj&Nc#[~"ّ\y(ר`nrſ/PΩ*K%8;c^%Jh RoYyc3dq2u3^z;ʼnXԳ$WQ/n!+`]#J3Tr*b@j|:”Y7 OZŔbK=K=&8)`%QEA"'D[ QpTfeT>L7ߍM 2ۈ(&}'ʕ-xK]>]p*⡐烏+"4U/Ȁg?PcȻҗhޞ:2y+U6Bmzq`d;/+GV:W>T0L7.͎@=,igc6SdySR '?ƚMXg[K®-tZx}<7h+!dlr {54@dжFwVwVIi -2ߩn& NVй,Tō7n)Eglc F阥Ȗ8% #(g@/}#R_*ŒQ 1:(xᆛLOE0QA*h5b<\/a-!ߨ* HRf_g cIӮ׵iշoXm)WrF^wHWj wϦ~n?ޢrӮ}on$qQ#26C ckM}mb謮:Øh\_Ha $VD&h3uH <={wm/KayARUJZiao۞1 . v,[*rqaUfhN/٭W/eﮛ&Q`N=0C|TZhaBߥ9ev-sorYqNqEVNAf*0+LOUD `w絴/LfZiva.6<0JlypO+4 O!96[uCwk{ ?n8ĭB3#ahUT/_I,>Ӫjޫo`wZ?<>o]/pzWK'S}TY%#}oPK%|RA+  Barack Obama/tests/ifeq-0067.txtUT PPux d 08: n)f~ a{@',G 뵕ninS^T:/@PozTnu,Ȥ؁-mHرL !fV .%؊eKa;!1'ƨ[1Qd5n)zEfUx5Ac {PK&|RAfLBarack Obama/tests/if-1555.txtUT PPux dV qUrJ,JLVOJMB3ӬP((J-LI+Lr2s*s 3t ,jiDPlld]&Rtmmt46א!6l!. _]q PK!|RA2+Barack Obama/tests/isValidPageName-0001.txtUT  PPux dV qUrJ,JLVOJMB3s2SSsSk2S}2KR3SRJATм̒Ē "jbckk.wpuqu1=D?*3DPK |RAL|/Barack Obama/tests/Editnotice pagename-0003.txtUT  PPux dV qUrJ,JLVOJMB]S2KK2S SsSk@ [dkkVF:~~仁+$5 '$ b^vsRpPK |RAPdmt%Barack Obama/tests/safesubst-0012.txtUT  PPux dV qUrJ,JLVOJMBRKK}]]jkVF:~~1υJ4PK%|RAs*Barack Obama/tests/if-1466.txtUT PPux dV qUrJ,JLVOJMB3ӬNN<=3ĩe!. _r$)$$*R,HML_YZYQYjXZP\R I/JI-M/)ϵ2,PH2SS@b e@JU PK%|RAG!Barack Obama/tests/if-1450.txtUT PPux dV qUrJ,JLVOJMB3ӬjKR*2Ӌ 2*JRs r řy Eyyə%y`׸F:~~; b h"PK3|RA] Barack Obama/tests/ifeq-0261.txtUT 2PPux dRj0+|npJ{QID 4N*LYEH#l{m!܊ fvfv)zc lX!Hɵm{0kin.xۖideOŠsXg惐7ktƁ.ϥЕ67ytrg5{1lprK3&4]7ys1mj,rQ.@o*w5vş h﵆\(@'M#x9O /PK$|RA8SҶBarack Obama/tests/if-1271.txtUT PPux dA 0K!OM[`P3p :5CM C3;}BWHz39@='L ݲ0ZaakޕX&\~Qu !43>ʇ FhgT/͚DBU%#[5\~5>v/g|8BD$%o?#g:~4~PK-|RA3\d+Barack Obama/tests/contentlanguage-0003.txtUT %PPux dV qUrJ,JLVOJMBB8ւ-ppuqu1=ȷ+5b h&PK%|RA^0 a^Barack Obama/tests/if-1356.txtUT PPux dJ0q "lw֋Va.6emR47I5)L"Ys̱gE %A~@Ehʬ ~M0=O10RU)0u6/æαZ,ePK(|RAbztBarack Obama/tests/if-1952.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D/'99϶('5/9?%ժ Hb8{.~.T .PK&|RAap[c(Barack Obama/tests/subjectspace-0008.txtUT PPux dV qUrJ,JLVOJMBC\C]kk6FE\]@ G`O?ₘBPK(|RA[wBarack Obama/tests/if-1895.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (x%&U*(X@kL   I5XD4)'8#5EA![[dĒ" M DPwpuqu1=~.~.TJ#@PK$|RABarack Obama/tests/if-1118.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkRs3S <U[ vkDs G㸸 FP)FPK-|RAޤXk$Barack Obama/tests/pagename-0020.txtUT &PPux dV qUrJ,JLVOJMB]}]kkF:~~[vW?* tPK'|RAh(Z Barack Obama/tests/ifeq-0108.txtUT PPux dM 0F9@o!:A, h# FRިtkkE=30{G\ъ( 'a"e$w*(+7 q+;uuM QgU5uUcH&R'D*-9ԴY<ŸgM&~D_1y;tƁxSف>;,dL PK(|RAWP-Barack Obama/tests/if-1876.txtUT PPux dV qUrJ,JLVOJMBPrfX * q)())K,K/-Rze%E@b}fP]CG)g׈WW/ߏEvP)ePK$|RAtBarack Obama/tests/if-1110.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkR3SRJ |U[ vkDs G FP)FPK4|RA%磇 Barack Obama/tests/ifeq-0270.txtUT 3PPux dV qUrJ,JLVOJMB3R -M ,Mj%%9E%Ũ5 Ԋ"+CmZ !U|b8{%.ms\@sPK&|RA# Barack Obama/tests/Main-0001.txtUT PPux d 0 }>Z{V( ul 绯nvaN$G+A$ġb[9CB~  LlpqLQGg`tm R~O_(x<(+<Z;HvNmKmЭKt7-.yt{(Ud-*gFoPK4|RAyx&Barack Obama/tests/titleparts-0024.txtUT 3PPux dV qUrJ,JLVOJMBK2KrR J-M ,Mj kEVF@5"9p #\&3\\@3PK0|RA\c Barack Obama/tests/expr-0015.txtUT ,PPux dV qUrJ,JLVOJMBS+ kkF:~~e1υJ4PK"|RAAHQBarack Obama/tests/if-0515.txtUT PPux dQJ@SL[VFf!0I&mp*->⋹)ze~~O@DCO5/ɰF;_XLnQ^f7}E@kNp5Ϝ^7X:@=A CGDY9)Cz]7UzHDUI"A>%i?iMuF́ I h[7'pY=Gv8oc4\ߗ6,d[(xS.?,;+DwPK"|RA3Barack Obama/tests/if-0473.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkcpRć=BjHY5u:ݰ;n)folXfcI~~IVjN,vRQ_ԖZThC ή4,MCy]q¹ñG#qPK(|RAT3Barack Obama/tests/if-1969.txtUT PPux dV qUrJ,JLVOJMB@93JY@O-/ZM ,HLO\Iͨc3l~;[2_[˅kDs G~qALsRMPK3|RAwL Y`%Barack Obama/tests/namespace-0095.txtUT 2PPux dV qUrJ,JLVOJMB}]]kkƻF:~~1υJ4PK%|RA+ Barack Obama/tests/ifeq-0074.txtUT PPux dV qUrJ,JLVOJMB3R *SkkjK*sRmRRtKJs *RZ3\#\C\]@ G`O?EN~.T TPK'|RA1LgbjBarack Obama/tests/if-1806.txtUT PPux dV qUrJ,JLVOJMB3Ӭt5Wm-"׈WW/ߏ| &P)X&PK%|RA-mBarack Obama/tests/if-1472.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#bL)!. _nₘBPK$|RAT0X_Barack Obama/tests/if-1154.txtUT PPux dV qUrJ,JLVOJMB3ӬjjkkF:~~1υJa4PK(|RA_vBarack Obama/tests/if-1831.txtUT PPux dV qUrJ,JLVOJMB@93JAF(D8(3ض('5/9?%ժHb8{.~.T 0PK)|RA=DBarack Obama/tests/if-2014.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjPMLJOI*ry!. _䂘BPK&|RA B1mBarack Obama/tests/if-1497.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝IKbL)!. _nₘBPK"|RA^Barack Obama/tests/if-0614.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkkd^~yQbAM@Qfnof^fqIjQm-DBr@tpuqu1=w.H?**HPK)|RA̖dBarack Obama/tests/if-2005.txtUT PPux dV qUrJ,JLVOJMB`@93JQS66Єւwpuqu1=wD?*DPK2|RAΰf Barack Obama/tests/ifeq-0216.txtUT /PPux dA @+vN!xt!Wa7f,m ]7 3X.";U. *0A&@]zXh<јx2ǁɇ94T C`(q̿^1PK(|RAZd Barack Obama/tests/if-1875.txtUT PPux dV qUrJ,JLVOJMBЁrfBFII~^^^bIf~^bNV~iK//I-cPCZ]#\C\]@ G`O?=EkvP)vPK |RAq;C"Barack Obama/tests/switch-0025.txtUT  PPux d0>Ef_JE:Rj$5p!Ȼ{nj؞P8=),d%ՙnYH0=k &{4'OZ_NjQ(9.չBL &w}PP֛AYR 2SЗ2B(}sR׽w[<?M8ߥGD/PK(|RAhBarack Obama/tests/if-1871.txtUT PPux dV qUrJ,JLVOJMB3Ӭt H- (@5P &5zjFE%%y %0Z. D ǻF:~~ b h"PK!|RAYBarack Obama/tests/if-0228.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk|2K* \U[ vkDs G &P)&PK'|RA0U\Barack Obama/tests/lc-0041.txtUT PPux dV qUrJ,JLVOJMBsjkFF:~~1υJ4PK'|RAj"Barack Obama/tests/switch-0086.txtUT PPux dT0+!W"u=mMMjLaa M潙dRB>1]u3zax1qѷtN$OȀvban^]W9G7 ; v'ʵZA1EHn!lAg؊YwY]9`C LlqNˍF3:)xQl 5z3xO4Y& E\ .OqPK!|RA_CVBarack Obama/tests/if-0168.txtUT  PPux dV qUrJ,JLVOJMB3Ӭjs lK*sRՔ+]Y)$楤Y+V&dY)$敤))TW+*p)]Z]#\C\]@ G`O?1υJ! 4PK#|RAD5"Barack Obama/tests/switch-0045.txtUT PPux d 0E.TEA,Ek6KiùMa,A ǔq`(K8NX H@]jðP] KyK; IiJ|ͯۍ Ĭt^rͺV/s.\luiTʃJiK.M[|Op_H Q΢'Gh4nizPK!|RA Barack Obama/tests/if-0178.txtUT  PPux d1o0wHݲ6 T+U<ASRr ״Ltw;靔%Zo=yN鍄Bڪ\pA9_bʵ;Y9G.-΋l9G>lSɶfDsHm6E6'ܰeWp)/ l)1q6k!6| a'"k Q=h]*/ֻy_bHPK/|RASJ{+"Barack Obama/tests/switch-0124.txtUT *PPux dA @ I&ݔ=T!( Cv-lVƵgE 4c!d%[QwO(gΑ˓~S6ctMc6@s{U[2EV8=E_i4r+{+kQ83~UrL°2uua?@-3>! ,rT`Ci \] ]0=Y.C8wv >PK!|RAmQBarack Obama/tests/if-0389.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk RJ45 "jNd>T bLBrւb8{..~.T rPK'|RA:Za%Barack Obama/tests/urlencode-0003.txtUT PPux dV qUrJ,JLVOJMBKrRSRjkF:~~[1υJ4PK!|RA~Barack Obama/tests/if-0100.txtUT  PPux dV qUrJ,JLVOJMB3ӬjlԢ̼|ݜĔԢZ5ec#̒ 0Nrpuqu1=wD?* DPK&|RA[~Barack Obama/tests/if-1527.txtUT PPux dV qUrJ,JLVOJMB3Ӭj 5ec#k(kkՔ+̝ISbL*6׈WW/ߏ|/qALsRMPK0|RA}) g&Barack Obama/tests/transclude-0002.txtUT +PPux dV qUrJ,JLVOJMBKsJSRk[b8{o+WHjnANbI\\^@kPK#|RAUhvBarack Obama/tests/if-0992.txtUT PPux dV qUrJ,JLVOJMB3Ӭjs3RSkR2SKRkkvF:~~[7b h4PK!|RAi]T[Barack Obama/tests/%21-0040.txtUT PPux dV qUrJ,JLVOJMBkkF:~~[U1υJ4PK&|RAtBarack Obama/tests/if-1621.txtUT PPux dV qUrJ,JLVOJMB3ӬjtRՔ+̝ICbL,6f׈WW/ߏ|sALsRMPK(|RAv"niwBarack Obama/tests/if-1869.txtUT PPux dV qUrJ,JLVOJMB3ӬK2sKtM DF:~~[1υJa4PK&|RAckxBarack Obama/tests/if-1603.txtUT PPux dV qUrJ,JLVOJMB3ӬjBZ^Rqub^BmBtr52i \I1r設媭5"9p #k\\@PK2|RAδ"Barack Obama/tests/switch-0162.txtUT /PPux d? 0|W$ Q5A؞O#UUp7" =l ӕY&iDiӀ U]6\[9 ,9RZNY'oԠ.NS >3ACߏ2PK2|RAnw%Barack Obama/tests/namespace-0076.txtUT /PPux dV qUrJ,JLVOJMB}]]B2KRSKKR R3SRJ2sRsRK2t ,jkNqpuqu1=wD?*DPK-|RAeRYBarack Obama/tests/%21-0090.txtUT %PPux dV qUrJ,JLVOJMBkkƺF:~~U1υJ4PK%|RAnVd Barack Obama/tests/ifeq-0043.txtUT PPux d 0}#&X J"1sh:%}K5'p8A($ + ԇ)UxQJ %>kN xήn6 6~z>>$6DWGAFЂ;~8ȇ\.O`{a AP)^PUmRyuOʘY2kYs2꒼$opӋl7PK#|RA=e&KBarack Obama/tests/if-0999.txtUT PPux d@ y,ު#9ZPzQʎ32vQ{IQĚcVV?-I L,T u0ʨ,5{)Nl\5]Ga%]j:Ɗ#;Ʈyy׍3'i)E1/--֜οwK^,lM_?&* oPK(|RA7%Barack Obama/tests/urlencode-0015.txtUT PPux dV qUrJ,JLVOJMBKrRSR2JJ K2sK^r~~Y~IjP8;! v+CXԦdO<:@jQzxT-_4tʵUռDPUyc9Tf\e)LHszFBuƱ"bRVA%O mi罎"ՋC$Pr< %n'l/E_q}^\;iPK#|RAfBarack Obama/tests/if-0980.txtUT PPux dn0{LyTh HepVE߽n@ZIguRL$}<7V|́zƌЌp#L pk$C#?LkI-a|' W5#w7bH3zohrա{ekS-vJjtEgt(ξ,WiuVWiFr?vb:'F'_b4Rf7@?PK!|RA̢Barack Obama/tests/if-0289.txtUT PPux dPA 0+R{lAQ0BJ,jK %M_P21G,gG`/hoA5K)e+\vMK2uLzٙ]̳~T+rU4MPWZ jT-M(1+r`$[DJ뼤4[PK%|RAH:>"Barack Obama/tests/switch-0056.txtUT PPux dN0 y K{ӂ* !U=x![iλRdknVPNd, &#0k^@gBRvgtS@M򡽸렬]eZ~3Dp=otF,WΞU^K`.p|%,Nm;R9-p)"K=Kp A;WhwWPK0|RAdt Barack Obama/tests/ifeq-0177.txtUT +PPux dV qUrJ,JLVOJMB3R  jDjYjU[ 5"9p #^.S\@@SPK4|RAWZa Barack Obama/tests/expr-0026.txtUT 3PPux dV qUrJ,JLVOJMBS+ kkƻF:~~e1υJ4PK$|RA_3Barack Obama/tests/if-1100.txtUT PPux d0E~S7 T: 0IUdBZ(IY2S0VԶѠ`BKEφ;Jwb-E 4ϘF#PK2|RA}id"Barack Obama/tests/switch-0165.txtUT 0PPux dQM @+nQMݠrAY0QIjF߳57yÛx. :.™~AkWppSJV$lp>?'JԦ`'y8iJ\{BPKL CD4Rې9%^-\X}A{^KwdPK-|RA% ݊"Barack Obama/tests/switch-0107.txtUT %PPux dV qUrJ,JLVOJMB3K3j*SWU).HSHI,.VS0vV*I.V5"9p #y\\@PK%|RA$oBarack Obama/tests/if-1371.txtUT PPux dQ0 )}!AbL,@ɶww=zh}i- b) 䀭z|Fv &(5Am*v;漐y".R1~4?C7O)m9⹠z/O=d#&M8w sD=9DdȺO|! $]O,+PK"|RAqy^Barack Obama/tests/if-0781.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk3Ssr J,׈WW/ߏ|qqAsR(PK#|RA^{~Barack Obama/tests/if-1008.txtUT PPux d @7/ySP4hxt X- wOA0aflM1!S,p =}nh&Ph[3?].CaZՕK2Ǫ~2Cʛ~T..d&hjI Y e`δ2I0WĞx,pt+FX  Y|PK$|RAQBarack Obama/tests/if-1292.txtUT PPux dV qUrJ,JLVOJMB3ӬjK*sRmJR+Jts2rRJkk|RSR U[ vkDs G۸ FP)FPK(|RAƊBarack Obama/tests/if-1909.txtUT PPux dV qUrJ,JLVOJMB3ӬtuuurfIbIf~~fJj^IfZfjP/. *rm!. _䂘BPK!|RAX"Barack Obama/tests/switch-0035.txtUT  PPux dN0 E 5 yQh:bRfXT -_ꍏ^DDwEeZAP/uV*p87ַkN`c:oh<`E֐ҁ_z+:kH;m& 23:A71-:$@}8>9'IkBʼP?A4Q Barack Obama/tests/ifeq-0075.txtUT PPux dA @+8[!+ v?R iFɅߗQXY&ٵSկ%Be rݛ{0!W`[,W@N96y1r)s*䱁maO;k' uR/гo:@֔xpfW{]zPK$|RAr\cBarack Obama/tests/if-1261.txtUT PPux dV qUrJ,JLVOJMB3Ӭj}k|jkF:~~[1υJ4PK%|RAҸmBarack Obama/tests/if-1474.txtUT PPux dV qUrJ,JLVOJMB3Ӭj=<kԔ+̝I#3bL)!. _nₘBPK4|RA*Za Barack Obama/tests/expr-0034.txtUT 3PPux dV qUrJ,JLVOJMBS+ jkƻF:~~e 1υJ4PK3|RAķ?]dBarack Obama/tests/ns-0055.txtUT 2PPux dV qUrJ,JLVOJMB jkFF:~~[X 1υJ4PK1|RAafo Barack Obama/tests/ifeq-0204.txtUT .PPux dV qUrJ,JLVOJMB3R j jSRjRRjk6F:~~[2b h*PK3|RA* Barack Obama/tests/ifeq-0256.txtUT 2PPux dV qUrJ,JLVOJMB3R KKsr Sk r3jl K*sRmrK23J3SJ2Rs mAjjktpuqu1=w)D?*'DPK ]RABarack Obama/resources/UT RPPux dPK'|RA> PBarack Obama/resources/retrieveWikitext-Template%3AWikisource-467561121.wikitextUT PPux d1O@ P(cH#u@HK^QA%&\̎ʧ[;a~7fmY"7:+C:$2!L-F te|ZIzyY>O+g/?w!6U-bl#a[tNG_WjPK!|RARYy~IBarack Obama/resources/retrieveWikitext-Template%3AAge-388442082.wikitextUT  PPux dK)MI˩VN((Ҩ6v r tu M]!b"x@Tـ@"ܪlR@l32H$A,Z}dCv\%9% )ɵ\6YPK'|RA LBarack Obama/resources/retrieveWikitext-Template%3AListen-354784134.wikitextUT PPux dMo0 =p@ Īcgc@iڸ 4~^;{8Z]K%\I8ChTY{ Lof:Z4gpIL1 N ZSeޓeCS) k&ڦ>_W3C0D@6on!ە*[1yn /L.A#~Ol^ B O:16  .&OϷ!’w)O"-ʩ3 25Rqlo4^y7NZoHe02;I%2``yViH^xvQfdmB C6~7M.Nz;=֐ :)Z p\ᘰ;$8tE&b"HIb-%͌:Qq(ez帠ե>@IЭu0t]݂x)z )zN^ USR}EEѯRxN \^5Š!I1A1pP \jaCbXb(#'ŨA1rQ) )Nq bWS4o8] HN/QjnV@)D@[`\֜Ɏ 1Rm (hǀ$?EzX~є/(#LRf ?$?dňOrynO(wYrOk=o6qKaܔq6Blcmΰ9 vPK1|RAߜd= 'qBarack Obama/resources/retrieveWikitext-Template%3AUnited_States_presidential_election%2C_2008-478723644.wikitextUT -PPux dZ_S۸S>v )e[vf>l# )ڏp=lGN)#駣_'@ 2-C٘DH!$:E8Lp" wM1J=%댓p4~Ӆ1#ݰ7' A,F ӑf=9!tE0:ܦY!1nk|3w^xC\c$\1=G EI9SN4"s'GL )}A9#1&OŌ[S[yZ[=3ٮ%Tjb8ro/|%<İ "O^RY }>d<)[Wp41 ֖++ ? ;_ Ka.2P!Үъy=EB܃%TNV&$ج0AH7jNg|n'.XRvϰF ;q e9xw@`BJ#H,ݶQqvm|~&cko޴/kcÜsqe-pV;KVEӚ(WMaF|Hu\;f *2H+aJ1gPqomP#Zff!̤[ՎːϞ=b KZ̄RIuHzuc8cNW&!6*|[psIlF5jd1 *ȏzWWhvg(0XM}$w3Քsj1tyYթ]ԀT@N4aDEo֢@, b+n% 9af-qrN Uy9r"NGhtY>eP)ʜH7+>V*Kf]/kmf=QZ[`6iicڊ"mHkѼ2W=g!-jJֵσ.e~OFΧHZĸLHev;yq=/-dEb+ZMk VZ'  e i)^D"IX#+ΡiSkwZԹY٦J _wCw/-+<ɉ'*ow*ye|#W,Tj/0\|$mR6BAM~fݷf7«D{6ֆ ]߮".]|v߭Fڞy8>fc-/"&ò>WxcȐiB3\"!Ͻ?ѷ?@Q+d6MJkq p?RjATn'q8)+=j Gz~r?Bڍ4~ڞsuľTN.~`PF2+d)$T٘UBr"OLEZι0Z`7snF2r {`Y փ+ lpk! yz}rr),lzc+޶ @ q 63nJi&3!er T֙1LHs$ni8f 0;- dVΉMgotH7e{_]jId^%ܗM0"u1H v?BbI\a,xj*:,897W~*o;ʏG1&FP=m{hGX)qIݏ7d_P}>oc,т^h-7W;& ]WJb|fW6Xmd7)/`ԓkkXڣU{:Q0 f}ަaǣp NtçX mSPK 4|RA ^9cBarack Obama/resources/retrieveWikitext-Category%3AUse_mdy_dates_from_March_2012-479289464.wikitextUT 3PPux d{{Monthly clean-up category}}PK -|RAMJMf!!IBarack Obama/resources/retrieveWikitext-Template%3ANs0-323931230.wikitextUT %PPux d#REDIRECT [[Template:Main other]]PK |RAV2QBarack Obama/resources/retrieveWikitext-Template%3ANAMESPACEID-335983735.wikitextUT  PPux dMAj0E>ŔlkI.i YdR = .޽dBF#oߞ]Gk?N7C4`n :4L_*H2*l1R$9kt8UwgZ Ϗ>p^1:&6b鱌󸋸Xy"pŒ5Ln0aA%%,9T,IE5eTϣxՈ+Z /ZkI{4꽼Mf`Rx;4e6k-?PK/|RA)'\MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dbef-400437299.wikitextUT )PPux dmAn E9jW3ND@ZHT*zPWF9?+豇0%@{VqŸz~cT]܅%!q,  >4w J24 ;č"BxcTbbIyiYG dlZ̔|CL^S[1sߟ )RzN̼4:/PK/|RA$$*MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dend-388747631.wikitextUT )PPux dK)MINO.M+I,ϫGHPK2|RA`ܿqBarack Obama/resources/retrieveWikitext-Template%3AUnited_States_presidential_election%2C_2012-480018262.wikitextUT 0PPux dY]S<Whg/Ni  Qॅf2;LGEJ64{o>Gl'NJ>::_R0T:FTee# D29@x r3RL)ai]0-x(4)Utmי baްHhqx;\' xH=,b X ? <C'bM?R1R,Sxx< J;c @ (%?" }ىJ MqdmXi)=aJg5YZB>X cX@sD$39 '|"UVD3r@1h hJK3"0f(Dju3/h3V g"cXwc3g@%+ڤ [،?SIeV]kn{JS'\ia vB4 1G>ѤxrX6bmsiM6$lr,=pb|۵W̤iٽ[t,O9>Rs1 >j? P,d:n1oE 懐l}߷70*#􁄄_`}b;X˄kY)Pkh|i bxn߽4OҲ-϶KWנ qX&فK1kH<^cypϾ y1 bɘ#K[`s6)_*<٩yu,YDS" K,n(WBCW 5VWס! *6^C݀D ]u\T+9CXå%H],þ$t`uz</OyjEM^T,UBEg!N 2]8!DR997֠jE\|[&ΉٹR-T WaM)kEsh-E(߱Vu2MڿO(W '4l)5ixÊFZmJ"vUp?aG$qv_ia[80昶]d% .U '\V'O;׻ ,rehYY&힂7ڊϚE.숌cO>]~/E5"TI;<~_!K!شUAWJU$EMOV^BvR.]7'? ,K|1ghJҲb RI *)}e1-|gN0sVVH)Ppf7[ޖ Ƃ Kn£ItɁO Uu?up|;btTh8Ts` U7v vj/ӽtgzV.&r ".bȧTF. X( J-|ⴝ?j-s(0R w8@:$&2'6C)}hZ_kG%K5^* ]A1Ӣ ?̹s/{"xQN(}Os?oRcuLX}T]Wo{(-,$J єH8`MCe_)cmPK!|RA2VBarack Obama/resources/retrieveWikitext-Template%3AFeatured_article-449206047.wikitextUT  PPux deAk0 A ݭc+H,gRT)Xa{>=Irlțx lq٢SDWN34i;#S?p`b&;`Rء&И) (\A3 |PC֛ysp7cRDZdn^fSUSphL.WR9ar$₝ŦȢtC+%+mUX_hhG\;oP */B uky]'gy=Y^[^w7@ ohyC'ody#Yި{OH3eM jQ5 8ZaB ,lú5nCڰ> ߆ l``6l`Ca#ԹNhۗt[inIs=WsB!Zu1uǴw6pNӆIaA1a*Rl? V '~o~}/*KW2oE vDx낥**KqN |푇t}"KhBT() Vv%M M7˄S(7UsB+s<; ,^A8+*"GhYIֲöi4htp 0eYP :s5rG˄|)堎|WD&)}$E2+#bNGE nS$&{*dJ,UX2]CW)>hTD3fZbh%Ǝlڳ w\- qZZ%Tkˌ6P9mҥڅzJ% Pg+or@Dd+ e;#BG?hfӢuX݋:u ʆN9vz-y~iZlLP`U?O+CxeqY_x\$(YYFMhP|V%jR#&.V`"Jm7Ir덭.jar=q3ӼH2:[dhxEtQN هؑ ??1;lcw1bwqʴZV?Z;-C4-b8F+"?#v["c@_3"ex5 i<Ҙ2$QvE)IΌXyؼn}k_d5(92~ѿLV5|v>O/iI1[8ϤvŨt)$qyI_7.ת-(s*K6sm^`ﮤ:F!an~ V;hr2Is)#S^a|r9&'4J/U}~ ;XBKXC):|^ aMu6Ew@-@f伀22s441:'9 +v;^t[P}ۘll&Mb[Z @Dyhݒ5Y.WHNt(ڍnͬ+xEqAR3űZ2`J'Ջ{P&8 NkQ5C%,}3╾KP7JsI VJ6Z@o\Z4Z;̝h$\O&Bqϊɍ=KE4ٽSޜAܞ󂈎<@))eC]]],n&p9{!5ϟ???U=#Ybg껮X7?PK2|RA_joLLBarack Obama/resources/retrieveWikitext-Template%3ANavbox-480127588.wikitextUT 0PPux d\]o6}l/_#?EE >(EOxIɢdYR(6u"]幇8&?u:[%'zL&|-Ǣ:Ȝ nDĂEDw?%3\*j:$fsC%3ʝnGMFѴM"٧ӶIZc5ﳺѰ;i_ND(?^|zsVv&ݕςOI+CN#!n\"!̻X }w1ƮˬmzZvCNZE1^nNI,hx[w Hn /4c9CX!ڗ(.W\_|NP!70 J7TkÃd569K֕ ߴNNV1> D:볻@oBFI1Mj8R0{sblU Sn5y\njrjKi7"cc{4=qD*FCl\ˊreS'#K<=%rt3Cb/o›1xgr,KDcyG(5HSv2,BrJiARQ3c ;UJȸ{4xb0{)g4TE^ ||ulI^UlMʦV6OWb5 Wo U0 R84-8Tx`+x`+jx,xX㡭0.㡭tfa|n ϫ`|n+KV:>fq|a /p|a+V:Dh i?[)(vmr)%x&a4ۣWǥS`.`v5 TJp\ X+ BUz y*=8*U k|`*|PG胆>FJJk>#AzX#A%aRZHаֈPq`u@hXk$@D@V:2Ӱ X#:2s\2c Tɀ q|ƽz===-W{4_ZM?~~k%?:+tsY@;I>]ĺJ+;&+2[G/UH$+sY΂eKfg%An-NrIZ^t^e>O,"T6%2V2QS/[А)ߚf^PK,|RATmSBarack Obama/resources/retrieveWikitext-Template%3AHide_in_print-388689196.wikitextUT $PPux dK)MI˩6GˇrSKsSJK2jkKR*\+2 2JjcclPK)|RA) -DNBarack Obama/resources/retrieveWikitext-Template%3ACite_web-479008823.wikitextUT PPux dXYo8~"@f-Ws^$MgnQD'l%Qf]+}LgW/| tvJ,?YI^y^^F>.eezVXZF[+UGVmX#Ǿ.^`y8y先Z^ ,ox8yC"NF771-oM,ox˛yLYRhk3V7 B  lЅ lh`.l`#uacظ &vkfqzR6cGޕ;+b=سp;;`ZNZi:iL8h'miCm褍0m䠍163bTmH1EX9TlL6& X>z$P":MBlu&q|7:!fv (SܔB4M@.(C[18E3!/S41C sHeI)HiT2|$Q)ltV 6BZE/UɊʫR ғoUK+t;{噯n"DPHYR*kE*˔pBQڸ뗱 jO1Q`^nJYYuf ;jVk&ziO?zTECJL'VԹ/K%/5༂$dH!% I!4'ߚp݀#`ۋ=(g+gEUo%/Ik'CU~1wh޼?r څR]  Rs.?8y k3j72’1y'1KA|rj$+Jp#x;Qu::{SH(W{Z͎WWBkblp.7fVɸ6b1QͧТQy_A+VfQ֖L&{5PC%p2& w5Ӑ^&z1.iI2-ev3ڄQRHы}#B|yWbJy/./Rn̕yͿ֯Lm;ru1 B\M Vb6E=l_ ,e,%6\,g{UNO/XoYxهo4LfDv{8WXpE7$Zg˨IuL;OOSqjpc)sCԺX&E"ss2Ɔ\J[ZyރG R{byǚ d{e\5~(5ҩf~a[PJZ}C(8BѠ3S( X'9àI{81R/*:PK%|RAw7n S5cBarack Obama/resources/retrieveWikitext-Template%3AInfobox_officeholder%2FOffice-471470529.wikitextUT PPux dnbmqRX"$Y+7"7B8-ōQ;'M$]G*j̐>!4/f?;yo]qv+&bW]={xxA&Gv]:&kUoH]f͢rYY3}=ۛ-hk:Bevic~VzrL\=GϺY@FFxOPkƳɥGB4p]Vdmj3j|):5!dv&HA90b8{Ã0_KƔu]޿Q bpKKYC8i=wx2nUx)!e3Bdm=yV5(7V0^umׇ͋]UQS)b"g]gM&:NzI »{Up8}߲ ͚͎(r}y˿(35'ÄΏJ,U[⬐iC IXXN:wA;y ]bO47!\V6sTA#)Fskg<ۣt®W$Ô I@ZPHDhV,s Bod |%aR\}FH0H!r-]ᒷWhp㖓M%F~)^$E',+SoO$|FpX̑H!]CM` NJ(fa-5 +"$ex홃=8_iΦC؄L5Ƌ9C.(FC neb,Ti5łȺ]Z^WM,66K%jO˭wr\ȘU~Y=:h)N\zxNr=t~L(ܚ*<.,.B( K`YX_Y>m2*]&]HR~G=\uE54-S0o@]tkPEXcܞ| zCUp}+j:Uy|=9{7`$‚l4 U7z(QM4vcBqW-e P A۲>w 5T_##%p ϠcCus!]mz"XbFyN D-v'6Nbպ,y(hY}r ғmjr 跏MD0y9"GCb}|jn2GʞK:VZ4/e]uR_|:_,[1n0#o H¤&\.,_ !T(P4j$P Fɹ #:jt~COqZxcꉚ&پS#_$xK\h;(f' wV6CpYcny1!5|, N>|=JC=\L tXUkD\.N ci~>۶SI]yd̀&f3F*"oOcS{Dfk$o Ս*dDNsAI-z@8,G6:f4%5IpVƉZ4#54o9 Rͦ>#G}Mɦ8rG6}fdmrw8`I꟟Em7mBZC°wm>@&ԯ$?l%8 h ̓FWY%%\\d7S6í~ vh[krJ8vkj%lٝkE+n'|^2bxHmRiI#īQk$VBuL)%# T(Hd Ÿ_+[gh D2a!`hK`X"-!,.~Cmn$ 9zE_ _HO= L BMiwHL"+zqwo.&!6 F|/5n2u o̙{0eYwj8f;Kםg0i]lPE)wH77C7|PK/|RA+yruMBarack Obama/resources/retrieveWikitext-Template%3AS%2Doff-429827592.wikitextUT )PPux dM1 0{&I~C N K@ /Tx\K2B`']{^(WliW#5gR1Du47I5gsPK/|RAXt"(IBarack Obama/resources/retrieveWikitext-Template%3A%21-113778758.wikitextUT *PPux dK)MI.I-I,IUHOGPK -|RA^ dBarack Obama/resources/retrieveWikitext-Template%3APortal%2FImages%2FBarack_obama-473102656.wikitextUT %PPux dObama.svgPK!|RA!ngobBarack Obama/resources/retrieveWikitext-Template%3ACategory_handler%2Fblacklist-454450736.wikitextUT  PPux dRN0+^"AܫRyAHPյĎMY' [XmdQ+q^3*71PD[R}Hcp!ӅkJ͗8S f,^%4uAnڙX"9rqir$q |X>i$E5$p)VX`Ƹ3 /?x:O#6^+rlcΘL@L{@HA:\4ݟqYAch9EY1Hcw A<H@L|إՙJ_:Źu}RЦ"+9"Q8ȑ\c0r48#/'( "ָGť"#ڲ%=l푷N]M@uF}Vȡ 3f+ʣKDX$KCWIoIՠh9-876v;8J q? eŌ.Ӏ(m(PGZpdvDI2>_ʮ&Zg.ȵRrPl )^>M qPJr}[EM/J6ی tz-s=~ltxQ'2m .|ISҨɣнM*蘪k!X8yT9@Q.E(u;~LVp'i+K4Y^S1PMDww.rS!KPJ18XKZ+2V,"10@ϨJOaҦ6wٸ\ý \[Bw}9 I4aOa}'itHkQ}gpg.4~O@c ̓1 CE5*hIkNpJwլ~6/enm_!SmFHij/$~sQٰh{gXHrc Xs˙թ@i-D⾟30<@6`/ρe#[;Ĭ=jo\AV\V+ 0W2üDJ^z}ϲ"aMƕIyʞŬ{mz[JCӠ],E.kЊgT޳T-f! 4+NSofn~1W G&, mřkT󜝝o o#N4,t.cfI_̤ .󟐠*TՄ&gm׹MEVo IX}*Cw07iz@bw;}B;9rN }1b*84p̔K(cPm6T߲^( cHD,de7$8qs'{  d Ʉ<Ƣ*=GxQg ΖEb6t¨ UeLϼ;3{G*"0^ۆ?r܀]/R},"ѹ r ȜnaՒzK֎92+B#;G7'gG< dqt԰?M`3MG{Ca}z& n@[C/]CWV8/NP0Ϧ;=g^*;Rs[hLoxCcD/ɸbba<x|gr'ǥg/ve>^]]_8eGk=*fL g%T9RP3l3n*D/1gqUh(۷\\ZpwwXx-Ά!A\.'9KxA/xے"B E3nĐ6WZ͆♄/xČѧa&OSR+䦌oIdˑQwwT q,?4#=92[Iܞ)\lU^Wԡ9?D4ڽfQcÃ+AJ^Fx|<3J4Y,')+mE㭤Y{SZ Τ׭9BBɄ[u%61WyYe^cE4X# v^mS_>culG@|p WtvHhVrSy ;iXSqafT爎 {1KLG*yLE`f ڽg2 &r%qBgo4F'!x+t} YkfɑkV74%R,v74a `c*UHDS\WKETq׋/v)mUUr$ǘsF*Bo&hAIhn8 *w`h5rXxY!JS2U7_s# lq"Y -j*ԌX{Mg"p.Lij+n2 {ޏuSK}A﹟.5R\P )Ŕ51Mq7wzVPK%|RA&.c_ZBarack Obama/resources/retrieveWikitext-Template%3ABr_separated_entries-393533492.wikitextUT PPux d6ĴҤ+rfU5TT1XMR]-DFLb"X&/?3/94%Վ:%?475$$3?F! PK-|RAg] KBarack Obama/resources/retrieveWikitext-Template%3ASpace-455998035.wikitextUT &PPux dV 0k]XT`P8Qo@vH锯L-dJ)YynBRIPz'Mmg ?hԶ2wd+0h<4DA}v G8pmac=.&n`@!30P ;A.(v $=& I[T+"q^%Œ2)r͇=XoPK3|RAwႪWLBarack Obama/resources/retrieveWikitext-Template%3ANavbar-478598159.wikitextUT 2PPux dMO0 q H8ێꌫx@J[ZVMS\ׅ2_FZZ;Ѭ+@k-5ʊKe3h'mۖ9:o8 KZC>-f( ({5|Z.8Uڪgv-qSTEĎ#k.27H; Cꅺ%X13/ {Es8J+EvmUjUXR.Tyaփzokxo5I+뎜B˱R%ϋT(6U?;j:ߔ̧4ְ}>z5=LnO~O&8G_`o`΃|F@_ўFֺ':pGJod*cǛ=j^ژ=h~ husAoPK-|RATaSBarack Obama/resources/retrieveWikitext-Template%3APortal%2Fcore-453518805.wikitextUT %PPux dOn@ V"SJJ(J:tC àS !2ueْ7|8Vm:;FA(-~ck ۞4<9֔|!bj܋!1X qdڧcҏkN]Ydq몲]` MVdqLۣ4>:2n8A&}e9sd Y&*?PK.|RAa[MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dpar-434439806.wikitextUT (PPux dmQj0 s 5}Kh =ö8%KXL _y3LO)b$R'UX.ERb ogakQ )mKc`&%!7)R\/b~͌u~J۬U.͟Є;F Q֡33pF-Q94*ΠdF_(gk2ho| BW._ @PK%|RA}gexLBarack Obama/resources/retrieveWikitext-Template%3ANowrap-462345338.wikitextUT PPux dE1 0 @ݧp]]-h*!N?(h.Wc)sηC,u?0gz~IVqJePÖ+ڴ3Y47?R PK-|RA&x)VBarack Obama/resources/retrieveWikitext-Template%3ASpoken_Wikipedia-354552244.wikitextUT %PPux dUQ0WLCڃqv{sCXPhz0fQI<" Iid{Gޛt~MPF#t$DR6+ 'iAF9Y(xӸ"^c-4L  ?eupBbk Wk5-ĉ-ǧav″Ɯr6tsFqC cIZ3?:/ƱkwY>͹g]\I# IDԷ7,CwsfH$,=7qfC/=9/R2a=#7Ӷ 'ga˙g%|\\wu B)(0 DAXN7̅R3u5dPK |RAK nRBarack Obama/resources/retrieveWikitext-Template%3ATmbox%2Fcore-388762227.wikitextUT  PPux dUMO@W A$NƎVH*UQ&Ya IJ;kv R9̛!l HRfLd(fkSqG d+| >3t.4Ut.S Π%c܋e^#L#  hxc Uk}a{37iis ^4?8do(ihoT?uFA4a K{ uTayrhAb2-_e.d@u]U,P3~CU}\F9)cr *Iw\GHN]2j*уlo9'(qEHj;jb|)*ǜ/I3&vQPK4|RA 5:JBarack Obama/resources/retrieveWikitext-Template%3ADMCA-296800547.wikitextUT 3PPux du= 0 = Btza`8}Ő@`)"iTZ=S9KpD[Sac!Rc0UL sܰT,?Re1/!@d^.g/PK,|RA[Barack Obama/resources/retrieveWikitext-Template%3ACitation%2Fidentifier-480540829.wikitextUT $PPux dWO8~.{ ٽ{Rt]W"ݢ8ƐvBK*]%27xRz K:eY15NwHEO~-$W\2TTGubL}'ا"/ #ek#6Ngúٝ>+XF8RPQ}F Gy>P_4'G3h9j\F Ī!nW jMUMeһkYKsqkm3ubZW}:]^uK] f Xm쐇LbR~2BFz Uҭ] L 9H&bfp")Ħ>V*=iRW>憦D7 Y6 _{WeDxϏ߂7XBw>qT :Mudq,:%AE:hr7a.觇ʲP)3EF.JIGSAXJ~tƏWȹE}8΋mmtlT^)A":lm}a@ ׻1e~"e/lLhڱ,gu_Om˞mqC*ȗWD4 Ӟ&mAlb{g};MTX"r*,Q $ahap_9{7 g#\ɨ`!<~#7ީGno5csQhڨ.kEa9P圂1?2R0h=qz;S;%xԦŠu] '#n YI-:MWl5}a W9c-{bA [ 2e>3D񣟕D(,~9IXBljh eqje828"ZVj5 Q6IX%n$W%H5Oij5´tSPBHyMPK4|RAIpP F`Barack Obama/resources/retrieveWikitext-Template%3ADated_maintenance_category-395262236.wikitextUT 3PPux dPMO0 WqDTe 8L;DmR (I;NֵUgbO>BorZX@<\C^d\ˡ*dB*%@L=0B{ }Ec}Z3G}a.=ӭ"y0Ɉ\HK35U~n̑Cu f6AvmUǔہTQ_d;=ǾP1<Ô,/y Jj3qksq.z 5W+ju (ltu*}BqRatPK%|RAr 'OBarack Obama/resources/retrieveWikitext-Template%3AH%3Atitle-338632557.wikitextUT PPux d 0 }CQxPAYMFyl|1^_m;zH:pS.Gmر{&ijh3+8GǰZ\cF6t@. 7G-UO@"JPK |RAjvgBarack Obama/resources/retrieveWikitext-Template%3AEditnotices%2FPage%2FBarack_Obama-371580817.wikitextUT  PPux dm?O@|DqP\DDs (P=ƣwq|{kDDn,ϟ{oWգV%e5WY^9yy裵rjZbHjq UuCTL}JjV3q4hAC7%q̱*<} RZ ZJ;8lלҿgM\6:d ƒ Hsd^pр4D{IalCBj5H5:rI>R+)TSX:jOV|Н'\NWKK%l{ 6I>Ig;:x)6Pc>3a4aqSJ e'#5CӞS`/PK%|RA_Barack Obama/resources/retrieveWikitext-Template%3AIPAc%2Den%2Fpronunciation-461500127.wikitextUT PPux duAk0 =kPVFaTzSȌkBv~}2CXtZ6.AS%гc#SWXuaΟ&;[lZ'xd\+{5Y7,Gעʩq$TPpS7~-y'ߝ[F`߽ސ-{kpQg.Me@0dH,$Y_ir PK |RA)lLYBarack Obama/resources/retrieveWikitext-Template%3AEditnotice_pagename-411560407.wikitextUT  PPux dmN0 } OR­*:(iJoVh\qP aŒj;}R] ۧn)eCxc~|WPvƒd5f17xTH2#~}rpӢHj$Mg( Ec5%18}a][~q80d $9\tI(D'wVO҇ f쳸RrhH]!-#,B%iC{N莢na^%H 8txo=?b!DQ˷4D s|I?MB'>@ ;1Uq꤅sC?VWBӔ40CFN! $ Ey1uInB(h o*z4[n8*9p@DD:xLgu*ǫH ?;~(RO/eAId+K~޽$;}$¤ЮJPB詥)iҾ$W4t)=ӉS̗SkYVQTKzkH62H}# !N)ECL=/BC#fjlci ^oFWyX9Ll+ؐ$,+xwGl:;>ߕ{rs4&z[zNӭ&\J]W.>QոAa4tgln,y6=+5rS9-š74yyY McEȿKb]\F߂-@P`lQ @$#Z -%~&;E -sMc4l4{/5u782 O Kp ->vj.Dз[ (T,hVeHD2TA觥>l`ڱ!e*U}[Vхj:A1VGz(aSHqZsw[ ~ |!VK\jA ?05E`(-̪8҂{ *Ow >PQǎ2v C5!{dݠcis3HX`:k|lJ'r*'FDJMF@jWrI^PFP$Yj9>}r{Ie %)**ńHʝ^U3:*"hT=IUHEt,>yi^]X"{9:& IX-S@BaC:{?!4xV-EfZVGg6'jyʊh4`0$pfbO%irŝI!6R<\W$F vڲ9DЉ.]+m.-M {lGXGτH^Փ]#:O ! 9ruq5\<9rGfr|{%U+#}?qNhp2M銤4:+TVDbR :ųիS;77'o-]%`{_ӷXP˸{Wȸ q0$Z4-475M%'Rop6JZJ(% A ;;D$`e8 q0 ťu`0Jh*STYtTRpfJ窕4JXi,>'g'vP9Dn 8 :\C(Ր\icBHC'Iq,εS d,uMD%"{2~$|DDbFp,3R P(T9F3_Rq0Ms?qP33y)ȿt HQR'sA\IǏ'd'p{taiB=<1)}5k81A8N>}ZBO6t)v<^H *b2M<Ǚ3b'41}b@c6Po|ٮ 823#؛ "ꁕPJpz#/2"*_Ągv#d M*{KWFĿipx< 葆Ǒd=DSLݺ-/mt6M2̰ZOLi # kx"I; 6 b 0c}CHqB} Q>uq6uj LK3ՄE( NEhvySr MG"y5zZiRЅH{.^u0# k8[cp.?T#8tKƶ%=%-Cf(?|)N8ˆ:Z7Z\2WaB/MPK,|RAoFZBarack Obama/resources/retrieveWikitext-Template%3ACitation%2Fmake_link-406462373.wikitextUT #PPux dmAk@WK% =VwKuGt` o73+_>>O>B4mPGG]D!P:Bϐ Z&dYˣ)^mg5 8UPغ&F{9dw4M6)^8+p[a) arۙϩƇ"AñJ TKBr~ͮ]Y*}CXR!k] P71]8Å:a=}Rk꿙kTdF9_S*0(d7c6PK -|RA__]Barack Obama/resources/retrieveWikitext-Template%3AS%2Dpar%2Fus%2Dil%2Dsen-473271649.wikitextUT &PPux d[[Illinois Senate]]PK-|RA.JBarack Obama/resources/retrieveWikitext-Template%3ADmoz-440606185.wikitextUT &PPux d10w~Evu#!8Cj%5Dɛ.i(nqK@[CcyA"ms]_sVUFX&  VU z)ht+{8B#}7<}^iDo8eZ(oPK!|RAQUHBarack Obama/resources/retrieveWikitext-Template%3APx-410486713.wikitextUT  PPux d 0D-^ z+f5)I$6"Sy;ź*Ƹ]Ec AX$)hSy8X!X܀,64w%mRI`y/t;Q9V9cpZFH vV{MT`Ӝӳ>ҽT3`2%. )P% &kw))^Lj*2vH /GM{K/%T-0Қz zCsƓGX,y̅6.P`rЏ@BA<^7 ߟ_u\ CXs^.h}Gw?[`c&RFƿJnpFۓuCb-6\,wkK:懠 ˛kŢfyn&]?Eyi[T09w$=g|C f Us\)(QkHGchXtH "JcM )*'w"i}qp19}Lnd3C8Z,i|6%3B1^`o&lU;_HR̰YmV\t XTHTV(R.E>8Mocw<8c]8E$tHxW #{'| ?8Hx7 o#YY$&Lz`̷V=(5\cW`Sq@X||UY(ͣ2<3(x2qS%qnT')UOTN?止Tb Nlh^2|a$mv`$:e20)՘t"22 ( )(PʝG@Ԓc"K/m{'I^Q]*6\)0|@BP5e'o~SPK%|RA7S OBarack Obama/resources/retrieveWikitext-Template%3AIPAc%2Den-461500297.wikitextUT PPux dn@;OYa>Z5Rzq p.k7Q"O5Dt,ẶV/?&}m6M*MnZ/x-OYa>ZkFo3c7' QjZKBʸRbb6q+3=&yo7qmG7yFSޚ8*Tat"%rn tgy9~a ^Fa3eM6Kkh}KSfڧyYtjspH}\U:#rZd~>W ٘BFac}̸4w~ߟ=rfzhϨǯ175{8j.LJC?t+ҮW_KpJ.9j'G\po9|@caIvD{~%42/F{ %z"%*ӛPR;BeXh [L _HMl 0@AYný6x.sPK-|RA<]Barack Obama/resources/retrieveWikitext-Template%3ASec_link%2Frelative_url-467220040.wikitextUT %PPux dT0 PyeW"EuĦ)ct$:LeL΍HTeTil\n׀'2S=6âL!WnV`KTNy2Y Urh)~?< 2SUFhV虍pbcqFst7F{mMp9q'BsztlDVsє Nz o~6@Q> вk>ȩ6UI9T%A(#yR> M-C ሥiL"40ϰ^̥zܦ^V){ҁ"E/Tth/|,Ԭ)rhQa|Vw7?&95/y;mIFKt4YSm) 竔qC&h pSk,n5>)PK4|RAמNBarack Obama/resources/retrieveWikitext-Template%3AParmPart-476676324.wikitextUT 3PPux dN05wR_!S 4غo/YPK-|RAZ2 ZBarack Obama/resources/retrieveWikitext-Template%3ASister_project_links-466453459.wikitextUT %PPux d]o0+"W,j^,M"U[;MڪM*ԋ!&>9 %Z{ 34TP. M6NYvgl92)KAsAV;yhl AL O xLN($b`% jx2{~uNwd#LND\ ] mL@LĤaG,2& (Fh+C>J\ҶxvU^D@|SsjF5T/m_\OC/$q$ˎ `N۱jC;۳yn/ƈE OYjoSq*~P5-sŒmMlS*X9oqٌK_!P Ԃ )H*P$_ I|vRf9;ؕ~v|퐕 և,[ jmm]u"۹~(a"Va&yd+J-;q^tr74Y\am,k]v #daS4y994ޖfZEE?\z#Fj~lo^>WW_Px LXs؁7ۏ!/s% ΎQ W, ܢx~˓RC $CIzaWpk2ֽBK^_דuz=}zr\'{r-֯-+7٪=ɮ{L閔MO1V'"fS@0zr܆PK |RA@iPBarack Obama/resources/retrieveWikitext-Template%3AEditnotice-475628278.wikitextUT  PPux dSn@}WL ّ0U*RD.ʎ`nqw|E{ʼnۇ̙s8R^R~oշdZ'}R,"&@I9sw(jjNK){R/}@}/-OW7|?#sYYuD~/@g'Na ɜ/S@b[A@[cN{BAk=%;;MSYJ ws;++csg.sRp|m&Mt~4LҎ8c #3Xj}{SM7`eZ1158.8|+,/0ԧm3I5>#uiKl:Ov.WOꆞ-Mߢ"lB~L_uKXGL/븊}NGќX_ر 5nFv[G"G.bU~,g ƣPK-|RAV UBarack Obama/resources/retrieveWikitext-Template%3ASec_link%2Ftext-388748413.wikitextUT %PPux deN0D*qj~@r6kprĖqyvg~kwB5 Ea;$BL+6ft ȲH&ŕnBg|p@7R5_Wq^(2])-^E7'9*H %wlt0fs$s,i˳wG٤ eYCUyN8mx8*)uj XA#5wL*W1ldiث/.PK4|RA_QPGOMBarack Obama/resources/retrieveWikitext-Template%3ALink_GA-388697768.wikitextUT 3PPux d).HSLU+I-*ԭ6MOT)K)MINO.M+I,ϫGHPK(|RAwkOBarack Obama/resources/retrieveWikitext-Template%3ACite_news-475381670.wikitextUT PPux dXmo6_@?wIN IY( Y6r2yȳ PywsǗvʨd<sA!U!qIy' *lLɕZ ZQF E9,5XmeUHw읡I=9>pEi{/m b;N .u=*о0\l/JѓOⓦ %L*֋[1JoA=L,pg]aȑ=±E'ZgK~(&4` =ꎕ)=suoH( H)h`9<"xث7vޥv\܉(um^͈D|t-F'>W`w{hEpl\oR:[V&Ƭޓch m _79;Vio[?\;o܌l|^ q]c%99'/⾭]H%do*S$-pBfp2ĸOt(WDQ/PK |RAm~/YNBarack Obama/resources/retrieveWikitext-Template%3APagetype-388146757.wikitextUT  PPux dRj }Wײnvֲgcn;W35M;`Bsܫ֎7}bK Dn`FהE;l:{>r>\]ɆSb| QK5-so6pQ*L"%WcJHdh#̐p& nn5(bZ#? D} %$EO 塧< 쎋~ZP+ĴHx/`-2)]O+Q*yIX5A/bljq]1H٠uc2h_wM#k ɚ*jnN7PK,|RAFFOSBarack Obama/resources/retrieveWikitext-Template%3AOnly_in_print-306661840.wikitextUT $PPux dVLLIUS((+16̼ҔT;ԼĒZ.}4PK-|RAWve\Barack Obama/resources/retrieveWikitext-Template%3ACase_preserving_encode-425906243.wikitextUT %PPux dVLK-6IN,*.r89Z$U*TWU[kSjU]풟\WXTePPK&|RAߪtIBarack Obama/resources/retrieveWikitext-Template%3AIPA-177913359.wikitextUT PPux dE1 0 EBxj1dzؠ&V&'-?ϷirO;5EE _",wB5!f _p[ 26 \0Gݏd|lk>OPK/|RASBP* MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dttl-400886355.wikitextUT )PPux dr0Fy ;EjXwnE,,@Scgd޽2>wչ|cTb,AzgX?5+䦜(P|Nԅ0iY_Le\ Z+'gŦ˴eEP/Dmt+MBӶ y|,3胹ʗ!R(VQd} 0%6؃[֏fg=kYߺoߢ+;Lic&|w1SM8M)Ħa paS0ENS4f)vb)3%ؔ8LӔMYQZ5~ *rv%݌v@ST! q~k}fhj l,Xhc!"X =hfs4C  0A ByP""! PB BP2$Q2$Q2}$(((]2}T>gM?Y(V עt<=qݶwߏt:j)8du]wc L\u1SO @wrpmn{XU+#ˮ?Uo #gdqvhO&xYCN318/ K;ƲTV\nZ /~PK'|RA͟gMBarack Obama/resources/retrieveWikitext-Template%3ARellink-387212324.wikitextUT PPux d]K 0CBVjRl8wݘUK&ƱY{i`f8jKQ8pF]u5%Q]>yd@W.mJ&a <}PK/|RA#CMBarack Obama/resources/retrieveWikitext-Template%3AS%2Daft-400496350.wikitextUT )PPux dmM `ԕZ(UShCΊyGf2\wBZ{%fb*̥Ũ3B)%ѹ\J!~R%EZVƯ{.WDSa BFs_.njo,`O_0Oy݋MoLkMF3Y\g wf^Y{PK'|RAoIVSBarack Obama/resources/retrieveWikitext-Template%3AListen%2Fcore-463076521.wikitextUT PPux duj0KEzʪ SB`$5V1{'nJْdf'%6:vᠣ|O&)0A41#mQQ^URybY'C~>OȺK|}6>hG &0J{_U$6#32c/y5ޯ.l=q6u`?T-/\h%ok~*^YIh`;0'Z=LRX#7n"7"+s;/e=oPK/|RAw MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dinc-388145750.wikitextUT )PPux dmMN0 =eC)#vb &i4JRUw<\[izΚ{=ZŶ__sF_lK} RJs=iǔ|"vI2 :vAD2e==R1Zgzd{BUAY&V{B槕Y)?3ӢreMS3/;i:-G1^QXuh)ޔ)"^@Xz:@t[F!M'.3ErPK*|RATBarack Obama/resources/retrieveWikitext-Template%3AColumn%2Dwidth-433980078.wikitextUT  PPux d} 0E|sQMC!ІB*mYۀ&YR8Ը~'~ ᶇhR:z7o:BVpdM+xL YԢՀ8dJ(x,U1YwaڅK0ޥDh-PK!|RAeRN^QBarack Obama/resources/retrieveWikitext-Template%3AMONTHNUMBER-388698933.wikitextUT  PPux dRR0}+2X!(ަa_mMjL鿛M}{9{f7M|FWu]Ǯؾne++}K # _R +KRXToꎯb' jGE/|{[lŌ?n3قm>b8((r$9Txb:'l&IZ'ITr5íu$ ~vX?EXbFLj]9Gaȴ9Q=kN8et蛍pXP:4ުwՂ3Jyn$~ӈ/A%ZCGoPK!|RA я)aBarack Obama/resources/retrieveWikitext-Template%3ACategory_handler%2Fnumbered-453215508.wikitextUT  PPux deAj@ Esd٘m0^wPOdfGXl t6~y❵|k¹,9hf'=YR<\4HpF ^a/ R)kEg,{5WFuZ,/j1ȋ *\ͿPנ.d*юA;z6ڭD=zvmԯDN6h N6ڳ~%3htѾ[jߨ}VKDM$joz L*l#^etS# HA/Qo;l`AvX|yclPyò&Q|XZ4:HR@6;OPK |RA˶gUBarack Obama/resources/retrieveWikitext-Template%3APp%2Dsemi%2Dblp-388325210.wikitextUT  PPux dRMO0 WD4N$m'7imI%F6>$BO˳kueh[c& <ςo fBǥ5LA3\@Ѷ9 ]ץZ"jCj]5Tɩ( =/%w~K<0AHZ;߳?@|-x@clr̻sc]:37$Q4tJRP$,i MPcƨX˔h#B.Yhng7K S"41ʐeSNXֱe|]uf6cwu]>a.CRh2⨯|kO"[[UI IG(^|PK-|RA•ybBarack Obama/resources/retrieveWikitext-Template%3ASpoken_Wikipedia_boilerplate-464197403.wikitextUT %PPux dRn0+-P9u9"AF\I)R%)./() %gvvfA9q\&d2shH&/q%5f; R>s:!:q&K`{!e(juxI(I5n s1mM M=k]42 R!1HR L3)@V`d;"D.͍X]%@ae@vDP5itű4{zLȁ7ʬл:. ύOm?'?4;DeQ{el&%"20MHT4j2乵ۻQZ61k A?U]r.ϯðjNTEſ^ KujpS4(',k<ע!f&2yP32FkyRg1C>;MǃqL\m>uSCd=ŨʲoAĄcx.PK/|RAbs !RBarack Obama/resources/retrieveWikitext-Template%3ABarack_Obama-473272355.wikitextUT )PPux dYKoWr`-d|z/pzwzw[tϐ^s%| !an5$_u gv+K0@3UU_=‟ K`s R$E{ل'rqqH5 @hNfC<"xpr) M!zYZ@Aڋ8 `3qy}DA&΄A=+uJU?ʈve(JXp0=zU<:̡Y66:I=9RBȡŢWKf ,,afRa+4 ҲPt0a" )R"eXj56Z[8äX__/%/rxH !OmpS~d"֣[nIŊݜ{kw-~k6R Q糌-&|_ES.Y@pLpY[4|q"<.B8g3 xp5i(^#:RGsofDTc\S6<bM׸Yr0HHQQuwXAo8) DQhEEG"#]pܮ9[%˷({Gx?:v?x;Ļx7rSD6}cc-`Z7߳4,G1܈^ A֩#ȀP/mpݙ` ]<"c(QʖG쬯O괹&LjDaDXO ֠܄р*ZbViJ2,h\Q[= OWt+.R:gp)۷:F!sh5ݏ{M=*C6\c6Ļ%}x++Y62:bS XYOTi2qDǢ|8b)Wبտ:B{3b!TX(^I;SQ */e{&G#2 DZR+:+RV(2ۙk W(p6#.~Qx[v_mll</I&/.@GX WfsHWl%+&Ѕ k,qTʹϦbOĉV' 8mU *r]dOk]W_uo@r*4I:;zHW,.+=y?fyٰJ)! ŘL8eJT'>FН5%*e/F®KԷ Z<va\Qr306|B=Ȉ)Zm,n՘Ce h絉Hh Ș36XnPo/^mjUȐ :7t/ecr#rnQ΃HXsdͩ0 Y3L qs.$Cq,b87ރRœtg4$ Űs0bf;pk'GdB5&./Cb By"B^bؒI|,%FJ@Y2S& Nʞ`B GEG'kVyyg&snW&t搵9ȧuky9ЖKiF*Ҙ4np'iD'K=!\p0Gg2y[4.*ˎiJt3ӣyMrv:<=?/Wӏd̻rV#VK7tMW^~Uqr+jCc0ӥvn*V&cŘe9P`MQq5Ks.E)CChZ4F =\xޏAR6@rS."0JD(?[P:S`][OF4y,G~˅)wKJzx(jNy|)|͟;]@ʀpvf\&vV{KL sC_{7$(z.D'|P:Edtro/.vn~w;<>ݩke\V"؃no$|8gyjv|C77ݷ~_/g߽#k'Eݓ\n=a1NP?~$&^}ꇫ_ݫ?]7vg|}s7|pPK%|RAPiZBarack Obama/resources/retrieveWikitext-Template%3ABarack_Obama_sidebar-468832193.wikitextUT PPux dT]o0}WeN &x`+^6OǹWǎJ% hZ_s?=,P3qfr~.E^@ƒDy7<9lZvC y8aUyboF/U}y>]+8m&\uS$%0[d$$vPטic =t=ùXkqR۾c֋+[, hPC Q@njΠg G#0zHULd3sMS_-&1ڪ~TR6xb0& S(vZoHKf!0uh|6p+ )i%i+T!$(a1+KWps䱖d:Vy,=^Rp)> \=ZF,$~uӣ,\$ %3k.m-Da2F(Kβ.~z6ΤG6 4Fކ*/ {]KjCUth@T[([M.|-R$ dxM-(<^Nx:3O<yrTO@ [{-xAQOt`'r߰~*5=w2A>|R6#=99{*P w#PK |RA@ɠh^@KBarack Obama/resources/retrieveWikitext-Template%3AFmbox-388140456.wikitextUT  PPux dTKo@+&ՏrdQUJJmՃÚU`{gqJ倘y|7VlRU[k%m%ɚ-ĩ0&P:U6^8d{,J .:Dέtxvѹ9f6!H܊*0E{;F]G X/圑2Ν5:׌u&;j0r(D`V*E~L܆hU E]Eu(/DZ乿;!lDj`aeD{Ex1=.2qev.sтMoe ďh1 PKN#Lx6(D)2 /}ig [SPDjrtQ |^\^4ǜPr>Y1j"eLTƑY8 ~87I% ԁFՃˣ[xF 즮3IJyOmקSۮN<\:ΕJ"o*# SVç8T ,(L)5„7K87 PK4|RA=CWBarack Obama/resources/retrieveWikitext-Template%3AAuthority_control-473270543.wikitextUT 3PPux dUj0Sh)[vۍ]iMҖ˜![#HAVۯ؋ȱc;K1H98h s zEk a"rO(P )(lp8\RZ+huZG%aK$jFULL-Vё].D*(B+}]$l&Ir7YxFRsq%t"A78W09X冻Z@aFrRDƱ X4\Rc]P\v$|:=MY9@9kfi~IOr2_/S&/nw Q_hL U-a&hvKǶTQ.8E֢p=_ݿpht4c`ls ^RtF5B<` 'WL 8z:}N3Vi6Z+.PpqJ#ӫiY\= 1"Mٜ-}5$FRGOy"> 9ъ » ,j gYeT@@~ThĀe0Gc?/JmY`vEFY0*mlًV+{et Ӏk+u%.f[3gbpx:mG(g/$IO xt S)PK |RA*mn PBarack Obama/resources/retrieveWikitext-Template%3ATalk_other-388689000.wikitextUT  PPux dMQN0+함c*EU0!vT!:.PɇgV)r+/ӥw{2pݦo넕F݌Ƙ2BgFmQXV/R<49kKMfϺhŸM}.bO\Yߎ]Q_}rKbhE{4r{[֕DDC(1~p!@ & |i3V` ( >N,]ngƳ SiieRԹb0c8vkS )HUO%}TJAẌ́p. <#T)hF N: K@݈a5|ylLA7:bA'v3$RNQ['0 zȻ `OxqhPK!|RAiuXBarack Obama/resources/retrieveWikitext-Template%3ABirth_date_and_age-479816119.wikitextUT  PPux dQN!)61hVm$=xi=lKB?Bwwgkof23*VFhP!Ne[!bӆcgf܇sEWzZ&jT2J@J̋FZ@(db{ t p{7 Z,v5dЦȣj؉~Tly@$y`Oket\_D z٤xณb~PK!|RAp/OZBarack Obama/resources/retrieveWikitext-Template%3AInfobox_officeholder-466519179.wikitextUT  PPux d[H+=}uml5|_vy姓zgpWղi?vWo|rnw?'gOPviM}|w DnWrKd^7~ܗٟ}Mm-/Clt3m=q4coA "=vO'B2Q .ɠiPF%Jʠz |(X@iFݠج= R$}IDE_!l ?)g!LIS@>" kEE ,mEGM' \tJTDiӀ >Mɝ)8ro1(s =P-E#@"ECgX*ŪQyR@*|Q"IɳZƤ J~/~ǯ ~ǯ ~+B3P!-e."wg#3s7Ayon&: Mt ͛0xt7QMyM&6o͠gpDd}#Yy4͛DyT777oʁ|7y=͛ռ7SGZQ~/ɖ+dDW,>D ? u} xG7Axt͛ބ͛H&Dy7xhQ z7y73śMy-d."cMGx9" ś{Xf KśX 4oRW7/ʛ&yVx|ͧC۴6Aimn&: ݦMt Eg&zsi"&FiT6af3b"mҴ MT GH6@>TIMj M)M# iS慠<9W:4M,]&*6n&:I" EkDE&mDG6'J\ITEDfӴ >Mɝ)8mrOo&sm =BM-Dݣ@"6CgX*ĪMiR)|Q6ɳZF@oݦMt M0ht6a&6màM-D=6ћKombo6Aim=NM;\6AӴJ6Ah|iM9U&i6b&z hSH+8J)%)} h<9gOB]4M,]&*6n&:Imrg63N&[\DƺAB&sDht6Qh3<ȥ6*hiڤm _6ǧMgmn&: ݦMt M0ht6a&mAͥ67Jڴ6A'&Q .MiD%Jz ^Ѧ*iӴ ^MAi={m_mb_!m|/(OC'λ6}Dh46A״M۴mO6.i6͠i|6Ai;Sɝq6ߢM"2 z6#B[G၀E.mΰTUAPO&uhS=>mg6?m~pht6a&6màMmDA۴6Ah Do.m~QզMt j06Y_zVpiM&*QգMM6@>TIMj M)M#hh iSAyr"?yui#BY MTmBݦMt$hxuIDUI(m=MӴ OܙM&m2nЦ#ݢM= ,ri3tM ڄz6+EMi|:TS7F[$yf ųr)SӇ4|*EѬYH )4i^xDžyEBn>fF@fdfd)1nNYYI2̌L7.,/sr`&ǑLff&B3̧fF3L3:(;39)>3#?3;sr'ehJ'EӉ|RQ,M3L3#M3+Nt5nfvf"T U V3+W8X33Yӌt535tM7^3?_l%lʈM#c L̎,ڜI6zhHzњhH\K59\If莓,lNMуF5b\Q(İSF r6IN܌4)rMʤ2rKU&^i\ٛKK\M4DJD!A9't '5z9ĉRgq Ai$W+3#W/3\re'Wɺ Zɜ(8䚛)qr-Mq!B>ՋDC\N4$ՋDC\N4$ՋDI%AM$3t \:OuA#䚊D1BN]r}blT#ZɝBp$R\wFpRcNMԍ%*34AO}%j%F^'"jey ל4Ojk:ϓʚ\DObpD)\S= \O`\lOn .|O瓫Hd݄\OrM8|縐\#ԋDC\O4$ՋDC\O4$ՋDI%M$3t \?OfA#䚊D1BP]r}bU#Z)Bp%R\$FfRcNMՍ%*s84ADP}%j%F^*("j傢 לdPjk:ʚ\tPbpE)\B ҌP`\Pn .P瓫H e݄\PrM 8f縐\!5ϧ^_ͶY_,eWfw; X֏6,N Gj[Vs @f|4Դ73VFW(`nw_WcFf̈,Q Gϛ]6w#X|+T F {c7D kx l?.bSUxG\aUVUs\ p uUWM[@]ݮ76az^/847xdX-szpuqσ}N}A辠$KtCj>a{X}ְMe7'}]mwIޗn{ҽo:~'=TKcj]ȎCZmg5 7/E'E&&Gn#QM<jx'*E-6RO$z׮CZ~3?:/ܴ`)Y K__<:=5fz+mwlOgY ^ LNoGwqn֛ w*=VG8;'ݷ?o7U7Ү_OifP;uPK4|RA%륜VBarack Obama/resources/retrieveWikitext-Template%3AFULLROOTPAGENAME-476439833.wikitextUT 3PPux d 0 } ^L/SԭlNiݴn(B/#tPw?'w Q 8Kunn"q:VF}!9\R3g⇗tVuUR翘\{U[SgB vw r^PK4|RA;C*UBarack Obama/resources/retrieveWikitext-Template%3ANs_has_subpages-359825133.wikitextUT 3PPux d}A 0}N6TM+1u&`L+$ A kW<(x̛E91m:uʩi^2 96KXaKހE}'.EpYs<:% {AdI/pQGn<_PK'|RAB S uNBarack Obama/resources/retrieveWikitext-Template%3ASee_also-443612426.wikitextUT PPux d}ߎ0{L6w1Z >R Lw_,EE|p~W"C)(+x,֨E$4":-2?3UUP?{P,*J~opz_2|L#`2vuJ`K2ztyV7CQj ǿ,bb-'u? xy$UY.bx}=oty.=|YES667{`u}%`{fG6a /\߇}3ۧa /]/ ې]x傗}xif/i؆4k+3{E6u޸u^k! o0M_ޘZ!-[f.͈5E46ك?wTI"6yN2hkelHëz^^b俎)e%i,(R%/:Ekn6DșQB_a`F+&Vo@19Rrρ=] q&A_o1+@Zd.R e.7t؍e 2ۄ(&CĽO+;: qVE< !/̿*RHSTK[ xcxxtle"0T;P\>Z7 Dޖ0>BT4Nŗ.N@=4agc6RG֋cͦ}Ƴ7[[];~E>P "=kJVC6W+'pP9;mlբ4;[Ƀ@yt.[Te hW\ jڍ)O?+h°MSdT~ ?Noࣚn,)/ KK(qjpxS z %Tf)T-Twt^YQ}Mܖr~Q{ (X/plIݒv KuRIܗL'۶-^n:Gl{^.5{|?SH:MV~ JX3b :7MZaE0A;,^9]W*;%賨;[a;eXڞ1À;"B+rqaJ!3GQ'+M<ܣiC3V#8nP o:&E u*] EPzLJNqJJʧnv]]:n5V]lGE;d$b2>9N=u6͞n*$#3ioMk\$5=>A4xpz<0 xnxԱanaO`3S!rĺaw p JUۆ=9-}3HWYv[ ~}pHoM"H!4'v{PK4|RABvPBarack Obama/resources/retrieveWikitext-Template%3APersondata-442579427.wikitextUT 3PPux dO0+l'LDVi,m0w_ .}~k7%֍ N+c($:ז_Kލ2n3NK/ g$g8qtΠ1 ^L`2t6ʓs.B&?qɩj(4ӻV9ᖩ*C0uhmMi> BOz`V/ڑݾӛ$~6M|0}̅5ykLswMK mW:q?]%55hµyێP\1\_RxJ~nbsգ$ڮ <_S +_5,4Pf@A vssm紙e/jɕPG5{2By>i]PK-|RAk>OBarack Obama/resources/retrieveWikitext-Template%3AS%2Dstart-345623316.wikitextUT &PPux dE=N0F{bBi6,$ٕ4`bO6V'پ;6t==A;| N ZS}7wQ~ D.<^h>= )۹O)y֎0RJηO,PJ3z^E} <&/ VR2(5u+ aXY+~"Y`@CЯ.jwG18:(vhT~~=>Cm>~X 8^gϿ?}=D`č E)oy[f(H]%umI2'%oB?f?:F {TZ*E[V3`l>4%KP#2\Ѕ:u*׆Mfoov6IE {3ĺlKj]Yf8RO8Z3):(FSLYA;b|(׎%?475$$3?F!PK4|RAU7COSBarack Obama/resources/retrieveWikitext-Template%3AUse_mdy_dates-452222148.wikitextUT 3PPux dvuv -NUMTHI,I-I+ϭjjA&/?3/94%ծ%?475$$3?(PK-|RA=fG OBarack Obama/resources/retrieveWikitext-Template%3ACongLinks-470146352.wikitextUT %PPux dVo6<mH>͂4aM8[0@KĚ"Yj8HYX:aݻ#۟v͵zvϣwd;qUUQ+SJu"ٸuUf7sBri u&5KFe>=wLjP+B)}9O:F RZ֖?0{ Ni>!hjޟ$^aPmi26džwv &.%Sʰ4 >mG/gYb`W3)dlr@Y?t%, 2EԞKUOL@(5k+9=$WT[(;L]' ,RA g8ٺXuw2|M.%K^bșD65iRɌ.a uxfTEJ$gn>*B0B[L?dHM\_SGfSqDoa^LyD r4F`S5S6$GVPjx)!m ĩR:vtοVʹ+B:++x+(@0ëBBz &;89PƜ0"s(C֭"00ü}Spg"JֱglaFNAĆ'S6:#ֲQ(6Q1D]F'FEVYH|PQ4,ฅ &#| !p/Rbw5#j, $qcMThШ?]]jqݶ<_ƨU8:PՔcݛ<(P znm+pLbJöY+q` F5\UZJȂbtށM؂J^8m#.$&dOg" &H)T0EwA654At&) 7# rT*rHx5Ƭh3INО/!K}b[jS0@(4NՄ>Pމ,Tc_4 >!^0XLd &SŨֹ ~2}P}$Q)!y%F[iq>'?pMY{kx.Ьc9׸*4X&w- Xa fPD&COOGeΜ3Qڗ&?H3(JƘ cVXn6[ V817pfliuCYE}NlFu/}fk StX Kg67*0}֙sPK |RA AKBarack Obama/resources/retrieveWikitext-Template%3ATmbox-388085963.wikitextUT  PPux dRN0+8pʽ*zB*`HbogNZ*8Kόܙ|sV,ۮm҂sT4\o ׼~5+ 8sGz؃ZqjAcwݒ[j^ Ǩ>/}#cF[oR=o#Qݮ99 ogwu$IIK jS B EA*8Jfz/7ZohOd2IuZ6Y,'} ʖsˇGaFkڰ PCZ UxɾɢxFw9sѿ:CwGGs)mnajj:ǣ'αܺBEV +x??; ͇|&{~ܯ xt PK/|RAAcraLBarack Obama/resources/retrieveWikitext-Template%3A%C2%B7-405160034.wikitextUT *PPux dE @O1xjn =L:3H^-m}s^=Um`VGU'FT>]/>tbQu"drE("tɨׅ)Ceg0/s -TsPK TSA ABarack Obama/UTPux dPK k}RAAGBarack Obama/tests/UTzPux dPK!|RAdzBarack Obama/tests/if-0038.txtUT Pux dPK%|RAƦ%efBarack Obama/tests/if-1411.txtUTPux dPK(|RAsVBarack Obama/tests/if-1943.txtUTPux dPK!|RA!!Barack Obama/tests/if-0266.txtUTPux dPK!|RA5k!^f'Barack Obama/tests/currentyear-0001.txtUT Pux dPK2|RAԊ$^L "Barack Obama/tests/navbox-0005.txtUT0Pux dPK!|RA^X{ Barack Obama/tests/if-0034.txtUT Pux dPK&|RA60m Barack Obama/tests/if-1488.txtUTPux dPK!|RAv#j Barack Obama/tests/padleft-0002.txtUT Pux dPK0|RAV|(= Barack Obama/tests/talkpagename-0003.txtUT,Pux dPK-|RAGjiJ  Barack Obama/tests/ifeq-0148.txtUT%Pux dPK%|RARe<=#gBarack Obama/tests/H%3AIPA-0004.txtUTPux dPK%|RA\kmBarack Obama/tests/if-1470.txtUTPux dPK(|RA}gJBarack Obama/tests/if-1965.txtUTPux dPK!|RA', Barack Obama/tests/namespace detect-0001.txtUT Pux dPK)|RAN Barack Obama/tests/if-1994.txtUTPux dPK(|RA <LBarack Obama/tests/if-1921.txtUTPux dPK-|RALn30 Barack Obama/tests/ifeq-0158.txtUT%Pux dPK&|RAVz%Barack Obama/tests/namespace-0023.txtUTPux dPK-|RARb3 Barack Obama/tests/ifeq-0164.txtUT%Pux dPK(|RAg]BBarack Obama/tests/if-1864.txtUTPux dPK(|RAcF`Barack Obama/tests/if-1893.txtUTPux dPK!|RAEvB3RBarack Obama/tests/if-0035.txtUT Pux dPK%|RAK!0Barack Obama/tests/Infobox officeholder-0001.txtUTPux dPK,|RA2ʁ%$Barack Obama/tests/urlencode-0055.txtUT#Pux dPK!|RǍ $Barack Obama/tests/ifeq-0026.txtUT Pux dPK&|RA}c"%Barack Obama/tests/nowrap-0010.txtUTPux dPK!|RAW?xH)Barack Obama/tests/if-0270.txtUTPux dPK |RAT"2+Barack Obama/tests/switch-0001.txtUT Pux dPK'|RA͒G,Barack Obama/tests/if-1765.txtUTPux dPK(|RAu$2m~1-Barack Obama/tests/if-1837.txtUTPux dPK,|RA +.Barack Obama/tests/Citation%2Fcore-0006.txtUT#Pux dPK |RA^ls2Barack Obama/tests/ns-0015.txtUT Pux dPK |RALX &)3Barack Obama/tests/editnotice-0001.txtUT Pux dPK)|RAf mR +5Barack Obama/tests/Citation%2Fcore-0003.txtUTPux dPK(|RAёK/ao:Barack Obama/tests/if-1874.txtUTPux dPK!|RA:Barack Obama/tests/if-0376.txtUTPux dPK%|RAz <Barack Obama/tests/if-1451.txtUTPux dPK)|RAtA%=Barack Obama/tests/urlencode-0017.txtUTPux dPK%|RA9%>Barack Obama/tests/H%3Atitle-0013.txtUTPux dPK!|RA91O?Barack Obama/tests/if-0307.txtUTPux dPK)|RAV)z~ABarack Obama/tests/if-1977.txtUTPux dPK |RA0WvT%ABarack Obama/tests/pp%2Dmeta-0001.txtUT Pux dPK%|RAqV CBarack Obama/tests/ifeq-0053.txtUTPux dPK&|RA*}mDBarack Obama/tests/if-1487.txtUTPux dPK/|RAgJ!EBarack Obama/tests/small-0016.txtUT*Pux dPK4|RALa6xFBarack Obama/tests/Dated maintenance category-0001.txtUT3Pux dPK(|RA H&h_GBarack Obama/tests/if-1872.txtUTPux dPK&|RA|mYIBarack Obama/tests/if-1493.txtUTPux dPK!|RA[JBarack Obama/tests/if-0375.txtUTPux dPK'|RA$KBarack Obama/tests/if-1682.txtUTPux dPK&|RAmzLBarack Obama/tests/if-1486.txtUTPux dPK2|RA 㶬"?MBarack Obama/tests/navbox-0004.txtUT0Pux dPK%|RA3+lOBarack Obama/tests/if-1457.txtUTPux dPK+|RA3%PBarack Obama/tests/urlencode-0038.txtUT!Pux dPK%|RAt9F1"QBarack Obama/tests/switch-0053.txtUTPux dPK |RAF2bk+RBarack Obama/tests/protectionlevel-0002.txtUT Pux dPK-|RA?_ SBarack Obama/tests/ifeq-0141.txtUT%Pux dPK)|RAGn{TBarack Obama/tests/if-1984.txtUTPux dPK!|RAy\"uUBarack Obama/tests/switch-0029.txtUT Pux dPK-|RAUubw#RVBarack Obama/tests/ucfirst-0003.txtUT%Pux dPK4|RAKֵ|#WBarack Obama/tests/Link FA-0006.txtUT3Pux dPK%|RAʁWBarack Obama/tests/if-1460.txtUTPux dPK'|RA7F YBarack Obama/tests/ifeq-0098.txtUTPux dPK4|RArz#YBarack Obama/tests/Link FA-0001.txtUT3Pux dPK'|RAK:\#ZBarack Obama/tests/Rellink-0012.txtUTPux dPK)|RA K[Barack Obama/tests/if-2043.txtUTPux dPK!|RA0"\Barack Obama/tests/switch-0030.txtUT Pux dPK*|RAPT{)]Barack Obama/tests/only in print-0001.txtUT Pux dPK!|RA8o%^Barack Obama/tests/safesubst-0022.txtUT Pux dPK&|RA/ _Barack Obama/tests/ifeq-0089.txtUTPux dPK!|RA_ n#`Barack Obama/tests/iferror-0002.txtUT Pux dPK*|RABy]xR#aBarack Obama/tests/Reflist-0001.txtUT Pux dPK-|RA2:=#Barack Obama/tests/s%2Dbef-0001.txtUT&Pux dPK/|RAp!Barack Obama/tests/small-0018.txtUT*Pux dPK%|RAy Barack Obama/tests/if-1456.txtUTPux dPK%|RAm|v#Barack Obama/tests/ucfirst-0001.txtUTPux dPK%|RA]VVGBarack Obama/tests/if-1398.txtUTPux dPK*|RAJB4T +Barack Obama/tests/Citation%2Fcore-0004.txtUT Pux dPK!|RAr%lx Barack Obama/tests/ifeq-0024.txtUT Pux dPK |RA#~ mq qBarack Obama/tests/ifeq-0015.txtUT Pux dPK!|RAmBarack Obama/tests/if-0045.txtUT Pux dPK)|RA pt}%Barack Obama/tests/urlencode-0024.txtUTPux dPK-|RA__Z+Barack Obama/tests/sec link%2Ftext-0004.txtUT%Pux dPK1|RAr|"Barack Obama/tests/switch-0155.txtUT-Pux dPK!|RAً^e'Barack Obama/tests/MONTHNUMBER-0001.txtUT Pux dPK)|RAyp{%UBarack Obama/tests/urlencode-0025.txtUTPux dPK&|RASm$Barack Obama/tests/if-1495.txtUTPux dPK4|RA2܃)Barack Obama/tests/Use mdy dates-0001.txtUT3Pux dPK&|RA":mBarack Obama/tests/if-1489.txtUTPux dPK!|RAd Barack Obama/tests/expr-0008.txtUTPux dPK-|RAXrI"Barack Obama/tests/switch-0119.txtUT&Pux dPK!|RA ҶE Barack Obama/tests/ifeq-0032.txtUT Pux dPK'|RA$xc%Barack Obama/tests/urlencode-0002.txtUTPux dPK-|RAۡ Barack Obama/tests/ifeq-0161.txtUT%Pux dPK |RA}mBarack Obama/tests/if-0016.txtUT Pux dPK |RA %"BBarack Obama/tests/switch-0006.txtUT Pux dPK(|RAP__g%cBarack Obama/tests/urlencode-0005.txtUTPux dPK)|RAϑN!Barack Obama/tests/if-1992.txtUTPux dPK-|RAt_ip$Barack Obama/tests/sitename-0001.txtUT%Pux dPK&|RA3^JT#Barack Obama/tests/Rellink-0006.txtUTPux dPK(|RAVׯ$+Barack Obama/tests/Citation%2Fcore-0001.txtUTPux dPK!|RAblBarack Obama/tests/age-0001.txtUT Pux dPK-|RANPBarack Obama/tests/ns0-0001.txtUT%Pux dPK'|RAVlDt["Barack Obama/tests/switch-0088.txtUTPux dPK*|RA`1RBarack Obama/tests/citation%2Fidentifier-0001.txtUT Pux dPK!|RAl .Barack Obama/tests/birth date and age-0001.txtUT Pux dPK'|RAƊBarack Obama/tests/if-1674.txtUTPux dPK!|RAB}Barack Obama/tests/if-0273.txtUTPux dPK)|RAuuBarack Obama/tests/if-1995.txtUTPux dPK=RA Sc"Barack Obama/tests/navbox-0007.txtUT6Pux dPK-|RA2"f"[Barack Obama/tests/switch-0116.txtUT%Pux dPK'|RAcrlBarack Obama/tests/if-1744.txtUTPux dPK'|RA 7#Barack Obama/tests/ifexist-0002.txtUTPux dPK3|RA(Barack Obama/tests/talkpagename-0005.txtUT2Pux dPK(|RA{<#Barack Obama/tests/iferror-0008.txtUTPux dPK,|RA`i%:Barack Obama/tests/urlencode-0063.txtUT$Pux dPK'|RA)."Barack Obama/tests/switch-0083.txtUTPux dPK'|RAFq Barack Obama/tests/ifeq-0104.txtUTPux dPK |RAQAb"BBarack Obama/tests/switch-0021.txtUT Pux dPK%|RAےd%pBarack Obama/tests/H%3Atitle-0004.txtUTPux dPK&|RAq|%hBarack Obama/tests/namespace-0030.txtUTPux dPK(|RA!UjCBarack Obama/tests/if-1962.txtUTPux dPK(|RA_iSLBarack Obama/tests/if-1878.txtUTPux dPK'|RA N.P Barack Obama/tests/if-1680.txtUTPux dPK!|RAu;&  Barack Obama/tests/ifeq-0028.txtUT Pux dPK |RA">a  Barack Obama/tests/ifeq-0005.txtUT Pux dPK,|RAaj% Barack Obama/tests/Cite book-0002.txtUT#Pux dPK%|RA$Barack Obama/tests/if-1771.txtUTPux dPK%|RAQl|%Barack Obama/tests/if-1448.txtUTPux dPK%|RAͮEt&Barack Obama/tests/if-1432.txtUTPux dPK'|RA$:5z'Barack Obama/tests/if-1812.txtUTPux dPK1|RABarack Obama/tests/s%2Dinc-0002.txtUT)Pux dPK!|RA|4|?Barack Obama/tests/if-0043.txtUT Pux dPK%|RA}lj("@Barack Obama/tests/switch-0081.txtUTPux dPK+|RASeak%IBarack Obama/tests/urlencode-0040.txtUT!Pux dPK-|RA> JBarack Obama/tests/ifeq-0144.txtUT%Pux dPK!|RA8,KBarack Obama/tests/if-0306.txtUTPux dPK'|RA~C< cLBarack Obama/tests/ifeq-0106.txtUTPux dPK'|RAzC#NMBarack Obama/tests/rellink-0003.txtUTPux dPK |RAt.+"jNBarack Obama/tests/switch-0027.txtUT Pux dPK!|RAU\OBarack Obama/tests/lc-0029.txtUT Pux dPK!|RA#ry PBarack Obama/tests/expr-0003.txtUT Pux dPK!|RA (ajQBarack Obama/tests/if-0050.txtUT Pux dPK%|RA.lbRBarack Obama/tests/if-1464.txtUTPux dPK&|RA#w%SBarack Obama/tests/namespace-0022.txtUTPux dPK!|RAb7bTBarack Obama/tests/category handler%2Fnumbered-0001.txtUT Pux dPK3|RAA8"UBarack Obama/tests/switch-0181.txtUT2Pux dPK&|RAO NmVBarack Obama/tests/if-1491.txtUTPux dPK-|RAvUå }WBarack Obama/tests/ifeq-0142.txtUT%Pux dPK0|RAߑ6 |XBarack Obama/tests/ifeq-0182.txtUT+Pux dPK!|RA*iYBarack Obama/tests/if-0047.txtUT Pux dPK-|RA%R#L[Barack Obama/tests/s%2Dpar-0001.txtUT&Pux dPK*|RA>1i$M\Barack Obama/tests/cite web-0001.txtUT Pux dPK)|RA2n_f ^Barack Obama/tests/expr-0009.txtUTPux dPK/|RAwS'#_Barack Obama/tests/s%2Dttl-0007.txtUT)Pux dPK)|RA l "`Barack Obama/tests/switch-0094.txtUTPux dPK%|RA\%aBarack Obama/tests/H%3Atitle-0009.txtUTPux dPK |RADbBarack Obama/tests/if-0019.txtUT Pux dPK%|RAL"cBarack Obama/tests/switch-0077.txtUTPux dPK!|RAa?mBarack Obama/tests/if-0378.txtUTPux dPK*|RA'ّ pnBarack Obama/tests/ifeq-0129.txtUT Pux dPK)|RA2>7$[oBarack Obama/tests/if-1987.txtUTPux dPK(|RA4pBarack Obama/tests/if-1818.txtUTPux dPK |RAe-qBarack Obama/tests/Pp%2Dmove%2Dindef-0001.txtUT Pux dPK |RAZn!rBarack Obama/tests/tmbox-0001.txtUT Pux dPK)|RA}m#jtBarack Obama/tests/if-1978.txtUTPux dPK'|RA\tBarack Obama/tests/if-1769.txtUTPux dPK)|RAcV$uBarack Obama/tests/if-2035.txtUTPux dPK&|RA mvBarack Obama/tests/if-1479.txtUTPux dPK%|RAרwBarack Obama/tests/if-1404.txtUTPux dPK%|RA"xBarack Obama/tests/switch-0070.txtUTPux dPK!|RAAcBarack Obama/tests/if-0046.txtUT Pux dPK)|RAb$Barack Obama/tests/if-1975.txtUTPux dPK'|RAz7Barack Obama/tests/if-1766.txtUTPux dPK&|RAw|3uGBarack Obama/tests/if-1567.txtUTPux dPK'|RA&S,+Barack Obama/tests/sec link%2Ftext-0001.txtUTPux dPK%|RA 1Barack Obama/tests/if-1455.txtUTPux dPK.|RAL`X"rBarack Obama/tests/switch-0121.txtUT(Pux dPK!|RAo:"sBarack Obama/tests/switch-0031.txtUT Pux dPK%|RA>mBarack Obama/tests/if-1471.txtUTPux dPK&|RA@h#YBarack Obama/tests/rellink-0002.txtUTPux dPK!|RA4+EBarack Obama/tests/if-0274.txtUTPux dPK(|RA0 pSǎBarack Obama/tests/if-1891.txtUTPux dPK&|RAs|bj{%ؐBarack Obama/tests/namespace-0026.txtUTPux dPK*|RA["0Barack Obama/tests/Citation%2Fmake link-0005.txtUT Pux dPK'|RAVv^&Barack Obama/tests/wikisource-0001.txtUTPux dPK!|RAA#Barack Obama/tests/if-0398.txtUTPux dPK4|RAKE! Barack Obama/tests/ifeq-0266.txtUT3Pux dPK!|RA@+bs&Barack Obama/tests/titleparts-0002.txtUT Pux dPK%|RA'GHBarack Obama/tests/if-1423.txtUTPux dPK-|RAEy#*Barack Obama/tests/s%2Dbef-0002.txtUT&Pux dPK%|RA7@#eBarack Obama/tests/H%3AIPA-0012.txtUTPux dPK)|RA'Gc?Barack Obama/tests/if-2031.txtUTPux dPK!|RA^>"Barack Obama/tests/switch-0033.txtUT Pux dPK!|RAu&;ĞBarack Obama/tests/if-0341.txtUTPux dPK)|RA:lyBBarack Obama/tests/if-1986.txtUTPux dPK&|RAD,oFmBarack Obama/tests/if-1484.txtUTPux dPK)|RAc/dˡBarack Obama/tests/if-1998.txtUTPux dPK)|RA%RBarack Obama/tests/urlencode-0026.txtUTPux dPK%|RA7lBarack Obama/tests/if-1414.txtUTPux dPK!|RA!QTBarack Obama/tests/if-0244.txtUTPux dPK!|RABarack Obama/tests/if-0121.txtUT Pux dPK(|RAp.}IBarack Obama/tests/if-1896.txtUTPux dPK=RAVII* 4GBarack Obama/tests/United States presidential election%2C 2012-0001.txtUT6Pux dPK(|RA"ɲBarack Obama/tests/switch-0092.txtUTPux dPK0|RAjT ܳBarack Obama/tests/ifeq-0188.txtUT,Pux dPK!|RA>G3Barack Obama/tests/if-0101.txtUT Pux dPK!|RA,hgn Barack Obama/tests/expr-0002.txtUT Pux dPK&|RA ܶ5 RBarack Obama/tests/Main-0003.txtUTPux dPK+|RAbCi %bBarack Obama/tests/urlencode-0048.txtUT"Pux dPK'|RAՀ,Hw ~Barack Obama/tests/ifeq-0107.txtUTPux dPK(|RA kOBarack Obama/tests/if-1859.txtUTPux dPK)|RA6/f`i%Barack Obama/tests/urlencode-0020.txtUTPux dPK-|RA$Xiz:ѻBarack Obama/tests/Portal%2FImages%2FBarack obama-0001.txtUT%Pux dPK4|RA _i Barack Obama/tests/ifeq-0271.txtUT3Pux dPK |RA@xah%gBarack Obama/tests/namespace-0013.txtUT Pux dPK%|RAz)'Barack Obama/tests/if-1425.txtUTPux dPK/|RA8X #-Barack Obama/tests/s%2Dbef-0007.txtUT)Pux dPK%|RA|E`gBarack Obama/tests/if-1401.txtUTPux dPK+|RAJp`i%DBarack Obama/tests/urlencode-0043.txtUT!Pux dPK |RA6v Barack Obama/tests/ifeq-0009.txtUT Pux dPK'|RA V]Barack Obama/tests/if-1760.txtUTPux dPK+|RA}'tco%Barack Obama/tests/urlencode-0041.txtUT!Pux dPK+|RAq "Barack Obama/tests/switch-0098.txtUT!Pux dPK-|RAq6\tBarack Obama/tests/lc-0047.txtUT%Pux dPK-|RA,ܦ#\Barack Obama/tests/s%2Dppo-0001.txtUT&Pux dPK%|RANK%_Barack Obama/tests/H%3Atitle-0008.txtUTPux dPK%|RAfV% WBarack Obama/tests/ifeq-0051.txtUTPux dPK1|RA@;&Z-"Barack Obama/tests/navbox-0002.txtUT.Pux dPK-|RAQ6-#Barack Obama/tests/s%2Daft-0001.txtUT&Pux dPK(|RAϵv%Barack Obama/tests/urlencode-0008.txtUTPux dPK-|RA8)Barack Obama/tests/sec link auto-0005.txtUT%Pux dPK)|RA V vBarack Obama/tests/if-2033.txtUTPux dPK!|RABarack Obama/tests/if-0042.txtUT Pux dPK&|RAeqmBarack Obama/tests/if-1494.txtUTPux dPK!|RA[$Barack Obama/tests/if-0138.txtUT Pux dPK%|RAo Barack Obama/tests/ifeq-0077.txtUTPux dPK4|RAyq"Barack Obama/tests/ifexpr-0004.txtUT3Pux dPK |RA?mnx5Barack Obama/tests/if-0005.txtUT Pux dPK&|RA & Barack Obama/tests/Main-0002.txtUTPux dPK)|RA#E>0Barack Obama/tests/Citation%2Fmake link-0004.txtUTPux dPK!|RAKM0Barack Obama/tests/if-0122.txtUT Pux dPK%|RAv6o\"qBarack Obama/tests/switch-0052.txtUTPux dPK-|RAblz%)Barack Obama/tests/safesubst-0027.txtUT&Pux dPK%|RA0Barack Obama/tests/br separated entries-0001.txtUTPux dPK!|RAZ?!"eBarack Obama/tests/switch-0034.txtUT Pux dPK&|RA&1mBarack Obama/tests/if-1480.txtUTPux dPK-|RA9lN*Barack Obama/tests/sec link image-0001.txtUT%Pux dPK!|RA;_f#Barack Obama/tests/padleft-0005.txtUT Pux dPK(|RA+%ZBarack Obama/tests/urlencode-0010.txtUTPux dPK!|RA{,GKBarack Obama/tests/if-0099.txtUT Pux dPK*|RA|u"Barack Obama/tests/switch-0095.txtUT Pux dPK'|RA}ܵBarack Obama/tests/if-1783.txtUTPux dPK.|RAPc #Barack Obama/tests/s%2Daft-0004.txtUT(Pux dPK'|RA@ *Barack Obama/tests/if-1770.txtUTPux dPK!|RAx)$Barack Obama/tests/top icon-0001.txtUT Pux dPK0|RAV0#"Barack Obama/tests/Navbox-0002.txtUT+Pux dPK&|RA|'#Barack Obama/tests/Rellink-0002.txtUTPux dPK!|RAv?Barack Obama/tests/if-0031.txtUT Pux dPK/|RA &,"Barack Obama/tests/switch-0128.txtUT*Pux dPK&|RA%Barack Obama/tests/namespace-0024.txtUTPux dPK!|RA* Barack Obama/tests/ifeq-0027.txtUT Pux dPK+|RAB[8]m%Barack Obama/tests/urlencode-0050.txtUT"Pux dPK4|RAnsÙdr'XBarack Obama/tests/defaultsort-0001.txtUT3Pux dPK!|RA3Barack Obama/tests/if-0040.txtUT Pux dPK*|RAl95"[Barack Obama/tests/switch-0097.txtUT Pux dPK%|RA#" Barack Obama/tests/switch-0065.txtUTPux dPK'|RAn Barack Obama/tests/if-1781.txtUTPux dPK(|RAO_߀ Barack Obama/tests/if-1887.txtUTPux dPK!|RA ,Barack Obama/tests/category handler-0001.txtUT Pux dPK'|RAD 1 Barack Obama/tests/ifeq-0114.txtUTPux dPK'|RA:0NBarack Obama/tests/if-1696.txtUTPux dPK-|RAq*v!3Barack Obama/tests/sec link%2Frelative url-0005.txtUT%Pux dPK)|RAz> D1Barack Obama/tests/if-2019.txtUTPux dPK'|RA҃mBarack Obama/tests/if-1785.txtUTPux dPK!|RA 9Barack Obama/tests/Infobox officeholder%2FOffice-0001.txtUT Pux dPK |RA?oBarack Obama/tests/if-0013.txtUT Pux dPK(|RACUBarack Obama/tests/if-1917.txtUTPux dPK!|RAw("Barack Obama/tests/switch-0032.txtUT Pux dPK!|RA<=Barack Obama/tests/if-0380.txtUTPux dPK.|RA,.#{Barack Obama/tests/s%2Dpar-0002.txtUT(Pux dPK&|RA#}Barack Obama/tests/Rellink-0007.txtUTPux dPK/|RALJ)  Barack Obama/tests/Icon-0003.txtUT*Pux dPK2|RAH(}!Barack Obama/tests/talkpagename-0004.txtUT/Pux dPK'|RA7 w"Barack Obama/tests/Main-0011.txtUTPux dPK |RAK_f$#Barack Obama/tests/pagetype-0001.txtUT Pux dPK'|RAK$=$Barack Obama/tests/See also-0004.txtUTPux dPK0|RA o%Barack Obama/tests/ifeq-0190.txtUT,Pux dPK-|RA. g&Barack Obama/tests/ifeq-0145.txtUT%Pux dPK&|RAPcqc'Barack Obama/tests/if-1594.txtUTPux dPK%|RA3m(Barack Obama/tests/if-1477.txtUTPux dPK)|RA2 b(Barack Obama/tests/if-1993.txtUTPux dPK+|RA>Mu%)Barack Obama/tests/urlencode-0045.txtUT!Pux dPK&|RA[E/f*Barack Obama/tests/if-1593.txtUTPux dPK'|RA," ,Barack Obama/tests/switch-0091.txtUTPux dPK,|RAwE7lw%"-Barack Obama/tests/urlencode-0053.txtUT#Pux dPK/|RAi+σ!-Barack Obama/tests/small-0010.txtUT)Pux dPK=RAd#.Barack Obama/tests/fullurl-0002.txtUT6Pux dPK)|RA%/Barack Obama/tests/cite news-0001.txtUTPux dPK%|RA[ǂ m2Barack Obama/tests/if-1473.txtUTPux dPK |RAӎx9 g3Barack Obama/tests/ifeq-0004.txtUT Pux dPK%|RAK$@4Barack Obama/tests/filepath-0001.txtUTPux dPK |RA=@0!?5Barack Obama/tests/fmbox-0001.txtUT Pux dPK'|RARlzq|7Barack Obama/tests/if-1745.txtUTPux dPK!|RADS8Barack Obama/tests/if-0357.txtUTPux dPK!|RAf0:Barack Obama/tests/if-0272.txtUTPux dPK!|RA,&<Barack Obama/tests/if-0358.txtUTPux dPK-|RA4*#=Barack Obama/tests/ifexist-0004.txtUT&Pux dPK&|RAg~ ?Barack Obama/tests/if-1537.txtUTPux dPK0|RAGu/Q ?Barack Obama/tests/ifeq-0193.txtUT,Pux dPK-|RAa^j@Barack Obama/tests/lc-0051.txtUT%Pux dPK%|RA$ABarack Obama/tests/if-1410.txtUTPux dPK(|RA،Q~BBarack Obama/tests/if-1816.txtUTPux dPK+|RAFjF)CBarack Obama/tests/hide in print-0003.txtUT"Pux dPK%|RAÆDBarack Obama/tests/if-1433.txtUTPux dPK%|RAmEBarack Obama/tests/if-1452.txtUTPux dPK%|RAށ FBarack Obama/tests/ifeq-0063.txtUTPux dPK%|RAz!P%HBarack Obama/tests/if-1413.txtUTPux dPK%|RA1`"HIBarack Obama/tests/switch-0073.txtUTPux dPK%|RA%RBarack Obama/tests/H%3Atitle-0007.txtUTPux dPK)|RAgi{SBarack Obama/tests/if-1991.txtUTPux dPK'|RA`)qw$hTBarack Obama/tests/side box-0001.txtUTPux dPK%|RAdn7WBarack Obama/tests/if-1431.txtUTPux dPK(|RA9{bXBarack Obama/tests/if-1851.txtUTPux dPK&|RA܈L.#5YBarack Obama/tests/Rellink-0004.txtUTPux dPK*|RAÉ:^q%ZBarack Obama/tests/urlencode-0035.txtUTPux dPK-|RA$q)][Barack Obama/tests/sec link auto-0003.txtUT%Pux dPK/|RA=[g e\Barack Obama/tests/expr-0010.txtUT*Pux dPK(|RApl+]Barack Obama/tests/Citation%2Fcore-0002.txtUTPux dPK-|RA[4yF)`Barack Obama/tests/portal%2Fcore-0001.txtUT%Pux dPK&|RA5%8bBarack Obama/tests/namespace-0028.txtUTPux dPK%|RA] cBarack Obama/tests/if-1415.txtUTPux dPK&|RASmcBarack Obama/tests/if-1483.txtUTPux dPK&|RAu{@2mdBarack Obama/tests/if-1482.txtUTPux dPK%|RAgńeBarack Obama/tests/if-1439.txtUTPux dPK/|RA)fZ*!_fBarack Obama/tests/small-0001.txtUT)Pux dPK!|RAƫVp ;gBarack Obama/tests/expr-0006.txtUT Pux dPK |RAFmH6hBarack Obama/tests/Template%3AEditnotices%2FPage%2FBarack Obama-0001.txtUT Pux dPK4|RAjIܠ|#jBarack Obama/tests/Link GA-0001.txtUT3Pux dPK |RAw%kBarack Obama/tests/safesubst-0002.txtUT Pux dPK!|RAi]ah%ulBarack Obama/tests/MONTHNAME-0001.txtUT Pux dPK(|RAv N5mBarack Obama/tests/if-1953.txtUTPux dPK&|RATm nBarack Obama/tests/if-1492.txtUTPux dPK%|RAg%nBarack Obama/tests/H%3Atitle-0015.txtUTPux dPK%|RAi=  Barack Obama/tests/if-1889.txtUTPux dPK-|RAi*Barack Obama/tests/sec link image-0004.txtUT%Pux dPK!|RA?  Barack Obama/tests/if-0104.txtUT Pux dPK |RA:pjtBarack Obama/tests/ns-0017.txtUT Pux dPK(|RA9VBarack Obama/tests/if-1817.txtUTPux dPK%|RAғ#Barack Obama/tests/H%3AIPA-0006.txtUTPux dPK)|RAC|bm%3Barack Obama/tests/urlencode-0023.txtUTPux dPK |RABarack Obama/tests/if-0020.txtUT Pux dPK*|RAs= "Barack Obama/tests/switch-0096.txtUT Pux dPK%|RAnz#Barack Obama/tests/H%3AIPA-0005.txtUTPux dPK!|RA``$Barack Obama/tests/if-0134.txtUT Pux dPK |RAQPC"Barack Obama/tests/ifexpr-0001.txtUT Pux dPK!|RA,hQBarack Obama/tests/if-0338.txtUTPux dPK,|RAfم%Barack Obama/tests/urlencode-0065.txtUT$Pux dPK(|RAܫBarack Obama/tests/if-1963.txtUTPux dPK%|RA>3 Barack Obama/tests/ifeq-0071.txtUTPux dPK%|RA"%Barack Obama/tests/H%3Atitle-0005.txtUTPux dPK&|RA(mBarack Obama/tests/if-1498.txtUTPux dPK-|RA_h Barack Obama/tests/ifeq-0147.txtUT%Pux dPK!|RA!y}"Barack Obama/tests/nowrap-0002.txtUT Pux dPK%|RA֥w#qBarack Obama/tests/H%3AIPA-0001.txtUTPux dPK/|RA縈!Barack Obama/tests/small-0015.txtUT*Pux dPK&|RAlsBarack Obama/tests/if-1536.txtUTPux dPK!|RA,!1^Barack Obama/tests/if-0250.txtUTPux dPK!|RA^CE ?Barack Obama/tests/if-0039.txtUT Pux dPK+|RA"i{%Barack Obama/tests/urlencode-0046.txtUT!Pux dPK%|RA:2t5Barack Obama/tests/if-1441.txtUTPux dPK'|RAUFBBarack Obama/tests/if-1809.txtUTPux dPK!|RA-p gBarack Obama/tests/expr-0005.txtUT Pux dPK%|RAԊ̦EBarack Obama/tests/if-1437.txtUTPux dPK,|RA*F1- Barack Obama/tests/citation%2Fidentifier-0003.txtUT$Pux dPK%|RAzx o%\ Barack Obama/tests/safesubst-0023.txtUTPux dPK-|RA!8t%a Barack Obama/tests/pagenamee-0008.txtUT%Pux dPK'|RAw3B Barack Obama/tests/sec link%2Frelative url-0001.txtUTPux dPK(|RA>,Barack Obama/tests/if-1856.txtUTPux dPK&|RAٗOW Barack Obama/tests/Main-0006.txtUTPux dPK!|RAƗ(H[Barack Obama/tests/if-0399.txtUTPux dPK%|RA]p08Barack Obama/tests/Barack Obama sidebar-0001.txtUTPux dPK(|RAv8PBarack Obama/tests/if-1867.txtUTPux dPK%|RAt߃-Barack Obama/tests/if-1434.txtUTPux dPK'|RA [|Barack Obama/tests/if-1743.txtUTPux dPK%|RAL.#_Barack Obama/tests/H%3AIPA-0011.txtUTPux dPK'|RA/_Barack Obama/tests/if-1768.txtUTPux dPK&|RAv%Barack Obama/tests/namespace-0021.txtUTPux dPK4|RA -Barack Obama/tests/Authority control-0001.txtUT3Pux dPK.|RA:#Barack Obama/tests/s%2Daft-0002.txtUT'Pux dPK%|RAr## Barack Obama/tests/H%3AIPA-0019.txtUTPux dPK/|RA"!%!Barack Obama/tests/small-0007.txtUT)Pux dPK!|RA+-~ "Barack Obama/tests/if-0356.txtUTPux dPK)|RAyy"Barack Obama/tests/if-1996.txtUTPux dPK |RA%GҦm#Barack Obama/tests/lc-0011.txtUT Pux dPK!|RA Wx$Barack Obama/tests/if-0360.txtUTPux dPK |RA•"v &Barack Obama/tests/ifeq-0020.txtUT Pux dPK&|RAag: u(Barack Obama/tests/ifeq-0079.txtUTPux dPK%|RA?6 )Barack Obama/tests/ifeq-0055.txtUTPux dPK'|RAo~*Barack Obama/tests/if-1763.txtUTPux dPK'|RAw/cv+Barack Obama/tests/if-1780.txtUTPux dPK%|RA* },Barack Obama/tests/ifeq-0040.txtUTPux dPK=RAސ  s"-Barack Obama/tests/navbox-0003.txtUT6Pux dPK-|RAo@; ":Barack Obama/tests/switch-0120.txtUT&Pux dPK.|RADa#@<Barack Obama/tests/s%2Dttl-0003.txtUT'Pux dPK'|RAAT#=Barack Obama/tests/lcfirst-0001.txtUTPux dPK!|RA=P09p>Barack Obama/tests/Infobox officeholder%2FOffice-0003.txtUTPux dPK-|RA?1+ ABarack Obama/tests/ifeq-0163.txtUT%Pux dPK!|RA=̟.CBarack Obama/tests/if-0081.txtUT Pux dPK!|RA@vpfDBarack Obama/tests/if-0102.txtUT Pux dPK&|RAu}x#CFBarack Obama/tests/Rellink-0009.txtUTPux dPK%|RAewmGBarack Obama/tests/if-1417.txtUTPux dPK!|RAp8I *HBarack Obama/tests/expr-0001.txtUT Pux dPK'|RAcE- IBarack Obama/tests/ifeq-0112.txtUTPux dPK |RA"KJBarack Obama/tests/switch-0026.txtUT Pux dPK(|RAKBarack Obama/tests/if-1860.txtUTPux dPK%|RA΋^LBarack Obama/tests/if-1409.txtUTPux dPK+|RAM%AMBarack Obama/tests/urlencode-0047.txtUT"Pux dPK%|RAs"|#%NBarack Obama/tests/H%3AIPA-0008.txtUTPux dPK,|RA[gq%DOBarack Obama/tests/urlencode-0064.txtUT$Pux dPK!|RAHA_m PBarack Obama/tests/px-0001.txtUT Pux dPK-|RA[s߅2PBarack Obama/tests/Case preserving encode-0008.txtUT%Pux dPK!|RAL#lQBarack Obama/tests/if-0394.txtUTPux dPK)|RAORBarack Obama/tests/if-2001.txtUTPux dPK*|RAk7%SBarack Obama/tests/urlencode-0028.txtUTPux dPK |RA[qTBarack Obama/tests/lc-0013.txtUT Pux dPK'|RA`'Q8"UBarack Obama/tests/sister-0001.txtUTPux dPK |RA>#WBarack Obama/tests/Hatnote-0001.txtUT Pux dPK%|RAMa IYBarack Obama/tests/if-1438.txtUTPux dPK4|RA^ڍVdo#YBarack Obama/tests/padleft-0006.txtUT3Pux dPK!|RASz*fZBarack Obama/tests/if-0032.txtUT Pux dPK/|RAfX!\[Barack Obama/tests/small-0011.txtUT)Pux dPK%|RAc :\Barack Obama/tests/ifeq-0061.txtUTPux dPK!|RAeTw]Barack Obama/tests/if-0117.txtUT Pux dPK%|RAa^Barack Obama/tests/if-1424.txtUTPux dPK-|RAQ +`_Barack Obama/tests/sec link%2Ftext-0002.txtUT%Pux dPK3|RArg.27("w`Barack Obama/tests/navbox-0006.txtUT2Pux dPK!|RAdXqgBarack Obama/tests/lc-0028.txtUT Pux dPK(|RA :QgBarack Obama/tests/if-1868.txtUTPux dPK=RAU\C"^kBarack Obama/tests/Navbar-0001.txtUT6Pux dPK(|RA)%lBarack Obama/tests/Cite news-0001.txtUTPux dPK&|RA+:ZoBarack Obama/tests/if-1569.txtUTPux dPK!|RAMh%tpBarack Obama/tests/safesubst-0020.txtUT Pux dPK%|RA 4ߟ%zqBarack Obama/tests/safesubst-0025.txtUTPux dPK%|RA|F%xrBarack Obama/tests/safesubst-0024.txtUTPux dPK'|RAƧ\qhztBarack Obama/tests/if-1673.txtUTPux dPK4|RA|#UuBarack Obama/tests/Link FA-0004.txtUT3Pux dPK%|RAT.vBarack Obama/tests/if-1463.txtUTPux dPK'|RA:[RdM)YwBarack Obama/tests/listen%2Fcore-0001.txtUTPux dPK-|RAUu/J  yBarack Obama/tests/ifeq-0162.txtUT%Pux dPK |RA??s"zBarack Obama/tests/switch-0020.txtUT Pux dPK-|RAu ) |Barack Obama/tests/sec link auto-0002.txtUT%Pux dPK+|RAJ%}Barack Obama/tests/Cite book-0001.txtUT!Pux dPK0|RA! Barack Obama/tests/ifeq-0174.txtUT+Pux dPK%|RAh8ͪ%Barack Obama/tests/safesubst-0026.txtUTPux dPK*|RAF)Barack Obama/tests/hide in print-0001.txtUT Pux dPK)|RAf,)pe߃Barack Obama/tests/if-1989.txtUTPux dPK-|RAKS5L Barack Obama/tests/ifeq-0151.txtUT%Pux dPK'|RAI3 Barack Obama/tests/if-1794.txtUTPux dPK(|RAaF%Barack Obama/tests/if-1970.txtUTPux dPK-|RAoR¾3Barack Obama/tests/sec link%2Frelative url-0003.txtUT%Pux dPK(|RAۣu%Barack Obama/tests/urlencode-0014.txtUTPux dPK=RAL*tQPd"Barack Obama/tests/Navbox-0003.txtUT6Pux dPK-|RAW^KBarack Obama/tests/lc-0057.txtUT%Pux dPK&|RA^#Barack Obama/tests/Rellink-0003.txtUTPux dPK)|RADG"Barack Obama/tests/switch-0093.txtUTPux dPK)|RA ]]Lfn<Barack Obama/tests/if-1999.txtUTPux dPK*|RAqQz*Barack Obama/tests/column%2Dwidth-0001.txtUT Pux dPK |RA%p؞Barack Obama/tests/if-0001.txtUT Pux dPK4|RA:|*|#Barack Obama/tests/Link FA-0003.txtUT3Pux dPK'|RArBgƠBarack Obama/tests/if-1660.txtUTPux dPK*|RA3"`g)Barack Obama/tests/hide in print-0002.txtUT Pux dPK!|RAROFgr Barack Obama/tests/ifeq-0025.txtUT Pux dPK/|RAh#DBarack Obama/tests/s%2Doff-0001.txtUT)Pux dPK1|RA@:"@Barack Obama/tests/switch-0152.txtUT-Pux dPK(|RAGz|;Barack Obama/tests/if-1958.txtUTPux dPK |RAOBarack Obama/tests/if-0004.txtUT Pux dPK&|RAR_b Barack Obama/tests/ifeq-0085.txtUTPux dPK-|RA~?{]u]Barack Obama/tests/lc-0046.txtUT%Pux dPK |RA`PX0lBarack Obama/tests/if-0015.txtUT Pux dPK&|RALX ֩Barack Obama/tests/Main-0004.txtUTPux dPK.|RA")##Barack Obama/tests/s%2Dbef-0003.txtUT'Pux dPK!|RA,2bBarack Obama/tests/if-0033.txtUT Pux dPK(|RAA #VBarack Obama/tests/iferror-0010.txtUTPux dPK-|RAJiaMf"Barack Obama/tests/switch-0108.txtUT%Pux dPK'|RAb^;UBarack Obama/tests/if-1767.txtUTPux dPK/|RA֊#RBarack Obama/tests/s%2Daft-0005.txtUT)Pux dPK2|RAp  ~Barack Obama/tests/ifeq-0225.txtUT/Pux dPK%|RAmyPO#ԳBarack Obama/tests/H%3AIPA-0009.txtUTPux dPK'|RA?Barack Obama/tests/if-1726.txtUTPux dPK&|RARr3\MBarack Obama/tests/if-1557.txtUTPux dPK-|RAv&n#;Barack Obama/tests/lcfirst-0003.txtUT%Pux dPK%|RA;("Barack Obama/tests/switch-0068.txtUTPux dPK |RATMVw KBarack Obama/tests/ifeq-0016.txtUT Pux dPK(|RAs1{Barack Obama/tests/if-1947.txtUTPux dPK.|RA0"yM#Barack Obama/tests/s%2Dbef-0005.txtUT(Pux dPK(|RA0$ԅ8Barack Obama/tests/if-1820.txtUTPux dPK(|RA;y{Barack Obama/tests/if-1855.txtUTPux dPK=RAc&f;"Barack Obama/tests/Navbar-0003.txtUT6Pux dPK.|RAA/ؒ#Barack Obama/tests/s%2Dinc-0001.txtUT(Pux dPK&|RA}d#Barack Obama/tests/rellink-0001.txtUTPux dPK |RAYbBarack Obama/tests/ns-0012.txtUT Pux dPK%|RAٙW^yBarack Obama/tests/lc-0037.txtUTPux dPK)|RAvu (Barack Obama/tests/if-1997.txtUTPux dPK-|RA+k"Barack Obama/tests/switch-0104.txtUT%Pux dPK%|RA3, QBarack Obama/tests/ifeq-0042.txtUTPux dPK&|RALG>@ Barack Obama/tests/ifeq-0083.txtUTPux dPK%|RA6N#Barack Obama/tests/H%3AIPA-0015.txtUTPux dPK.|RAU?#Barack Obama/tests/s%2Daft-0003.txtUT'Pux dPK3|RAKF"Barack Obama/tests/switch-0179.txtUT2Pux dPK'|RA}"<Barack Obama/tests/switch-0089.txtUTPux dPK'|RA&uPBarack Obama/tests/if-1749.txtUTPux dPK |RAB1^lBarack Obama/tests/ns-0018.txtUT Pux dPK4|RAv#H.|#Barack Obama/tests/Link GA-0002.txtUT3Pux dPK!|RA<4wv#Barack Obama/tests/padleft-0003.txtUT Pux dPK*|RAXp{%Barack Obama/tests/urlencode-0034.txtUTPux dPK(|RA[1u{NBarack Obama/tests/if-1853.txtUTPux dPK(|RA˃tX_!Barack Obama/tests/if-1866.txtUTPux dPK&|RAp%Barack Obama/tests/IPAc%2Den-0001.txtUTPux dPK%|RAHIBarack Obama/tests/if-1440.txtUTPux dPK%|RAu'Barack Obama/tests/if-1399.txtUTPux dPK'|RACT8$Barack Obama/tests/Side box-0001.txtUTPux dPK'|RA`9)ABarack Obama/tests/sec link auto-0001.txtUTPux dPK&|RAz_#]Barack Obama/tests/Rellink-0008.txtUTPux dPK,|RAa%Barack Obama/tests/urlencode-0058.txtUT$Pux dPK%|RABarack Obama/tests/if-1442.txtUTPux dPK/|RAHw Barack Obama/tests/Icon-0001.txtUT*Pux dPK3|RA&%wBarack Obama/tests/namespace-0091.txtUT2Pux dPK4|RAPQMfo$bBarack Obama/tests/ParmPart-0001.txtUT3Pux dPK*|RA;dPe"]Q&Barack Obama/tests/tag-0001.txtUT Pux dPK!|RA,zGIBarack Obama/tests/if-0132.txtUT Pux dPK)|RA+&MZJBarack Obama/tests/if-2036.txtUTPux dPK%|RA>LBarack Obama/tests/if-1416.txtUTPux dPK%|RA>o"iMBarack Obama/tests/switch-0069.txtUTPux dPK1|RA\" VBarack Obama/tests/ifeq-0213.txtUT.Pux dPK.|RAW#XBarack Obama/tests/s%2Dbef-0004.txtUT'Pux dPK)|RA12x{_cx#gBarack Obama/tests/ucfirst-0002.txtUT%Pux dPK"|RA9gBarack Obama/tests/Infobox officeholder%2FOffice-0007.txtUTPux dPK%|RAJjBarack Obama/tests/if-1454.txtUTPux dPK)|RA ܺojkBarack Obama/tests/if-1971.txtUTPux dPK)|RAecs1lBarack Obama/tests/if-1990.txtUTPux dPK'|RAelBarack Obama/tests/if-1754.txtUTPux dPK'|RAfՕnBarack Obama/tests/if-1746.txtUTPux dPK |RA nBarack Obama/tests/ifeq-0022.txtUT Pux dPK-|RA RPҮ+pBarack Obama/tests/sec link%2Ftext-0005.txtUT%Pux dPK(|RA4~wqBarack Obama/tests/if-1941.txtUTPux dPK(|RA2BqBarack Obama/tests/if-1911.txtUTPux dPK |RAx"rBarack Obama/tests/switch-0007.txtUT Pux dPK |RA< ] sBarack Obama/tests/ifeq-0013.txtUT Pux dPK!|RA%%tBarack Obama/tests/safesubst-0021.txtUT Pux dPK |RAݣ}E uBarack Obama/tests/ifeq-0002.txtUT Pux dPK&|RA@FvBarack Obama/tests/IPA-0002.txtUTPux dPK+|RA"wBarack Obama/tests/switch-0099.txtUT"Pux dPK!|RAB^P"M}Barack Obama/tests/ifexpr-0002.txtUT Pux dPK!|RARdO~Barack Obama/tests/if-0048.txtUT Pux dPK3|RA4BȒ% Barack Obama/tests/namespace-0092.txtUT2Pux dPK!|RABqy8Barack Obama/tests/category handler%2Fblacklist-0001.txtUT Pux dPK!|RA[lҁBarack Obama/tests/lc-0025.txtUT Pux dPK%|RA>"Barack Obama/tests/switch-0079.txtUTPux dPK-|RAec ̋Barack Obama/tests/ifeq-0153.txtUT%Pux dPK'|RA,oˌBarack Obama/tests/if-1676.txtUTPux dPK(|RA}ҌL>Barack Obama/tests/if-1918.txtUTPux dPK'|RA=4ь"Barack Obama/tests/if-1807.txtUTPux dPK'|RA)QlBarack Obama/tests/if-1750.txtUTPux dPK&|RA$ʑBarack Obama/tests/if-1602.txtUTPux dPK)|RA55Kam%Barack Obama/tests/urlencode-0021.txtUTPux dPK&|RAm< jBarack Obama/tests/ifeq-0091.txtUTPux dPK-|RAץ"Barack Obama/tests/switch-0118.txtUT%Pux dPK |RA:ОU?a"Barack Obama/tests/switch-0002.txtUT Pux dPK'|RA?{;Barack Obama/tests/if-1681.txtUTPux dPK'|RABarack Obama/tests/if-1784.txtUTPux dPK'|RAN Barack Obama/tests/if-1753.txtUTPux dPK(|RA/ahBarack Obama/tests/if-1923.txtUTPux dPK%|RAUwBarack Obama/tests/if-1400.txtUTPux dPK%|RAct"Barack Obama/tests/switch-0072.txtUTPux dPK0|RA= Barack Obama/tests/ifeq-0180.txtUT+Pux dPK=RAM%(I"9Barack Obama/tests/Navbar-0002.txtUT6Pux dPK!|RAY4ާBarack Obama/tests/if-0041.txtUT Pux dPK!|RA|ob&Barack Obama/tests/titleparts-0004.txtUT Pux dPK-|RA+A wBarack Obama/tests/ifeq-0146.txtUT%Pux dPK%|RAho5sBarack Obama/tests/IPAc%2Den%2Fpronunciation-0006.txtUTPux dPK0|RAڌcr JBarack Obama/tests/ifeq-0176.txtUT+Pux dPK&|RA/7$Barack Obama/tests/See also-0001.txtUTPux dPK(|RA϶U.Barack Obama/tests/if-1901.txtUTPux dPK-|RAp?%Barack Obama/tests/pagenamee-0004.txtUT%Pux dPK |RA܏f3dk%Barack Obama/tests/safesubst-0001.txtUT Pux dPK |RA~=_pBarack Obama/tests/ns-0016.txtUT Pux dPK/|RAm<."lBarack Obama/tests/Navbox-0001.txtUT*Pux dPK-|RAJxY Barack Obama/tests/ifeq-0159.txtUT%Pux dPK%|RAU>:b?@Barack Obama/tests/Infobox officeholder%2FPersonal data-0001.txtUTPux dPK'|RA0{ \Barack Obama/tests/ifeq-0115.txtUTPux dPK(|RAʖu1Barack Obama/tests/if-1942.txtUTPux dPK |RAe"Barack Obama/tests/switch-0023.txtUT Pux dPK |RADz7]d%ZBarack Obama/tests/talkspace-0002.txtUT Pux dPK-|RAqis Barack Obama/tests/ifeq-0139.txtUT%Pux dPK!|RAQ}"Barack Obama/tests/nowrap-0007.txtUTPux dPK,|RA+}[0Barack Obama/tests/Citation%2Fmake link-0007.txtUT#Pux dPK'|RAZiyBarack Obama/tests/if-1756.txtUTPux dPK |RA/@btBarack Obama/tests/ns-0020.txtUT Pux dPK |RAm\n%TBarack Obama/tests/namespace-0014.txtUT Pux dPK'|RAWZE0Barack Obama/tests/Citation%2Fmake link-0001.txtUTPux dPK |RAtkx /Barack Obama/tests/ifeq-0019.txtUT Pux dPK!|RAdwBarack Obama/tests/if-0308.txtUTPux dPK&|RA j~Barack Obama/tests/if-1507.txtUTPux dPK!|RA#*7Barack Obama/tests/raw%3ASpecial%3AWhatlinkshere%2FVice %5B%5BList of Presidents of the United States%7C44th President of the United States%5D%5D-0001.txtUT Pux dPK-|RA~~ /0Barack Obama/tests/Sister project links-0001.txtUT%Pux dPK(|RAճBarack Obama/tests/if-1902.txtUTPux dPK'|RA|R<cBarack Obama/tests/if-1808.txtUTPux dPK&|RA/: Barack Obama/tests/Main-0005.txtUTPux dPK!|RA0 XBarack Obama/tests/if-0377.txtUTPux dPK!|RA{"/)Barack Obama/tests/if-0340.txtUTPux dPK(|RAdBarack Obama/tests/if-1897.txtUTPux dPK3|RA=+"Barack Obama/tests/switch-0178.txtUT2Pux dPK'|RA("ToBarack Obama/tests/if-1735.txtUTPux dPK%|RA_ 2PBarack Obama/tests/if-1403.txtUTPux dPK!|RAjacj-fBarack Obama/tests/Active editnotice-0001.txtUT Pux dPK/|RA6'#0Barack Obama/tests/s%2Dttl-0008.txtUT)Pux dPK'|RA!P bBarack Obama/tests/Main-0010.txtUTPux dPK/|RAr"uBarack Obama/tests/%C2%B7-0003.txtUT*Pux dPK'|RA1$tx#[Barack Obama/tests/rellink-0004.txtUTPux dPK |RA?vBarack Obama/tests/if-0003.txtUT Pux dPK |RAVbt(dBarack Obama/tests/talkpagename-0001.txtUT Pux dPK!|RAo׳ (Barack Obama/tests/expr-0007.txtUTPux dPK=RAc5) )5Barack Obama/tests/US Presidents-0001.txtUT6Pux dPK%|RAmBarack Obama/tests/if-1478.txtUTPux dPK!|RAS Barack Obama/tests/ifeq-0034.txtUT Pux dPK)|RAU Barack Obama/tests/if-2006.txtUTPux dPK(|RAxW Barack Obama/tests/if-1881.txtUTPux dPK1|RA2pI"Barack Obama/tests/switch-0151.txtUT-Pux dPK%|RA!QBarack Obama/tests/if-1449.txtUTPux dPK!|RA \c+Barack Obama/tests/if-0245.txtUTPux dPK&|RA)% Barack Obama/tests/Main-0009.txtUTPux dPK'|RABarack Obama/tests/if-1661.txtUTPux dPK&|RAEZ}%Barack Obama/tests/namespace-0029.txtUTPux dPK)|RA@[* Barack Obama/tests/if-1981.txtUTPux dPK |RA+@0 "4Barack Obama/tests/switch-0011.txtUT Pux dPK'|RA82a #Barack Obama/tests/ifeq-0103.txtUTPux dPK-|RA=`7l8NBarack Obama/tests/Spoken Wikipedia boilerplate-0001.txtUT%Pux dPK |RA\ (Barack Obama/tests/tmbox%2Fcore-0001.txtUT Pux dPK!|RAS$"DBarack Obama/tests/switch-0038.txtUTPux dPK0|RArfqx%Barack Obama/tests/namespace-0064.txtUT,Pux dPK)|RA)knBarack Obama/tests/if-2007.txtUTPux dPK |RA, 1Barack Obama/tests/ifeq-0003.txtUT Pux dPK-|RA03OBarack Obama/tests/sec link%2Frelative url-0006.txtUT%Pux dPK)|RA1lsBarack Obama/tests/if-2011.txtUTPux dPK |RAcgn0LBarack Obama/tests/pp%2Dmeta%2Fpagetype-0003.txtUT Pux dPK-|RA&G@ Barack Obama/tests/ifeq-0155.txtUT%Pux dPK'|RAdҩL#Barack Obama/tests/Rellink-0011.txtUTPux dPK |RAbƴgz%Barack Obama/tests/safesubst-0016.txtUT Pux dPK'|RA#khBarack Obama/tests/if-1758.txtUTPux dPK(|RA'ZBarack Obama/tests/if-1906.txtUTPux dPK(|RA}: Barack Obama/tests/if-1840.txtUTPux dPK-|RAcr  Barack Obama/tests/ifeq-0165.txtUT%Pux dPK(|RA Barack Obama/tests/if-1916.txtUTPux dPK'|RA  Barack Obama/tests/Main-0012.txtUTPux dPK%|RAVz# Barack Obama/tests/H%3AIPA-0007.txtUTPux dPK!|RAV\\_f#Barack Obama/tests/padleft-0004.txtUT Pux dPK'|RAL)2Barack Obama/tests/Case preserving encode-0001.txtUTPux dPK)|RA IBarack Obama/tests/if-2008.txtUTPux dPK%|RAgU\ Barack Obama/tests/lc-0034.txtUTPux dPK=RAt_ Barack Obama/tests/ifeq-0008.txtUT6Pux dPK(|RA@6xvsBarack Obama/tests/if-1832.txtUTPux dPK(|RA|ABarack Obama/tests/if-1854.txtUTPux dPK&|RAPBarack Obama/tests/if-1554.txtUTPux dPK'|RAƠ.A"Barack Obama/tests/listen-0001.txtUTPux dPK(|RA&P0Barack Obama/tests/Citation%2Fmake link-0002.txtUTPux dPK%|RA?Barack Obama/tests/if-1421.txtUTPux dPK,|RA`";Barack Obama/tests/switch-0101.txtUT$Pux dPK |RAרޠ6$Barack Obama/tests/if-0011.txtUT Pux dPK-|RA+GW^%Barack Obama/tests/lc-0061.txtUT%Pux dPK-|RAST`n X&Barack Obama/tests/trim-0001.txtUT&Pux dPK*|RA5ak%'Barack Obama/tests/urlencode-0031.txtUTPux dPK(|RAby2'Barack Obama/tests/if-1936.txtUTPux dPK%|RA﹛"(Barack Obama/tests/switch-0067.txtUTPux dPK-|RALn  2Barack Obama/tests/ifeq-0138.txtUT%Pux dPK'|RA+È2Barack Obama/tests/if-1702.txtUTPux dPK=RAsD(> >G3Barack Obama/tests/United States presidential election%2C 2008-0001.txtUT6Pux dPK(|RA LP>Barack Obama/tests/if-1967.txtUTPux dPK'|RA˔,;?Barack Obama/tests/if-1774.txtUTPux dPK(|RA%9tpABarack Obama/tests/if-1843.txtUTPux dPK!|RAB!A Barack Obama/tests/dmoz-0001.txtUT&Pux dPK |RA$)"Barack Obama/tests/switch-0024.txtUT Pux dPK"|RALRJlƉBarack Obama/tests/if-0576.txtUTPux dPK&|RAjT) hBarack Obama/tests/Main-0007.txtUTPux dPK |RA x^l|Barack Obama/tests/ns-0013.txtUT Pux dPK/|RAЌK Zb2Barack Obama/tests/lc-0065.txtUT*Pux dPK,|RA\j"Barack Obama/tests/switch-0100.txtUT#Pux dPK-|RANը Barack Obama/tests/ifeq-0140.txtUT%Pux dPK%|RA|+"Barack Obama/tests/switch-0055.txtUTPux dPK3|RA*&UBarack Obama/tests/transclude-0012.txtUT2Pux dPK&|RAmDBarack Obama/tests/if-1485.txtUTPux dPK!|RACt' Barack Obama/tests/if-0133.txtUT Pux dPK |RA>F%Barack Obama/tests/safesubst-0018.txtUT Pux dPK-|RAΟ %Barack Obama/tests/CongLinks-0001.txtUT&Pux dPK-|RAh%Barack Obama/tests/s%2Dstart-0001.txtUT&Pux dPK'|RAlBarack Obama/tests/if-1740.txtUTPux dPK&|RA/iڛBarack Obama/tests/if-1595.txtUTPux dPK!|RA?u5#9Barack Obama/tests/Infobox officeholder%2FOffice-0004.txtUTPux dPK3|RAĎ"1Barack Obama/tests/switch-0184.txtUT2Pux dPK0|RAQ A"Barack Obama/tests/switch-0141.txtUT+Pux dPK&|RA#mEV#5Barack Obama/tests/Rellink-0005.txtUTPux dPK/|RA+_U#~Barack Obama/tests/s%2Daft-0006.txtUT)Pux dPK)|RA@[Barack Obama/tests/if-2009.txtUTPux dPK4|RA6Fy&Barack Obama/tests/titleparts-0013.txtUT3Pux dPK/|RAF#xBarack Obama/tests/s%2Dbef-0008.txtUT)Pux dPK'|RABarack Obama/tests/if-1736.txtUTPux dPK!|RA| Barack Obama/tests/ifeq-0029.txtUT Pux dPK |RAi~%gBarack Obama/tests/safesubst-0017.txtUT Pux dPK(|RA3]rDBarack Obama/tests/if-1925.txtUTPux dPK!|RANJ#Barack Obama/tests/iferror-0001.txtUT Pux dPK)|RAx{Barack Obama/tests/if-2027.txtUTPux dPK |RA=駊p~ }Barack Obama/tests/ifeq-0017.txtUT Pux dPK,|RA1Lr%GBarack Obama/tests/urlencode-0062.txtUT$Pux dPK1|RA6 Barack Obama/tests/ifeq-0195.txtUT-Pux dPK-|RA\ϰ+sBarack Obama/tests/sec link%2Ftext-0003.txtUT%Pux dPK)|RAK>-hw Barack Obama/tests/ifeq-0123.txtUTPux dPK%|RA]JBarack Obama/tests/if-1461.txtUTPux dPK&|RAjBarack Obama/tests/if-1600.txtUTPux dPK=RA4#JBarack Obama/tests/fullurl-0005.txtUT6Pux dPK(|RAڔ]Barack Obama/tests/if-1966.txtUTPux dPK!|RA3h,IBarack Obama/tests/Featured article-0001.txtUT Pux dPK/|RAz!Barack Obama/tests/small-0008.txtUT)Pux dPK/|RAA!Barack Obama/tests/small-0004.txtUT)Pux dPK&|RA~6x!oBarack Obama/tests/okina-0001.txtUTPux dPK'|RA1BBarack Obama/tests/if-1755.txtUTPux dPK%|RAN4"Barack Obama/tests/switch-0075.txtUTPux dPK%|RA "Barack Obama/tests/switch-0057.txtUTPux dPK1|RAbLWfq"@Barack Obama/tests/switch-0154.txtUT-Pux dPK!|RA DxBarack Obama/tests/if-0103.txtUT Pux dPK(|RA_Oޏ%Barack Obama/tests/urlencode-0012.txtUTPux dPK/|RArA!Barack Obama/tests/small-0013.txtUT)Pux dPK'|RA%mBarack Obama/tests/if-1669.txtUTPux dPK/|RAW!Barack Obama/tests/small-0005.txtUT)Pux dPK&|RAlofr Barack Obama/tests/ifeq-0082.txtUTPux dPK!|RAYX_ `Barack Obama/tests/expr-0004.txtUT Pux dPK%|RAA+˥%Barack Obama/tests/H%3Atitle-0010.txtUTPux dPK-|RA,!az%Barack Obama/tests/Cite book-0003.txtUT%Pux dPK0|RA4fw%Barack Obama/tests/namespace-0050.txtUT+Pux dPK*|RAapbs Barack Obama/tests/ifeq-0128.txtUT Pux dPK'|RAZW6WBarack Obama/tests/if-1782.txtUTPux dPK!|RAuKr4Barack Obama/tests/if-0120.txtUT Pux dPK!|RAc&mBarack Obama/tests/titleparts-0006.txtUT Pux dPK(|RA0Barack Obama/tests/if-1829.txtUTPux dPK4|RAPl_f% Barack Obama/tests/safesubst-0034.txtUT3Pux dPK%|RAQ;"Barack Obama/tests/switch-0062.txtUTPux dPK!|RA\wzBarack Obama/tests/if-0137.txtUT Pux dPK)|RAܲahBarack Obama/tests/if-2039.txtUTPux dPK!|RA[z"Barack Obama/tests/nowrap-0003.txtUT Pux dPK%|RAEyxBarack Obama/tests/if-1408.txtUTPux dPK |RA,iYbBarack Obama/tests/lc-0005.txtUT Pux dPK-|RA\uA 4Barack Obama/tests/ifeq-0152.txtUT%Pux dPK&|RAR #m$~Barack Obama/tests/See also-0002.txtUTPux dPK"|RAm$Barack Obama/tests/if-0803.txtUTPux dPK!|RAH[c&Barack Obama/tests/currentday-0001.txtUT Pux dPK*|RAu%tBarack Obama/tests/urlencode-0033.txtUTPux dPK*|RA8%HBarack Obama/tests/urlencode-0036.txtUT Pux dPK-|RAVKL`!WBarack Obama/tests/space-0001.txtUT&Pux dPK |RAF\c'Barack Obama/tests/NAMESPACEID-0003.txtUT Pux dPK'|RAM#Barack Obama/tests/iferror-0006.txtUTPux dPK/|RAmS!Barack Obama/tests/small-0014.txtUT)Pux dPK&|RA>uG Barack Obama/tests/Main-0008.txtUTPux dPK%|RAe  Barack Obama/tests/if-1407.txtUTPux dPK(|RA$s{%Barack Obama/tests/urlencode-0007.txtUTPux dPK'|RAc-Barack Obama/tests/if-1663.txtUTPux dPK1|RA\猔,"Barack Obama/tests/switch-0153.txtUT-Pux dPK,|RA4i{%Barack Obama/tests/urlencode-0056.txtUT#Pux dPK!|RA_Barack Obama/tests/if-0110.txtUT Pux dPK#|RAF_Ml|Barack Obama/tests/if-1047.txtUTPux dPK'|RA0myBarack Obama/tests/Cws-0001.txtUTPux dPK"|RAeBarack Obama/tests/if-0543.txtUTPux dPK'|RA-*5Barack Obama/tests/if-1698.txtUTPux dPK |RAcҸ^r+Barack Obama/tests/subjectpagename-0003.txtUT Pux dPK"|RA|8Y`uBarack Obama/tests/if-0568.txtUTPux dPK |RAhSZ&Barack Obama/tests/lc-0014.txtUT Pux dPK%|RA䵂Barack Obama/tests/if-1418.txtUTPux dPK/|RAc['!Barack Obama/tests/small-0019.txtUT*Pux dPK'|RA5iBarack Obama/tests/if-1752.txtUTPux dPK(|RAN;SBarack Obama/tests/if-1907.txtUTPux dPK&|RA0Z~Barack Obama/tests/if-1518.txtUTPux dPK1|RA}7X_ sBarack Obama/tests/expr-0016.txtUT-Pux dPK!|RAl%Barack Obama/tests/if-0311.txtUTPux dPK#|RAח>Barack Obama/tests/if-1034.txtUTPux dPK(|RADQ=ABarack Obama/tests/if-1884.txtUTPux dPK/|RAӎ"Barack Obama/tests/switch-0127.txtUT*Pux dPK'|RA񓂉aBarack Obama/tests/if-1709.txtUTPux dPK(|RA>yIBBarack Obama/tests/if-1919.txtUTPux dPK&|RAAF|Barack Obama/tests/if-1553.txtUTPux dPK-|RA{%XBarack Obama/tests/pagenamee-0007.txtUT%Pux dPK+|RA?* +2Barack Obama/tests/Citation%2Fcore-0005.txtUT!Pux dPK.|RA1U## Barack Obama/tests/s%2Dttl-0005.txtUT(Pux dPK%|RAL  Barack Obama/tests/ifeq-0049.txtUTPux dPK4|RA|#2Barack Obama/tests/Link FA-0005.txtUT3Pux dPK!|RAI& Barack Obama/tests/talk other-0001.txtUT Pux dPK(|RACӎBarack Obama/tests/if-1898.txtUTPux dPK!|RAjhBarack Obama/tests/if-0058.txtUT Pux dPK&|RAF;m~*Barack Obama/tests/if-1654.txtUTPux dPK4|RAG/w&Barack Obama/tests/titleparts-0009.txtUT3Pux dPK)|RA26@\jBarack Obama/tests/if-1973.txtUTPux dPK&|RA [6%Barack Obama/tests/namespace-0027.txtUTPux dPK(|RA˝2}yBarack Obama/tests/if-1838.txtUTPux dPK)|RA؜NBarack Obama/tests/if-2040.txtUTPux dPK)|RAOBarack Obama/tests/if-2023.txtUTPux dPK/|RAG`Y!Barack Obama/tests/small-0017.txtUT*Pux dPK"|RAzɜBarack Obama/tests/if-0456.txtUTPux dPK-|RA{qf"zBarack Obama/tests/switch-0112.txtUT%Pux dPK(|RAb|u<Barack Obama/tests/if-1833.txtUTPux dPK0|RAƬ" Barack Obama/tests/switch-0134.txtUT+Pux dPK'|RA)"Barack Obama/tests/switch-0084.txtUTPux dPK'|RAt6!Barack Obama/tests/if-1777.txtUTPux dPK+|RA$]k%"Barack Obama/tests/urlencode-0051.txtUT"Pux dPK&|RAa#"Barack Obama/tests/Rellink-0001.txtUTPux dPK!|RA= #Barack Obama/tests/if-0083.txtUT Pux dPK&|RAX8 >%Barack Obama/tests/ifeq-0097.txtUTPux dPK0|RAMX#0^o%u&Barack Obama/tests/namespace-0045.txtUT+Pux dPK'|RAY3z2'Barack Obama/tests/if-1747.txtUTPux dPK!|RAj}(Barack Obama/tests/if-0021.txtUT Pux dPK(|RApO#(Barack Obama/tests/iferror-0009.txtUTPux dPK.|RA7&#)Barack Obama/tests/ifexist-0005.txtUT(Pux dPK |RA H "+Barack Obama/tests/switch-0022.txtUT Pux dPK!|RA%,Barack Obama/tests/if-0359.txtUTPux dPK4|RAnt .Barack Obama/tests/ifeq-0268.txtUT3Pux dPK |RAnSZ/Barack Obama/tests/ns-0007.txtUT Pux dPK |RAfmu%U0Barack Obama/tests/safesubst-0006.txtUT Pux dPK$|RA1!1Barack Obama/tests/if-1167.txtUTPux dPK%|RA@ho5U2Barack Obama/tests/IPAc%2Den%2Fpronunciation-0005.txtUTPux dPK'|RA.S,3Barack Obama/tests/if-1711.txtUTPux dPK$|RAbh/4Barack Obama/tests/if-1191.txtUTPux dPK*|RA][b 5Barack Obama/tests/ifeq-0126.txtUTPux dPK"|RAW6Barack Obama/tests/if-0483.txtUTPux dPK"|RAwHz7Barack Obama/tests/if-0477.txtUTPux dPK'|RAAh{m8Barack Obama/tests/if-1779.txtUTPux dPK'|RAgT[-9Barack Obama/tests/ns-0028.txtUTPux dPK(|RA݅݁9Barack Obama/tests/if-1926.txtUTPux dPK!|RA2h:Barack Obama/tests/if-0024.txtUT Pux dPK$|RAẌэr;Barack Obama/tests/if-1268.txtUTPux dPK'|RAoO3l}%W=Barack Obama/tests/namespace-0034.txtUTPux dPK3|RAu7f ">Barack Obama/tests/ifeq-0255.txtUT2Pux dPK-|RA W^2?Barack Obama/tests/lc-0055.txtUT%Pux dPK'|RA% ?Barack Obama/tests/if-1811.txtUTPux dPK0|RAsip%@Barack Obama/tests/namespace-0059.txtUT,Pux dPK#|RAsABarack Obama/tests/if-1016.txtUTPux dPK&|RAymBBarack Obama/tests/if-1481.txtUTPux dPK'|RAh {CBarack Obama/tests/if-1775.txtUTPux dPK(|RAYodksDBarack Obama/tests/if-1913.txtUTPux dPK#|RA,UEBarack Obama/tests/if-0841.txtUTPux dPK'|RAc8tFBarack Obama/tests/if-1693.txtUTPux dPK&|RAkF aGBarack Obama/tests/ifeq-0093.txtUTPux dPK'|RADgyHBarack Obama/tests/if-1762.txtUTPux dPK%|RA1eWIBarack Obama/tests/if-1436.txtUTPux dPK'|RAh@=JBarack Obama/tests/if-1801.txtUTPux dPK-|RAj-w#KBarack Obama/tests/lcfirst-0005.txtUT%Pux dPK"|RA/.KBarack Obama/tests/if-0682.txtUTPux dPK-|RA~2-MBarack Obama/tests/Case preserving encode-0007.txtUT%Pux dPK%|RAm5%NBarack Obama/tests/H%3Atitle-0011.txtUTPux dPK%|RAVTOBarack Obama/tests/if-1370.txtUTPux dPK)|RA-tDt}%'PBarack Obama/tests/urlencode-0022.txtUTPux dPK!|RAVNPBarack Obama/tests/if-0336.txtUTPux dPK)|RAShRBarack Obama/tests/if-2044.txtUTPux dPK3|RAc+fn eSBarack Obama/tests/ifeq-0246.txtUT1Pux dPK%|RAff"x%TBarack Obama/tests/if-1405.txtUTPux dPK"|RA59(VBarack Obama/tests/Infobox officeholder%2FOffice-0005.txtUTPux dPK#|RAXIXBarack Obama/tests/if-0876.txtUTPux dPK |RAPgYBarack Obama/tests/if-0009.txtUT Pux dPK2|RA %sZBarack Obama/tests/namespace-0074.txtUT/Pux dPK-|RA[k*^[Barack Obama/tests/sec link image-0003.txtUT%Pux dPK(|RAH/uO\Barack Obama/tests/if-1940.txtUTPux dPK |RA7h"]Barack Obama/tests/switch-0018.txtUT Pux dPK'|RA;7T^Barack Obama/tests/if-1810.txtUTPux dPK!|RA_Barack Obama/tests/if-0361.txtUTPux dPK"|RAڦaBarack Obama/tests/if-0779.txtUTPux dPK)|RA+4bBarack Obama/tests/if-2042.txtUTPux dPK!|RA/er cBarack Obama/tests/if-0049.txtUT Pux dPK/|RAa\fmeBarack Obama/tests/lc-0067.txtUT*Pux dPK |RA>J!fBarack Obama/tests/if-0014.txtUT Pux dPK4|RAJ[ٴ:& gBarack Obama/tests/Persondata-0001.txtUT3Pux dPK)|RAwiBarack Obama/tests/if-2037.txtUTPux dPK%|RAJ%jBarack Obama/tests/H%3Atitle-0019.txtUTPux dPK'|RA |kBarack Obama/tests/if-1738.txtUTPux dPK |RAhbtkBarack Obama/tests/ns-0021.txtUT Pux dPK%|RAv'vplBarack Obama/tests/if-1419.txtUTPux dPK!|RAAnBarack Obama/tests/if-0391.txtUTPux dPK%|RAɆ#nBarack Obama/tests/H%3AIPA-0013.txtUTPux dPK%|RA}2W^pBarack Obama/tests/lc-0031.txtUTPux dPK$|RAhxpBarack Obama/tests/if-1305.txtUTPux dPK!|RAM$ uqBarack Obama/tests/ifeq-0031.txtUT Pux dPK%|RAI%PrBarack Obama/tests/H%3Atitle-0020.txtUTPux dPK(|RAvuQsBarack Obama/tests/if-1825.txtUTPux dPK%|RAx+tBarack Obama/tests/if-1467.txtUTPux dPK'|RAܛ0JuBarack Obama/tests/if-1764.txtUTPux dPK'|RAJ2vBarack Obama/tests/if-1662.txtUTPux dPK-|RA3s:2wBarack Obama/tests/Case preserving encode-0004.txtUT%Pux dPK$|RAf"6An}xBarack Obama/tests/if-1164.txtUTPux dPK |RAf^lzBarack Obama/tests/lc-0002.txtUT Pux dPK3|RAcIX_ zBarack Obama/tests/expr-0023.txtUT2Pux dPK(|RApu~{Barack Obama/tests/if-1951.txtUTPux dPK&|RAug=FwK|Barack Obama/tests/if-1510.txtUTPux dPK(|RAU|rs}Barack Obama/tests/if-1844.txtUTPux dPK.|RAns{.}Barack Obama/tests/S%2Dpar%2Fus%2Dsen-0001.txtUT(Pux dPK(|RAj~Barack Obama/tests/if-1821.txtUTPux dPK&|RAjAmBarack Obama/tests/if-1496.txtUTPux dPK!|RA_a%Barack Obama/tests/safesubst-0019.txtUT Pux dPK!|RAy9 Barack Obama/tests/ifeq-0033.txtUT Pux dPK!|RAJ.{MBarack Obama/tests/if-0335.txtUTPux dPK'|RA!XgʃBarack Obama/tests/if-1761.txtUTPux dPK!|RA*τzBarack Obama/tests/if-0393.txtUTPux dPK!|RA mLZdZBarack Obama/tests/lc-0027.txtUT Pux dPK!|RAR Barack Obama/tests/if-0437.txtUTPux dPK&|RA(;)Barack Obama/tests/if-1540.txtUTPux dPK&|RAdh% Barack Obama/tests/namespace-0025.txtUTPux dPK(|RAxckBarack Obama/tests/if-1883.txtUTPux dPK!|RAxBarack Obama/tests/if-0119.txtUT Pux dPK&|RALSiBarack Obama/tests/if-1592.txtUTPux dPK/|RAAf!Barack Obama/tests/small-0020.txtUT*Pux dPK%|RA@Barack Obama/tests/if-1358.txtUTPux dPK!|RAt ]RBarack Obama/tests/if-0331.txtUTPux dPK(|RA .rBarack Obama/tests/if-1956.txtUTPux dPK |RA&"UBarack Obama/tests/switch-0028.txtUT Pux dPK&|RA~בBarack Obama/tests/if-1570.txtUTPux dPK!|RAP|Barack Obama/tests/if-0353.txtUTPux dPK*|RAկd_g%Barack Obama/tests/urlencode-0032.txtUTPux dPK |RA>|Bt RBarack Obama/tests/ifeq-0018.txtUT Pux dPK!|RAA]u Barack Obama/tests/if-0395.txtUTPux dPK&|RAthBarack Obama/tests/if-1539.txtUTPux dPK"|RAy_fx͗Barack Obama/tests/if-0728.txtUTPux dPK&|RAttzBarack Obama/tests/if-1552.txtUTPux dPK/|RApX`#]Barack Obama/tests/s%2Dend-0001.txtUT)Pux dPK4|RAO5ebi+Barack Obama/tests/Ns has subpages-0003.txtUT3Pux dPK#|RA^kxٚBarack Obama/tests/if-0870.txtUTPux dPK-|RAwF~,Barack Obama/tests/Spoken Wikipedia-0001.txtUT%Pux dPK |RAh\o(Barack Obama/tests/basepagename-0002.txtUT Pux dPK2|RA|2p{">Barack Obama/tests/switch-0175.txtUT0Pux dPK |RA2|J" Barack Obama/tests/switch-0009.txtUT Pux dPK/|RAZ!Barack Obama/tests/small-0012.txtUT)Pux dPK |RA: Barack Obama/tests/ifeq-0007.txtUT Pux dPK+|RAiWh({)ޣBarack Obama/tests/only in print-0002.txtUT"Pux dPK"|RAݹ9Barack Obama/tests/if-0795.txtUTPux dPK!|RA玫Barack Obama/tests/if-0142.txtUT Pux dPK,|RA`p)Barack Obama/tests/fullpagenamee-0007.txtUT#Pux dPK-|RAv<6 WBarack Obama/tests/ifeq-0149.txtUT%Pux dPK-|RAu#MBarack Obama/tests/lcfirst-0009.txtUT%Pux dPK$|RAKfBarack Obama/tests/if-1189.txtUTPux dPK%|RAIªBarack Obama/tests/if-1364.txtUTPux dPK%|RA6UBarack Obama/tests/if-1465.txtUTPux dPK%|RA bpìBarack Obama/tests/if-1429.txtUTPux dPK'|RAH}Barack Obama/tests/if-1684.txtUTPux dPK/|RASb!UBarack Obama/tests/small-0003.txtUT)Pux dPK$|RAܳ=1Barack Obama/tests/if-1094.txtUTPux dPK!|RA+k5`gQBarack Obama/tests/if-0328.txtUTPux dPK%|RAf*L Barack Obama/tests/if-1406.txtUTPux dPK/|RAE#Barack Obama/tests/s%2Dach-0001.txtUT)Pux dPK"|RA Y`Barack Obama/tests/if-0488.txtUTPux dPK/|RA0b"aBarack Obama/tests/switch-0126.txtUT*Pux dPK%|RA+  Barack Obama/tests/ifeq-0067.txtUTPux dPK&|RAfLBarack Obama/tests/if-1555.txtUTPux dPK!|RA2+ؽBarack Obama/tests/isValidPageName-0001.txtUT Pux dPK |RAL|/ԾBarack Obama/tests/Editnotice pagename-0003.txtUT Pux dPK |RAPdmt%Barack Obama/tests/safesubst-0012.txtUT Pux dPK%|RAs*Barack Obama/tests/if-1466.txtUTPux dPK'|RAxd  Barack Obama/tests/ifeq-0100.txtUTPux dPK%|RAG!Barack Obama/tests/if-1450.txtUTPux dPK3|RA] Barack Obama/tests/ifeq-0261.txtUT2Pux dPK$|RA8SҶOBarack Obama/tests/if-1271.txtUTPux dPK-|RA3\d+]Barack Obama/tests/contentlanguage-0003.txtUT%Pux dPK%|RA^0 a^Barack Obama/tests/if-1356.txtUTPux dPK3|RAP92U"Barack Obama/tests/switch-0177.txtUT2Pux dPK0|RA\6F"Barack Obama/tests/switch-0147.txtUT,Pux dPK$|RAFjw4Barack Obama/tests/if-1175.txtUTPux dPK%|RAѫ- Barack Obama/tests/ifeq-0073.txtUTPux dPK(|RAbzt3Barack Obama/tests/if-1952.txtUTPux dPK&|RAap[c(Barack Obama/tests/subjectspace-0008.txtUTPux dPK(|RA[wBarack Obama/tests/if-1895.txtUTPux dPK$|RABarack Obama/tests/if-1118.txtUTPux dPK-|RAޤXk$Barack Obama/tests/pagename-0020.txtUT&Pux dPK'|RAh(Z _Barack Obama/tests/ifeq-0108.txtUTPux dPK(|RAWP-yBarack Obama/tests/if-1876.txtUTPux dPK$|RAtvBarack Obama/tests/if-1110.txtUTPux dPK4|RA%磇 WBarack Obama/tests/ifeq-0270.txtUT3Pux dPK&|RA# 8Barack Obama/tests/Main-0001.txtUTPux dPK4|RAyx&DBarack Obama/tests/titleparts-0024.txtUT3Pux dPK0|RA\c Barack Obama/tests/expr-0015.txtUT,Pux dPK"|RAAHQBarack Obama/tests/if-0515.txtUTPux dPK"|RA3&Barack Obama/tests/if-0473.txtUTPux dPK&|RAi U~Barack Obama/tests/if-1504.txtUTPux dPK.|RA1L%w#Barack Obama/tests/s%2Dttl-0002.txtUT'Pux dPK(|RAT3oBarack Obama/tests/if-1969.txtUTPux dPK3|RAwL Y`%QBarack Obama/tests/namespace-0095.txtUT2Pux dPK%|RA+  Barack Obama/tests/ifeq-0074.txtUTPux dPK'|RA1LgbjBarack Obama/tests/if-1806.txtUTPux dPK%|RA-mBarack Obama/tests/if-1472.txtUTPux dPK$|RAT0X_dBarack Obama/tests/if-1154.txtUTPux dPK(|RA_vBarack Obama/tests/if-1831.txtUTPux dPK)|RA=DBarack Obama/tests/if-2014.txtUTPux dPK&|RA B1mBarack Obama/tests/if-1497.txtUTPux dPK"|RA^Barack Obama/tests/if-0614.txtUTPux dPK)|RA̖d{Barack Obama/tests/if-2005.txtUTPux dPK2|RAΰf 7Barack Obama/tests/ifeq-0216.txtUT/Pux dPK(|RAZd HBarack Obama/tests/if-1875.txtUTPux dPK |RAq;C")Barack Obama/tests/switch-0025.txtUT Pux dPK(|RAhGBarack Obama/tests/if-1871.txtUTPux dPK!|RAY&Barack Obama/tests/if-0228.txtUTPux dPK'|RA0U\Barack Obama/tests/lc-0041.txtUTPux dPK'|RAj"Barack Obama/tests/switch-0086.txtUTPux dPK!|RA_CVwBarack Obama/tests/if-0168.txtUT Pux dPK#|RAD5"xBarack Obama/tests/switch-0045.txtUTPux dPK!|RA Barack Obama/tests/if-0178.txtUT Pux dPK/|RASJ{+"Barack Obama/tests/switch-0124.txtUT*Pux dPK!|RAmQBarack Obama/tests/if-0389.txtUTPux dPK'|RA:Za%Barack Obama/tests/urlencode-0003.txtUTPux dPK!|RA~Barack Obama/tests/if-0100.txtUT Pux dPK&|RA[~zBarack Obama/tests/if-1527.txtUTPux dPK0|RA}) g&PBarack Obama/tests/transclude-0002.txtUT+Pux dPK#|RAUhvBarack Obama/tests/if-0992.txtUTPux dPK!|RAi]T[Barack Obama/tests/%21-0040.txtUTPux dPK&|RAtBarack Obama/tests/if-1621.txtUTPux dPK(|RAv"niwPBarack Obama/tests/if-1869.txtUTPux dPK&|RAckxBarack Obama/tests/if-1603.txtUTPux dPK2|RAδ"Barack Obama/tests/switch-0162.txtUT/Pux dPK2|RAnw%)Barack Obama/tests/namespace-0076.txtUT/Pux dPK-|RAeRY Barack Obama/tests/%21-0090.txtUT%Pux dPK%|RAnVd Barack Obama/tests/ifeq-0043.txtUTPux dPK#|RA=e&KBarack Obama/tests/if-0999.txtUTPux dPK(|RA7%Barack Obama/tests/urlencode-0015.txtUTPux dPK%|RA~Barack Obama/tests/if-1382.txtUTPux dPK/|RAO Barack Obama/tests/Icon-0002.txtUT*Pux dPK!|RABarack Obama/tests/if-0294.txtUTPux dPK!|RAʕBarack Obama/tests/if-0382.txtUTPux dPK!|RAzƓ\o(Barack Obama/tests/fullpagename-0005.txtUT Pux dPK4|RAYZa ZBarack Obama/tests/expr-0031.txtUT3Pux dPK$|RAP^Barack Obama/tests/if-1199.txtUTPux dPK |RA"Barack Obama/tests/switch-0016.txtUT Pux dPK%|RAؾ Barack Obama/tests/ifeq-0045.txtUTPux dPK#|RAfBarack Obama/tests/if-0980.txtUTPux dPK!|RA̢iBarack Obama/tests/if-0289.txtUTPux dPK%|RAH:>"m Barack Obama/tests/switch-0056.txtUTPux dPK0|RAdt  Barack Obama/tests/ifeq-0177.txtUT+Pux dPK4|RAWZa } Barack Obama/tests/expr-0026.txtUT3Pux dPK$|RA_31 Barack Obama/tests/if-1100.txtUTPux dPK2|RA}id"G Barack Obama/tests/switch-0165.txtUT0Pux dPK-|RAeZ5 "sBarack Obama/tests/switch-0109.txtUT%Pux dPK%|RA$CQ nBarack Obama/tests/ifeq-0059.txtUTPux dPK-|RA% ݊"Barack Obama/tests/switch-0107.txtUT%Pux dPK%|RA$oBarack Obama/tests/if-1371.txtUTPux dPK"|RAqy^Barack Obama/tests/if-0781.txtUTPux dPK#|RA^{~Barack Obama/tests/if-1008.txtUTPux dPK$|RAQBarack Obama/tests/if-1292.txtUTPux dPK(|RAƊBarack Obama/tests/if-1909.txtUTPux dPK!|RAX"cBarack Obama/tests/switch-0035.txtUT Pux dPK&|RA7k%~Barack Obama/tests/if-1583.txtUTPux dPK%|RA>Q nBarack Obama/tests/ifeq-0075.txtUTPux dPK$|RAr\cBarack Obama/tests/if-1261.txtUTPux dPK%|RAҸmTBarack Obama/tests/if-1474.txtUTPux dPK4|RA*Za Barack Obama/tests/expr-0034.txtUT3Pux dPK3|RAķ?]dBarack Obama/tests/ns-0055.txtUT2Pux dPK1|RAafo Barack Obama/tests/ifeq-0204.txtUT.Pux dPK3|RA* BBarack Obama/tests/ifeq-0256.txtUT2Pux dPK ]RAA5Barack Obama/resources/UTRPux dPK'|RA> PBarack Obama/resources/retrieveWikitext-Template%3AWikisource-467561121.wikitextUTPux dPK!|RARYy~I Barack Obama/resources/retrieveWikitext-Template%3AAge-388442082.wikitextUT Pux dPK'|RA L !Barack Obama/resources/retrieveWikitext-Template%3AListen-354784134.wikitextUTPux dPK1|RAߜd= 'q$Barack Obama/resources/retrieveWikitext-Template%3AUnited_States_presidential_election%2C_2008-478723644.wikitextUT-Pux dPK-|RA@:P/Barack Obama/resources/retrieveWikitext-Template%3AMain_other-388689011.wikitextUT%Pux dPK 4|RA ^9cW1Barack Obama/resources/retrieveWikitext-Category%3AUse_mdy_dates_from_March_2012-479289464.wikitextUT3Pux dPK -|RAMJMf!!I2Barack Obama/resources/retrieveWikitext-Template%3ANs0-323931230.wikitextUT%Pux dPK |RAV2Q2Barack Obama/resources/retrieveWikitext-Template%3ANAMESPACEID-335983735.wikitextUT Pux dPK/|RA)'\MQ4Barack Obama/resources/retrieveWikitext-Template%3AS%2Dbef-400437299.wikitextUT)Pux dPK/|RA$$*M5Barack Obama/resources/retrieveWikitext-Template%3AS%2Dend-388747631.wikitextUT)Pux dPK2|RA`ܿq`6Barack Obama/resources/retrieveWikitext-Template%3AUnited_States_presidential_election%2C_2012-480018262.wikitextUT0Pux dPK!|RA2V?Barack Obama/resources/retrieveWikitext-Template%3AFeatured_article-449206047.wikitextUT Pux dPK,|RA$]O&ABarack Obama/resources/retrieveWikitext-Template%3ACite_book-475380981.wikitextUT#Pux dPK2|RA_joLL HBarack Obama/resources/retrieveWikitext-Template%3ANavbox-480127588.wikitextUT0Pux dPK,|RATmSPBarack Obama/resources/retrieveWikitext-Template%3AHide_in_print-388689196.wikitextUT$Pux dPK)|RA) -DNgQBarack Obama/resources/retrieveWikitext-Template%3ACite_web-479008823.wikitextUTPux dPK'|RAV[N3XBarack Obama/resources/retrieveWikitext-Template%3ASide_box-388749168.wikitextUTPux dPKRAfMQXZBarack Obama/resources/fileUrl-File%3AEn%2Dus%2DBarack%2DHussein%2DObama%2Eogg--1--1.txtUTPux dPK |RA.GZZBarack Obama/resources/retrieveWikitext-Template%3APp%2Dmeta%2Fpagetype-408663526.wikitextUT Pux dPK!|RAMYU\Barack Obama/resources/retrieveWikitext-Template%3AIsValidPageName-449180729.wikitextUT Pux dPK3|RA|P\Barack Obama/resources/retrieveWikitext-Template%3ATransclude-275377931.wikitextUT2Pux dPK0|RAVޡSV^Barack Obama/resources/retrieveWikitext-Template%3AUS_Presidents-461611553.wikitextUT,Pux dPK/|RAo |KaBarack Obama/resources/retrieveWikitext-Template%3ASmall-469489326.wikitextUT*Pux dPK%|RAw7n S5cbBarack Obama/resources/retrieveWikitext-Template%3AInfobox_officeholder%2FOffice-471470529.wikitextUTPux dPK-|RA@SlBarack Obama/resources/retrieveWikitext-Template%3ASec_link_auto-453368217.wikitextUT%Pux dPK/|RA+yruM]nBarack Obama/resources/retrieveWikitext-Template%3AS%2Doff-429827592.wikitextUT)Pux dPK/|RAXt"(IYoBarack Obama/resources/retrieveWikitext-Template%3A%21-113778758.wikitextUT*Pux dPK -|RA^ doBarack Obama/resources/retrieveWikitext-Template%3APortal%2FImages%2FBarack_obama-473102656.wikitextUT%Pux dPK!|RA!ngobpBarack Obama/resources/retrieveWikitext-Template%3ACategory_handler%2Fblacklist-454450736.wikitextUT Pux dPK |RAF̡DLMrBarack Obama/resources/retrieveWikitext-Template%3AHatnote-450301204.wikitextUT Pux dPK%|RA&Uj{sBarack Obama/resources/retrieveWikitext-Template%3AInfobox_officeholder%2FPersonal_data-471470392.wikitextUTPux dPK |RAOyBarack Obama/resources/retrieveWikitext-Template%3APp%2Dmeta-464019952.wikitextUT Pux dPK%|RA&.c_ZBarack Obama/resources/retrieveWikitext-Template%3ABr_separated_entries-393533492.wikitextUTPux dPK-|RAg] KBarack Obama/resources/retrieveWikitext-Template%3ASpace-455998035.wikitextUT&Pux dPK3|RAwႪWLTBarack Obama/resources/retrieveWikitext-Template%3ANavbar-478598159.wikitextUT2Pux dPK-|RATaSBarack Obama/resources/retrieveWikitext-Template%3APortal%2Fcore-453518805.wikitextUT%Pux dPK.|RAa[MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dpar-434439806.wikitextUT(Pux dPK%|RA}gexLlBarack Obama/resources/retrieveWikitext-Template%3ANowrap-462345338.wikitextUTPux dPK-|RA&x)VWBarack Obama/resources/retrieveWikitext-Template%3ASpoken_Wikipedia-354552244.wikitextUT%Pux dPK |RAK nR_Barack Obama/resources/retrieveWikitext-Template%3ATmbox%2Fcore-388762227.wikitextUT Pux dPK4|RA 5:J Barack Obama/resources/retrieveWikitext-Template%3ADMCA-296800547.wikitextUT3Pux dPK,|RA[Barack Obama/resources/retrieveWikitext-Template%3ACitation%2Fidentifier-480540829.wikitextUT$Pux dPK!|RA8rOBarack Obama/resources/retrieveWikitext-Template%3AMONTHNAME-388698949.wikitextUT Pux dPK4|RAIpP F`ABarack Obama/resources/retrieveWikitext-Template%3ADated_maintenance_category-395262236.wikitextUT3Pux dPK%|RAr 'OBarack Obama/resources/retrieveWikitext-Template%3AH%3Atitle-338632557.wikitextUTPux dPK |RAjvgBarack Obama/resources/retrieveWikitext-Template%3AEditnotices%2FPage%2FBarack_Obama-371580817.wikitextUT Pux dPK%|RA_)Barack Obama/resources/retrieveWikitext-Template%3AIPAc%2Den%2Fpronunciation-461500127.wikitextUTPux dPK |RA)lLYBarack Obama/resources/retrieveWikitext-Template%3AEditnotice_pagename-411560407.wikitextUT Pux dPK,|RAJgUBarack Obama/resources/retrieveWikitext-Template%3ACitation%2Fcore-478437054.wikitextUT#Pux dPK,|RAoFZhBarack Obama/resources/retrieveWikitext-Template%3ACitation%2Fmake_link-406462373.wikitextUT#Pux dPK -|RA__]BBarack Obama/resources/retrieveWikitext-Template%3AS%2Dpar%2Fus%2Dil%2Dsen-473271649.wikitextUT&Pux dPK-|RA.JBarack Obama/resources/retrieveWikitext-Template%3ADmoz-440606185.wikitextUT&Pux dPK!|RAQUHBarack Obama/resources/retrieveWikitext-Template%3APx-410486713.wikitextUT Pux dPK!|RAJ VHBarack Obama/resources/retrieveWikitext-Template%3ACategory_handler-453355390.wikitextUT Pux dPK%|RA7S OBarack Obama/resources/retrieveWikitext-Template%3AIPAc%2Den-461500297.wikitextUTPux dPK'|RA]\LʼBarack Obama/resources/retrieveWikitext-Template%3ASister-452671724.wikitextUTPux dPK-|RA<]gBarack Obama/resources/retrieveWikitext-Template%3ASec_link%2Frelative_url-467220040.wikitextUT%Pux dPK4|RAמNBarack Obama/resources/retrieveWikitext-Template%3AParmPart-476676324.wikitextUT3Pux dPK-|RAZ2 ZBarack Obama/resources/retrieveWikitext-Template%3ASister_project_links-466453459.wikitextUT%Pux dPK-|RA .6}|MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dppo-429828108.wikitextUT&Pux dPK-|RAHTBarack Obama/resources/retrieveWikitext-Template%3ASec_link_image-453369178.wikitextUT%Pux dPK-|RAsB@n LEBarack Obama/resources/retrieveWikitext-Template%3APortal-471379019.wikitextUT%Pux dPK |RA@iP Barack Obama/resources/retrieveWikitext-Template%3AEditnotice-475628278.wikitextUT Pux dPK-|RAV UbBarack Obama/resources/retrieveWikitext-Template%3ASec_link%2Ftext-388748413.wikitextUT%Pux dPK4|RA_QPGOMBarack Obama/resources/retrieveWikitext-Template%3ALink_GA-388697768.wikitextUT3Pux dPK(|RAwkOBarack Obama/resources/retrieveWikitext-Template%3ACite_news-475381670.wikitextUTPux dPK RAgBarack Obama/resources/fileUrl-Media%3A050111_Osama_Bin_Laden_Death_Statement_audioonly%2Eogg--1--1.txtUTPux dPK&|RA`KBarack Obama/resources/retrieveWikitext-Template%3AOkina-463516686.wikitextUTPux dPK!|RA\WQBarack Obama/resources/retrieveWikitext-Template%3AIf_pagename-388690888.wikitextUT Pux dPK |RAm~/YNBarack Obama/resources/retrieveWikitext-Template%3APagetype-388146757.wikitextUT Pux dPK,|RAFFOSoBarack Obama/resources/retrieveWikitext-Template%3AOnly_in_print-306661840.wikitextUT$Pux dPK-|RAWve\BBarack Obama/resources/retrieveWikitext-Template%3ACase_preserving_encode-425906243.wikitextUT%Pux dPK&|RAߪtI=Barack Obama/resources/retrieveWikitext-Template%3AIPA-177913359.wikitextUTPux dPK/|RASBP* M4Barack Obama/resources/retrieveWikitext-Template%3AS%2Dttl-400886355.wikitextUT)Pux dPK/|RAk_MBarack Obama/resources/retrieveWikitext-Template%3AS%2Dach-429824799.wikitextUT)Pux dPK'|RA͟gM3Barack Obama/resources/retrieveWikitext-Template%3ARellink-387212324.wikitextUTPux dPK/|RA#CM!Barack Obama/resources/retrieveWikitext-Template%3AS%2Daft-400496350.wikitextUT)Pux dPK'|RAoIVSvBarack Obama/resources/retrieveWikitext-Template%3AListen%2Fcore-463076521.wikitextUTPux dPK/|RAw M Barack Obama/resources/retrieveWikitext-Template%3AS%2Dinc-388145750.wikitextUT)Pux dPK*|RATBarack Obama/resources/retrieveWikitext-Template%3AColumn%2Dwidth-433980078.wikitextUT Pux dPK!|RAeRN^QBarack Obama/resources/retrieveWikitext-Template%3AMONTHNUMBER-388698933.wikitextUT Pux dPK!|RA я)aBarack Obama/resources/retrieveWikitext-Template%3ACategory_handler%2Fnumbered-453215508.wikitextUT Pux dPK |RAu6WBarack Obama/resources/retrieveWikitext-Template%3APp%2Dmove%2Dindef-315441384.wikitextUT Pux dPK'|RAq.MBarack Obama/resources/retrieveWikitext-Template%3ACite_WS-420857807.wikitextUTPux dPK '|RAjIBarack Obama/resources/retrieveWikitext-Template%3ACws-420039818.wikitextUTPux dPK .|RAW̭XBarack Obama/resources/retrieveWikitext-Template%3AS%2Dpar%2Fus%2Dsen-434258101.wikitextUT(Pux dPK RA,J=Barack Obama/resources/retrieveWikitext-Template%3AMain-424831235.wikitextUT$Pux dPK |RA˶gUfBarack Obama/resources/retrieveWikitext-Template%3APp%2Dsemi%2Dblp-388325210.wikitextUT Pux dPK-|RA•yb\Barack Obama/resources/retrieveWikitext-Template%3ASpoken_Wikipedia_boilerplate-464197403.wikitextUT%Pux dPK/|RAbs !RBarack Obama/resources/retrieveWikitext-Template%3ABarack_Obama-473272355.wikitextUT)Pux dPK%|RAPiZBarack Obama/resources/retrieveWikitext-Template%3ABarack_Obama_sidebar-468832193.wikitextUTPux dPK |RA@ɠh^@KBarack Obama/resources/retrieveWikitext-Template%3AFmbox-388140456.wikitextUT Pux dPK4|RA=CW Barack Obama/resources/retrieveWikitext-Template%3AAuthority_control-473270543.wikitextUT3Pux dPK |RA*mn PGBarack Obama/resources/retrieveWikitext-Template%3ATalk_other-388689000.wikitextUT Pux dPK!|RA**-NBarack Obama/resources/retrieveWikitext-Template%3ATop_icon-439427414.wikitextUT Pux dPK!|RAiuX\Barack Obama/resources/retrieveWikitext-Template%3ABirth_date_and_age-479816119.wikitextUT Pux dPK!|RAp/OZBarack Obama/resources/retrieveWikitext-Template%3AInfobox_officeholder-466519179.wikitextUT Pux dPK4|RA%륜V^+Barack Obama/resources/retrieveWikitext-Template%3AFULLROOTPAGENAME-476439833.wikitextUT3Pux dPK4|RA;C*U,Barack Obama/resources/retrieveWikitext-Template%3ANs_has_subpages-359825133.wikitextUT3Pux dPK'|RAB S uN-Barack Obama/resources/retrieveWikitext-Template%3ASee_also-443612426.wikitextUTPux dPK/|RA5MXJS0Barack Obama/resources/retrieveWikitext-Template%3AIcon-454102043.wikitextUT*Pux dPK4|RABvP6Barack Obama/resources/retrieveWikitext-Template%3APersondata-442579427.wikitextUT3Pux dPK-|RAk>O8Barack Obama/resources/retrieveWikitext-Template%3AS%2Dstart-345623316.wikitextUT&Pux dPK |RA+W$:Barack Obama/resources/retrieveWikitext-Template%3AActive_editnotice-467311378.wikitextUT Pux dPK!|RAiV;Barack Obama/resources/retrieveWikitext-Template%3ANamespace_detect-388733912.wikitextUT Pux dPK4|RA @IQMP>Barack Obama/resources/retrieveWikitext-Template%3ALink_FA-388697746.wikitextUT3Pux dPK.|RAӑQjJ ?Barack Obama/resources/retrieveWikitext-Template%3ATrim-412919929.wikitextUT(Pux dPK4|RAU7COS?Barack Obama/resources/retrieveWikitext-Template%3AUse_mdy_dates-452222148.wikitextUT3Pux dPK-|RA=fG O@Barack Obama/resources/retrieveWikitext-Template%3ACongLinks-470146352.wikitextUT%Pux dPK'|RAj MEBarack Obama/resources/retrieveWikitext-Template%3AReflist-441597376.wikitextUTPux dPK%|RA' MGBarack Obama/resources/retrieveWikitext-Template%3AH%3AIPA-480108660.wikitextUTPux dPK |RA AK,QBarack Obama/resources/retrieveWikitext-Template%3ATmbox-388085963.wikitextUT Pux dPK/|RAAcraLYSBarack Obama/resources/retrieveWikitext-Template%3A%C2%B7-405160034.wikitextUT*Pux dPKAA5kTNOTICE000066400000000000000000000006661335270560400414740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/mass-expansionThe articles in this directory are taken from the English Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The title and revision of the respective articles is encoded in the filenames. index000066400000000000000000000000001335270560400416000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/mass-expansionoutput/000077500000000000000000000000001335270560400371535ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/enginewikitext/000077500000000000000000000000001335270560400410235ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/outputexp-Help%3ATable.wikitext000066400000000000000000002260411335270560400455050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/output/wikitext

    Wiki markup
    [[Wikipedia:Cheatsheet|Basic markup]]
    [[Help:Wiki markup|Text, links, and talk pages]]
    [[Help:Visual file markup|Visual files]]
    [[Help:Sound file markup|Sound files]]
    [[Help:Table|Tables]]
    [[Help:Template|Template editing]]
    [[Help:HTML in wikitext|Using HTML]]
    A '''wikitable''' is an arrangement of columns and rows used to organize and position data. Tables are useful for this purpose and there are many different styles and tricks that can be used to customise each. This page gives you information about syntax to build wikitables in Wikipedia. == Using the toolbar == [[File:Advanced toolbar of vector skin.png|frame|center|Vector toolbar - default]] [[File:Toolbar2.PNG|frame|center|Monobook toolbar]] To automatically insert a table, click [[File:Vector toolbar insert table button.png]] or [[File:Button insert table.png]] (Insert a table) on the [[Help:Edit toolbar|edit toolbar]]. If "Insert a table" is not on the toolbar follow [[mw:Customizing edit toolbar|these directions]] to add it. The following text is inserted when '''Insert a table''' is clicked:
    {| class="wikitable"
    |-
    ! Header 1
    ! Header 2
    ! Header 3
    |-
    | row 1, cell 1
    | row 1, cell 2
    | row 1, cell 3
    |-
    | row 2, cell 1
    | row 2, cell 2
    | row 2, cell 3
    |-
    | row 3, cell 1
    | row 3, cell 2
    | row 3, cell 3
    |}
    
    {| class="wikitable" |- ! Header 1!! Header 2!! Header 3 |- | row 1, cell 1|| row 1, cell 2|| row 1, cell 3 |- | row 2, cell 1|| row 2, cell 2|| row 2, cell 3 |- | row 3, cell 1|| row 3, cell 2|| row 3, cell 3 |} The sample text ("Header 1" or "row 1, cell 1") is to be replaced with actual data. == Pipe syntax tutorial == {| border="3" style="margin-left: 3em;" |- ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 | Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} Although HTML table syntax also works, special [[wikicode]] can be used as a shortcut to create a table. The pipe ([[w:vertical bar|vertical bar]]) codes function exactly the same as [[w:HTML table|HTML table]] markup, so a knowledge of HTML table code will help in understanding pipe code. The shortcuts are as follows: * The entire table is encased with curly brackets and a vertical bar character (a pipe). So use '''{|''' to begin a table, and '''|}''' to end it. Each one needs to be on its own line: '''{|''' ''table code goes here'' '''|}''' * An optional '''table caption''' is included with a line starting with a vertical bar and plus sign "'''|+'''" and the caption after it: {| '''|+ ''caption''''' ''table code goes here'' |} * To start a new '''table [[row]]''', type a vertical bar and a [[w:hyphen|hyphen]] on its own line: "'''|-'''". The codes for the cells in that row will start on the next line. {| |+ The table's caption '''|-''' ''row code goes here'' '''|-''' ''row code goes here'' |} * Type the codes for each ''table [[w:cell|cell]]'' in the next row, starting with a bar: {| |+ The table's caption |- '''|''' ''cell codes go here'' |- '''|''' ''cells in the next row go here'' '''|''' ''more cells in the same row here'' |} * Cells can be separated with either a new line and new bar, or by a double bar "'''||'''" on the same line. Both produce the same output: {| |+ The table's caption |- '''|Cell 1 || Cell 2 || Cell 3''' |- '''|Cell A''' '''|Cell B''' '''|Cell C''' |} * If you use single bars, then what might appear to be the first cell is in fact a format modifier applied to the cell, and the rest of your "cells" will be merged into one: {| border="1" |- |format modifier (not displayed) '''|'''These all '''|'''(including the pipes) '''|'''go into '''|'''the first cell |} which is probably not what you want: {| border="1" |- | format modifier (not displayed)|These all |(including the pipes)|go into |the first cell |} However, the format modifier is useful: {| border="1" |- | Cell 1 (no modifier — not aligned) |- | align="right" | Cell 2 (right aligned) |} {| border="1" |- | Cell 1 (no modifier — not aligned) |- | style="text-align: right;" | Cell 2 (right aligned) |} Just remember: no more than 2 single pipes on a line! * a row of '''column headings''' is identified by using "! scope="col" |" instead of "|", and using "!! scope="col" |" instead of "||". Header cells typically render differently from regular cells, depending on the browser. They are often rendered in a bold font and centered. {| |+ The table's caption '''! scope="col" | Column heading 1''' '''! scope="col" | Column heading 2''' '''! scope="col" | Column heading 3''' |- | Cell 1 || Cell 2 || Cell 3 |- | Cell A | Cell B | Cell C |} * the first cell of a row is identified as a '''row heading''' by starting the line with "! scope="row" |" instead of "|", and starting subsequent data cells on a new line. {| |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- '''! scope="row" | Row heading 1''' | Cell 2 || Cell 3 |- '''! scope="row" | Row heading A''' | Cell B | Cell C |} * Optional '''parameters''' can modify the behavior of cells, rows, or the entire table. For instance, a border could be added to the table: {| '''border="1"''' |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 || Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} The final table would display like this:
    {| border="1" |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 || Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |}
    The table parameters and cell parameters are the same as in [[w:HTML|HTML]], see http://www.w3.org/TR/html401/struct/tables.html#edef-TABLE and [[w:Table (HTML)|Table (HTML)]]. However, the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. A table can be useful even if none of the cells have content. For example, the background colors of cells can be changed with cell parameters, making the table into a diagram, like [[meta:Template talk:Square 8x8 pentomino example]]. An "image" in the form of a table is much more convenient to edit than an uploaded image. Each row must have the same number of cells as the other rows, so that the number of columns in the table remains consistent. For empty cells, use the non-breaking space &nbsp; as content to ensure that the cells are displayed. To show a visible pipe in a cell, use <nowiki>|</nowiki> or &#124;. With colspan and rowspan cells can span several columns or rows, see the [[Help:Table#Mélange|Mélange]] example below. However, this has the disadvantage that [[help:sorting|sorting]] does not work properly anymore. == Examples == === Simple example === Both of these generate the same output. Choose a style based on the number of cells in each row and the total text inside each cell. The wiki markup code:
    {|
    | A
    | B
    |-
    | C
    | D
    |}
    
    {|
    | A || B
    |-
    | C || D
    |}
    
    As it appears in a browser (note that there are no borders):
    {| |- | A | B |- | C | D |}
    === Multiplication table === Here is the wiki markup code:
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;"
    |+ Multiplication table
    |-
    ! scope="col" | × 
    ! scope="col" | 1 
    ! scope="col" | 2 
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    As it appears in a browser (see ''[[Help:User style]]''):
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    === Color; scope of parameters === Two ways of specifying [[Wikipedia:Colours|color]] of text and background for a single cell are as follows. The first form is preferred because the second form uses deprecated HTML: The wiki markup code:
    {|
    | style="background: red; color: white" | abc
    | def
    | bgcolor="red" |  ghi 
    | jkl
    |}
    
    As it appears in a browser:
    {| |- | style="background: red; color: white" | abc | def | style="background: red;"| ghi | jkl |}
    Like other parameters, colors can also be specified for a whole row or the whole table; parameters for a row override the value for the table, and those for a cell override those for a row. (Note that there is no easy way to specify a color for a whole column—each cell in the column must be individually specified. Tools can make it easier.): The wiki markup code:
    {| style="background: yellow; color: green"
    |-
    | abc || def || ghi
    |- style="background: red; color: white"
    | jkl || mno || pqr
    |-
    | stu || style="background: silver" | vwx || yz
    |}
    
    As it appears in a browser:
    {| style="background: yellow; color: green" |- | abc || def || ghi |- style="background: red; color: white" | jkl || mno || pqr |- | stu || style="background: silver" | vwx || yz |}
    To make the table blend in with the background, use style="background: none;" or style="background: transparent;". (Warning: style="background: inherit;", does not work with some browsers, including IE6!) To force a cell to match one of the default colors of the [[Help:User style|class="wikitable" template]], use style="background: #f2f2f2" for the darker header, and style="background: #f9f9f9" for the lighter body. See : [[w:style| style]], [[w:background|background]], [[w:list of colors|list of colors]], [[w:web colors|web colors]] === Width, height === The width and height of the whole table can be specified, as well as the height of a row. To specify the width of a column one can specify the width of an arbitrary cell in it. If the width is not specified for all columns, and/or the height is not specified for all rows, then there is some ambiguity, and the result depends on the browser. The wiki markup code:
    {| style="width: 75%; height: 200px" border="1"
    |-
    | abc || def || ghi
    |- style="height: 100px;"
    | jkl || style="width: 200px;" | mno || pqr
    |-
    | stu || vwx || yz
    |}
    
    As it appears in a browser:
    {| style="width:75%; height:200px" border="1" |- | abc || def || ghi |- style="height: 100px;" | jkl || style="width: 200px;" | mno || pqr |- | stu || vwx || yz |}
    Note that style="inline CSS" has no effect with some browsers. If compatibility is important, equivalent older constructs like width="75%" should work on more browsers. ==== Setting column widths ==== To force column widths to specific requirements, rather than accepting the width of the widest text element in a column's cells, follow this example. Note that [[word wrap|wrap-around of text]] is forced. The wiki markup code:
    {| border="1" cellpadding="2"
    ! scope="col" width="50" | Name
    ! scope="col" width="225" | Effect
    ! scope="col" width="225" | Games Found In
    |-
    | Poké Ball || Regular Poké Ball || All Versions
    |-
    | Great Ball || Better than a Poké Ball || All Versions
    |}
    
    {| border="1" cellpadding="2" |- ! scope="col" width="50" | Name ! scope="col" style="width: 225px;" | Effect ! scope="col" style="width: 225px;" | Games Found In |- |Poké Ball || Regular Poké Ball || All Versions |- |Great Ball || Better than a Poké Ball || All Versions |}
    To set column widths in a table without headers, specify the width in the first cell for each column, like this:
    {| border="1" cellpadding="2"
    |-
    | width="100pt" | This column is 100 points wide
    | width="200pt" | This column is 200 points wide
    | width="300pt" | This column is 300 points wide
    |-
    | blah || blih || bluh
    |}
    
    {| border="1" cellpadding="2" |- | style="width: 100pt;" | This column is 100 points wide | style="width: 200pt;" | This column is 200 points wide | style="width: 300pt;" | This column is 300 points wide |- | blah || blih || bluh |}
    One application of setting the widths is aligning columns of consecutive tables: {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | The Netherlands || Amsterdam |} {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | France || Paris |} =====Nowrap===== In a table that spans the entire width of a page, cells narrower than the widest cell tend to wrap. To keep an entire column from wrapping, use style=white-space:nowrap in a non-header cell on the longest/widest cell to affect the entire column. Before: {|"class=wikitable sortable" border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |[[Lorem ipsum]] dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" |January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} After: {|"class=wikitable sortable" border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |style=white-space:nowrap|"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" |style=white-space:nowrap|January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} === Setting borders === Table borders default to a complex shaded double-line (the default in HTML); however, those borders can be set to a thin solid line by using a style-parameter (style="border: 1px solid darkgray"), as in the following (''Note: if you intend to use the 'cellpadding' or 'cellspacing' options along with a border, you MUST use this format''):
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- border="0"
    | [[File:StarIconBronze.png|120px]]
    | [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    | Bronze star || Gold star || Green star
    |}
    
    Note the bottom-row texts are centered by 'align="center"' while star-images were not centered. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left: 4em;" |- ! style="width: 140px;" | Left ! style="width: 150px;" | Middle ! style="width: 130px;" | Right |- border="0" | [[File:StarIconBronze.png|120px]] | [[File:StarIconGold.png|120px|Caption when mouse-over image]] | [[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" | Bronze star || Gold star || Green star |} As long as the "Image:" specs omit the parameter "thumb|" they will not show the caption lines in the table (only during mouse-over). The border color "darkgray" matches typical tables or infoboxes in articles; however, it could be any color name (such as style="border: 1px solid darkgreen;") or use a hex-color (such as: #DDCCBB). A column format-specifier (enclosed in "|...|") can have a style-parameter to set borders on each cell, as follows:
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- align="center"
    | style="border: 1px solid blue;"|
    [[File:StarIconBronze.png|120px]]
    | style="border: 1px solid #777777;"|
    [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | style="border: 1px solid #22AA55;"|
    [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    |Bronze star || Gold star || Green star
    |}
    
    Note only the image cells, here, have individual borders, not the text. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left:4em;" |- ! style="width:140px;"|Left || style="width:150px;"|Middle || style="width:130px;"|Right |- align="center" | style="border: 1px solid blue;"| [[File:StarIconBronze.png|120px]] | style="border: 1px solid #777;"| [[File:StarIconGold.png|120px|Caption when mouse-over image]] | style="border: 1px solid #2a5;"| [[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" |Bronze star || Gold star || Green star |} The lower hex-colors (such as: #616161) are closer to black. Typically, all borders in a table would be one specific color. === Vertical alignment === By default data in tables is vertically centrally aligned, which results in odd-looking layouts like this: {| border="1" cellpadding="2" style="width:400px; margin-left:6em;" |- ! scope="row" style="width:10%;"| Row heading | style="width:70%;"|A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width:20%;"|short text |- ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} To fix this, apply the valign="top" attribute to the rows (unfortunately it seems to be necessary to apply this individually to every single row). For example:
    {| border="1" cellpadding="2" width="400"
    |- valign="top"
    ! scope="row" width="10%" | Row heading
    | width="70%" | A longer piece of text. Lorem ipsum...
    | width="20%" | short text
    |- valign="top"
    ! scope="row" | Row heading
    | Excepteur sint occaecat...
    | short text
    |}
    
    {| border="1" cellpadding="2" style="width: 400px; margin-left: 6em;" |- valign="top" ! scope="row" style="width: 10%;" | Row heading | style="width: 70%;" | A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width: 20%;" | short text |- valign="top" ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} === Positioning === You can position the table itself, the contents of a row, and the contents of a cell, but not with a single parameter for all the contents of the table. See [[m:Template talk:Table demo]]. Prior to April 2009, using "float" to position a table was discouraged; however, it no longer always breaks page rendering at large font sizes. See a floated image, below, under "[[#Floating images in the center|Floating images in the center]]". === Mélange === ''Note: This example is not [[Wikipedia:Manual of Style (accessibility)|accessible]], and should be avoided as much as possible. For example, nested tables (tables inside tables) should be separated into distinct tables when possible.'' Here's a more advanced example, showing some more options available for making up tables. Note however that with colspan and rowspan [[help:sorting|sorting]] does not work properly anymore. You can play with these settings in your own table to see what effect they have. Not all of these techniques may be appropriate in all cases; just because you can add colored backgrounds, for example, doesn't mean it's always a good idea. Try to keep the markup in your tables relatively simple -- remember, other people are going to be editing the article too! This example should give you an idea of what is possible, though. The wiki markup code:
    {| border="1" cellpadding="5" cellspacing="0" align="center"
    |+ '''An example table'''
    |-
    ! style="background: #efefef;" | First header
    ! colspan="2" style="background: #ffdead;" | Second header
    |-
    | upper left
    | &nbsp;
    | rowspan="2" style="border-bottom: 3px solid grey;" valign="top" |
    right side
    |-
    | style="border-bottom: 3px solid grey;" | lower left
    | style="border-bottom: 3px solid grey;" | lower middle
    |-
    | colspan="3" align="center" |
    {| border="0"
    |+ ''A table in a table''
    |-
    | align="center" width="150" | [[File:Wiki.png]]
    | align="center" width="150" | [[File:Wiki.png]]
    |-
    | align="center" colspan="2" style="border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" |
    Two Wikipedia logos
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="1" cellspacing="0" style="margin: auto;" |+ '''An example table''' |- ! style="background: #efefef;" | First header ! colspan="2" style="background: #ffdead;" | Second header |- | upper left |   | rowspan="2" style="border-bottom: 3px solid gray; vertical-align: top;"| right side |- | style="border-bottom: 3px solid gray;" | lower left | style="border-bottom: 3px solid gray;" | lower middle |- | colspan="3" style="text-align: center;" | {| border="0" |+ ''A table in a table'' |- style="text-align: center;" || [[File:Wiki.png]] | style="width: 150px;" | [[File:Wiki.png]] |- | colspan="2" style="text-align: center; border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;"| Two Wikipedia logos |} |}
    === Floating table === The wiki markup coding:
    This paragraph is before the table.  Lorem ipsum dolor sit
    amet, consectetur adipisicing elit, sed do eiusmod...
    
    {| style="float: right;" border="1"
    | Col 1, row 1
    | rowspan="2" | Col 2, row 1 (and 2)
    | Col 3, row 1
    |-
    | Col 1, row 2
    | Col 3, row 2
    |}
    
    Note the floating-table to the right.
    
    This paragraph is after the table.  The text in column 2
    will span both rows due to format specifier "rowspan=2" so there
    is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    
    As it appears in a browser:
    This paragraph is before the table. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod... {| style="float: right;" border="1" |- | Col 1, row 1 | rowspan="2" | Col 2, row 1 (and 2) | Col 3, row 1 |- | Col 1, row 2 | Col 3, row 2 |} Note the floating-table to the right. This paragraph is after the table. The text in column 2 will span both rows due to format specifier "rowspan=2" so there is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    === Floating images in the center === A table can be used to wrap an image, so that the table can float towards the center of the page (such as using: style="float: right;"). However, the table margins, border and font-size must be precisely set to match a typical image display. The Image-spec parameter "thumb|" (although auto-thumbnailing to user-preference width) forces a wide left-margin that squeezes the nearby text, so the parameter "center|" can be added to suppress the left-margin padding. However, "center" sometimes shoves the caption to a 2nd line (under a centered box "[]"), so "thumb|" could be omitted and just hard-code the image size, adding a gray (#BBB) border. Using precise parameters to match other images, a floating-image table can be coded as follows:
    {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;"
    |- style="font-size: 86%;"
    | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating). |}
    The text inside the floating-table is sized by style="font-size: 86%;". That floating-image table floats a typical image-box, but allows adjusting the left-hand margin of the image (see temple-example floating below). {| class="infobox" style="width: 90px;" |- ! colspan="2" | Infobox A |- | colspan="2" | This sample infobox shows how the floating image-box aligns toward the center. |} {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" |- style="font-size: 86%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
     Temple of [[Bel (mythology)|Bel]]  (floating). |} {| style="float: right; clear:right; border: 1px solid black;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|thumb|right|This table shows the implicit margins of Images using "right".]] |} The caption-text can be omitted, or remove the parameter "thumb|" so the caption is hidden until "mouse-over display". Unfortunately the parameter "thumb|" (used for displaying the caption) also controls the auto-thumbnailing to re-size images by user-preferences size. In April 2009, it was not possible to have auto-thumbnail sizing while also concealing the caption: parameter "thumb|" triggers both actions and forces the caption to display. An image set with parameter "left|" will gain a wide right-side margin (opposite margin of parameter "right|"), so floating toward the left would require an image set as "center|" inside a table with style="float:left; margin:0.46em 0.2em". Recall that, outside an image-table, the parameter "right|" causes an image to align (either) above or below an infobox, but would not float alongside the infobox. Note the ''order of precedence'': first come infoboxes or images using "right|", then come the floating-tables, and lastly, any text will wrap that can still fit. If the first text-word is too long, no text will fit to complete the left-hand side, so beware creating a "ragged left margin" when not enough space remains for text to fit alongside floating-tables. If multiple single image-tables are stacked, they will float to align across the page, depending on page-width. The text will be squeezed to allow as many floating-tables as can fit, as auto-aligned, then wrap whatever text (can still fit) at the left-hand side. {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...by float: right |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...images wrap... |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    All these... |} That auto-aligning feature can be used to create a "floating-gallery" of images: a set of 20 floating-tables will wrap (backward, right-to-left) as if each table were a word of text to wrap across and down the page. To wrap in the typical direction (wrapping left-to-right) define all those floating-tables, instead, as left-side tables using the top parameter style="float:left; margin:0.46em 0.2em". Multiple floating-images empower more flexible typesetting of images around the text. === Nested tables === ''Note: because they cause [[Wikipedia:Manual_of_Style_(accessibility)#Tables|accessibility issues]], nested tables should be avoided whenever possible.'' Seven different (blue) tables are shown nested inside the cells of a table. Automatically the two tables |A| and |B|B| are vertically aligned instead of the usual side by side of text characters in a cell. "float" is used to fix each of tables |C| and |D| to their own position within one cell of the table. This may be used for charts and schemes. ''Nested tables must start on a new line.'' '''Wiki markup'''

    {| border="1"
    | &alpha;
    | style="text-align: center;"| cell2
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| NESTED'''
    '''|-'''
    '''| TABLE'''
    '''|}'''
    | style="vertical-align:bottom;"| the original table again
    | style="width:100px;" |
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| A'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| B || B'''
    '''|}'''
    | style="width:50px;" |
    '''{| border="2" style="background: #ABCDEF; float:left;"'''
    '''| C'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF; float: right;"'''
    '''| D'''
    '''|}'''
    |}

    '''As it appears in a browser''': {| border="1" |- | α | style="text-align: center;"| cell2 {| border="2" style="background: #ABCDEF;" |- | NESTED |- | TABLE |} | style="vertical-align: bottom;" | the original table again | style="width: 100px;" | {| border="2" style="background: #ABCDEF;" |- | A |} {| border="2" style="background: #ABCDEF;" |- | B || B |} | style="width: 50px;" | {| border="2" style="background: #ABCDEF; float:left;" |- | C |} {| border="2" style="background: #ABCDEF; float: right;" |- | D |} |} === Combined use of COLSPAN and ROWSPAN === '''Wiki markup'''
    {| border="1" cellpadding="5" cellspacing="0"
    |-
    | Column 1 || Column 2 || Column 3
    |-
    | rowspan="2" | A
    | colspan="2" style="text-align: center;" | B
    |-
    | C 
    | D
    |-
    | E
    | rowspan="2" colspan="2" style="text-align: center;" | F
    |-
    | G 
    |-
    | colspan="3" style="text-align: center;" | H
    |}
    
    '''As it appears in a browser''': {| border="1" cellpadding="5" cellspacing="0" |- | Column 1 || Column 2 || Column 3 |- | rowspan="2" | A | colspan="2" style="text-align: center;" | B |- | C | D |- | E | rowspan="2" colspan="2" style="text-align: center;" | F |- | G |- | colspan="3" style="text-align: center;" | H |} Note that using rowspan="2" for cell '''G''' combined with rowspan="3" for cell '''F''' to get another row below '''G''' and '''F''' won't work, because all (implicit) cells would be empty. Likewise complete columns are not displayed if all their cells are empty. Borders between non-empty and empty cells might be also not displayed (depending on the browser), use &nbsp; to fill an empty cell with dummy content. === Centering tables === Centered tables can be achieved, but they will not "float"; that is to say, no text will appear to either side. The trick is {| style="margin: 1em auto 1em auto;" '''Wiki markup'''
    {| class="wikitable" style="margin: 1em auto 1em auto;"
    |+ '''Cells left-aligned, table centered'''
    ! scope="col" | Duis 
    ! scope="col" | aute 
    ! scope="col" | irure
    |-
    | dolor  || in reprehenderit || in voluptate velit
    |-
    | esse cillum dolore || eu fugiat nulla || pariatur.
    |}
    
    '''As it appears in a browser''': {| class="wikitable" style="margin: 1em auto 1em auto;" |+ '''Cells left-aligned, table centered''' ! Duis || aute || irure |- | dolor || in reprehenderit || in voluptate velit |- | esse cillum dolore || eu fugiat nulla || pariatur. |} === Setting parameters === At the start of a cell, add your parameter followed by a single pipe. For example width="300"| will set that cell to a width of 300 pixels. To set more than one parameter, leave a space between each one, as follows:
    {| style="color:white"
    |-
    | bgcolor="red"|cell1 || width="300" bgcolor="blue"|cell2
    | bgcolor="green"|cell3
    |}
    
    As it appears in a browser: {| style="color:white" |- | style="background:red;"|cell1 || style="width:300px; background:blue;"|cell2 || style="background:green;"|cell3 |} === Tiny tables within a text line === For years in [[HTML]], a table has always forced an implicit line-wrap (or ''line-break''), so to keep a table within a line, the work-around is to put all text into a table, then embed a table-within-a-table, using the outer table to force the whole line to stay together. Consider the following examples: : Wikicode (''showing table forces line-break''): :: * This is a test table here
    HELLO WORLD
    followed by this text afterward.
    :Result: ::* This is a test table here
    HELLO WORLD
    followed by this text afterward. : Wikicode (''table-within-table''): :: *
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.
    :Result: ::*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table. Use style="font-size:60%" to shrink the text within the box. However, the small text could be replaced with small images (aligned inside the inner table). The outer table is for one line only, so to make a 2nd line appear even, the exact length of line 1 must be pre-determined, to match the length of other lines. === Decimal point alignment === A method to get columns of numbers aligned at the decimal point is as follows:
    {| cellpadding="0" cellspacing="0"
    | align="right" | 432 || .1
    |-
    | align="right" | 43 || .21
    |-
    | align="right" | 4 || .321
    |}
    
    As it appears in a browser:
    {| cellpadding="0" cellspacing="0" |- | align="right" | 432 || .1 |- | align="right" | 43 || .21 |- | align="right" | 4 || .321 |}
    If the column of numbers appears in a table with cell padding or cell spacing, you can still align the decimal points without an unsightly gap in the middle. Embed a table in each number's cell and specify its column widths. Make the embedded tables' column widths the same for each cell in the column. (If decimal points are still misaligned using this method, the main table's column may be too narrow. Add a parameter to increase the column's width.) The wiki markup code:
    {| border="1" cellpadding="4" cellspacing="2"
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 432 || width="50%" | .1
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 43 || width="50%" | .21
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%" | 4 || width="50%" | .321
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="4" cellspacing="2" | {| cellpadding="0" cellspacing="0" style="width: 100px;" |- | style="text-align: right; width: 50%;" | 432 || style="width: 50%;" | .1 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 43 || style="width: 50%;" | .21 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 4 || style="width: 50%;" | .321 |} |}
    In the case of preformatted text, you can dispense with the table feature entirely and simply start the lines with a space, and put spaces to position the numbers: 432.1 43.21 4.321 However, there should be a good reason to use pre-formatted text in an article. == Style classes == : ''See also [[Help:User style]].'' In the first line of table code, after the "{|", instead of specifying a style directly, you can also specify a [[w:Cascading Style Sheets|CSS]] class. The style for this class can be specified in various ways: * in the software itself, per skin (for example the class [[#Sorting|sortable]]) * collectively for all users of one wiki in [[MediaWiki:Common.css]] (for example, on this and some other projects there is or was the class wikitable, later moved to [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup shared.css]) * separately per skin in [[MediaWiki:Monobook.css]] etc. * individually on one wiki in a user subpage * individually, but jointly for tables of the class concerned on all web pages, on the local computer of the user. Instead of remembering table parameters, you just include an appropriate style class after the {|. This helps keep table formatting consistent, and can allow a single change to the class to fix a problem or enhance the look of all the tables that are using it at once. For instance, this:
    
    {| cellpadding="2"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| cellpadding="2" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    becomes this:
    
    {| class="wikitable"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| class="wikitable" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    simply by replacing inline CSS for the table by class="wikitable". This is because the ''wikitable'' class in [[MediaWiki:Common.css]] contains a number of ''table.wikitable'' [[w:CSS|CSS]] style rules. These are all applied at once when you mark a table with the class. You can then add additional style rules if desired. These override the class's rules, allowing you to use the class style as a base and build up on it: '''Wiki markup'''
    
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    Notice that the table retains the gray background of the wikitable class, and the headers are still bold and centered. But now the text formatting has been overridden by the local ''style'' statement; all of the text in the table has been made italic and 120% normal size, and the wikitable border has been replaced by the red dashed border. Of course this works only for browsers supporting inline CSS, if it's important use XHTML markup like <big> instead of "font-size:120%", or Wiki markup like ''text'' instead of "font-style:italic". === Collapsible tables === Classes can also be used to collapse tables, so they are hidden by default. Use the style 'collapsible' to enable collapsing behaviour. By default, a collapsible table will begin expanded. To change this, include the additional class 'collapsed' or 'autocollapse' (i.e. only collapse if 3 other collapsible tables are present). You must include a header row, where the 'hide' option will be displayed. Example:
    {| class="wikitable collapsible collapsed"
    ! Header
    |-
    | Content which starts hidden
    |-
    | more hidden content
    |}
    
    Gives: {| class="wikitable collapsible collapsed" |- ! Header |- | Content which starts hidden |- | more hidden content |} == Sorting == :''Further information [[meta:Help:Sorting|Help:Sorting]]'' Tables can be made sortable by adding class="sortable"; for details see '''[[Help:Sorting]]'''. Since this can be very useful, it is wise to keep the possibilities and limitations of this feature in mind when designing a table. For example: * Do not divide a table into sections by subheaders spanning several rows. Instead, an extra column can be made showing the content of these headers on each row, in a short form. * Do not have elements spanning several columns; instead, again, repeat the content on each row, in a short form. * In a column of numbers, do not put text such as "ca." in front of a number-it will sort like zero. Do not put text after the number, and do not put a range of numbers (it does not affect the sorting position for numeric sorting mode, and in the case of a range, the first number determines the position, but if, possibly after sorting this or another column, the element is at the top, it will induce alphabetic sorting mode). Instead, put these texts in a separate column. Alternatively, for the greatest flexibility, alphabetic sorting mode with hidden sortkeys can be used. A long form of abbreviated content can be put as legend outside the table. '''Wiki markup'''
    
    {| class="wikitable sortable" border="1"
    |+ Sortable table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable" |+ Sortable table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d || 20 || 2008-11-24 || This |- | b || 8 || 2004-03-01 || column |- | a || 6 || 1979-07-23 || cannot |- | c || 4 || 1492-12-08 || be |- | e || 0 || 1601-08-13 || sorted. |}
    ===Sorting and collapsing=== It is possible to collapse a sortable table. To do so, you need to use the code {| class="wikitable sortable collapsible". Taking the above table and making it collapsable gives you this: '''Wiki markup'''
    
    {| class="wikitable sortable collapsible" border="1"
    |+ Sortable and collapsible table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable collapsible" |+ Sortable and collapsible table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d || 20 || 2008-11-24 || This |- | b || 8 || 2004-03-01 || column |- | a || 6 || 1979-07-23 || cannot |- | c || 4 || 1492-12-08 || be |- | e || 0 || 1601-08-13 || sorted. |}
    If you want the table to default to collapsed state, use the code {| class="wikitable sortable collapsible collapsed" in place of {| class="wikitable sortable collapsible" == Row template == Regardless of whether wikitable format or HTML is used, the wikitext of the rows within a table, and sometimes even within a collection of tables, has much in common, e.g.: * the basic code for a table row * code for color, alignment, and sorting mode * fixed texts such as units * special formats for sorting In that case it can be useful to create a template that produces the syntax for a table row, with the data as parameters. This can have many advantages: * easily changing the order of columns, or removing a column * easily adding a new column if many elements of the new column are left blank (if the column is inserted and the existing fields are unnamed, use a named parameter for the new field to avoid adding blank parameter values to many template calls) * computing fields from other fields, e.g. population density from population and area * duplicating content and providing span tags with "display:none" for the purpose of having one format for [[Help:Sorting|sorting]] and another for display * easy specification of a format for a whole column, such as color and alignment Example: Using [[m:help:table/example row template]] ([[m:help talk:table/example row template|talk]], [[m:Special:Whatlinkshere/help:table/example row template|backlinks]], [http://meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit edit])
    {| class="wikitable sortable" border="1"
    |-
    ! scope="col" | a
    ! scope="col" | b
    ! scope="col" | a/b
    {{help:table/example row template|  50|200}}
    {{help:table/example row template|   8| 11}}
    {{help:table/example row template|1000| 81}}
    |}
    
    gives: {| class="wikitable sortable" |- ! scope="col" | a ! scope="col" | b ! scope="col" | a/b |- | 50||200||0.25 |- | 8|| 11||0.72727272727273 |- |1000|| 81||12.345679012346 |} == Conditional table row == For a conditional row in a table, we can have:
    {| class="wikitable" border="1"
    	
    	{{ #if:1|{{!}}-
    		! scope="row" {{!}} row one, column one
    		
    		{{!}}row one, column two}}
    	
    	{{ #if: |{{!}}-
    		! scope="row" {{!}}  row two, column one
    		{{!}}row two, column two}}
    	
    	|-
    		! scope="row" {{!}} row three, column one
    		| row three, column two
    |}
    
    Which gives the following table: (note how the second row is missing) {| class="wikitable" |- ! scope="row" | row one, column one |row one, column two |- ! scope="row" | row three, column one | row three, column two |} == Other table syntax == Other types of '''table''' syntax that MediaWiki supports: #XHTML #HTML & wiki- syntax ('''Do not use''') All three are supported by MediaWiki and create (currently) valid HTML output, but the pipe syntax is the simplest. Also, HTML & wiki- syntax (i.e., unclosed and tags) will not necessarily remain browser-supported in the future, especially on handheld internet-accessible devices. See also [[w:HTML element#Tables|HTML element#Tables]]. Note however that the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. === Comparison of table syntax === {| class="wikitable" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |- ! scope="row" | Table |
    |
    {|
    |}
    |- ! scope="row" | Caption |
    caption
    |
    |+ caption
    |- ! scope="row" | Row |
    
    | 
    |-
    |- ! scope="row" | Data cell |
    cell1cell2
    cell3
    |
    | cell1 || cell2
    | cell3
    |- ! scope="row" | Header cell |
    column heading

    row heading
    |
    ! scope="col" | column heading

    ! scope="row" | row heading
    |- ! scope="row" rowspan="2" | Sample table | colspan="2" |
    1 2
    3 4
    |- |
    1 2
    3 4
    |
    {|
    | 1 || 2
    |-
    | 3 || 4
    |}
    |- style="vertical-align: top;" ! scope="row" | Pros | * Can preview or debug with any XHTML editor * Can be indented for easier reading * Well-known * Insensitive to newlines * No characters like "|" which can collide with template and parser function syntax | * Easy to write * Easy to read * Takes little space * Can be learned quickly |- style="vertical-align: top;" ! scope="row" | Cons | * Tedious * Takes a lot of space * Difficult to read quickly * Accidentally putting "tr" for "td" can cause confusion for hours. * Indented code might not match nesting. * In rare cases, newlines can break cells, causing severe confusion since newlines usually are ok. | * Unfamiliar syntax * Rigid structure * Cannot be indented * Text (as in HTML tags) may be easier for some people to read than series of pipes, plus signs, dashes, etc. * Requires using [[Template:!]] to pass a "|" in a parameter. * Sensitive to newlines; see [[Help:Newlines and spaces]]. |- ! scope="col" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |} See also [[Template talk:For#Tables]]. == Pipe syntax in terms of the HTML produced == The pipe syntax, developed by [[m:User: Magnus Manske| Magnus Manske]], substitutes pipes (|) for HTML. There is an [http://www.uni-bonn.de/~manfear/html2wiki-tables.php on-line script] which converts html tables to pipe syntax tables. The pipes must start at the beginning of a new line, except when separating parameters from content or when using || to separate cells on a single line. The parameters are optional. === Tables === A [[w:Table (HTML)|table]] is defined by {| ''params'' |} which generates "<table ''params''></table>". === Rows === For each table, an HTML <tr> tag will be generated for the first row. To start a new row, use: |- which generates another "<tr>". Parameters can be added like this: |- ''params'' which generates "<tr ''params''>". Note: * <tr> tags will be automatically opened at the first <td> equivalent * <tr> tags will be automatically closed at <tr> and </table> equivalents === Cells === Cells are generated either like this: |cell1 |cell2 |cell3 or like this: |cell1||cell2||cell3 which both generate "<td>cell1</td><td>cell2</td><td>cell3</td>". The "||" equals "newline" + "|". Parameters in cells can be used like this: |''params''|cell1||''params''|cell2||''params''|cell3 which will result in <td ''params''>cell1</td> <td ''params''>cell2</td> <td ''params''>cell3</td> === Headers === Produces a TH, functioning the same way as TD, but with different style. "!" is used instead of the opening "|". "!!" can be used instead of "||". Parameters still use "|", though. Example: !''params''|cell1 === [[Help:Table Caption|Captions]] === A <caption> tag is created by |+ Caption which generates the HTML "<caption>Caption</caption>". You can also use parameters: |+ ''params''|Caption which will generate "<caption ''params''>Caption</caption>". === Summaries === A summary is produced by adding a summary attribute after the start of the table. It can be used by [[screen reader]]s to give visually impaired readers the overall gist of the table, without having to listen to the entire table. For example:
    {| summary="Artistic renderings of Germania became more triumphant and monumental."
    | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]
    | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]
    | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]]
    |}
    
    produces: {| summary="Artistic renderings of Germania became more triumphant and monumental." | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]] | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]] | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]] |} == Square monitors == To format for a square monitor or window, use a tape measure. Determine the height of your rectangular screen. Using that figure measure under the screen to determine the width your monitor’s screen would be if it were square. Mark that location using ink or tape under the screen. Drag the side of your browser’s window to that location so the window is square based on accurate measurements. Square monitors and reading windows are not able to contain tables and galleries made for rectangular and wide screens. When a table or gallery is wider than the monitor, it makes every line of text wider than the screen as well. The px amounts of the following gallery were determined after measuring the window to make sure it was square: Type this:
    {| style="background: transparent; margin: auto;"
    | [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]
    | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]
    | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]
    | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]
    | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]
    |}
    
    For this: {| style="background:none; margin: auto;" |- | [[File:Some_window_blinds.JPG|192x155px|thumb|left|Various window shades]] | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]] | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]] |} {| style="background:none; margin: auto;" |- | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]] | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]] |} {| style="background:none; margin: auto;" |- | [[File:Some window blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]] | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]] |} == Vertically oriented column headers == Sometimes it is desirable (such as in a table predominantly made of numbers) to rotate text such that it proceeds from top to bottom or bottom to top instead of from left to right or right to left. Currently, browser support for this type of styling as a component of HTML or CSS is sporadic (Internet Explorer is one of the few browsers that supports this in cascading stylesheets, albeit in a non-standard way). An alternative solution that works in most if not all browsers is to use images in place of the text. For instance, the following table uses SVG images instead of text to produce the rotated column headings: {| class="wikitable" style="text-align: center;" |- style="vertical-align: bottom;" ! style="width:3em;" | [[File:wpvg_hd_date_page.svg|link=]] ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=Wikipedia:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_talk.svg|link=Wikipedia talk:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_portal.svg|link=Portal:Video games]] ! style="width:3em;" | [[File:wpvg_vg_article_guidelines.svg|link=Wikipedia:WikiProject Video games/Article guidelines]] ! style="width:3em;" | [[File:wpvg_vg_templates.svg|link=Wikipedia:WikiProject Video games/Templates]] ! style="width:3em;" | [[File:wpvg_vg_sources.svg|link=Wikipedia:WikiProject Video games/Sources]] ! style="width:3em;" | [[File:wpvg_vg_assessment.svg|link=Wikipedia:WikiProject Video games/Assessment]] ! style="width:3em;" | [[File:wpvg_vg_cleanup.svg|link=Wikipedia:WikiProject Video games/Cleanup]] ! style="width:3em;" | [[File:wpvg_vg_requests.svg|link=Wikipedia:WikiProject Video games/Requests]] |- ! 05/08 | 4266 || 7828 || 7282 || 1105 || 224 || 161 || 916 || 506 || 231 |- ! 04/08 | 4127 || 6190 || 6487 || 1139 || 241 || 205 || 1165 || 478 || 301 |} Normally, one problem with this approach is that readers are directed to different pages when they click on the images. To eliminate this problem—or to direct readers to a ''different'' page—you can use the link parameter. A column-header can be coded as follows:
    
    ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=xxxx]]
    
    
    The image will wikilink to article "xxxx". By setting the link to an empty string (e.g. [[File:wpvg_hd_date_page.svg|link=]]), no navigation will occur when visitors click on an image. Note that it might also be a good idea to color the image text blue if you are using the images as links. Also, SVG is the preferred image format in this case because it can be re-scaled to any size without producing artifacts. == Wikitable as image gallery == :''This section is local to Wikipedia (hard-coded here now).'' A wikitable can be used to display side-by-side images, in the manner of an image gallery (formatted by "<gallery>"), but with larger images and less vacant area around photos. A simple framed gallery can be formatted using class="wikitable" to generate the minimal thin-lines around images/photos within the table: {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |}
    Note the result below (with thin-lined cells): {| class="wikitable" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |} Another issue about the standard "<gallery>" tag, in 2007-2008, was that it put 4 images per line, overrunning the right margin of a wiki article displayed in portrait-style width (like 800x600), unless the gallery had only 3 images. However, a wikitable uses typical image-links with sizes, such as "[[Image:XXX.jpg|130px]]" so 4 images could be displayed on a wikitable line within a 600px width (for 800x600 resolution screens). {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|125px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} {| class="wikitable" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|115px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} Another advantage about wikitable images, compared to "<gallery>" formatting, is the ability to "square" each image when similar heights are needed, so consider putting 2-number image sizes (such as "199x95px"), where the 2nd number limits height: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Note the 3 images sized "199x95px" appear identical height, of 95px (4th image purposely smaller). The "95px" forces height, while "199x" fits the various widths (could even be "999x"): {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Therefore, the use of size "199x95px" (or "999x95px") produces the auto-height-sizing beyond the "<gallery>" tag, and with the option to set taller thumbnails ("199x105px"), or even to have some images purposely smaller than other images of "95px" height. A very short height ("70px") allows many more images across the table: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} The above wikitable-coding produces the result below, of 6 columns: {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} Once images have been placed in a wikitable, control of formatting can be adjusted when more images are added. === Shifting/centering === Images within a wikitable can be shifted by inserting non-breaking spaces ("&nbsp;") before or after the image-link ("&nbsp;[[Image:]]"). However, auto-centering simply requires use of center-tags to be placed around an image-link for centering in a cell ("
    [[File:..]]
    ")
    . In the example below, note how Col2 uses <center>, but Col3 uses "&nbsp;": {| class="wikitable" border="1" |- |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp; |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |&nbsp;&nbsp;View from bell tower |}
    The above coding generates the table below: note the middle garden image is centered (but not the left image), and the right image has 2 spaces before "  View...": {| class="wikitable" |- |[[File:Domtoren vanaf Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    | [[File:Uitzicht vanaf de Domtoren.jpg|299x125px]]  |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |  View from bell tower |} Also note that the tag "<small>" made a smaller text-size caption. However, fonts also can be sized by percent (style="font-size: 87%;"), where the actual percent-size as displayed depends on the various sizes allowed for a particular font.
     | style="font-size: 87%;" | View from bell tower
    
    The column attribute, above, uses "style=" to set the font-size for the caption, following the 2nd vertical-bar "|". A font-size: 65% is very small, while style="font-size: 87%;" is a mid-size font, larger than the tag ''small''. === Speed/transfer rates === Actual transfer/display speeds depend on individual files. In 2007 to March 2009 some serious flaws existed in the thumbnailing process when combined with the gallery-display, making thumbnails sometimes larger than the originals. For this reason some users explicitly used tables instead of the gallery tag. However, these issues are fixed as of March 2009. == Generate a chart with a table ==
    Main article: [[meta:Visualizer for Wikimedia projects|meta:Visualizer for Wikimedia projects]]
    Using {{[[Template:visualizer|visualizer]]}} or another template that uses {{[[Template:metavisualizer|metavisualizer]]}}. == Converting spreadsheet to wikitable format == To convert from spreadsheets such as Gnumeric, MS Excel or OpenOffice.org Calc, you can use the [http://excel2wiki.net/wikipedia.php Copy & Paste Excel-to-Wiki] converter or you can save your spreadsheets as [[.csv]] and use the [http://toolserver.org/~al/data2mwGenerators/csv2wikitable.php csv2wikitable] converter. == See also == * [[Help:Wikitable]] * [[Wikipedia:Manual of Style (tables)]] * [[Wikipedia:How to make a table in Wikipedia]] * [[mw:Table]] * [[mw:Simplified table syntax]] * [[m:Wiki markup tables]] * [[m:Table background colors]] * [[User:Dcljr/Tables]] * [[w:Table (HTML)]] * [[m:Help:Template#A parameter value containing a pipe character]] * [[w:Category:Table and column templates]] * Examples: ** [[Template:Chess diagram|Chess board]] ** [[Template:Goban|Go board]] ** [[Monopoly (game)#Board|Monopoly board]] ** [[m:Template talk:Square 8x8 pentomino example|Square 8x8 pentomino example]] * [[commons:Commons:Convert tables and charts to wiki code|Commons:Convert tables and charts to wiki code]] * [[commons:Commons:Chart and graph resources|Commons:Chart and graph resources]] * Cleanup template {{[[Template:Listtable|Listtable]]}} and its category [[:Category:Articles requiring tables]] == External links == * [[:de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion]] published in German-Wikipediaproject (English instructions included) * [http://www.cnic.org/html2mediawiki.html HTML tables to wiki converter at cnic.org] * [http://area23.brightbyte.de/csv2wp.php csv2wp] - converts [[w:comma-separated values|comma-separated values]] (CSV) format to pipe syntax. You may use this to import tables from Excel etc. ([[:de:Benutzer:Duesentrieb/csv2wp (en)|more information]]) * [http://www.uni-bonn.de/~manfear/html2wiki-tables.php HTML tables to wiki converter at uni-bonn.de] * [http://diberri.dyndns.org/html2wiki.html HTML tables to wiki converter at diberri.dyndns.org] * [http://pywikipediabot.sourceforge.net/ pywikipediabot] (can convert HTML tables to wiki) * [http://search.cpan.org/~diberri/ HTML-WikiConverter] Various versions and languages * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables Making Wiki Tables] with good examples * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use Wiki and HTML Tables Ready to Use]: A selection of tables and their Wiki/HTML code * [http://www.w3.org/TR/css3-color/ Table of CSS color names and HEX codes] [[Category:Wikipedia how-to]] [[Category:Wikipedia text help]] [[ar:مساعدة:جدول]] [[bg:Уикипедия:Таблици]] [[ca:Ajuda:Taula]] [[cs:Nápověda:Tabulky]] [[de:Hilfe:Tabellen]] [[dsb:Pomoc:Tabela]] [[es:Ayuda:Tablas]] [[eo:Helpo:Vikitabeloj]] [[fa:راهنما:جدول‌ها]] [[fr:Aide:Les tableaux pour les novices]] [[hsb:Pomoc:Tabela]] [[hu:Wikipédia:Táblázatok]] [[id:Bantuan:Tabel]] [[it:Aiuto:Tabelle]] [[ja:Help:表の作り方]] [[ka:დახმარება:ცხრილის შექმნა]] [[km:ជំនួយ:តារាង]] [[ko:위키백과:표]] [[lb:Hëllef:Tabellen]] [[lt:Pagalba:Lentelė]] [[ml:സഹായം:പട്ടിക]] [[mn:Тусламж:Хүснэгт яаж хийх вэ?]] [[nl:Help:Gebruik van tabellen]] [[no:Hjelp:Tabeller]] [[pl:Pomoc:Tabele]] [[pt:Ajuda:Guia de edição/Usar tabelas]] [[ro:Ajutor:Tabele]] [[qu:Yanapa:Tawla]] [[sq:Ndihmë:Tabela]] [[simple:Help:Tables]] [[sk:Pomoc:Tabuľky]] [[sr:Помоћ:Табела]] [[fi:Ohje:Taulukot]] [[tt:Ярдәм:Tüşäw]] [[th:วิธีใช้:ตาราง]] [[uk:Довідка:Таблиці]] [[vi:Trợ giúp:Tạo bảng]] [[zh:Help:表格]] exp-Saxby+Chambliss.wikitext000066400000000000000000001747121335270560400464120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/engine/output/wikitext {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan=2 class="n" style="text-align: center; font-size: 125%; font-weight: bold"|Clarence Saxby Chambliss Jr |- | colspan=2 style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- |colspan="2" style="text-align:center; font-size:110%;"|
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- |colspan="2" style="text-align:center; background:lavender;"| '''[[Incumbent]]''' |- |colspan="2" style="text-align:center;"|'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- |colspan="2" style="text-align:center; font-size:110%;"|
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- !colspan="2" style="text-align:center; font-size:110%;"|
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- |colspan="2"|
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! |- |[[U.S. House election, 1994|1994]] | |style="background:#B0CEFF" |Craig Mathis |style="background:#B0CEFF" align="right" |53,408 |style="background:#B0CEFF" |37% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |89,591 |style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | |style="background:#B0CEFF" |Jim Wiggins |style="background:#B0CEFF" align="right" |84,506 |style="background:#B0CEFF" |47% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |93,619 |style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | |style="background:#B0CEFF" |Ronald L. Cain |style="background:#B0CEFF" align="right" |53,079 |style="background:#B0CEFF" |38% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |87,993 |style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | |style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] |style="background:#B0CEFF" align="right" |79,051 |style="background:#B0CEFF" |41% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |113,380 |style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! !|3rd Party !|Party !|Votes !|Pct ! |- |[[U.S. Senate election, 2002|2002]] | |style="background:#B0CEFF" |[[Max Cleland]] |style="background:#B0CEFF" align="right" |932,422 |style="background:#B0CEFF" |46% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |1,071,352 |style="background:#FFB6B6" |53% | |style="background:#ffff66" |Claude "Sandy" Thomas |style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] |style="background:#ffff66" align="right" |27,830 |style="background:#ffff66" align="right" |1% | |} {| border=1 cellpadding=4 cellspacing=0 style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan=6|2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan=2 style="width: 130px"|Party ! style="width: 17em"|Candidate ! style="width: 5em"|Votes ! style="width: 3.5em"|% ! style="width: 3.5em"|±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[J. Roy Rowland]] |width="40%" style="text-align: center;" rowspan="1"|'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Max Cleland]] |width="40%" style="text-align: center;" rowspan="1"|'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' |width="30%" align="center" rowspan="1"|'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    |width="40%" style="text-align: center;" rowspan="1"|'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    |width="40%" style="text-align: center;" rowspan="1"|'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''
    61st |width="30%" align="center" rowspan="1"| Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] expandPostprocessPrintAndCompare/000077500000000000000000000000001335270560400430415ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesast/000077500000000000000000000000001335270560400436305ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndComparebang_to_pipe.ast000066400000000000000000000000521335270560400467640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/astEngPage[ [0] = WtParagraph[ [0] = "|" ] ] uc-pfn.ast000066400000000000000000000000731335270560400455310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/astEngPage[ [0] = WtParagraph[ [0] = "LC-TO-UC\nLC-TO-UC" ] ] uc-pre.ast000066400000000000000000000004431335270560400455350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/astEngPage[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "PRE" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\t", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Block" ), [2] = "\n" ] ) ] wikitext/000077500000000000000000000000001335270560400447115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndComparebang_to_pipe.wikitext000066400000000000000000000000051335270560400511240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/wikitext{{!}}uc-pfn.wikitext000066400000000000000000000000371335270560400476730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/wikitext{{uc:lc-TO-uc}} {{UC:lc-TO-uc}}uc-pre.wikitext000066400000000000000000000000271335270560400476750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/expandPostprocessPrintAndCompare/wikitext
    	''Block''
    
    ext/000077500000000000000000000000001335270560400351465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesconvert/000077500000000000000000000000001335270560400366265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/extexpanded/000077500000000000000000000000001335270560400404165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/convertpfn-convert.wikitext000066400000000000000000000066021335270560400444550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/convert/expanded1 foot (0.30 m) 2 feet (0.61 m) 1 ångström (1.0×10⁻¹⁰ m) 2 ångströms (2.0×10⁻¹⁰ m) 1 kilometre (0.62 mi) 1 inch (25 mm) 2 inches (51 mm) 1 metre (3 ft 3 in) 2 metres (6 ft 7 in) 3 metres (9.8 ft) 4 metres (13 ft) 1 mile (1.6 km) 1 furlong (660 ft; 200 m) 1 chain (66 ft; 20 m) 1 rod (17 ft; 5.0 m) 1 pole (17 ft; 5.0 m) 1 perch (17 ft; 5.0 m) 1 fathom (6.0 ft; 1.8 m) 1 yard (0.91 m) 1 hand (4.0 in; 10 cm) −1 metre (−3 ft −3 in) −1 mile (−1.6 km) −1 furlong (−660 ft; −200 m) −1 chain (−66 ft; −20 m) −1 rod (−17 ft; −5.0 m) −1 pole (−17 ft; −5.0 m) −1 perch (−17 ft; −5.0 m) −1 fathom (−6.0 ft; −1.8 m) −1 yard (−0.91 m) 1 microinch (25 nm) 1 kilogram (2.2 lb) 1 decigram (0.0035 oz) 1 gram (0.035 oz) 1 pound (0.45 kg) 1 nautical mile (1.9 km; 1.2 mi) 1 British nautical mile (1.9 km; 1.2 mi) 1 British nautical mile (1.9 km; 1.2 mi) 1 British nautical mile (1.9 km; 1.2 mi) 1 British nautical mile (1.9 km; 1.2 mi) 1 (pre-1954 US) nautical mile (1.9 km; 1.2 mi) 1 (pre-1954 US) nautical mile (1.9 km; 1.2 mi) 1 (pre-1954 US) nautical mile (1.9 km; 1.2 mi) 1 gigaparsec (3.3 Gly) 1 megaparsec (3.3 Mly) 1 kiloparsec (3.3 kly) 1 parsec (3.3 ly) 1 gigalight-year (310 Mpc) 1 megalight-year (310 kpc) 1 kilolight-year (310 pc) 1 light-year (63,000 AU) 1 astronomical unit (150,000,000 km; 93,000,000 mi) 1 gigaparsec (3.1×10²² km) 1 megaparsec (3.1×10¹⁹ km) 1 kiloparsec (3.1×10¹⁶ km) 1 parsec (3.1×10¹³ km) 1 gigalight-year (9.5×10²¹ km) 1 megalight-year (9.5×10¹⁸ km) 1 kilolight-year (9.5×10¹⁵ km) 1 light-year (9.5×10¹² km) 1 astronomical unit (150,000,000 km) −1 gigalight-year (−9.5×10²¹ km) 2 gigalight-years (1.9×10³⁴ nm) 1 astronomical unit (149,600,000 km) 1 astronomical unit (149,598,000 km) 2 metres (6 ft 7 in) 2 metres (6 ft 7 in) 2 m (6 ft 7 in) 2 m (6 ft 7 in) 2 m (6 feet 7 inches) 2 metres (6 feet 7 inches) 2 metres (6 feet 7 inches) 2 (6 ft 7 in) 2 metres [m] (6 ft 7 in) 3 metres (300 cm) 3 m (300 cm) 3 m (300 cm) 3 m (300 centimetres) 3 metres (300 centimetres) 3 metres (300 centimetres) 3 (300) 3 metres [m] (300 cm) 1 meter (3 ft 3 in) 2 meters (6 ft 7 in) 1 meter (100 centimeters) 2 meters (200 centimeters) 100 centimeters (1.0 meter) 200 centimeters (2.0 meters) 1 milligram (0.015 gr) 1 short ton (0.91 t) 1 short ton (0.91 t) 1 long ton (1.0 t) 1 long ton (1.0 t) 1 long hundredweight (110 lb; 51 kg) 1 short hundredweight (100 lb; 45 kg) 1 long quarter (28 lb; 13 kg) 1 short quarter (25 lb; 11 kg) 1 stone (14 lb; 6.4 kg) 1 drachm (1.8 g) 1 drachm (1.8 g) 1 grain (0.065 g) 1 troy pound (0.82 lb; 0.37 kg) 1 troy ounce (1.1 oz; 31 g) 1 pennyweight (0.055 oz; 1.6 g) 1 carat (0.20 g) 1 square kilometre (0.39 sq mi) 1 square hectometre (2.5 acres) 1 square decametre (1,100 sq ft) 1 square metre (11 sq ft) 1 square decimetre (16 sq in) 1 square centimetre (0.16 sq in) 1 square millimetre (0.0016 sq in) 1 hectare (2.5 acres) 1 square mile (2.6 km²) 1 acre (0.40 ha) 1 square yard (0.84 m²) 1 square foot (0.093 m²) 1 square inch (6.5 cm²) 1 square yard (0.836 m²) 1 square yard (0.8361274 m²) 1 astronomical unit (149,597,900 km; 92,955,810 mi) 1 square millimetre (0.001550 sq in) 1 square inch (6.4516 cm²) 1 short quarter (25.0 lb; 11.3 kg) 1 short quarter (30 lb; 10 kg) 1 °C (34 °F) 1 K (−270 °C; −460 °F) 1 °F (−17 °C) 100 °C (210 °F) 100 K (−170 °C; −280 °F) 100 °F (38 °C) wikitext/000077500000000000000000000000001335270560400404765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/convertpfn-convert.wikitext000066400000000000000000000053631335270560400445400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/convert/wikitext{{convert|1|ft|m}} {{convert|2|ft|m}} {{convert|1|angstrom|m}} {{convert|2|angstrom|m}} {{convert|1|km}} {{convert|1|in}} {{convert|2|in}} {{convert|1|m}} {{convert|2|m}} {{convert|3|m}} {{convert|4|m}} {{convert|1|mi}} {{convert|1|furlong}} {{convert|1|chain}} {{convert|1|rd}} {{convert|1|pole}} {{convert|1|perch}} {{convert|1|fathom}} {{convert|1|yd}} {{convert|1|hand}} {{convert|-1|m}} {{convert|-1|mi}} {{convert|-1|furlong}} {{convert|-1|chain}} {{convert|-1|rd}} {{convert|-1|pole}} {{convert|-1|perch}} {{convert|-1|fathom}} {{convert|-1|yd}} {{convert|1|uin}} {{convert|1|kg}} {{convert|1|dg}} {{convert|1|g}} {{convert|1|lb}} {{convert|1|nmi}} {{convert|1|oldUKnmi}} {{convert|1|admiralty nmi}} {{convert|1|Brnmi}} {{convert|1|admi}} {{convert|1|oldUSnmi}} {{convert|1|pre1954USnmi}} {{convert|1|pre1954U.S.nmi}} {{convert|1|Gpc}} {{convert|1|Mpc}} {{convert|1|kpc}} {{convert|1|pc}} {{convert|1|Gly}} {{convert|1|Mly}} {{convert|1|kly}} {{convert|1|ly}} {{convert|1|AU}} {{convert|1|Gpc|km}} {{convert|1|Mpc|km}} {{convert|1|kpc|km}} {{convert|1|pc|km}} {{convert|1|Gly|km}} {{convert|1|Mly|km}} {{convert|1|kly|km}} {{convert|1|ly|km}} {{convert|1|AU|km}} {{convert|-1|Gly|km}} {{convert|2|Gly|nm}} {{convert|1|AU|km|sigfig=4}} {{convert|1|AU|km|sigfig = 6}} {{convert|2|m}} {{convert|2|m|abbr=out}} {{convert|2|m|abbr=on}} {{convert|2|m|abbr=unit}} {{convert|2|m|abbr=in}} {{convert|2|m|abbr=none}} {{convert|2|m|abbr=off}} {{convert|2|m|abbr=values}} {{convert|2|m|abbr=~}} {{convert|3|m|cm|abbr=out}} {{convert|3|m|cm|abbr=on}} {{convert|3|m|cm|abbr=unit}} {{convert|3|m|cm|abbr=in}} {{convert|3|m|cm|abbr=none}} {{convert|3|m|cm|abbr=off}} {{convert|3|m|cm|abbr=values}} {{convert|3|m|cm|abbr=~}} {{convert|1|m|sp=us}} {{convert|2|m|sp=us}} {{convert|1|m|cm|sp=us|abbr=off}} {{convert|2|m|cm|sp=us|abbr=off}} {{convert|100|cm|m|abbr=off|sp=us}} {{convert|200|cm|m|abbr=off|sp=us}} {{convert|1|mg}} {{convert|1|short ton}} {{convert|1|ST}} {{convert|1|long ton}} {{convert|1|LT}} {{convert|1|long cwt}} {{convert|1|short cwt}} {{convert|1|long qtr}} {{convert|1|short qtr}} {{convert|1|st}} {{convert|1|dram}} {{convert|1|drachm}} {{convert|1|gr}} {{convert|1|troy pound}} {{convert|1|ozt}} {{convert|1|dwt}} {{convert|1|carat}} {{convert|1|km2}} {{convert|1|hm2}} {{convert|1|dam2}} {{convert|1|m2}} {{convert|1|dm2}} {{convert|1|cm2}} {{convert|1|mm2}} {{convert|1|ha}} {{convert|1|sqmi}} {{convert|1|acre}} {{convert|1|sqyd}} {{convert|1|sqft}} {{convert|1|sqin}} {{convert|1|sqyd|sigfig = 3}} {{convert|1|sqyd|sigfig = 7}} {{convert|1|AU|sigfig = 7}} {{convert|1|mm2|sigfig = 4}} {{convert|1|sqin|sigfig = 5}} {{convert|1|short qtr| sigfig=3}} {{convert|1|short qtr| sigfig=1}} {{convert|1|C}} {{convert|1|K}} {{convert|1|F}} {{convert|100|C}} {{convert|100|K}} {{convert|100|F}} pfn/000077500000000000000000000000001335270560400357315ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/extexpanded/000077500000000000000000000000001335270560400375215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfncomplex_nested_if_expr.wikitext000066400000000000000000000000021335270560400460300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded8 month_name_to_number_switch_with_8.wikitext000066400000000000000000000000021335270560400503450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded8 pfn-fullurl.wikitext000066400000000000000000000001421335270560400435560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expandedhttp://localhost/?title=Category:Top_level http://localhost/?title=Category:Top_level&action=edit pfn-if.wikitext000066400000000000000000000001061335270560400424670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded no yes no no yes yes yes pfn-ifeq.wikitext000066400000000000000000000003121335270560400430140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded yes yes yes yes no no no no 1 yes no no yes pfn-iferror.wikitext000066400000000000000000000000551335270560400435440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded"correct" "error" "3" "error" "3" "" "error" pfn-lc.wikitext000066400000000000000000000000671335270560400424750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded lowercase pfn-ns.wikitext000066400000000000000000000005761335270560400425240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded Media;Media Special;Special ; User;User Wikipedia;Wikipedia File;File;File MediaWiki;MediaWiki Template;Template Help;Help Category;Category Talk;Talk User talk;User talk Wikipedia talk;Wikipedia talk File talk;File talk;File talk MediaWiki talk;MediaWiki talk Template talk;Template talk Help talk;Help talk Category talk;Category talk pfn-switch.wikitext000066400000000000000000000004631335270560400434000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expanded Baz Bar Bar three one A C Nothing Bar A nowiki pfn-time.wikitext000066400000000000000000000001561335270560400430340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/expandedWed, 20 Dec 2000 00:00:00 +0000 28 februari 1988 Freitag п'ятниця 1512163343 2017-12-01T21:22:23+00:00 wikitext/000077500000000000000000000000001335270560400376015ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfnTemplate%3A%3D000066400000000000000000000000011335270560400417530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext=complex_nested_if_expr.wikitext000066400000000000000000000002101335270560400461110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext{{#ifexpr:8<0 |{{#ifexpr:((8)round 0)!=(8) |{{#expr:12-(((0.5-(8))round 0)mod 12)}} |{{#expr:12-(((11.5-(8))round 0)mod 12)}} }} |8}}month_name_to_number_switch_with_8.wikitext000066400000000000000000000005331335270560400504360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext{{#switch:8 |january|jan=1 |february|feb=2 |march|mar=3 |apr|april=4 |may=5 |june|jun=6 |july|jul=7 |august|aug=8 |september|sep|sept=9 |october|oct=10 |november|nov=11 |december|dec=12 |{{#ifexpr:8<0 |{{#ifexpr:((8)round 0)!=(8) |{{#expr:12-(((0.5-(8))round 0)mod 12)}} |{{#expr:12-(((11.5-(8))round 0)mod 12)}} }} |8}} }}pfn-fullurl.wikitext000066400000000000000000000001111335270560400436320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext{{fullurl:Category:Top level}} {{fullurl:Category:Top level|action=edit}}pfn-if.wikitext000066400000000000000000000003651335270560400425560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext {{#if: | yes | no}} {{#if: string | yes | no}} {{#if: | yes | no}} {{#if: | yes | no}} {{#if: 1==2 | yes | no }} {{#if: 0 | yes | no }} {{#if: foo | yes }} {{#if: | yes }} {{#if: foo | | no}} pfn-ifeq.wikitext000066400000000000000000000013021335270560400430740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext {{#ifeq: 01 | 1 | yes | no}} {{#ifeq: 0 | -0 | yes | no}} {{#ifeq: 1e3 | 1000 | yes | no}} {{#ifeq: {{#expr:10^3}} | 1000 | yes | no}} {{#ifeq: foo | bar | yes | no}} {{#ifeq: foo | Foo | yes | no}} {{#ifeq: "01" | "1" | yes | no}} {{#ifeq: 10^3 | 1000 | yes | no}} {{#ifeq: 12345678901234567 | 12345678901234568 | 1 | 0}} {{#ifeq: foo | foo | yes | no}} {{#ifeq: foo | foo | yes | no}} {{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | yes | no}} {{#ifeq: [[foo]] | [[foo]] | yes | no}} pfn-iferror.wikitext000066400000000000000000000005111335270560400436210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext"{{#iferror: {{#expr: 1 + 2 }} | error | correct }}" "{{#iferror: {{#expr: 1 + X }} | error | correct }}" "{{#iferror: {{#expr: 1 + 2 }} | error }}" "{{#iferror: {{#expr: 1 + X }} | error }}" "{{#iferror: {{#expr: 1 + 2 }} }}" "{{#iferror: {{#expr: 1 + X }} }}" "{{#iferror: a | error | correct }}"pfn-lc.wikitext000066400000000000000000000000761335270560400425550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext {{lc:LOWERCASE}}pfn-ns.wikitext000066400000000000000000000010251335270560400425720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext {{ns:-2}};{{ns:Media}} {{ns:-1}};{{ns:Special}} {{ns:0}};{{ns:}} {{ns:2}};{{ns:User}} {{ns:4}};{{ns:Wikipedia}} {{ns:6}};{{ns:File}};{{ns:Image}} {{ns:8}};{{ns:MediaWiki}} {{ns:10}};{{ns:Template}} {{ns:12}};{{ns:Help}} {{ns:14}};{{ns:Category}} {{ns:1}};{{ns:Talk}} {{ns:3}};{{ns:User talk}} {{ns:5}};{{ns:Wikipedia talk}} {{ns:7}};{{ns:File talk}};{{ns:Image talk}} {{ns:9}};{{ns:MediaWiki talk}} {{ns:11}};{{ns:Template talk}} {{ns:13}};{{ns:Help talk}} {{ns:15}};{{ns:Category talk}}pfn-switch.wikitext000066400000000000000000000017731335270560400434650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext {{#switch: baz | foo = Foo | baz = Baz | Bar }} {{#switch: test | foo = Foo | baz = Baz | Bar }} {{#switch: test | Bar | foo = Foo | baz = Baz }} {{#switch: test | foo = Foo | baz = Baz | B=ar }} {{#switch: test | foo = Foo | #default = Bar | baz = Baz }} {{#switch: test | foo = Foo | baz = Baz }} {{#switch: 0 + 1 | 1 = one | 2 = two | three}} {{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}} {{#switch: a | a = A | b = B | C}} {{#switch: A | a = A | b = B | C}} {{#switch: | = Nothing | foo = Foo | Something }} {{#switch: b | f = Foo | b = Bar | b = Baz | }} {{#switch: 12345678901234567 | 12345678901234568 = A | B}} {{#switch: 1=2 | 1=2 = raw | 1=2 = nowiki | 1=2 = html | 1{{=}}2 = template | default }} pfn-time.wikitext000066400000000000000000000002501335270560400431070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/ext/pfn/wikitext{{#time: r|2000-12-20}} {{#time:d F Y|1988-02-28|nl}} {{#time:l| 24.11.2017 | de}} {{#time:l| 24 Nov 2017 | uk}} {{#time: U| @1512163343 }} {{#time: c| @1512163343 }} mediawiki/000077500000000000000000000000001335270560400363115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesexample tests.mwtest000066400000000000000000000002241335270560400423320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/mediawiki!! article Main Page !! text The main page is available in every MediaWiki !! endarticle !! test A completely empty page !! input !! result !! end redirect/000077500000000000000000000000001335270560400361475ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesast/000077500000000000000000000000001335270560400367365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirectredirect-ch.ast000066400000000000000000000002251335270560400416370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirect/astEngPage[ [0] = WtRedirect( {A} __SKIP__ = false {P} rtd = RTD[ "#\u91CD\u5B9A\u5411 [[" "]]" ] target = WtPageName[ [0] = "target" ] ) ] redirect.ast000066400000000000000000000002131335270560400412440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirect/astEngPage[ [0] = WtRedirect( {A} __SKIP__ = false {P} rtd = RTD[ "#REDIRECT [[" "]]" ] target = WtPageName[ [0] = "target" ] ) ] wikitext/000077500000000000000000000000001335270560400400175ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirectredirect-ch.wikitext000066400000000000000000000000251335270560400437770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirect/wikitext#重定向 [[target]]redirect.wikitext000066400000000000000000000000241335270560400434060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/redirect/wikitext#REDIRECT [[target]]various/000077500000000000000000000000001335270560400360365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resourcesast/000077500000000000000000000000001335270560400366255ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/variousuc-pre.ast000066400000000000000000000003221335270560400405260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/various/astEngPage[ [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\t''Block''\n" ] ) ] ] wikitext/000077500000000000000000000000001335270560400377065ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/variousuc-pre.wikitext000066400000000000000000000000271335270560400426720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-engine/src/test/resources/various/wikitext
    	''Block''
    
    sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/000077500000000000000000000000001335270560400321125ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/pom.xml000066400000000000000000000100661335270560400334320ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-example-basic jar SWC - Basic Example 2010 An example project that contains a simple application that is able to parse a page written in Wikitext and render it as HTML or plain text. ../ commons-io commons-io de.fau.cs.osr.utils utils de.fau.cs.osr.ptk ptk-common org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine junit junit test com.mycila license-maven-plugin src/main/resources/render-template.html src/test/resources/** de.thetaphi forbiddenapis commons-io-unsafe-1.4 sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/000077500000000000000000000000001335270560400327015ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/000077500000000000000000000000001335270560400336255ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400344675ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/mainorg/000077500000000000000000000000001335270560400352565ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/javasweble/000077500000000000000000000000001335270560400365375ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/java/orgwikitext/000077500000000000000000000000001335270560400404075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/java/org/swebleexample/000077500000000000000000000000001335270560400420425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/java/org/sweble/wikitextApp.java000066400000000000000000000112301335270560400434220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.output.HtmlRenderer; import org.sweble.wikitext.engine.output.HtmlRendererCallback; import org.sweble.wikitext.engine.output.MediaInfo; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; import org.sweble.wikitext.engine.utils.UrlEncoding; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.parser.LinkTargetException; import de.fau.cs.osr.utils.StringTools; public class App { public static void main(String[] args) throws IOException, LinkTargetException, EngineException { if (args.length < 1) { System.err.println("Usage: java -jar swc-example-basic-VERSION.jar [--html|--text] TITLE"); System.err.println(); System.err.println(" The program will look for a file called `TITLE.wikitext',"); System.err.println(" parse the file and write an HTML version to `TITLE.html'."); return; } boolean renderHtml = true; int i = 0; if (args[i].equalsIgnoreCase("--html")) { renderHtml = true; ++i; } else if (args[i].equalsIgnoreCase("--text")) { renderHtml = false; ++i; } String fileTitle = args[i]; String html = run( new File(fileTitle + ".wikitext"), fileTitle, renderHtml); FileUtils.writeStringToFile( new File(fileTitle + (renderHtml ? ".html" : ".text")), html, Charset.defaultCharset().name()); } static String run(File file, String fileTitle, boolean renderHtml) throws IOException, LinkTargetException, EngineException { // Set-up a simple wiki configuration WikiConfig config = DefaultConfigEnWp.generate(); final int wrapCol = 80; // Instantiate a compiler for wiki pages WtEngineImpl engine = new WtEngineImpl(config); // Retrieve a page PageTitle pageTitle = PageTitle.make(config, fileTitle); PageId pageId = new PageId(pageTitle, -1); String wikitext = FileUtils.readFileToString(file, Charset.defaultCharset().name()); // Compile the retrieved page EngProcessedPage cp = engine.postprocess(pageId, wikitext, null); if (renderHtml) { String ourHtml = HtmlRenderer.print(new MyRendererCallback(), config, pageTitle, cp.getPage()); String template = IOUtils.toString(App.class.getResourceAsStream("/render-template.html"), "UTF8"); String html = template; html = html.replace("{$TITLE}", StringTools.escHtml(pageTitle.getDenormalizedFullTitle())); html = html.replace("{$CONTENT}", ourHtml); return html; } else { TextConverter p = new TextConverter(config, wrapCol); return (String) p.go(cp.getPage()); } } private static final class MyRendererCallback implements HtmlRendererCallback { protected static final String LOCAL_URL = ""; @Override public boolean resourceExists(PageTitle target) { // TODO: Add proper check return false; } @Override public MediaInfo getMediaInfo(String title, int width, int height) { // TODO: Return proper media info return null; } @Override public String makeUrl(PageTitle target) { String page = UrlEncoding.WIKI.encode(target.getNormalizedFullTitle()); String f = target.getFragment(); String url = page; if (f != null && !f.isEmpty()) url = page + "#" + UrlEncoding.WIKI.encode(f); return LOCAL_URL + "/" + url; } @Override public String makeUrl(WtUrl target) { if (target.getProtocol() == "") return target.getPath(); return target.getProtocol() + ":" + target.getPath(); } @Override public String makeUrlMissingTarget(String path) { return LOCAL_URL + "?title=" + path + "&action=edit&redlink=1"; } } } TextConverter.java000066400000000000000000000234361335270560400455310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.util.LinkedList; import java.util.regex.Pattern; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngPage; import org.sweble.wikitext.parser.nodes.WtBold; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtHorizontalRule; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtItalics; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtOrderedList; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtSection; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtUnorderedList; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; import org.sweble.wikitext.parser.parser.LinkTargetException; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.StringTools; /** * A visitor to convert an article AST into a pure text representation. To * better understand the visitor pattern as implemented by the Visitor class, * please take a look at the following resources: *
    * * The methods needed to descend into an AST and visit the children of a given * node n are *
      *
    • dispatch(n) - visit node n,
    • *
    • iterate(n) - visit the children of node * n,
    • *
    • map(n) - visit the children of node n * and gather the return values of the visit() calls in a list,
    • *
    • mapInPlace(n) - visit the children of node * n and replace each child node c with the return * value of the call to visit(c).
    • *
    */ public class TextConverter extends AstVisitor { private static final Pattern ws = Pattern.compile("\\s+"); private final WikiConfig config; private final int wrapCol; private StringBuilder sb; private StringBuilder line; private int extLinkNum; /** * Becomes true if we are no long at the Beginning Of the whole Document. */ private boolean pastBod; private int needNewlines; private boolean needSpace; private boolean noWrap; private LinkedList sections; // ========================================================================= public TextConverter(WikiConfig config, int wrapCol) { this.config = config; this.wrapCol = wrapCol; } @Override protected WtNode before(WtNode node) { // This method is called by go() before visitation starts sb = new StringBuilder(); line = new StringBuilder(); extLinkNum = 1; pastBod = false; needNewlines = 0; needSpace = false; noWrap = false; sections = new LinkedList(); return super.before(node); } @Override protected Object after(WtNode node, Object result) { finishLine(); // This method is called by go() after visitation has finished // The return value will be passed to go() which passes it to the caller return sb.toString(); } // ========================================================================= public void visit(WtNode n) { // Fallback for all nodes that are not explicitly handled below write("<"); write(n.getNodeName()); write(" />"); } public void visit(WtNodeList n) { iterate(n); } public void visit(WtUnorderedList e) { iterate(e); } public void visit(WtOrderedList e) { iterate(e); } public void visit(WtListItem item) { newline(1); iterate(item); } public void visit(EngPage p) { iterate(p); } public void visit(WtText text) { write(text.getContent()); } public void visit(WtWhitespace w) { write(" "); } public void visit(WtBold b) { write("**"); iterate(b); write("**"); } public void visit(WtItalics i) { write("//"); iterate(i); write("//"); } public void visit(WtXmlCharRef cr) { write(Character.toChars(cr.getCodePoint())); } public void visit(WtXmlEntityRef er) { String ch = er.getResolved(); if (ch == null) { write('&'); write(er.getName()); write(';'); } else { write(ch); } } public void visit(WtUrl wtUrl) { if (!wtUrl.getProtocol().isEmpty()) { write(wtUrl.getProtocol()); write(':'); } write(wtUrl.getPath()); } public void visit(WtExternalLink link) { write('['); write(extLinkNum++); write(']'); } public void visit(WtInternalLink link) { try { if (link.getTarget().isResolved()) { PageTitle page = PageTitle.make(config, link.getTarget().getAsString()); if (page.getNamespace().equals(config.getNamespace("Category"))) return; } } catch (LinkTargetException e) { } write(link.getPrefix()); if (!link.hasTitle()) { iterate(link.getTarget()); } else { iterate(link.getTitle()); } write(link.getPostfix()); } public void visit(WtSection s) { finishLine(); StringBuilder saveSb = sb; boolean saveNoWrap = noWrap; sb = new StringBuilder(); noWrap = true; iterate(s.getHeading()); finishLine(); String title = sb.toString().trim(); sb = saveSb; if (s.getLevel() >= 1) { while (sections.size() > s.getLevel()) sections.removeLast(); while (sections.size() < s.getLevel()) sections.add(1); StringBuilder sb2 = new StringBuilder(); for (int i = 0; i < sections.size(); ++i) { if (i < 1) continue; sb2.append(sections.get(i)); sb2.append('.'); } if (sb2.length() > 0) sb2.append(' '); sb2.append(title); title = sb2.toString(); } newline(2); write(title); newline(1); write(StringTools.strrep('-', title.length())); newline(2); noWrap = saveNoWrap; iterate(s.getBody()); while (sections.size() > s.getLevel()) sections.removeLast(); sections.add(sections.removeLast() + 1); } public void visit(WtParagraph p) { iterate(p); newline(2); } public void visit(WtHorizontalRule hr) { newline(1); write(StringTools.strrep('-', wrapCol)); newline(2); } public void visit(WtXmlElement e) { if (e.getName().equalsIgnoreCase("br")) { newline(1); } else { iterate(e.getBody()); } } // ========================================================================= // Stuff we want to hide public void visit(WtImageLink n) { } public void visit(WtIllegalCodePoint n) { } public void visit(WtXmlComment n) { } public void visit(WtTemplate n) { } public void visit(WtTemplateArgument n) { } public void visit(WtTemplateParameter n) { } public void visit(WtTagExtension n) { } public void visit(WtPageSwitch n) { } // ========================================================================= private void newline(int num) { if (pastBod) { if (num > needNewlines) needNewlines = num; } } private void wantSpace() { if (pastBod) needSpace = true; } private void finishLine() { sb.append(line.toString()); line.setLength(0); } private void writeNewlines(int num) { finishLine(); sb.append(StringTools.strrep('\n', num)); needNewlines = 0; needSpace = false; } private void writeWord(String s) { int length = s.length(); if (length == 0) return; if (!noWrap && needNewlines <= 0) { if (needSpace) length += 1; if (line.length() + length >= wrapCol && line.length() > 0) writeNewlines(1); } if (needSpace && needNewlines <= 0) line.append(' '); if (needNewlines > 0) writeNewlines(needNewlines); needSpace = false; pastBod = true; line.append(s); } private void write(String s) { if (s.isEmpty()) return; if (Character.isSpaceChar(s.charAt(0))) wantSpace(); String[] words = ws.split(s); for (int i = 0; i < words.length;) { writeWord(words[i]); if (++i < words.length) wantSpace(); } if (Character.isSpaceChar(s.charAt(s.length() - 1))) wantSpace(); } private void write(char[] cs) { write(String.valueOf(cs)); } private void write(char ch) { writeWord(String.valueOf(ch)); } private void write(int num) { writeWord(String.valueOf(num)); } } resources/000077500000000000000000000000001335270560400355605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/mainrender-template.html000066400000000000000000000006371335270560400415440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/main/resources {$TITLE}
    {$CONTENT}
    sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/000077500000000000000000000000001335270560400336605ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400345225ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/testorg/000077500000000000000000000000001335270560400353115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/javasweble/000077500000000000000000000000001335270560400365725ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/java/orgwikitext/000077500000000000000000000000001335270560400404425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/java/org/swebleexample/000077500000000000000000000000001335270560400420755ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/java/org/sweble/wikitextAppTest.java000066400000000000000000000027621335270560400443270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.InputStream; import java.net.URL; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Test; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.StringTools; public class AppTest { @Test public void test() throws Exception { String title = "Simple_Page"; URL url = AppTest.class.getResource("/" + title + ".wikitext"); String path = StringTools.decodeUsingDefaultCharset(url.getFile()); String actual = App.run(new File(path), title, true); actual = FileTools.lineEndToUnix(actual); InputStream expectedIs = AppTest.class.getResourceAsStream("/" + title + ".html"); String expected = IOUtils.toString(expectedIs, "UTF8"); expected = FileTools.lineEndToUnix(expected); Assert.assertEquals(expected, actual); } } resources/000077500000000000000000000000001335270560400356135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/testSimple_Page.html000066400000000000000000000017101335270560400406650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/resources Simple Page

    Simple Page

    This is a simple page. It contains a link, a list and a table.

    Cell 1.1

    Cell 1.2

    Cell 2.1

    Cell 2.2

    CYA!

    Simple_Page.wikitext000066400000000000000000000003131335270560400415670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-basic/src/test/resources== Simple Page == This is a '''simple page'''. It contains a link, a list and a table. * [[Somewhere|Item 1]] * Item 2 {| border="2" |- | Cell 1.1 || Cell 1.2 |- | Cell 2.1 || Cell 2.2 |} CYA! sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/000077500000000000000000000000001335270560400335305ustar00rootroot00000000000000pom.xml000066400000000000000000000056651335270560400350020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-example-dumpcruncher jar SWC - Dump Cruncher Example 2012 An example project that goes through a WikiMedia Dump and processes each page. ../ net.sf.jopt-simple jopt-simple org.slf4j slf4j-api de.fau.cs.osr.utils utils de.fau.cs.osr.utils utils-getopt org.sweble.wikitext swc-dumpreader org.sweble.wikitext swc-article-cruncher org.sweble.wikitext swc-engine src/000077500000000000000000000000001335270560400342405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcrunchermain/000077500000000000000000000000001335270560400351645ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/srcjava/000077500000000000000000000000001335270560400361055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/mainorg/000077500000000000000000000000001335270560400366745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/javasweble/000077500000000000000000000000001335270560400401555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/orgwikitext/000077500000000000000000000000001335270560400420255ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/swebleexample/000077500000000000000000000000001335270560400434605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitextDumpCruncher.java000066400000000000000000000205671335270560400467340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.Set; import java.util.concurrent.BlockingQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobGeneratorFactory; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.JobTraceSet; import org.sweble.wikitext.articlecruncher.Nexus; import org.sweble.wikitext.articlecruncher.ProcessingNodeFactory; import org.sweble.wikitext.articlecruncher.Processor; import org.sweble.wikitext.articlecruncher.StorerFactory; import org.sweble.wikitext.articlecruncher.pnodes.LocalProcessingNode; import org.sweble.wikitext.articlecruncher.pnodes.LpnJobProcessorFactory; import org.sweble.wikitext.articlecruncher.storers.DummyStorer; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; import de.fau.cs.osr.utils.WrappedException; import de.fau.cs.osr.utils.getopt.Options; import joptsimple.OptionException; public class DumpCruncher { private static final Logger logger = LoggerFactory.getLogger(DumpCruncher.class); private final Options options = new Options(); private Nexus nexus; private Gui gui; private WikiConfig wikiConfig; // ========================================================================= public static void main(String[] args) throws Throwable { new DumpCruncher().run(args); } // ========================================================================= private void run(String[] args) throws Throwable { if (!options(args)) return; logger.info("Starting dump cruncher"); try { setUp(); } finally { Set jobTraces = nexus.getJobTraces(); for (JobTrace trace : jobTraces) logger.warn("Unfinished job: " + trace.toString()); logger.info("Number of unfinished jobs: " + jobTraces.size()); logger.info("Dump cruncher exiting"); } } public void setUp() throws Throwable { gui = new Gui(this); nexus = new Nexus(); final File dumpFile = new File(options.value("dump")); nexus.setUp( options.value("Nexus.InTrayCapacity", int.class), options.value("Nexus.ProcessedJobsCapacity", int.class), options.value("Nexus.OutTrayCapacity", int.class)); nexus.addJobGenerator(new JobGeneratorFactory() { @Override public WorkerBase create( AbortHandler abortHandler, BlockingQueue inTray, JobTraceSet jobTraces) { try { return new DumpReaderJobGenerator( DumpCruncher.this, dumpFile, // Are dumps always UTF8? Charset.forName("UTF8"), abortHandler, inTray, jobTraces); } catch (Exception e) { throw new WrappedException(e); } } }); /* This is a dummy processor. It can be used in addProcessingNode() * to just forward the jobs unaltered to the storer. This is useful if * no processing should take place. You can, for example, simply read * a dump and directly write it to a database, without further * processing. * final LpnJobProcessorFactory lpnJPFactory = new LpnJobProcessorFactory() { @Override public Processor createProcessor() { return new Processor() { @Override public CompletedJob process(Job job) { return null; } }; } }; */ wikiConfig = DefaultConfigEnWp.generate(); final LpnJobProcessorFactory lpnJPFactory = new LpnJobProcessorFactory() { @Override public Processor createProcessor() { return new RevisionProcessor(DumpCruncher.this); } @Override public String getProcessorNameTemplate() { return "Processor-%02d"; } }; nexus.addProcessingNode(new ProcessingNodeFactory() { @Override public WorkerBase create( AbortHandler abortHandler, BlockingQueue inTray, BlockingQueue completedJobs) { final int numWorkers = options.value("Nexus.NumProcessingWorkers", int.class); return new LocalProcessingNode( abortHandler, inTray, completedJobs, lpnJPFactory, numWorkers); } }); /* If it makes sense, one could also use multiple storers * to distribute the load. * * Example: If you want to write the results to a database, multiple * storeres can make sense since a single connection might be dominated * by communication overhead between this application and the database * server. */ nexus.addStorer(new StorerFactory() { @Override public WorkerBase create( AbortHandler abortHandler, JobTraceSet jobTraces, BlockingQueue outTray) { try { return new DummyStorer(abortHandler, jobTraces, outTray); } catch (Exception e) { throw new WrappedException(e); } } }); nexus.start(); gui.close(); } // ========================================================================= public Options getOptions() { return options; } public Nexus getNexus() { return nexus; } public Gui getGui() { return gui; } public WikiConfig getWikiConfig() { return wikiConfig; } // ========================================================================= private boolean options(String[] args) throws IOException { options.createOption('h', "help") .withDescription("Print help message.") .create(); // --- options.createOption('d', "dump") .withDescription("The dump file to read.") .withPropertyKey("DumpCruncher.File") .withArgName("FILE") .withRequiredArg() .create(); // --- options.createPropertyOnlyOption("Nexus.InTrayCapacity") .withDescription("The number of elements the `in tray' queue can hold.") .withDefault("8") .withArgName("N") .withRequiredArg() .create(); options.createPropertyOnlyOption("Nexus.ProcessedJobsCapacity") .withDescription("The number of elements the `in tray' queue can hold.") .withDefault("8") .withArgName("N") .create(); options.createPropertyOnlyOption("Nexus.OutTrayCapacity") .withDescription("The number of elements the `in tray' queue can hold.") .withDefault("8") .withArgName("N") .create(); options.createOption("processing-workers") .withDescription("The number of processing workers.") .withPropertyKey("Nexus.NumProcessingWorkers") .withDefault("4") .withArgName("N") .create(); options.createOption('P', "properties") .withDescription("A properties file to load additional configuration options from.") .withDefault("dump2db.properties") .withArgName("FILE") .withRequiredArg() .create(); // --- try { options.parse(args); if (options.has("help")) { printHelpMessage(options); return false; } if (options.has("P")) options.load(new File(options.value("P"))); options.expected("dump"); options.optional("P"); options.optional("Nexus.InTrayCapacity"); options.optional("Nexus.ProcessedJobsCapacity"); options.optional("Nexus.OutTrayCapacity"); options.optional("Nexus.NumProcessingWorkers"); options.checkForInvalidOptions(); return true; } catch (OptionException e) { printArgsErrorMessage(e); return false; } } private void printArgsErrorMessage(OptionException e) { System.err.println(e.getMessage()); System.err.println("Try `--help' for more information."); } private void printHelpMessage(Options options) { options.cmdLineHelp(System.out); System.out.println(); options.propertiesHelp(System.out); System.out.println(); options.fixedOptionsHelp(System.out); System.out.println(); } } DumpReaderJobGenerator.java000066400000000000000000000077671335270560400506760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.util.concurrent.BlockingQueue; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.JobTrace; import org.sweble.wikitext.articlecruncher.JobTraceSet; import org.sweble.wikitext.articlecruncher.utils.AbortHandler; import org.sweble.wikitext.articlecruncher.utils.WorkerBase; import org.sweble.wikitext.dumpreader.DumpReader; import org.sweble.wikitext.dumpreader.export_0_10.PageType; import org.sweble.wikitext.dumpreader.export_0_10.RevisionType; import de.fau.cs.osr.utils.WrappedException; public class DumpReaderJobGenerator extends WorkerBase { private final BlockingQueue inTray; private final JobTraceSet jobTraces; private final DumpCruncher dumpCruncher; private final DumpReader dumpReader; private InputStream is; // ========================================================================= public DumpReaderJobGenerator( DumpCruncher dumpCruncher, File dumpFile, Charset charset, AbortHandler abortHandler, BlockingQueue inTray, JobTraceSet jobTraces) { super(DumpReaderJobGenerator.class.getSimpleName(), abortHandler); this.dumpCruncher = dumpCruncher; this.inTray = inTray; this.jobTraces = jobTraces; try { is = new FileInputStream(dumpFile); this.dumpReader = new DumpReader( is, charset, dumpFile.getPath(), getLogger(), false) { @Override protected void processPage(Object mediaWiki, Object page) { try { DumpReaderJobGenerator.this.processPage(mediaWiki, page); } catch (InterruptedException e) { throw new WrappedException(e); } catch (IOException e) { throw new WrappedException(e); } } }; } catch (Exception e) { after(); throw new WrappedException(e); } } @Override public void after() { if (is != null) { try { info("Close the input stream"); is.close(); is = null; } catch (Exception e) { throw new RuntimeException(e); } } } // ========================================================================= public long getFileSize() { return dumpReader.getFileSize(); } public long getDecompressedBytesRead() throws IOException { return dumpReader.getDecompressedBytesRead(); } public long getCompressedBytesRead() throws IOException { return dumpReader.getCompressedBytesRead(); } public long getParsedCount() { return dumpReader.getParsedCount(); } // ========================================================================= @Override protected void work() throws Throwable { dumpReader.unmarshal(); } protected void processPage(Object mediaWiki, Object page_) throws InterruptedException, IOException { PageType page = (PageType) page_; for (Object o : page.getRevisionOrUpload()) { if (o instanceof RevisionType) { RevisionJob job = new RevisionJob(page, (RevisionType) o); JobTrace trace = job.getTrace(); trace.signOff(getClass(), null); jobTraces.add(trace); inTray.put(job); Gui gui = dumpCruncher.getGui(); gui.setPageCount((int) getParsedCount()); gui.setBytesRead(getCompressedBytesRead()); gui.redrawLater(); } } } } Gui.java000066400000000000000000000324741335270560400450610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.SwingUtilities; import javax.swing.Timer; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sweble.wikitext.articlecruncher.utils.SpeedMeter; import de.fau.cs.osr.utils.BinaryPrefix; import de.fau.cs.osr.utils.StringTools; final class Gui implements Runnable { private static final float UPDATES_PER_SECOND = 25; private static final int UPDATE_INTERVAL = (int) (1000 / UPDATES_PER_SECOND); private static final Logger logger = LoggerFactory.getLogger(Gui.class); // ===================================================================== private final SpeedMeter speedMeter; private final DumpCruncher dumpCruncher; private Container pane; private JDialog dialog; private JPanel nexusPanel; private JProgressBar inTray; private JProgressBar outTray; private JPanel dbReaderPanel; private JLabel pagesRetrieved; private JLabel speed; private JLabel textRead; /* private JLabel waitingOnDbLabel; */ private JProgressBar processorsActive; /* private JProgressBar storersActive; */ private Timer timer; // ===================================================================== public Gui(final DumpCruncher dumpCruncher) { this.dumpCruncher = dumpCruncher; this.speedMeter = new SpeedMeter( 1.0f, UPDATE_INTERVAL / 1000.f, 30.0f); this.lastUpdate = System.currentTimeMillis(); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { try { for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { logger.error(null, ex); } catch (InstantiationException ex) { logger.warn(null, ex); } catch (IllegalAccessException ex) { logger.warn(null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { logger.warn(null, ex); } dialog = new JDialog(new JFrame(), true); dialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); pane = dialog.getContentPane(); pane.setLayout( new BoxLayout(pane, BoxLayout.Y_AXIS)); GridBagConstraints gridBagConstraints; // Initialize empty fields to this to make dialog.pack() choose // a good width for the dialog. final String space = StringTools.strrep('_', 20); { final int inTrayCapacity = dumpCruncher.getOptions().value( "Nexus.InTrayCapacity", int.class); final int outTrayCapacity = dumpCruncher.getOptions().value( "Nexus.OutTrayCapacity", int.class); JLabel inTrayLabel; JLabel outTrayLabel; nexusPanel = new JPanel(); inTrayLabel = new JLabel(); inTray = new JProgressBar(0, inTrayCapacity); outTrayLabel = new JLabel(); outTray = new JProgressBar(0, outTrayCapacity); nexusPanel.setBorder(BorderFactory.createTitledBorder("Nexus")); GridBagLayout nexusPanelLayout = new GridBagLayout(); nexusPanelLayout.columnWeights = new double[] { 0.1, 1.0 }; nexusPanel.setLayout(nexusPanelLayout); inTrayLabel.setText("in Tray: "); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; nexusPanel.add(inTrayLabel, gridBagConstraints); inTray.setStringPainted(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.EAST; nexusPanel.add(inTray, gridBagConstraints); outTrayLabel.setText("out Tray: "); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = GridBagConstraints.EAST; nexusPanel.add(outTrayLabel, gridBagConstraints); outTray.setStringPainted(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.EAST; nexusPanel.add(outTray, gridBagConstraints); pane.add(nexusPanel); } { JLabel pagesRetrievedLabel; JLabel speedLabel; JLabel textReadLabel; dbReaderPanel = new JPanel(); pagesRetrievedLabel = new JLabel(); textReadLabel = new JLabel(); pagesRetrieved = new JLabel(); textRead = new JLabel(); speedLabel = new JLabel(); speed = new JLabel(); /* waitingOnDbLabel = new JLabel(); */ dbReaderPanel.setBorder(BorderFactory.createTitledBorder("DumpReaderJobGenerator")); dbReaderPanel.setName("Test"); GridBagLayout dbReaderPanelLayout = new GridBagLayout(); dbReaderPanelLayout.columnWidths = new int[] { 0, 10, 0, 10, 0, 10, 0 }; dbReaderPanelLayout.rowHeights = new int[] { 0, 10, 0 }; dbReaderPanelLayout.columnWeights = new double[] { 0.2, 1.0, 0.2, 1.0 }; dbReaderPanelLayout.rowWeights = new double[] { 1.0, 1.0, 1.0, 1.0 }; dbReaderPanel.setLayout(dbReaderPanelLayout); pagesRetrievedLabel.setText("Pages retrieved:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(pagesRetrievedLabel, gridBagConstraints); textReadLabel.setText("Bytes of text read:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(textReadLabel, gridBagConstraints); pagesRetrieved.setText(space); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(pagesRetrieved, gridBagConstraints); textRead.setText(space); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(textRead, gridBagConstraints); speedLabel.setText("Speed:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(speedLabel, gridBagConstraints); speed.setText(space); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = GridBagConstraints.EAST; dbReaderPanel.add(speed, gridBagConstraints); /* waitingOnDbLabel.setForeground(new Color(255, 102, 51)); waitingOnDbLabel.setText("Waiting for DB"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; dbReaderPanel.add(waitingOnDbLabel, gridBagConstraints); */ pane.add(dbReaderPanel); } { final int numWorkers = dumpCruncher.getOptions().value( "processing-workers", int.class); JPanel processorPanel; JLabel processorsActiveLabel; processorPanel = new JPanel(); processorsActiveLabel = new JLabel(); processorsActive = new JProgressBar(0, numWorkers); processorPanel.setBorder(BorderFactory.createTitledBorder("Processors")); GridBagLayout processorsPanelLayout = new GridBagLayout(); processorsPanelLayout.columnWeights = new double[] { 0.1, 1.0 }; processorPanel.setLayout(processorsPanelLayout); processorsActiveLabel.setText("active Processors: "); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; processorPanel.add(processorsActiveLabel, gridBagConstraints); processorsActive.setStringPainted(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.EAST; processorPanel.add(processorsActive, gridBagConstraints); pane.add(processorPanel); } /* { final int numWorkers = dumpCruncher.getOptions().value( "store-workers", int.class); JPanel storerPanel; JLabel storersActiveLabel; storerPanel = new JPanel(); storersActiveLabel = new JLabel(); storersActive = new JProgressBar(0, numWorkers); storerPanel.setBorder(BorderFactory.createTitledBorder("Storers")); GridBagLayout storerPanelLayout = new GridBagLayout(); storerPanelLayout.columnWeights = new double[] { 0.1, 1.0 }; storerPanel.setLayout(storerPanelLayout); storersActiveLabel.setText("active Storers: "); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; storerPanel.add(storersActiveLabel, gridBagConstraints); storersActive.setStringPainted(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.EAST; storerPanel.add(storersActive, gridBagConstraints); pane.add(storerPanel); } */ // -- timer = new Timer(UPDATE_INTERVAL, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (dirty.get()) SwingUtilities.invokeLater(Gui.this); } }); timer.setCoalesce(true); timer.setRepeats(true); timer.start(); // -- dialog.pack(); // -- logger.info("Gui setup finished."); // this blocks! dialog.setVisible(true); } }); } public void close() { if (timer != null) timer.stop(); if (dialog != null) dialog.dispose(); } // ===================================================================== private long lastUpdate; private final AtomicBoolean dirty = new AtomicBoolean(true); private int pageCount; private long bytesRead; /* private boolean waitingOnDb; */ private final AtomicInteger inProcessing = new AtomicInteger(0); /* private final AtomicInteger inStoring = new AtomicInteger(0); */ // ===================================================================== public synchronized void redrawLater() { dirty.set(true); long time = System.currentTimeMillis(); if (time - lastUpdate > UPDATE_INTERVAL) { SwingUtilities.invokeLater(this); lastUpdate = time; } } public synchronized void setPageCount(int pageCount) { this.pageCount = pageCount; } public synchronized void setBytesRead(long bytesRead) { this.bytesRead = bytesRead; } /* public synchronized void setWaitingOnDb(boolean waitingOnDb) { this.waitingOnDb = waitingOnDb; } */ public synchronized void processingStarted() { inProcessing.incrementAndGet(); } public synchronized void processingFinished() { inProcessing.decrementAndGet(); } /* public synchronized void storingStarted() { inStoring.incrementAndGet(); } public synchronized void storingFinished() { inStoring.decrementAndGet(); } */ // ===================================================================== @Override public void run() { dirty.set(false); { inTray.setValue(dumpCruncher.getNexus().getInTray().size()); outTray.setValue(dumpCruncher.getNexus().getOutTray().size()); } { pagesRetrieved.setText(String.valueOf(pageCount)); BinaryPrefix bytesReadP = new BinaryPrefix(bytesRead); textRead.setText(String.format( "%d %s", bytesReadP.getValue(), bytesReadP.makePaddedUnit("B"))); speedMeter.update(bytesRead, -1); float speed = speedMeter.getAvgSpeed(); BinaryPrefix p = new BinaryPrefix((long) speed); this.speed.setText(String.format( "%7.2f %s", speed / p.getFactor(), p.makePaddedUnit("B/s"))); /* this.waitingOnDbLabel.setVisible(waitingOnDb); */ } { this.processorsActive.setValue(inProcessing.get()); } /* { this.storersActive.setValue(inStoring.get()); } */ } } RevisionJob.java000066400000000000000000000100071335270560400465520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.math.BigInteger; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone; import javax.xml.datatype.XMLGregorianCalendar; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.dumpreader.export_0_10.CommentType; import org.sweble.wikitext.dumpreader.export_0_10.ContributorType; import org.sweble.wikitext.dumpreader.export_0_10.PageType; import org.sweble.wikitext.dumpreader.export_0_10.RevisionType; import org.sweble.wikitext.dumpreader.export_0_10.TextType; public class RevisionJob extends Job { // -- page info -- private final BigInteger pageId; private final BigInteger pageNamespace; private final String pageTitle; private final String pageRedirect; // -- revision info -- private final BigInteger id; private final boolean minor; private final Calendar timestamp; // -- text info -- private final String textText; private final boolean isTextDeleted; // ========================================================================= public RevisionJob(PageType page, RevisionType rev) { page.getDiscussionthreadinginfo(); this.pageId = page.getId(); this.pageNamespace = page.getNs(); if (page.getRedirect() != null) { this.pageRedirect = page.getRedirect().getTitle(); } else { this.pageRedirect = null; } page.getRestrictions(); rev.getSha1(); this.pageTitle = page.getTitle(); if (rev.getComment() != null) { CommentType comment = rev.getComment(); comment.getDeleted(); comment.getValue(); } if (rev.getContributor() != null) { ContributorType contributor = rev.getContributor(); contributor.getDeleted(); contributor.getId(); contributor.getIp(); contributor.getUsername(); } this.id = rev.getId(); this.minor = (rev.getMinor() != null); rev.getSha1(); if (rev.getText() != null) { TextType text = rev.getText(); text.getBytes(); this.isTextDeleted = text.getDeleted() != null; text.getSpace(); this.textText = text.getValue(); } else { this.isTextDeleted = false; this.textText = null; } if (rev.getTimestamp() != null) { XMLGregorianCalendar ts = rev.getTimestamp(); this.timestamp = new GregorianCalendar(); this.timestamp.setTimeZone(ts.getTimeZone(0)); this.timestamp.set( ts.getYear(), ts.getMonth(), ts.getDay(), ts.getHour(), ts.getMinute(), ts.getSecond()); } else { this.timestamp = new GregorianCalendar(); this.timestamp.setTimeZone(TimeZone.getTimeZone("UST")); this.timestamp.setTimeInMillis(0); } } // ========================================================================= // page public BigInteger getPageId() { return pageId; } public BigInteger getPageNamespace() { return pageNamespace; } public String getPageTitle() { return pageTitle; } public String getPageRedirect() { return pageRedirect; } // ========================================================================= // revision public BigInteger getId() { return id; } public boolean isMinor() { return minor; } public Calendar getTimestamp() { return timestamp; } // ========================================================================= // text public String getTextText() { return textText; } public boolean isTextDeleted() { return isTextDeleted; } } RevisionProcessor.java000066400000000000000000000040501335270560400500200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-dumpcruncher/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import org.sweble.wikitext.articlecruncher.Job; import org.sweble.wikitext.articlecruncher.Processor; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import de.fau.cs.osr.utils.WrappedException; public class RevisionProcessor implements Processor { private final DumpCruncher dumpCruncher; public RevisionProcessor(DumpCruncher dumpCruncher) { this.dumpCruncher = dumpCruncher; } @Override public Object process(Job job) { try { Gui gui = dumpCruncher.getGui(); gui.processingStarted(); gui.redrawLater(); RevisionJob revJob = (RevisionJob) job; WikiConfig config = dumpCruncher.getWikiConfig(); // Instantiate a compiler for wiki pages WtEngineImpl engine = new WtEngineImpl(config); // Retrieve a page PageTitle pageTitle = PageTitle.make(config, revJob.getPageTitle()); PageId pageId = new PageId(pageTitle, revJob.getId().longValue()); String wikitext = revJob.getTextText(); // Compile the retrieved page EngProcessedPage cp = engine.postprocess(pageId, wikitext, null); gui.processingFinished(); gui.redrawLater(); return cp; } catch (Exception e) { throw new WrappedException(e); } } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/000077500000000000000000000000001335270560400337065ustar00rootroot00000000000000pom.xml000066400000000000000000000141751335270560400351540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-example-serialization jar SWC - Serialization Example 2012 An example project that contains a simple application that is able to parse a page written in Wikitext and serialize it to XML, JSON or binary. ../ commons-io commons-io net.sf.jopt-simple jopt-simple com.google.code.gson gson com.thoughtworks.xstream xstream xtc rats-runtime de.fau.cs.osr.utils utils de.fau.cs.osr.utils utils-getopt de.fau.cs.osr.ptk ptk-common de.fau.cs.osr.ptk ptk-xml-tools de.fau.cs.osr.ptk ptk-json-tools org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine junit junit test de.fau.cs.osr.utils utils-testing test com.mycila license-maven-plugin src/main/resources/render-template.html src/test/resources/** org.apache.maven.plugins maven-enforcer-plugin enforce-ban-duplicate-classes org.xmlpull.v1.XmlPullParser org.xmlpull.v1.XmlPullParserException true de.thetaphi forbiddenapis commons-io-unsafe-1.4 src/000077500000000000000000000000001335270560400344165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serializationmain/000077500000000000000000000000001335270560400353425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/srcjava/000077500000000000000000000000001335270560400362635ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/mainorg/000077500000000000000000000000001335270560400370525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/javasweble/000077500000000000000000000000001335270560400403335ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/orgwikitext/000077500000000000000000000000001335270560400422035ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/swebleexample/000077500000000000000000000000001335270560400436365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/sweble/wikitextApp.java000066400000000000000000000120361335270560400452230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.nio.charset.Charset; import java.util.List; import de.fau.cs.osr.utils.ComparisonException; import de.fau.cs.osr.utils.getopt.Options; import joptsimple.OptionException; import xtc.parser.ParseException; public class App { public static void main(String[] args) throws ClassNotFoundException, CloneNotSupportedException, IOException, ParseException, ComparisonException { setUp(args); } private static void setUp(String[] args) throws CloneNotSupportedException, IOException, ClassNotFoundException, ParseException, ComparisonException { Options opt = new Options(); // Serilization format opt.createOption('f', "format") .withDescription("Serialization format, one of 'json', 'xml' or 'java'") .withArgName("FORMAT") .withRequiredArg() .create(); // Timings opt.createOption("timings") .withDescription("Time parsing, serialization, compression and deserialization (can take a long time!)") .create(); // Parsing opt.createOption("auto-correct") .withDescription("Auto correct erroneous wikitext") .create(); opt.createOption("warnings") .withDescription("Generate parser warnings") .create(); // Postprocessing opt.createOption("strip-attrs") .withDescription("Srtip all attributes from AST nodes before serialization") .create(); opt.createOption("strip-location") .withDescription("Strip location information from AST nodes before serialization") .create(); opt.createOption("strip-rtd") .withDescription("Strip only RTD attributes from AST nodes before serialization") .create(); opt.createOption("simplify") .withDescription("Collapse adjacent text nodes into one text node") .create(); // Go Command Line! List free; try { opt.parse(args); free = opt.getFreeArguments(); if (free == null || free.isEmpty()) { printHelp(opt); return; } opt.expected("format"); opt.optional("timings"); opt.optional("auto-correct"); opt.optional("warnings"); opt.optional("strip-attrs"); opt.optional("strip-location"); opt.optional("strip-rtd"); opt.optional("simplify"); } catch (OptionException e) { printHelp(opt); System.err.println(); System.err.println(e.getMessage()); return; } String methodName = opt.value("format"); SerializationMethod method; if (methodName.toLowerCase().equals("java")) { method = SerializationMethod.JAVA; } else if (methodName.toLowerCase().equals("xml")) { method = SerializationMethod.XML; } else if (methodName.toLowerCase().equals("json")) { method = SerializationMethod.JSON; } else { printHelp(opt); return; } String fileTitle = free.get(0); // Go Go Go! run( opt, new File(fileTitle + ".wikitext"), new File(fileTitle + "." + method.getExt()), method, fileTitle); } private static void printHelp(Options opt) { System.err.println("Usage: java -jar swc-example-serialization-VERSION.jar -f FORMAT [OPTIONS] TITLE"); System.err.println(); System.err.println(" The program will look for a file called `TITLE.wikitext',"); System.err.println(" parse the file and write the serialized version to a file"); System.err.println(" with the same name and the approprate extension."); System.err.println(); opt.cmdLineHelp(System.err); } private static void run( Options opt, File source, File target, SerializationMethod method, String fileTitle) throws CloneNotSupportedException, IOException, ClassNotFoundException, ParseException, ComparisonException { Serializer serializer = new Serializer( new FileInputStream(source), source.getName(), Charset.defaultCharset().name()); // Parsing serializer.setParserAutoCorrectEnabled(opt.has("auto-correct")); serializer.setParserWarningsEnabled(opt.has("warnings")); serializer.setParserRtdEnabled(!opt.has("strip-rtd")); // Postprocessing serializer.setPpStripLocations(opt.has("strip-location")); serializer.setPpStripAllAttributes(opt.has("strip-attrs")); serializer.setPpStripRtdAttributes(opt.has("strip-rtd")); serializer.setPpSimplifyAst(opt.has("simplify")); // Timings serializer.setQuiet(!opt.has("timings")); if (opt.has("timings")) serializer.roundTrip(method); serializer.serializeTo(method, target); } } SerializationMethod.java000066400000000000000000000017511335270560400504630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; public enum SerializationMethod { JSON { @Override public String getExt() { return "json"; } }, JAVA { @Override public String getExt() { return "bin"; } }, XML { @Override public String getExt() { return "xml"; } }; public abstract String getExt(); } Serializer.java000066400000000000000000000442651335270560400466250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStreamWriter; import java.util.Collections; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.ByteArrayOutputStream; import org.sweble.wikitext.engine.config.WikiConfigImpl; import org.sweble.wikitext.engine.serialization.EngineAstNodeConverter; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.comparer.WtComparer; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.NodeStats; import org.sweble.wikitext.parser.utils.NonExpandingParser; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.RtData; import de.fau.cs.osr.ptk.common.json.AstNodeJsonTypeAdapter; import de.fau.cs.osr.ptk.common.json.AstRtDataJsonTypeAdapter; import de.fau.cs.osr.ptk.common.serialization.NodeFactory; import de.fau.cs.osr.ptk.common.xml.AstNodeXmlConverter; import de.fau.cs.osr.utils.ComparisonException; import de.fau.cs.osr.utils.StopWatch; import xtc.parser.ParseException; public class Serializer { private static final StopWatch watch = new StopWatch(); // ========================================================================= private boolean quiet = false; private int warumpIterations = 128; private int measurementIterations = 32; private boolean timeParsing = true; private boolean timeCompression = true; private boolean timeDeserialization = true; private boolean timeSerialization = true; private boolean parserRtdEnabled = false; private boolean parserWarningsEnabled = false; private boolean parserAutoCorrectEnabled = false; private boolean ppStripAllAttributes = true; private boolean ppStripRtdAttributes = true; private boolean ppStripLocations = true; private boolean ppSimplifyAst = true; // ========================================================================= private String title; private WtNode original; private int wikitextLength; private InputStream source; private String sourceName; private String inputEncoding; private String outputEncoding; // ========================================================================= public Serializer(InputStream source, String sourceName, String encoding) { this.source = source; this.sourceName = sourceName; this.inputEncoding = encoding; this.outputEncoding = inputEncoding; } // ========================================================================= public boolean isQuiet() { return quiet; } public int getWarumpIterations() { return warumpIterations; } public int getMeasurementIterations() { return measurementIterations; } public boolean isTimeParsing() { return timeParsing; } public boolean isTimeCompression() { return timeCompression; } public boolean isTimeDeserialization() { return timeDeserialization; } public boolean isTimeSerialization() { return timeSerialization; } public boolean isParserRtdEnabled() { return parserRtdEnabled; } public boolean isParserWarningsEnabled() { return parserWarningsEnabled; } public boolean isParserAutoCorrectEnabled() { return parserAutoCorrectEnabled; } public boolean isPpStripAllAttributes() { return ppStripAllAttributes; } public boolean isPpStripRtdAttributes() { return ppStripRtdAttributes; } public boolean isPpStripLocations() { return ppStripLocations; } public boolean isPpSimplifyAst() { return ppSimplifyAst; } public void setQuiet(boolean quiet) { this.quiet = quiet; } public void setWarumpIterations(int warumpIterations) { this.warumpIterations = warumpIterations; } public void setMeasurementIterations(int measurementIterations) { this.measurementIterations = measurementIterations; } public void setTimeParsing(boolean timeParsing) { this.timeParsing = timeParsing; } public void setTimeCompression(boolean timeCompression) { this.timeCompression = timeCompression; } public void setTimeDeserialization(boolean timeDeserialization) { this.timeDeserialization = timeDeserialization; } public void setTimeSerialization(boolean timeSerialization) { this.timeSerialization = timeSerialization; } public void setParserRtdEnabled(boolean parserRtdEnabled) { this.parserRtdEnabled = parserRtdEnabled; } public void setParserWarningsEnabled(boolean parserWarningsEnabled) { this.parserWarningsEnabled = parserWarningsEnabled; } public void setParserAutoCorrectEnabled(boolean parserAutoCorrectEnabled) { this.parserAutoCorrectEnabled = parserAutoCorrectEnabled; } public void setPpStripAllAttributes(boolean ppStripAllAttributes) { this.ppStripAllAttributes = ppStripAllAttributes; } public void setPpStripRtdAttributes(boolean ppStripRtdAttributes) { this.ppStripRtdAttributes = ppStripRtdAttributes; } public void setPpStripLocations(boolean ppStripLocations) { this.ppStripLocations = ppStripLocations; } public void setPpSimplifyAst(boolean ppSimplifyAst) { this.ppSimplifyAst = ppSimplifyAst; } // ========================================================================= public void parse() throws IOException, ParseException { if (original != null) return; String title = sourceName; if (!quiet) { System.out.println(); System.out.println("Parsing: " + title); } String content = IOUtils.toString(source, inputEncoding); WtNode original = parse(title, content); int wikitextLength = content.getBytes().length; this.title = title; this.original = original; this.wikitextLength = wikitextLength; if (!quiet) { System.out.format(" Wikitext size: %d Bytes\n", wikitextLength); System.out.println(); NodeStats.process(original); } } /** * Do everything: Serialize, compress, deserialize and compare. */ public void roundTrip(SerializationMethod method) throws CloneNotSupportedException, IOException, ParseException, ClassNotFoundException, ComparisonException { parse(); if (!quiet) { System.out.println(); System.out.println("==[ " + method.toString() + " serialization: " + title + " ]=="); System.out.println(); } byte[] serialized = serialize(method); compare(method, deserialize(method, serialized)); if (timeSerialization) { timedSerialization(method); } if (timeCompression) { timedZip(serialized); if (timeDeserialization) timedUnzipAndDeserialize(method, zip(serialized)); } if (timeDeserialization) { timedDeserialization(method, serialized); } } public void serializeTo(SerializationMethod method, File output) throws IOException, ParseException { parse(); FileUtils.writeByteArrayToFile(output, serialize(method)); } public byte[] serializeTo(SerializationMethod method) throws IOException, ParseException { parse(); return serialize(method); } public WtNode deserializeFrom(SerializationMethod method, File input) throws ClassNotFoundException, IOException { return deserialize(method, FileUtils.readFileToByteArray(input)); } public WtNode deserializeFrom(SerializationMethod method, byte[] buffer) throws ClassNotFoundException, IOException { return deserialize(method, buffer); } public WtNode getAst() throws IOException, ParseException { parse(); return original; } public WtNode getFixedOriginalAst(final SerializationMethod method) throws CloneNotSupportedException, IOException, ParseException { WtNode originalAst = getAst(); if (method == SerializationMethod.JSON) { // As long as GSON does not handle Object collections and polymorphism // correctly, the "warnings" attribute cannot be serialized originalAst = (WtNode) originalAst.clone(); originalAst.setProperty("warnings", Collections.EMPTY_LIST); } return originalAst; } // ========================================================================= private WtNode parse(String title, String content) throws IOException, ParseException { if (!quiet && timeParsing) { for (int i = 0; i < warumpIterations; ++i) doParse(title, content); watch.start(); for (int i = 0; i < measurementIterations; ++i) original = doParse(title, content); watch.stop(); float time = watch.getElapsedTime() / (float) measurementIterations; float len = content.getBytes().length; float tp = len / 1024.f / 1024.f / (time / 1000.f); System.out.println(" Parser settings:"); System.out.println(" Warnings enabled : " + parserWarningsEnabled); System.out.println(" RTD enabled : " + parserRtdEnabled); System.out.println(" Auto correct enabled : " + parserAutoCorrectEnabled); System.out.println(" Strip all attributes : " + ppStripAllAttributes); System.out.println(" Strip RTD attributes : " + ppStripRtdAttributes); System.out.println(" Strip locations : " + ppStripLocations); System.out.println(" Simplify AST : " + ppSimplifyAst); System.out.println(); System.out.println(String.format(" Time: %d ms", (long) time)); System.out.println(String.format(" Throughput: %1.2f MB/s", tp)); } return doParse(title, content); } private WtNode doParse(String title, String content) throws IOException, ParseException { NonExpandingParser parser = new NonExpandingParser( parserWarningsEnabled, parserRtdEnabled, parserAutoCorrectEnabled); if (ppStripAllAttributes || ppStripRtdAttributes || ppStripLocations) parser.addVisitor(new StripAstVisitor( ppStripAllAttributes, ppStripRtdAttributes, ppStripLocations)); return parser.parseArticle(content, title); } // ========================================================================= private byte[] timedSerialization(SerializationMethod method) throws IOException, ParseException { if (!quiet) { for (int i = 0; i < warumpIterations; ++i) serialize(method); watch.start(); for (int i = 0; i < measurementIterations; ++i) serialize(method); watch.stop(); } byte[] serialized = serialize(method); if (!quiet) { long time = watch.getElapsedTime() / measurementIterations; long pow = serialized.length * 100 / wikitextLength; System.out.println("Timed serialization:"); System.out.format(" Average time: %d ms\n", time); System.out.format(" Serialized size: %d Bytes\n", serialized.length); System.out.format(" Inflation: %3d%%\n", pow); System.out.println(); } return serialized; } private byte[] serialize(SerializationMethod method) throws IOException, ParseException { ByteArrayOutputStream objBaos = new ByteArrayOutputStream(); switch (method) { case JAVA: { ObjectOutputStream oos = new ObjectOutputStream(objBaos); oos.writeObject(getAst()); oos.close(); break; } case XML: { OutputStreamWriter osw = new OutputStreamWriter(objBaos, outputEncoding); getXmlSerializer().toXML(getAst(), osw); osw.close(); break; } case JSON: { OutputStreamWriter osw = new OutputStreamWriter(objBaos, outputEncoding); getJsonSerializer().toJson(getAst(), osw); osw.close(); break; } default: objBaos.close(); throw new UnsupportedOperationException(); } return objBaos.toByteArray(); } private XStream getXmlSerializer() { AstNodeXmlConverter converter = AstNodeXmlConverter.forNodeType(WtNode.class); EngineAstNodeConverter.setup(new WikiConfigImpl(), converter); XStream xstream = new XStream(new DomDriver()); xstream.registerConverter(converter); xstream.setMode(XStream.NO_REFERENCES); return xstream; } private Gson getJsonSerializer() { final AstNodeJsonTypeAdapter nodeConverter = AstNodeJsonTypeAdapter.forNodeType(WtNode.class); EngineAstNodeConverter.setup(new WikiConfigImpl(), nodeConverter); // As long as GSON does not handle Object collections and polymorphism // correctly, the "warnings" attribute cannot be serialized nodeConverter.suppressProperty("warnings"); nodeConverter.setNodeFactory(new NodeFactory() { NodeFactory nf = nodeConverter.getNodeFactory(); @Override public WtNode instantiateNode(Class clazz) { return nf.instantiateNode(clazz); } @Override public WtNode instantiateDefaultChild( NamedMemberId id, Class childType) { return nf.instantiateDefaultChild(id, childType); } @Override public Object instantiateDefaultProperty( NamedMemberId id, Class type) { if (id.memberName == "warnings") return Collections.EMPTY_LIST; return nf.instantiateDefaultProperty(id, type); } }); AstRtDataJsonTypeAdapter rtdConverter = new AstRtDataJsonTypeAdapter(WtRtData.class); EngineAstNodeConverter.setup(rtdConverter); GsonBuilder builder = new GsonBuilder(); builder.registerTypeHierarchyAdapter(RtData.class, rtdConverter); builder.registerTypeHierarchyAdapter(AstNode.class, nodeConverter); builder.serializeNulls(); builder.setPrettyPrinting(); return builder.create(); } // ========================================================================= private WtNode timedDeserialization( SerializationMethod method, byte[] serialized) throws ClassNotFoundException, IOException { if (!quiet) { for (int i = 0; i < warumpIterations; ++i) deserialize(method, serialized); watch.start(); for (int i = 0; i < measurementIterations; ++i) deserialize(method, serialized); watch.stop(); } WtNode deserialized = deserialize(method, serialized); if (!quiet) { long time = watch.getElapsedTime() / measurementIterations; System.out.println("Timed deserialization:"); System.out.format(" Average time: %d ms\n", time); System.out.println(); } return deserialized; } private WtNode deserialize( SerializationMethod method, byte[] serialized) throws ClassNotFoundException, IOException { return deserialize(method, new ByteArrayInputStream(serialized)); } private WtNode deserialize(SerializationMethod method, InputStream is) throws IOException, ClassNotFoundException { WtNode result = null; switch (method) { case JAVA: { ObjectInputStream ois = new ObjectInputStream(is); result = (WtNode) ois.readObject(); ois.close(); break; } case XML: { InputStreamReader isr = new InputStreamReader(is, inputEncoding); result = (WtNode) getXmlSerializer().fromXML(isr, WtNode.class); isr.close(); break; } case JSON: { InputStreamReader isr = new InputStreamReader(is, inputEncoding); result = (WtNode) getJsonSerializer().fromJson(isr, WtNode.class); isr.close(); break; } default: throw new UnsupportedOperationException(); } return result; } // ========================================================================= private byte[] timedZip(byte[] serialized) throws IOException { if (!quiet) { for (int i = 0; i < warumpIterations; ++i) zip(serialized); watch.start(); for (int i = 0; i < measurementIterations; ++i) zip(serialized); watch.stop(); } byte[] zipped = zip(serialized); if (!quiet) { long time = watch.getElapsedTime() / measurementIterations; long pou = serialized.length * 100 / zipped.length; long pow = wikitextLength * 100 / zipped.length; System.out.println("Timed zip:"); System.out.format(" Average time: %d ms\n", time); System.out.format(" Zipped size: %d Bytes\n", zipped.length); System.out.format(" Compression ratio serialized to serialized zipped: %3d%%\n", pou); System.out.format(" Compression ratio wikitext to serialized zipped: %3d%%\n", pow); System.out.println(); } return zipped; } private byte[] zip(byte[] serialized) throws IOException { ByteArrayOutputStream zipBaos = new ByteArrayOutputStream(); GZIPOutputStream gzos = new GZIPOutputStream(zipBaos); gzos.write(serialized); gzos.close(); return zipBaos.toByteArray(); } // ========================================================================= private WtNode timedUnzipAndDeserialize( SerializationMethod method, byte[] serialized) throws IOException, ClassNotFoundException { if (!quiet) { for (int i = 0; i < warumpIterations; ++i) unzipAndDeserialize(method, serialized); watch.start(); for (int i = 0; i < measurementIterations; ++i) unzipAndDeserialize(method, serialized); watch.stop(); long time = watch.getElapsedTime() / measurementIterations; System.out.println("Timed unzip and deserialize:"); System.out.format(" Average time: %d ms\n", time); System.out.println(); } return unzipAndDeserialize(method, serialized); } private WtNode unzipAndDeserialize( SerializationMethod method, byte[] zipped) throws IOException, ClassNotFoundException { ByteArrayInputStream bais = new ByteArrayInputStream(zipped); GZIPInputStream gzis = new GZIPInputStream(bais); BufferedInputStream bis = new BufferedInputStream(gzis); return deserialize(method, bis); } // ========================================================================= private void compare(SerializationMethod method, WtNode deserialize) throws CloneNotSupportedException, ComparisonException, IOException, ParseException { WtComparer.compareAndThrow(getFixedOriginalAst(method), deserialize, true, true); } } StripAstVisitor.java000066400000000000000000000032271335270560400476360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.ptk.common.ast.AstLocation; public final class StripAstVisitor extends AstVisitor { private boolean stripAllAttributes; private boolean stripRtdAttributes; private boolean stripLocations; // ========================================================================= public StripAstVisitor( boolean stripAllAttributes, boolean stripRtdAttributes, boolean stripLocations) { this.stripAllAttributes = stripAllAttributes; this.stripRtdAttributes = stripRtdAttributes; this.stripLocations = stripLocations; } // ========================================================================= public void visit(WtNode n) { if (stripAllAttributes) { n.clearAttributes(); } else if (stripRtdAttributes) { n.removeAttribute("RTD"); } if (stripLocations) n.setNativeLocation((AstLocation) null); iterate(n); } } test/000077500000000000000000000000001335270560400353755ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/srcjava/000077500000000000000000000000001335270560400363165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/testorg/000077500000000000000000000000001335270560400371055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/javasweble/000077500000000000000000000000001335270560400403665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/java/orgwikitext/000077500000000000000000000000001335270560400422365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/java/org/swebleexample/000077500000000000000000000000001335270560400436715ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/java/org/sweble/wikitextProfileSerialization.java000066400000000000000000000036671335270560400507060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.IOException; public class ProfileSerialization { private static final String ARTICLE = "raw-Germany.wikitext"; public static void main(String[] args) throws IOException, Exception { Serializer serializer = new Serializer( ProfileSerialization.class.getResourceAsStream("/" + ARTICLE), ARTICLE, "UTF8"); // Parsing options serializer.setParserAutoCorrectEnabled(false); serializer.setParserWarningsEnabled(false); serializer.setParserRtdEnabled(true); // Postprocessing options serializer.setPpSimplifyAst(true); serializer.setPpStripLocations(false); serializer.setPpStripAllAttributes(false); serializer.setPpStripRtdAttributes(false); // Be quiet, don't do timings serializer.setQuiet(false); // ===================================================================== serializer.setTimeParsing(true); serializer.setTimeSerialization(false); serializer.setTimeDeserialization(false); serializer.setTimeCompression(false); //serializer.setMeasurementIterations(measurementIterations); //serializer.setWarumpIterations(warumpIterations); serializer.roundTrip(SerializationMethod.JAVA); //serializer.roundTrip(SerializationMethod.JSON); //serializer.roundTrip(SerializationMethod.XML); } } SerializationIntegrationTest.java000066400000000000000000000100031335270560400524070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.LinkedList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.WtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class SerializationIntegrationTest { private static final boolean VERBOSE = false; private static final boolean TEXTUAL_COMPARISON = false; @Parameters public static List enumerateInputs() throws Exception { LinkedList inputs = new LinkedList(); String[] articles = { "exp-Saxby Chambliss.wikitext", "raw-Germany.wikitext", "raw-Wallace Neff.wikitext", "raw-Zygmunt Kubiak.wikitext" }; for (String title : articles) inputs.add(new Object[] { title }); return inputs; } // ========================================================================= private final String title; private Serializer serializer; // ========================================================================= public SerializationIntegrationTest(String title) { this.title = title; } // ========================================================================= @Test public void testJavaSerialization() throws Exception { setupSerializer(); go(SerializationMethod.JAVA, TEXTUAL_COMPARISON, VERBOSE); } @Test public void testXmlSerialization() throws Exception { setupSerializer(); go(SerializationMethod.XML, TEXTUAL_COMPARISON, VERBOSE); } @Test public void testJsonSerialization() throws Exception { setupSerializer(); // As long as GSON does not handle Object collections and polymorphism // correctly, the "warnings" attribute cannot be serialized serializer.setParserWarningsEnabled(false); go(SerializationMethod.JSON, TEXTUAL_COMPARISON, VERBOSE); } // ========================================================================= private void setupSerializer() throws Exception { this.serializer = new Serializer( SerializationIntegrationTest.class.getResourceAsStream("/" + title), title, "UTF8"); // Parsing options serializer.setParserAutoCorrectEnabled(false); serializer.setParserWarningsEnabled(true); serializer.setParserRtdEnabled(true); // Postprocessing options serializer.setPpSimplifyAst(true); serializer.setPpStripLocations(false); serializer.setPpStripAllAttributes(false); serializer.setPpStripRtdAttributes(false); // Be quiet, don't do timings serializer.setQuiet(true); } private void go( final SerializationMethod method, final boolean textualComparison, final boolean verbose) throws IOException, Exception, UnsupportedEncodingException { if (textualComparison) { byte[] serialized = serializer.serializeTo(method); if (verbose) System.out.println(new String(serialized, "UTF8")); WtNode deserializedAst = serializer.deserializeFrom(method, serialized); String originalAstPrinted = WtAstPrinter.print(serializer.getFixedOriginalAst(method)); String deserializedAstPrinted = WtAstPrinter.print(deserializedAst); assertEquals(originalAstPrinted, deserializedAstPrinted); } serializer.roundTrip(method); } } resources/000077500000000000000000000000001335270560400374075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/testNOTICE000066400000000000000000000020051335270560400403100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/resourcesThe articles in this directory are taken from the English Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "Saxby Chambliss", Revision: 341171402 (Expanded by Wikipedia) http://en.wikipedia.org/w/index.php?oldid=341171402 "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 "Wallace Neff", Revision: 397862911 http://en.wikipedia.org/w/index.php?oldid=397862911 "Zygmunt Kubiak", Revision: 390667719 http://en.wikipedia.org/w/index.php?oldid=390667719 Expansion is done using the script bin/enwp-expand.php. In raw-Germany.wikitext line 958 ([[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]]) was removed to circumvent a bug. exp-Saxby Chambliss.wikitext000066400000000000000000001747121335270560400447630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/resources {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan=2 class="n" style="text-align: center; font-size: 125%; font-weight: bold"|Clarence Saxby Chambliss Jr |- | colspan=2 style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- |colspan="2" style="text-align:center; font-size:110%;"|
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- |colspan="2" style="text-align:center; background:lavender;"| '''[[Incumbent]]''' |- |colspan="2" style="text-align:center;"|'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- |colspan="2" style="text-align:center; font-size:110%;"|
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- !colspan="2" style="text-align:center; font-size:110%;"|
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- |colspan="2"|
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! |- |[[U.S. House election, 1994|1994]] | |style="background:#B0CEFF" |Craig Mathis |style="background:#B0CEFF" align="right" |53,408 |style="background:#B0CEFF" |37% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |89,591 |style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | |style="background:#B0CEFF" |Jim Wiggins |style="background:#B0CEFF" align="right" |84,506 |style="background:#B0CEFF" |47% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |93,619 |style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | |style="background:#B0CEFF" |Ronald L. Cain |style="background:#B0CEFF" align="right" |53,079 |style="background:#B0CEFF" |38% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |87,993 |style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | |style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] |style="background:#B0CEFF" align="right" |79,051 |style="background:#B0CEFF" |41% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |113,380 |style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! !|3rd Party !|Party !|Votes !|Pct ! |- |[[U.S. Senate election, 2002|2002]] | |style="background:#B0CEFF" |[[Max Cleland]] |style="background:#B0CEFF" align="right" |932,422 |style="background:#B0CEFF" |46% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |1,071,352 |style="background:#FFB6B6" |53% | |style="background:#ffff66" |Claude "Sandy" Thomas |style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] |style="background:#ffff66" align="right" |27,830 |style="background:#ffff66" align="right" |1% | |} {| border=1 cellpadding=4 cellspacing=0 style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan=6|2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan=2 style="width: 130px"|Party ! style="width: 17em"|Candidate ! style="width: 5em"|Votes ! style="width: 3.5em"|% ! style="width: 3.5em"|±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[J. Roy Rowland]] |width="40%" style="text-align: center;" rowspan="1"|'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Max Cleland]] |width="40%" style="text-align: center;" rowspan="1"|'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' |width="30%" align="center" rowspan="1"|'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    |width="40%" style="text-align: center;" rowspan="1"|'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    |width="40%" style="text-align: center;" rowspan="1"|'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''
    61st |width="30%" align="center" rowspan="1"| Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] raw-Germany.wikitext000066400000000000000000004647201335270560400434070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/resources{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=
    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
    Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
    and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;"| [[States of Germany|State]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²)!! style="width:85px;"| Population |- | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"|35,752|| style="text-align:right"|10,717,000 |- | [[Bavaria]] || [[Munich]] || style="text-align:right"|70,549|| style="text-align:right"|12,444,000 |- | Berlin || Berlin ||style="text-align:right"|892|| style="text-align:right"|3,400,000 |- | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"|29,477|| style="text-align:right"|2,568,000 |- | [[Bremen (state)|Bremen]] || [[Bremen]] || style="text-align:right"|404|| style="text-align:right"|663,000 |- | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"|755|| style="text-align:right"|1,735,000 |- | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"|21,115|| style="text-align:right"|6,098,000 |- | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"|23,174|| style="text-align:right"|1,720,000 |- | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"|47,618|| style="text-align:right"|8,001,000 |- | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"|34,043|| style="text-align:right"|18,075,000 |- | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"|19,847|| style="text-align:right"|4,061,000 |- | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"|2,569|| style="text-align:right"|1,056,000 |- | [[Saxony]] || [[Dresden]] || style="text-align:right"|18,416|| style="text-align:right"|4,296,000 |- | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"|20,445|| style="text-align:right"|2,494,000 |- | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"|15,763|| style="text-align:right"|2,829,000 |- | [[Thuringia]] || [[Erfurt]] || style="text-align:right"|16,172|| style="text-align:right"|2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;"| Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.|| style="text-align:center;"| Name|| style="text-align:center;"| Headquarters|| style="text-align:center;"| Revenue
    (Mil. €) || style="text-align:center;"| Profit
    (Mil. €) || style="text-align:center;"| Employees
    (World) |- | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 || 329,305 |- | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 || 272,382 |- | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]]/Berlin || 72,488 || 3,806 || 398,200 |- | 4. || style="text-align:left;"| [[E.ON|E.ON AG]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 || 87,815 |- | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 || 242,378 |- | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 || 475,100 |- | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 || 241,426 |- | 8. || style="text-align:left;"| [[BASF|BASF SE]] || style="text-align:left;"| [[Ludwigshafen am Rhein|Ludwigshafen]] || 57,951 || 4,065 || 95,175 |- | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 || 107,539 |- | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]]/[[Duisburg]] || 51,723 || 2,102 || 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
    [[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" !colspan=9 style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan=11 align=center valign=top | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
    [[Berlin]]
    [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
    [[Hamburg]]
    [[File:München Panorama.JPG|border|160px|Munich]]
    [[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 width="50" |   ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 align=center valign=top | [[File:Köln Panorama.jpg|border|160px|Cologne]]
    [[Cologne|Cologne (Köln)]]
    [[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
    [[Frankfurt am Main|Frankfurt]]
    [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
    [[Stuttgart]] |- | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right | 3,442,675 | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right | 520,966 |- | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right | 1,774,224 | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right | 518,862 |- | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right | 1,330,440 | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right | 517,052 |- | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right | 998,105 | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right | 503,673 |- | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main|Frankfurt]] || align=right | 671,927 | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right | 491,931 |- | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right | 601,646 | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right | 376,319 |- | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right | 586,217 | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right | 351,050 |- | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right | 581,308 | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right | 323,084 |- | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right | 576,259 | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right | 319,841 |- | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right | 547,685 | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right | 311,969 |- | colspan=9 align=center | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
    ===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
    (1749–1832) ! align=center |[[Friedrich Schiller]]
    (1759–1805) ! align=center |[[Brothers Grimm]]
    (1785–1863) ! align=center |[[Thomas Mann]]
    (1875–1955) ! align=center |[[Hermann Hesse]]
    (1877–1962) |- | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]]|| align=left | [[File:Grimm1.jpg|125px]]|| align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[J.S.Bach]]
    [[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align=center |[[Ludwig van Beethoven|L.v. Beethoven]]
    [[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align=center |[[Richard Wagner|R. Wagner]]
    [[Die Walküre]] ! align=center |[[Kraftwerk]]
    [[Computer World|Computerwelt Pt. 2]] ! align=center |[[Modern Talking]]
    [[Brother Louie (Modern Talking song)|Brother Louie]] ! align=center |[[Rammstein]]
    [[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]]|| style="text-align:left; background:silver;"|[[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]]|| style="text-align:left; background:dimGrey;"| [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
    {{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
    {{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
    {{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]raw-Wallace Neff.wikitext000066400000000000000000000173441335270560400442100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/resources'''Wallace Neff''' ([[1895]] – June 8, 1982) was an [[architect]] based in [[Southern California]] and was largely responsible for developing the region's distinct architectural style referred to as "California" style. Neff was a student of architect [[Ralph Adams Cram]] and drew heavily from the architectural styles of both [[Spain]] and the [[Mediterranean Sea|Mediterranean]] as a whole, gaining extensive recognition from the number of celebrity commissions, notably [[Pickfair]], the mansion belonging originally to [[Mary Pickford]] and [[Douglas Fairbanks]]."Wallace Neff, Architect, 87; Pioneer of the California Style" (June 11, 1982). ''[[The New York Times]]'', p. D18 ==Early years== Wallace Neff was born to Edwin Neff and Nettie McNally, daughter of [[Chicago]] printing tycoon [[Andrew McNally]] ([[Rand McNally|Rand-McNally Corporation]]). Since Grandfather McNally had moved to [[Altadena, California]] in 1887 and founded Rancho La Mirada, [[La Mirada, California]] was Neff's birthplace. However, he spent a great deal of time at the Altadena residence, a grand [[Andrew McNally House|Queen Anne Victorian mansion]] which looked from the hillside community down to the Pacific Ocean. It would become little wonder that the young Neff would take up an interest in architecture given his surroundings on Millionaire's Row (Mariposa Avenue). At age nine Wallace had moved to Europe with his family only to return to the U.S. at the outbreak of [[World War I]]. ==Developing career== His interest in architecture saw him studying under the revered Ralph Adams Cram in [[Massachusetts]]. He eventually returned to California and took up residence in Altadena while serving as a shipyard draftsman in [[Wilmington, Los Angeles, California|Wilmington]]. Eventually he found himself ready for the architectural realm creating designs of the Spanish Medieval period including his own home Parish of St. Elizabeth of Hungary Roman Catholic Church, established 1918 in Altadena. His gift to the Parish as well as the community was the design of the Church building finished and dedicated in 1926. The church is of Spanish Medieval design including a bell tower which is patterned after a Spanish watchtower. The view from its broad portals at 100 feet gave an enormous panorama not only of the Southern California country side, now blocked by the since-built steeple of Westminster Presbyterian Church to its south, but an expansive view of the [[San Gabriel Mountains]] to its north which boast peaks up to 7,000 feet in altitude. The building is reminiscent of the Serra Missions with its arched south porch and terra cotta tiles. It has high stucco-on-concrete walls with small, high stain glass windows. Below each window is a taller stain glass window with biblical depictions leaded into each one. It boasts a Spanish tile roof and a massive plank wood arched front double door. The interior is vaulted to heights in excess of 50 feet. Across its ceiling are three broad rough hewn trusses acting to support the gabled ceiling. In actuality, the building's superstructure is built of iron girders. Other details on the exterior are broad wing sweeping walls and exaggerated window sills with wooded bars. These features become an important part of his developing style. The Saint Elizabeth church building is the only house of worship ever designed by Neff, and has the distinction of being the oldest building in use for Catholic worship in the southland. To the parish plant Neff added the priests' rectory, the convent for the Holy Name Sisters who taught at the school, and a pet project, a shrine to [[Saint Theresa of Avila]] (1929) which features the true style of his architecture. This makes Saint Elizabeth Parish a rare collection of Wallace Neff works. ==The California Style== As Neff's style became more popular and demanded by the elite, the rich, and the famous, he moved to the exclusive Pasadena suburb of San Marino. To his client list he adds the Gilette Mansion, the Gates Residence. Libby Ranch, and the Pickfair Estate. Other fine mansions line the streets of Chapman Woods, San Marino, San Pascual Avenue, California Street and others in lower East Pasadena. In 1946 Neff designed the airform or "bubble" house, a distinctive form of inexpensive housing, a dome-shaped construction made of reinforced [[concrete]] that was cast in position over an inflatable balloon. Though the design did not gain support in the United States, it was used for large housing projects in [[Egypt]], [[Brazil]], and [[West Africa]] during the 1940s and 1950s.Daunt, Tina (May 19, 2004). "[http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/05/19/HOGAU6MV5H1.DTL It's 'dome sweet dome' for pair in mod house: Architect Wallace Neff designed unit as a model for affordable housing]," ''[[Los Angeles Times]]'', p. K-1, reprinted by the ''[[San Francisco Chronicle]]'' In 2001, [[Brad Pitt]] and [[Jennifer Aniston]] supposedly paid $13.5 million for a Neff house owned at different times by actor [[Fredric March]]{{cite news |author=Ryon, Ruth |title=A Neff, but enough is enough |date=Oct. 2, 2005 |work=[[Los Angeles Times]] |url=http://articles.latimes.com/2005/oct/02/realestate/re-hotprop2 |accessdate=2009-01-09 }} and the philanthropist and [[University of Southern California|USC]] trustee [[Wallis Annenberg]]. In 1998, actress [[Diane Keaton]], an avid fan of Neff's work, purchased a low-slung Neff house in [[Beverly Hills]] – featured in ''[[Architectural Digest]]'', July 1999 – with the front lawn covered in lavender, for an undisclosed sum. This home was later purchased by [[Madonna (entertainer)|Madonna]] and [[Guy Ritchie]], and is still in their possession as of 2007. [[Everett Phipps Babcock]] worked in Neff's office.Wallace Neff, 1895-1982: the romance of regional architecture Edition illustrated Huntington Library, 1989 Original from the University of Michigan Digitized Nov 12, 2007 143 pages ==References== ==External links== *[http://www.jvca.com/architect/historic_renovation_wallace_neff_residence_pasadena_1926.htm 1926 Wallace Neff Renovation Photos], James V. Coane & Associates Architects *[http://query.nytimes.com/gst/fullpage.html?res=9E05E1DF163BF932A25755C0A964948260&sec=&spon=&partner=permalink&exprod=permalink Obituary in the New York Times], June 11, 1982 *[http://www.movielanddirectory.com/star.cfm?star=327750 The Movieland Directory: Wallace Neff Movieland Tour] *{{Find a Grave|12412923}} ==Further reading== *Neff, Wallace (1964). ''Architecture of southern California; A selection of photographs, plans, and scale details from the work of Wallace Neff.'' Chicago, IL: Rand McNally *Neff, Wallace (1989). ''Wallace Neff, 1895-1982: The romance of regional architecture.'' San Marino, CA: Henry E. Huntington Library and Art Gallery, ISBN 0873281284 *Clark, Alson (2000). ''Wallace Neff: Architect of California's Golden Age.'' Santa Monica, CA: Hennessey & Ingalls, ISBN 0940512246 *Kanner, Diane (2005). ''Wallace Neff and the grand houses of the Golden State.'' New York, NY: Monacelli Press, ISBN 1580931634 {{Persondata | NAME = Neff, Wallace | ALTERNATIVE NAMES = | SHORT DESCRIPTION = | DATE OF BIRTH = 1895 | PLACE OF BIRTH = | DATE OF DEATH = June 8, 1982 | PLACE OF DEATH = }} {{DEFAULTSORT:Neff, Wallace}} [[Category:Architects from California]] [[Category:American architects]] [[Category:Mediterranean Revival architects]] [[Category:Spanish Colonial Revival architects]] [[Category:Gothic Revival architects]] [[Category:Altadena, California]] [[Category:1895 births]] [[Category:1982 deaths]] [[Category:People from Pasadena, California]] [[Category:People from Los Angeles, California]] [[Category:People from Los Angeles County, California]] raw-Zygmunt Kubiak.wikitext000066400000000000000000000016051335270560400446360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-serialization/src/test/resources'''Zygmunt Kubiak''' (30 April 1929, [[Warsaw]] - 19 March 2004) was a [[Poland|Polish]] [[writer]], [[essay]]ist, [[translator]], propagator of the antique culture, and professor at the [[University of Warsaw]]. His book ''Mitologia Greków i Rzymian'' was shortlisted for the [[Nike Award]] in 1998. He translated, among others, [[Virgil]]'s ''[[Aeneid]]'', [[St. Augustine]]'s ''[[Confessions (St. Augustine)|Confessions]]'', and all poems of [[Constantine P. Cavafy]]. {{Persondata | NAME = Kubiak, Zygmunt | ALTERNATIVE NAMES = | SHORT DESCRIPTION = | DATE OF BIRTH = | PLACE OF BIRTH = | DATE OF DEATH = | PLACE OF DEATH = }} {{DEFAULTSORT:Kubiak, Zygmunt}} [[Category:Polish writers]] [[Category:1929 births]] [[Category:2004 deaths]] [[Category:Nike Award winners]] {{Poland-writer-stub}} [[pl:Zygmunt Kubiak]] sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/000077500000000000000000000000001335270560400321555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/pom.xml000066400000000000000000000077101335270560400334770ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-example-xpath jar SWC - XPath Example 2011 An example project that contains a simple application that is able to parse a page written in Wikitext and perform an XPath query on that document. ../ commons-io commons-io commons-jxpath commons-jxpath de.fau.cs.osr.utils utils org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine de.fau.cs.osr.ptk ptk-xpath junit junit test com.mycila license-maven-plugin src/main/resources/render-template.html src/test/resources/** de.thetaphi forbiddenapis commons-io-unsafe-1.4 sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/000077500000000000000000000000001335270560400327445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/000077500000000000000000000000001335270560400336705ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400345325ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/mainorg/000077500000000000000000000000001335270560400353215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/javasweble/000077500000000000000000000000001335270560400366025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/java/orgwikitext/000077500000000000000000000000001335270560400404525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/java/org/swebleexample/000077500000000000000000000000001335270560400421055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/java/org/sweble/wikitextApp.java000066400000000000000000000053171335270560400434760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import org.apache.commons.io.FileUtils; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; import org.sweble.wikitext.parser.parser.LinkTargetException; public class App { public static final int wrapCol = 80; public static void main(String[] args) throws IOException, LinkTargetException, EngineException { if (args.length < 1) { System.err.println("Usage: java -jar swc-example-xpath-VERSION.jar TITLE QUERY"); System.err.println(); System.err.println(" The program will look for a file called `TITLE.wikitext',"); System.err.println(" parse the file and perform the given QUERY against the document."); System.err.println(" The result is written as Wikitext to the file `TITLE.result'."); return; } int i = 0; String fileTitle = args[i++]; String query = args[i++]; String result = run( new File(fileTitle + ".wikitext"), fileTitle, query); FileUtils.writeStringToFile(new File(fileTitle + ".result"), result, Charset.defaultCharset().name()); } static String run(File file, String fileTitle, String query) throws LinkTargetException, IOException, EngineException { // Set-up a simple wiki configuration WikiConfig config = DefaultConfigEnWp.generate(); // Instantiate a compiler for wiki pages WtEngineImpl engine = new WtEngineImpl(config); // Retrieve a page PageTitle pageTitle = PageTitle.make(config, fileTitle); PageId pageId = new PageId(pageTitle, -1); String wikitext = FileUtils.readFileToString(file, Charset.defaultCharset().name()); // Compile the retrieved page EngProcessedPage cp = engine.postprocess(pageId, wikitext, null); return XPath.query(cp, query); } } XPath.java000066400000000000000000000044511335270560400440000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/main/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import de.fau.cs.osr.ptk.common.jxpath.AstNodePointerFactory; public class XPath { /** * IMPORTANT! Do not remove this, otherwise XPath queries won't work * properly on ASTs. */ static { JXPathContextReferenceImpl.addNodePointerFactory( new AstNodePointerFactory()); } static String query(EngProcessedPage cp, String query) { Iterator results = null; try { JXPathContext context = JXPathContext.newContext(cp.getPage()); results = context.iterate(query); } catch (Throwable t) { System.err.println("An error occurred when executing XPath query."); t.printStackTrace(); } if (results != null) { if (!results.hasNext()) { System.err.println("XPath result empty!"); } else { List r = new ArrayList(); while (results.hasNext()) r.add(results.next()); System.err.println("Found " + r.size() + " matching nodes."); StringBuilder b = new StringBuilder(); int i = 1; for (Object o : r) { WtNode n = (WtNode) o; b.append('('); b.append(query); b.append(")["); b.append(i); b.append("]:\n\"\"\""); b.append(WtRtDataPrinter.print(n)); b.append("\"\"\"\n\n"); ++i; } return b.toString(); } } return ""; } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/000077500000000000000000000000001335270560400337235ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400345655ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/testorg/000077500000000000000000000000001335270560400353545ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/javasweble/000077500000000000000000000000001335270560400366355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/java/orgwikitext/000077500000000000000000000000001335270560400405055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/java/org/swebleexample/000077500000000000000000000000001335270560400421405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/java/org/sweble/wikitextAppTest.java000066400000000000000000000031331335270560400443630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/java/org/sweble/wikitext/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.example; import java.io.File; import java.io.InputStream; import java.net.URL; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Test; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.StringTools; public class AppTest { @Test public void test() throws Exception { String title = "Simple_Page"; URL url = AppTest.class.getResource("/" + title + ".wikitext"); String path = StringTools.decodeUsingDefaultCharset(url.getFile()); StringBuilder b = new StringBuilder(); b.append(App.run(new File(path), title, "//WtInternalLink")); b.append(App.run(new File(path), title, "//WtTableCell")); InputStream expectedIs = AppTest.class.getResourceAsStream("/" + title + ".result"); String expected = FileTools.lineEndToUnix(IOUtils.toString(expectedIs, "UTF8")); String actual = FileTools.lineEndToUnix(b.toString()); Assert.assertEquals(expected, actual); } } resources/000077500000000000000000000000001335270560400356565ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/testSimple_Page.result000066400000000000000000000003241335270560400413020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/resources(//WtInternalLink)[1]: """[[Somewhere|Item 1]]""" (//WtTableCell)[1]: """ | Cell 1.1 """ (//WtTableCell)[2]: """|| Cell 1.2 """ (//WtTableCell)[3]: """ | Cell 2.1 """ (//WtTableCell)[4]: """|| Cell 2.2 """ Simple_Page.wikitext000066400000000000000000000003131335270560400416320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-example-xpath/src/test/resources== Simple Page == This is a '''simple page'''. It contains a link, a list and a table. * [[Somewhere|Item 1]] * Item 2 {| border="2" |- | Cell 1.1 || Cell 1.2 |- | Cell 2.1 || Cell 2.2 |} CYA! sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/000077500000000000000000000000001335270560400316515ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/NOTICE000066400000000000000000000006651335270560400325640ustar00rootroot00000000000000Some test cases used in this software rely on articles written in Wikitext that were taken from the English, French and Spanish Wikipedia. These articles are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license which can be found at http://creativecommons.org/licenses/by-sa/3.0/. Each directory that contains such files holds a NOTICE file which gives detailed information about the origin of the articles. sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/bin/000077500000000000000000000000001335270560400324215ustar00rootroot00000000000000edit-grammar.sh000077500000000000000000000020311335270560400352460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/bin#!/bin/bash # # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # Usage: # ------ # # ./edit-grammar.sh # # The script must be run in the ptk-nodegen-maven-plugin directory. # The plugin requires the programs bash, screen and kate. # BIN=`which kate` OPTIONS=`${BIN} -v | grep "KDE 4" &> /dev/null && echo "--startanon"` GRAMMAR="src/main/autogen/org/sweble/wikitext/parser" find ${GRAMMAR} -name "*.rats" | xargs screen -d -m ${BIN} ${OPTIONS} edit-p-grammer.sh000077500000000000000000000020401335270560400355070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/bin#!/bin/bash # # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # Usage: # ------ # # ./edit-grammar.sh # # The script must be run in the ptk-nodegen-maven-plugin directory. # The plugin requires the programs bash, screen and kate. # BIN=`which kate` OPTIONS=`${BIN} -v | grep "KDE 4" &> /dev/null && echo "--startanon"` GRAMMAR="src/main/autogen/org/sweble/wikitext/parser/parser" find ${GRAMMAR} -name "*.rats" | xargs screen -d -m ${BIN} ${OPTIONS} edit-pp-grammar.sh000077500000000000000000000020461335270560400356710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/bin#!/bin/bash # # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # Usage: # ------ # # ./edit-grammar.sh # # The script must be run in the ptk-nodegen-maven-plugin directory. # The plugin requires the programs bash, screen and kate. # BIN=`which kate` OPTIONS=`${BIN} -v | grep "KDE 4" &> /dev/null && echo "--startanon"` GRAMMAR="src/main/autogen/org/sweble/wikitext/parser/preprocessor" find ${GRAMMAR} -name "*.rats" | xargs screen -d -m ${BIN} ${OPTIONS} sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/doc/000077500000000000000000000000001335270560400324165ustar00rootroot00000000000000newlines-a.txt000066400000000000000000000072321335270560400351460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/doc# # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # -------------------------------------------------------------------------------- [Hallo]

    Hallo

    -------------------------------------------------------------------------------- [ Hallo]

    Hallo

    -------------------------------------------------------------------------------- [ Hallo]


    Hallo

    -------------------------------------------------------------------------------- [ Hallo]


    Hallo

    -------------------------------------------------------------------------------- [ Hallo]



    Hallo

    -------------------------------------------------------------------------------- [ Hallo]



    Hallo

    -------------------------------------------------------------------------------- [ Hallo]




    Hallo

    -------------------------------------------------------------------------------- [ Hallo]




    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo

    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo


    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo


    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo



    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo



    Hallo

    -------------------------------------------------------------------------------- [Hallo Hallo]

    Hallo




    Hallo

    -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo

    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo

    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo


    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo


    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo



    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo



    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo




    ... -------------------------------------------------------------------------------- [Hallo {| ...]

    Hallo




    ... -------------------------------------------------------------------------------- newlines-b.txt000066400000000000000000000035361335270560400351520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/doc# # Copyright 2011 The Open Source Research Group, # University of Erlangen-Nürnberg # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # -------------------------------------------------------------------------------- "\n" * n "Hallo" n 0 -> 1 -> 2 ->
    1 3 ->
    2 4 ->

    3 5 ->

    4 6 ->


    5 7 ->


    6 gap = max(0, n - 1)
    * gap/2
    -------------------------------------------------------------------------------- "Hallo" "\n" * n "Hallo" n 0 -> 1 -> 2 -> 3 ->
    1 4 ->
    2 5 ->

    3 6 ->

    4 7 ->


    5 gap = max(0, n - 2)
    * gap/2
    -------------------------------------------------------------------------------- "Hallo" "\n" * n "{| ..." n 0 -> 1 -> {| 2 -> {| 3 ->
    {| 1 4 ->
    {| 2 5 ->

    {| 3 6 ->

    {| 4 7 ->


    {| 5 8 ->


    {| 6 gap = max(0, n - 2)
    * (n+1)/2 {| -------------------------------------------------------------------------------- sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/pom.xml000066400000000000000000000176201335270560400331740ustar00rootroot00000000000000 4.0.0 org.sweble.wikitext sweble-wikitext-components-parent 3.1.9 swc-parser-lazy jar SWC - Sweble Wikitext Parser 2010 A parser for MediaWiki's Wikitext. ../ ${project.basedir}/src/main/rats ${project.basedir}/src/main/jflex ${project.build.directory}/generated-sources commons-io commons-io org.apache.commons commons-lang3 xtc rats-runtime de.fau.cs.osr.utils utils de.fau.cs.osr.ptk ptk-common junit junit test de.fau.cs.osr.utils utils-testing test commons-jxpath commons-jxpath test de.fau.cs.osr.ptk ptk-xpath test com.mycila license-maven-plugin src/test/resources/**/*.disabled src/test/resources/**/*.wikitext src/test/resources/**/*.ast src/test/resources/**/*.txt org.codehaus.mojo build-helper-maven-plugin add-source generate-sources add-source ${rats-sources.directory} ${jflex-sources.directory} ${generated-sources.directory} de.jflex maven-jflex-plugin ${generated-sources.directory} ${jflex-sources.directory} de.fau.cs.osr.maven.plugins maven-rats-plugin ${rats-sources.directory} ${generated-sources.directory} org/sweble/wikitext/parser/parser/RatsWikitextParser.rats org/sweble/wikitext/parser/preprocessor/RatsWikitextPreprocessor.rats com.google.code.maven-replacer-plugin maven-replacer-plugin process-sources replace target/generated-sources/**/*Lexer.java target/generated-sources/**/*Preprocessor.java target/generated-sources/**/*Parser.java true MULTILINE ^(@SuppressWarnings\(.*?\)\s+)?(((public|final)\s+)*)class @SuppressWarnings("all") $2class de.thetaphi forbiddenapis commons-io-unsafe-1.4 maven-shade-plugin package shade true jar-with-dependencies sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/000077500000000000000000000000001335270560400324405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/000077500000000000000000000000001335270560400333645ustar00rootroot00000000000000java/000077500000000000000000000000001335270560400342265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/mainorg/000077500000000000000000000000001335270560400350155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/javasweble/000077500000000000000000000000001335270560400362765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/orgwikitext/000077500000000000000000000000001335270560400401465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/swebleparser/000077500000000000000000000000001335270560400414425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitextLooksLikeWarning.java000066400000000000000000000046351335270560400455370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import de.fau.cs.osr.ptk.common.ast.Span; public class LooksLikeWarning extends WikitextWarning { private static final long serialVersionUID = 1L; private final String looksLikeWhat; // ========================================================================= public LooksLikeWarning( Span span, WarningSeverity severity, String origin, String looksLikeWhat, String message) { super(span, severity, origin, makeMessage(message, looksLikeWhat)); this.looksLikeWhat = looksLikeWhat; } public LooksLikeWarning( Span span, WarningSeverity severity, Class origin, String looksLikeWhat, String message) { super(span, severity, origin, makeMessage(message, looksLikeWhat)); this.looksLikeWhat = looksLikeWhat; } private static String makeMessage(String message, String looksLikeWhat) { return "This looks like a " + looksLikeWhat + ", however " + message; } // ========================================================================= public String getLooksLikeWhat() { return looksLikeWhat; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((looksLikeWhat == null) ? 0 : looksLikeWhat.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; LooksLikeWarning other = (LooksLikeWarning) obj; if (looksLikeWhat == null) { if (other.looksLikeWhat != null) return false; } else if (!looksLikeWhat.equals(other.looksLikeWhat)) return false; return true; } } NonStandardElementBehavior.java000066400000000000000000000021621335270560400475130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; public enum NonStandardElementBehavior { /** No behavior for this non-HTML/non-Wikitext element has been specified. */ UNSPECIFIED, /** Treat like a self-closing tag (e.g. a <br /> or <img /> tag). */ LIKE_BR, /** Treat like a block element (e.g. <div>). */ LIKE_DIV, /** Treat like a formatting element (e.g. <b>). */ LIKE_FORMATTING, /** Treat like an inline element (e.g. <span>). */ LIKE_ANY_OTHER, } OddSyntaxWarning.java000066400000000000000000000023441335270560400455530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import de.fau.cs.osr.ptk.common.ast.Span; public class OddSyntaxWarning extends WikitextWarning { private static final long serialVersionUID = 1L; // ========================================================================= public OddSyntaxWarning( Span span, WarningSeverity severity, String origin, String message) { super(span, severity, origin, message); } public OddSyntaxWarning( Span span, WarningSeverity severity, Class origin, String message) { super(span, severity, origin, message); } } ParserConfig.java000066400000000000000000000055641335270560400447010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.util.Map; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.parser.LinkBuilder.LinkType; import org.sweble.wikitext.parser.utils.AstTextUtils; import de.fau.cs.osr.utils.XmlEntityResolver; public interface ParserConfig extends XmlEntityResolver { // ==[ Encoding validation features ]======================================= boolean isConvertIllegalCodePoints(); // ==[ Parser features ]==================================================== boolean isWarningsEnabled(); boolean isWarningLevelEnabled(WarningSeverity severity); boolean isAutoCorrect(); boolean isGatherRtData(); // ==[ AST creation/processing ]============================================ WikitextNodeFactory getNodeFactory(); AstTextUtils getAstTextUtils(); // ==[ Link classification and parsing ]==================================== boolean isUrlProtocol(String proto); String getInternalLinkPrefixPattern(); String getInternalLinkPostfixPattern(); LinkType classifyTarget(String target); boolean isNamespace(String nsName); boolean isTalkNamespace(String nsName); boolean isInterwikiName(String iwPrefix); boolean isIwPrefixOfThisWiki(String iwPrefix); // ==[ Names ]============================================================== boolean isValidPageSwitchName(String name); boolean isValidExtensionTagName(String name); boolean isRedirectKeyword(String keyword); // ==[ Parsing XML elements ]=============================================== boolean isValidXmlEntityRef(String name); Map getXmlEntities(); NonStandardElementBehavior getNonStandardElementBehavior(String elementName); boolean isFosterParenting(); boolean isFosterParentingForTransclusions(); // ==[ Language Conversion Tags ]=========================================== boolean isLangConvTagsEnabled(); boolean isLctFlag(String flag); String normalizeLctFlag(String flag); boolean isLctVariant(String variant); String normalizeLctVariant(String variant); // ==[ Misc ]=============================================================== boolean isPreserveSemiPreLeadingSpace(); } WikitextEncodingValidator.java000066400000000000000000000046271335270560400474430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import org.sweble.wikitext.parser.encval.EncodingValidatorLexer; import org.sweble.wikitext.parser.encval.ValidatedWikitext; public class WikitextEncodingValidator { public ValidatedWikitext validate( ParserConfig parserConfig, WtEntityMap entityMap, String title, String source) throws IOException { StringReader in = new StringReader(source); EncodingValidatorLexer lexer = new EncodingValidatorLexer(in); lexer.setFile(title); lexer.setEntityMap(entityMap); lexer.setWikitextNodeFactory(parserConfig.getNodeFactory()); lexer.setConvertIllegalCodePoints(parserConfig.isConvertIllegalCodePoints()); while (lexer.yylex() != null) ; in.close(); return new ValidatedWikitext(lexer.getWikitext(), entityMap, lexer.containsIllegalCodePoints()); } public ValidatedWikitext validate( ParserConfig parserConfig, WtEntityMap entityMap, String title, Reader source) throws IOException { EncodingValidatorLexer lexer = new EncodingValidatorLexer(source); lexer.setFile(title); lexer.setEntityMap(entityMap); lexer.setWikitextNodeFactory(parserConfig.getNodeFactory()); while (lexer.yylex() != null) ; return new ValidatedWikitext(lexer.getWikitext(), entityMap, lexer.containsIllegalCodePoints()); } public ValidatedWikitext validate( ParserConfig parserConfig, String source, String title) throws IOException { return validate(parserConfig, new WtEntityMapImpl(), title, source); } public ValidatedWikitext validate( ParserConfig parserConfig, Reader source, String title) throws IOException { return validate(parserConfig, new WtEntityMapImpl(), title, source); } } WikitextParser.java000066400000000000000000000060721335270560400452770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.parser.RatsWikitextParser; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import de.fau.cs.osr.ptk.common.ParserCommon; import xtc.parser.ParseError; import xtc.parser.ParseException; import xtc.parser.Result; import xtc.parser.SemanticValue; public class WikitextParser extends ParserCommon { private final ParserConfig config; private RatsWikitextParser parser; // ========================================================================= public WikitextParser(ParserConfig config) { this.config = config; } // ========================================================================= @Override public Object getConfig() { return config; } // ========================================================================= @Override public WtNode parseArticle(String src, String title) throws IOException, ParseException { PreprocessedWikitext ppWt = new PreprocessedWikitext(src, new WtEntityMapImpl()); return parseArticle(ppWt, title); } public WtNode parseArticle(PreprocessedWikitext wikitext, String title) throws IOException, ParseException { Reader in = new StringReader(wikitext.getWikitext()); int inputSize = wikitext.getWikitext().getBytes().length; parser = new RatsWikitextParser(in, title, inputSize); parser.getState().init(config, wikitext.getEntityMap()); parser.setNodeFactory(config.getNodeFactory()); Result r = null; //RatsWikitextParser.enableStats(); { r = this.parser.pArticle(0); } if (RatsWikitextParser.isStatsEnabled()) RatsWikitextParser.getStats().dump(System.err); if (r.hasValue()) { SemanticValue v = (SemanticValue) r; if (v.value instanceof WtParsedWikitextPage) { return (WtNode) process((WtParsedWikitextPage) v.value); } else { throw new ParseException( "Internal parser error: Unexpected parser result type!"); } } else { ParseError err = (ParseError) r; if (err.index == -1) { throw new ParseException( "Parse error: No information available"); } else { throw new ParseException(String.format( "%s: %s", parser.location(err.index), err.msg)); } } } } WikitextPostprocessor.java000066400000000000000000000025611335270560400467270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.postprocessor.TicksAnalyzer; import org.sweble.wikitext.parser.postprocessor.TreeBuilder; public class WikitextPostprocessor { private final ParserConfig config; // ========================================================================= public WikitextPostprocessor(ParserConfig config) { this.config = config; } // ========================================================================= public WtNode postprocess(WtNode ast, String title) { WtNode result = ast; result = TicksAnalyzer.process(config, result); result = TreeBuilder.process(config, result); return result; } } WikitextPreprocessor.java000066400000000000000000000064631335270560400465350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.preprocessor.RatsWikitextPreprocessor; import de.fau.cs.osr.ptk.common.ParserCommon; import xtc.parser.ParseError; import xtc.parser.ParseException; import xtc.parser.Result; import xtc.parser.SemanticValue; public class WikitextPreprocessor extends ParserCommon { private RatsWikitextPreprocessor preprocessor = null; private final ParserConfig config; // ========================================================================= public WikitextPreprocessor(ParserConfig config) { this.config = config; } // ========================================================================= @Override public Object getConfig() { return config; } // ========================================================================= @Override public WtNode parseArticle(String src, String title) throws IOException, ParseException { return parseArticle( new ValidatedWikitext( src, new WtEntityMapImpl(), false/*containsIllegalCodePoints*/), title, false); } public WtNode parseArticle( ValidatedWikitext wikitext, String title, boolean forInclusion) throws IOException, ParseException { /* if (wikitext.containsIllegalCodePoints() && !config.isConvertIllegalCodePoints()) throw new IllegalArgumentException( "Input contains illegal code points but preprocessor is not allowed to convert them."); */ Reader in = new StringReader(wikitext.getWikitext()); int inputSize = wikitext.getWikitext().getBytes().length; preprocessor = new RatsWikitextPreprocessor(in, title, inputSize); preprocessor.getState().init(config, wikitext.getEntityMap(), forInclusion); preprocessor.setNodeFactory(config.getNodeFactory()); Result r = this.preprocessor.pArticle(0); if (r.hasValue()) { SemanticValue v = (SemanticValue) r; if (v.value instanceof WtPreproWikitextPage) { return (WtNode) process((WtPreproWikitextPage) v.value); } else { throw new ParseException( "Internal preprocessor error: " + "Unexpected preprocessor result type!"); } } else { ParseError err = (ParseError) r; if (err.index == -1) { throw new ParseException( "Parse error: No information available"); } else { throw new ParseException(String.format( "%s: %s", preprocessor.location(err.index), err.msg)); } } } } WikitextWarning.java000066400000000000000000000061411335270560400454450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.ptk.common.ast.Span; public abstract class WikitextWarning extends Warning { private static final long serialVersionUID = 1L; protected final WarningSeverity severity; // ========================================================================= public WikitextWarning( Span span, WarningSeverity severity, String origin, String message) { super(span, origin, message); this.severity = severity; } public WikitextWarning( Span span, WarningSeverity severity, Class origin, String message) { super(span, origin, message); this.severity = severity; } // ========================================================================= public WarningSeverity getSeverity() { return severity; } // ========================================================================= @Override public String toString() { String span = spanToString(); String message = messageToString(); String severity = severityToString(); return "Warning (" + severity + "): " + span + " : " + message; } protected String severityToString() { String severity = "-"; if (getSeverity() != null) severity = getSeverity().toString().toLowerCase(); return severity; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((severity == null) ? 0 : severity.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; WikitextWarning other = (WikitextWarning) obj; if (severity != other.severity) return false; return true; } // ========================================================================= public static enum WarningSeverity { /** Really not a problem. */ NONE { @Override public int getLevel() { return 0; } }, /** Might be worth looking into. */ INFORMATIVE { @Override public int getLevel() { return 5; } }, /** Should be taken care of. */ NORMAL { @Override public int getLevel() { return 10; } }, /** That's really bad. */ FATAL { @Override public int getLevel() { return 100; } }; public abstract int getLevel(); } } WtEntityMap.java000066400000000000000000000033161335270560400445350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstEntityMap; public interface WtEntityMap extends AstEntityMap { public static final WtEntityMap EMPTY_ENTITY_MAP = new WtEmptyEntityMap(); // ========================================================================= public static final class WtEmptyEntityMap implements WtEntityMap { private WtEmptyEntityMap() { } @Override public int registerEntity(WtNode entity) { throw new UnsupportedOperationException("You're dealing with an immutable, empty entity map!"); } @Override public WtNode getEntity(int id) { return null; } @Override public Set> getEntities() { return Collections.emptySet(); } @Override public Map getMap() { return Collections.emptyMap(); } @Override public boolean isEmpty() { return true; } } } WtEntityMapImpl.java000066400000000000000000000017151335270560400453600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstEntityMapImpl; public class WtEntityMapImpl extends AstEntityMapImpl implements WtEntityMap { private static final long serialVersionUID = -5463361855129034446L; } WtRtData.java000066400000000000000000000070521335270560400440030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.util.ArrayList; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.RtData; public class WtRtData extends RtData { private static final long serialVersionUID = 1L; public static final WtRtData SUPPRESS = new WtRtDataSuppressSingleton(); // ========================================================================= /** * Constructor for SUPPRESS singleton. */ private WtRtData() { } public WtRtData(AstNode node, Object... glue) { super(node, glue); } public WtRtData(AstNode node, String... glue) { super(node, glue); } public WtRtData(AstNode node) { super(node); } public WtRtData(int size, Object... glue) { super(size, glue); } public WtRtData(int size, String... glue) { super(size, glue); } public WtRtData(int size) { super(size); } public WtRtData(WtRtData rtData) { super(rtData); } // ========================================================================= @Override public boolean isSuppress() { return this == SUPPRESS; } // ========================================================================= @Override protected void addNodeOrObject(ArrayList result, Object o) { if (o instanceof WtContentNode) { for (WtNode c : (WtContentNode) o) addNodeOrObject(result, c); } else { super.addNodeOrObject(result, o); } } // ========================================================================= @Override public String toString() { return super.toString(); } @Override public Object clone() throws CloneNotSupportedException { return new WtRtData(this); } // ========================================================================= protected static class WtRtDataSuppressSingleton extends WtRtData { private static final long serialVersionUID = 1L; @Override public void set(Object... glue) { notSupported(); } @Override public void set(String... glue) { notSupported(); } @Override public void setField(int field, Object... glue) { notSupported(); } @Override public void setField(int field, String glue) { notSupported(); } @Override public void setField(int field, String... glue) { notSupported(); } @Override public void prepend(String text) { notSupported(); } @Override public void append(Object... glue) { notSupported(); } @Override public void prepend(Object... glue) { notSupported(); } private void notSupported() { throw new UnsupportedOperationException(); } @Override public boolean equals(Object obj) { if (this == obj) return true; return false; } @Override public Object clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } } } comparer/000077500000000000000000000000001335270560400432525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserWtComparer.java000066400000000000000000000070021335270560400461770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/comparer/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.comparer; import java.util.HashSet; import java.util.Set; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtContentNode.WtEmptyContentNode; import org.sweble.wikitext.parser.nodes.WtLinkOptions; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtTemplateArguments; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.comparer.AstComparer; import de.fau.cs.osr.utils.ComparisonException; import de.fau.cs.osr.utils.DeepComparer; import de.fau.cs.osr.utils.DeepComparerDelegate; public class WtComparer { private static DeepComparerDelegate delegate; /** * Compare two AST subtrees for equality. * * Property and attribute values are compared using the equals * method. * * @param rootA * First subtree. * @param rootB * Second subtree. * @param compareAttributes * Whether to include the node attributes in the comparison. */ public static void compareAndThrow( AstNode rootA, AstNode rootB, boolean compareAttributes, boolean compareLocation) throws ComparisonException { makeComparer(compareAttributes, compareLocation).compare(rootA, rootB); } public static boolean compareNoThrow( AstNode rootA, AstNode rootB, boolean compareAttributes, boolean compareLocation) { try { compareAndThrow(rootA, rootB, compareAttributes, compareLocation); return true; } catch (ComparisonException e) { return false; } } public synchronized static DeepComparer makeComparer( boolean compareAttributes, boolean compareLocation) { if (delegate == null) delegate = new EmptyContentNodeComparer(); DeepComparer comparer = AstComparer.makeComparer( compareAttributes, compareLocation); comparer.addComparer(delegate); return comparer; } public static class EmptyContentNodeComparer implements DeepComparerDelegate { private final Set emptyImmutables = new HashSet(); public EmptyContentNodeComparer() { emptyImmutables.add(WtBody.EMPTY); emptyImmutables.add(WtLinkOptions.EMPTY); emptyImmutables.add(WtNodeList.EMPTY); emptyImmutables.add(WtTemplateArguments.EMPTY); emptyImmutables.add(WtXmlAttributes.EMPTY); } @Override public boolean compare(Object a, Object b, DeepComparer comparer) throws ComparisonException { if (emptyImmutables.contains(a)) { if (!((WtEmptyContentNode) a).equals(b)) throw new ComparisonException(a, b); return true; } else if (emptyImmutables.contains(b)) { if (((WtEmptyContentNode) b).equals(a)) throw new ComparisonException(a, b); return true; } else return false; } } } encval/000077500000000000000000000000001335270560400427125ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserValidatedWikitext.java000066400000000000000000000024631335270560400472100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/encval/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.encval; import org.sweble.wikitext.parser.WtEntityMap; public class ValidatedWikitext { private String wikitext; private WtEntityMap entityMap; private boolean containsIllegalCodePoints; public ValidatedWikitext(String wikitext, WtEntityMap entityMap, boolean containsIllegalCodePoints) { this.wikitext = wikitext; this.entityMap = entityMap; this.containsIllegalCodePoints = containsIllegalCodePoints; } public String getWikitext() { return wikitext; } public WtEntityMap getEntityMap() { return entityMap; } public boolean containsIllegalCodePoints() { return containsIllegalCodePoints; } } nodes/000077500000000000000000000000001335270560400425525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserCompleteWikitextVisitor.java000066400000000000000000000062071335270560400503030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public interface CompleteWikitextVisitor { // WtInnerNode1 public T visit(WtLinkOptionLinkTarget n); public T visit(WtRedirect n); public T visit(WtTableImplicitTableBody n); public T visit(WtXmlAttribute n); public T visit(WtXmlEmptyTag n); public T visit(WtXmlStartTag n); public T visit(WtImStartTag n); // WtInnerNode2 public T visit(WtExternalLink n); public T visit(WtInternalLink n); public T visit(WtSection n); public T visit(WtTable n); public T visit(WtTableCaption n); public T visit(WtTableCell n); public T visit(WtTableHeader n); public T visit(WtTableRow n); public T visit(WtTagExtension n); public T visit(WtTemplate n); public T visit(WtTemplateArgument n); public T visit(WtXmlElement n); // WtInnerNode3 public T visit(WtImageLink n); public T visit(WtTemplateParameter n); // WtLeafNode public T visit(WtHorizontalRule n); public T visit(WtIllegalCodePoint n); public T visit(WtLinkOptionKeyword n); public T visit(WtLinkOptionResize n); public T visit(WtPageSwitch n); public T visit(WtSignature n); public T visit(WtTicks n); public T visit(WtUrl n); public T visit(WtXmlCharRef n); public T visit(WtXmlEndTag n); public T visit(WtImEndTag n); public T visit(WtXmlEntityRef n); // WtNodeList public T visit(WtNodeList n); // WtContentNode public T visit(WtBody n); public T visit(WtBold n); public T visit(WtDefinitionList n); public T visit(WtDefinitionListDef n); public T visit(WtDefinitionListTerm n); public T visit(WtHeading n); public T visit(WtItalics n); public T visit(WtLinkOptionAltText n); public T visit(WtLinkOptions n); public T visit(WtLinkTitle n); public T visit(WtListItem n); public T visit(WtName n); public T visit(WtOnlyInclude n); public T visit(WtOrderedList n); public T visit(WtParsedWikitextPage n); public T visit(WtPreproWikitextPage n); public T visit(WtParagraph n); public T visit(WtSemiPre n); public T visit(WtSemiPreLine n); public T visit(WtTemplateArguments n); public T visit(WtUnorderedList n); public T visit(WtValue n); public T visit(WtWhitespace n); public T visit(WtXmlAttributes n); // WtText public T visit(WtText n); // WtStringNode public T visit(WtIgnored n); public T visit(WtLinkOptionGarbage n); public T visit(WtNewline n); public T visit(WtPageName n); public T visit(WtTagExtensionBody n); public T visit(WtXmlAttributeGarbage n); public T visit(WtXmlComment n); } CompleteWikitextVisitorNoReturn.java000066400000000000000000000065221335270560400520000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public interface CompleteWikitextVisitorNoReturn { // WtInnerNode1 public void visit(WtLinkOptionLinkTarget n); public void visit(WtRedirect n); public void visit(WtTableImplicitTableBody n); public void visit(WtXmlAttribute n); public void visit(WtXmlEmptyTag n); public void visit(WtXmlStartTag n); public void visit(WtImStartTag n); // WtInnerNode2 public void visit(WtExternalLink n); public void visit(WtInternalLink n); public void visit(WtSection n); public void visit(WtTable n); public void visit(WtTableCaption n); public void visit(WtTableCell n); public void visit(WtTableHeader n); public void visit(WtTableRow n); public void visit(WtTagExtension n); public void visit(WtTemplate n); public void visit(WtTemplateArgument n); public void visit(WtXmlElement n); // WtInnerNode3 public void visit(WtImageLink n); public void visit(WtTemplateParameter n); // WtLeafNode public void visit(WtHorizontalRule n); public void visit(WtIllegalCodePoint n); public void visit(WtLinkOptionKeyword n); public void visit(WtLinkOptionResize n); public void visit(WtPageSwitch n); public void visit(WtSignature n); public void visit(WtTicks n); public void visit(WtUrl n); public void visit(WtXmlCharRef n); public void visit(WtXmlEndTag n); public void visit(WtImEndTag n); public void visit(WtXmlEntityRef n); // WtNodeList public void visit(WtNodeList n); // WtContentNode public void visit(WtBody n); public void visit(WtBold n); public void visit(WtDefinitionList n); public void visit(WtDefinitionListDef n); public void visit(WtDefinitionListTerm n); public void visit(WtHeading n); public void visit(WtItalics n); public void visit(WtLinkOptionAltText n); public void visit(WtLinkOptions n); public void visit(WtLinkTitle n); public void visit(WtListItem n); public void visit(WtName n); public void visit(WtOnlyInclude n); public void visit(WtOrderedList n); public void visit(WtParsedWikitextPage n); public void visit(WtPreproWikitextPage n); public void visit(WtParagraph n); public void visit(WtSemiPre n); public void visit(WtSemiPreLine n); public void visit(WtTemplateArguments n); public void visit(WtUnorderedList n); public void visit(WtValue n); public void visit(WtWhitespace n); public void visit(WtXmlAttributes n); // WtText public void visit(WtText n); // WtStringNode public void visit(WtIgnored n); public void visit(WtLinkOptionGarbage n); public void visit(WtNewline n); public void visit(WtPageName n); public void visit(WtTagExtensionBody n); public void visit(WtXmlAttributeGarbage n); public void visit(WtXmlComment n); } WikitextNodeFactory.java000066400000000000000000000165761335270560400474020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.util.Collection; import java.util.List; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint.IllegalCodePointType; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageVertAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageViewFormat; import org.sweble.wikitext.parser.nodes.WtLinkTarget.LinkTargetType; import org.sweble.wikitext.parser.nodes.WtOnlyInclude.XmlElementType; import org.sweble.wikitext.parser.postprocessor.IntermediateTags; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.serialization.NodeFactory; import xtc.util.Pair; public interface WikitextNodeFactory extends NodeFactory { // -- Inner Node 1 --------------------------------------------------------- WtLinkOptionLinkTarget loLinkTarget(WtLinkTarget target, LinkTargetType type); WtLinkOptionLinkTarget loLinkTargetNoLink(); WtRedirect redirect(WtPageName target); WtTableImplicitTableBody itbody(WtBody body); WtXmlAttribute attr(WtName name); WtXmlAttribute attr(WtName name, WtValue value); WtXmlEmptyTag emptyTag(String name, WtXmlAttributes xmlAttributes); WtXmlStartTag startTag(String name, WtXmlAttributes xmlAttributes); WtImStartTag imStartTag(IntermediateTags type); // -- Inner Node 2 --------------------------------------------------------- WtExternalLink extLink(WtUrl target); WtExternalLink extLink(WtUrl target, WtLinkTitle title); WtInternalLink intLink(String prefix, WtPageName target, String postfix); WtSection section(int level, WtHeading heading, WtBody body); WtTable table(WtXmlAttributes xmlAttributes); WtTable table(WtXmlAttributes xmlAttributes, WtBody body); WtTableCaption caption(WtXmlAttributes xmlAttributes, WtBody body); WtTableCell td(WtXmlAttributes xmlAttributes, WtBody body); WtTableHeader th(WtXmlAttributes xmlAttributes, WtBody body); WtTableRow tr(WtXmlAttributes xmlAttributes, WtBody body); WtTagExtension tagExt(String name, WtXmlAttributes xmlAttributes); WtTagExtension tagExt( String name, WtXmlAttributes xmlAttributes, WtTagExtensionBody body); WtTemplate tmpl(WtName name, WtTemplateArguments args); WtTemplateArgument tmplArg(WtValue value); WtTemplateArgument tmplArg(WtName name, WtValue value); WtXmlElement elem(String name, WtXmlAttributes xmlAttributes); WtXmlElement elem(String name, WtXmlAttributes xmlAttributes, WtBody body); WtLctVarConv lctVarConv(WtLctFlags flags, WtBody body); WtLctRuleConv lctRuleConv(WtLctFlags flags, WtLctRules rules); // -- Inner Node 3 --------------------------------------------------------- WtImageLink img(WtPageName target); WtImageLink img(WtPageName target, WtLinkOptions options); WtImageLink img( WtPageName target, WtLinkOptions options, ImageViewFormat format, boolean border, ImageHorizAlign hAlign, ImageVertAlign vAlign, int width, int height, boolean upright); WtTemplateParameter tmplParam(WtName name); WtTemplateParameter tmplParam(WtName name, WtValue defaultValue); WtTemplateParameter tmplParam( WtName name, WtValue defaultValue, WtTemplateArguments garbage); // -- Leaf Node ------------------------------------------------------------ WtHorizontalRule hr(); WtIllegalCodePoint illegalCp(String codePoint, IllegalCodePointType type); WtLinkOptionKeyword loKeyword(String keyword); WtLinkOptionResize loResize(int width, int height); WtPageSwitch pageSwitch(String name); WtSignature sig(int tildeCount); WtTicks ticks(int tickCount); WtUrl url(String protocol, String path); WtXmlCharRef charRef(int codePoint); WtXmlEndTag endTag(String name); WtImEndTag imEndTag(IntermediateTags type); WtXmlEntityRef entityRef(String name, String resolved); WtLctFlags lctFlags(List flags); WtLctFlags noLctFlags(); WtLctRule lctRule(String search, String variant, WtLctRuleText replace); WtLctRule lctRule(String variant, WtLctRuleText replace); // -- Node List ------------------------------------------------------------ WtNodeList list(); WtNodeList list(Collection list); WtNodeList list(Pair list); WtNodeList list(WtNode child); WtNodeList list(Object... content); WtNodeList emptyList(); WtNodeList toList(AstNode n); WtNodeList unwrap(AstNodeList n); // -- Content Node --------------------------------------------------------- WtBody body(WtNodeList content); WtBody emptyBody(); WtBody noBody(); WtBold b(WtNodeList content); WtDefinitionList dl(WtNodeList content); WtDefinitionListDef dd(WtNodeList content); WtDefinitionListTerm dt(WtNodeList content); WtHeading heading(WtNodeList content); WtItalics i(WtNodeList content); WtLinkOptionAltText loAlt(WtNodeList content); WtLinkOptionAltText noLoAlt(); WtLinkOptions linkOpts(WtNodeList content); WtLinkOptions emptyLinkOpts(); WtLinkTitle linkTitle(WtNodeList content); WtLinkTitle noLinkTitle(); WtListItem li(WtNodeList content); WtName name(WtNodeList content); WtName noName(); WtOnlyInclude onlyInc(WtNodeList content, XmlElementType elementType); WtOrderedList ol(WtNodeList content); WtParsedWikitextPage parsedPage(WtNodeList content); WtParsedWikitextPage parsedPage( WtNodeList content, WtEntityMap entityMap); WtPreproWikitextPage preproPage(WtNodeList content); WtPreproWikitextPage preproPage( WtNodeList content, WtEntityMap entityMap); WtParagraph p(WtNodeList content); WtSemiPre semiPre(WtNodeList content); WtSemiPreLine semiPreLine(WtNodeList content); WtTemplateArguments tmplArgs(WtNodeList content); WtTemplateArguments emptyTmplArgs(); WtUnorderedList ul(WtNodeList content); WtValue value(WtNodeList content); WtValue noValue(); WtWhitespace ws(WtNodeList content, boolean hasNewline); WtXmlAttributes attrs(WtNodeList content); WtXmlAttributes emptyAttrs(); WtLctRules lctRules(WtNodeList rules); WtLctRuleText lctRuleText(WtNodeList content); WtPageName pageName(WtNodeList wtNodeList); // -- String Node ---------------------------------------------------------- WtIgnored ignored(String content); WtLinkOptionGarbage loGarbage(WtNodeList content); WtNewline newline(String content); WtTagExtensionBody tagExtBody(String content); WtTagExtensionBody noTagExtBody(); WtXmlAttributeGarbage attrGarbage(WtNodeList content); WtXmlComment comment(String content); WtXmlComment comment(String prefix, String content, String suffix); WtLctRuleGarbage lctGarbage(String content); // -- Text ----------------------------------------------------------------- WtText text(String content); } WikitextNodeFactoryImpl.java000066400000000000000000000651111335270560400502110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtBody.WtBodyImpl; import org.sweble.wikitext.parser.nodes.WtBody.WtEmptyBody; import org.sweble.wikitext.parser.nodes.WtBody.WtNoBody; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint.IllegalCodePointType; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageVertAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageViewFormat; import org.sweble.wikitext.parser.nodes.WtLctFlags.WtLctFlagsImpl; import org.sweble.wikitext.parser.nodes.WtLctFlags.WtNoLctFlags; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText.WtLinkOptionAltTextImpl; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText.WtNoLinkOptionAltText; import org.sweble.wikitext.parser.nodes.WtLinkOptionLinkTarget.WtLinkOptionLinkTargetImpl; import org.sweble.wikitext.parser.nodes.WtLinkOptions.WtEmptyLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkOptions.WtLinkOptionsImpl; import org.sweble.wikitext.parser.nodes.WtLinkTarget.LinkTargetType; import org.sweble.wikitext.parser.nodes.WtLinkTarget.WtNoLink; import org.sweble.wikitext.parser.nodes.WtLinkTitle.WtLinkTitleImpl; import org.sweble.wikitext.parser.nodes.WtLinkTitle.WtNoLinkTitle; import org.sweble.wikitext.parser.nodes.WtName.WtNameImpl; import org.sweble.wikitext.parser.nodes.WtName.WtNoName; import org.sweble.wikitext.parser.nodes.WtNodeList.WtEmptyNodeList; import org.sweble.wikitext.parser.nodes.WtNodeList.WtNodeListImpl; import org.sweble.wikitext.parser.nodes.WtOnlyInclude.XmlElementType; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody.WtNoTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody.WtTagExtensionBodyImpl; import org.sweble.wikitext.parser.nodes.WtTemplateArguments.WtEmptyTemplateArguments; import org.sweble.wikitext.parser.nodes.WtTemplateArguments.WtTemplateArgumentsImpl; import org.sweble.wikitext.parser.nodes.WtValue.WtNoValue; import org.sweble.wikitext.parser.nodes.WtValue.WtValueImpl; import org.sweble.wikitext.parser.nodes.WtXmlAttributes.WtEmptyXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlAttributes.WtXmlAttributesImpl; import org.sweble.wikitext.parser.parser.LinkBuilder; import org.sweble.wikitext.parser.postprocessor.IntermediateTags; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.serialization.NodeFactory; import de.fau.cs.osr.ptk.common.serialization.SimpleNodeFactory; import xtc.util.Pair; public class WikitextNodeFactoryImpl extends SimpleNodeFactory implements WikitextNodeFactory { private final Map, WtNode> prototypes = new HashMap, WtNode>(); private final Map, WtNode> immutables = new HashMap, WtNode>(); private final Map defaultValueImmutables = new HashMap(); private final ParserConfig parserConfig; // ========================================================================= public WikitextNodeFactoryImpl(ParserConfig parserConfig) { if (parserConfig == null) throw new NullPointerException(); this.parserConfig = parserConfig; this.prototypes.put(WtLctRule.class, new WtLctRule()); this.prototypes.put(WtLinkOptionLinkTarget.class, new WtLinkOptionLinkTargetImpl()); this.prototypes.put(WtRedirect.class, new WtRedirect()); this.prototypes.put(WtTableImplicitTableBody.class, new WtTableImplicitTableBody()); this.prototypes.put(WtXmlAttribute.class, new WtXmlAttribute()); this.prototypes.put(WtXmlEmptyTag.class, new WtXmlEmptyTag()); this.prototypes.put(WtXmlStartTag.class, new WtXmlStartTag()); this.prototypes.put(WtExternalLink.class, new WtExternalLink()); this.prototypes.put(WtInternalLink.class, new WtInternalLink()); this.prototypes.put(WtLctRuleConv.class, new WtLctRuleConv()); this.prototypes.put(WtLctVarConv.class, new WtLctVarConv()); this.prototypes.put(WtSection.class, new WtSection()); this.prototypes.put(WtTable.class, new WtTable()); this.prototypes.put(WtTableCaption.class, new WtTableCaption()); this.prototypes.put(WtTableCell.class, new WtTableCell()); this.prototypes.put(WtTableHeader.class, new WtTableHeader()); this.prototypes.put(WtTableRow.class, new WtTableRow()); this.prototypes.put(WtTagExtension.class, new WtTagExtension()); this.prototypes.put(WtTemplate.class, new WtTemplate()); this.prototypes.put(WtTemplateArgument.class, new WtTemplateArgument()); this.prototypes.put(WtXmlElement.class, new WtXmlElement()); this.prototypes.put(WtImageLink.class, new WtImageLink()); this.prototypes.put(WtTemplateParameter.class, new WtTemplateParameter()); this.prototypes.put(WtHorizontalRule.class, new WtHorizontalRule()); this.prototypes.put(WtIllegalCodePoint.class, new WtIllegalCodePoint()); this.prototypes.put(WtLctFlags.class, new WtLctFlagsImpl()); this.prototypes.put(WtLctFlagsImpl.class, new WtLctFlagsImpl()); this.prototypes.put(WtLinkOptionKeyword.class, new WtLinkOptionKeyword()); this.prototypes.put(WtLinkOptionResize.class, new WtLinkOptionResize()); this.prototypes.put(WtPageSwitch.class, new WtPageSwitch()); this.prototypes.put(WtSignature.class, new WtSignature()); this.prototypes.put(WtTicks.class, new WtTicks()); this.prototypes.put(WtUrl.class, new WtUrl()); this.prototypes.put(WtXmlCharRef.class, new WtXmlCharRef()); this.prototypes.put(WtXmlEndTag.class, new WtXmlEndTag()); this.prototypes.put(WtXmlEntityRef.class, new WtXmlEntityRef()); this.prototypes.put(WtParserEntity.class, new WtParserEntity()); this.prototypes.put(WtNodeList.class, new WtNodeListImpl()); this.prototypes.put(WtNodeListImpl.class, new WtNodeListImpl()); this.prototypes.put(WtBody.class, new WtBodyImpl()); this.prototypes.put(WtBodyImpl.class, new WtBodyImpl()); this.prototypes.put(WtBold.class, new WtBold()); this.prototypes.put(WtDefinitionList.class, new WtDefinitionList()); this.prototypes.put(WtDefinitionListDef.class, new WtDefinitionListDef()); this.prototypes.put(WtDefinitionListTerm.class, new WtDefinitionListTerm()); this.prototypes.put(WtHeading.class, new WtHeading()); this.prototypes.put(WtItalics.class, new WtItalics()); this.prototypes.put(WtLctRules.class, new WtLctRuleText()); this.prototypes.put(WtLinkOptionAltText.class, new WtLinkOptionAltTextImpl()); this.prototypes.put(WtLinkOptionAltTextImpl.class, new WtLinkOptionAltTextImpl()); this.prototypes.put(WtLinkOptions.class, new WtLinkOptionsImpl()); this.prototypes.put(WtLinkOptionsImpl.class, new WtLinkOptionsImpl()); this.prototypes.put(WtLinkTitle.class, new WtLinkTitleImpl()); this.prototypes.put(WtLinkTitleImpl.class, new WtLinkTitleImpl()); this.prototypes.put(WtListItem.class, new WtListItem()); this.prototypes.put(WtName.class, new WtNameImpl()); this.prototypes.put(WtNameImpl.class, new WtNameImpl()); this.prototypes.put(WtOnlyInclude.class, new WtOnlyInclude()); this.prototypes.put(WtOrderedList.class, new WtOrderedList()); this.prototypes.put(WtParsedWikitextPage.class, new WtParsedWikitextPage()); this.prototypes.put(WtPreproWikitextPage.class, new WtPreproWikitextPage()); this.prototypes.put(WtParagraph.class, new WtParagraph()); this.prototypes.put(WtSemiPre.class, new WtSemiPre()); this.prototypes.put(WtSemiPreLine.class, new WtSemiPreLine()); this.prototypes.put(WtTemplateArguments.class, new WtTemplateArgumentsImpl()); this.prototypes.put(WtTemplateArgumentsImpl.class, new WtTemplateArgumentsImpl()); this.prototypes.put(WtUnorderedList.class, new WtUnorderedList()); this.prototypes.put(WtValue.class, new WtValueImpl()); this.prototypes.put(WtValueImpl.class, new WtValueImpl()); this.prototypes.put(WtWhitespace.class, new WtWhitespace()); this.prototypes.put(WtXmlAttributes.class, new WtXmlAttributesImpl()); this.prototypes.put(WtXmlAttributesImpl.class, new WtXmlAttributesImpl()); this.prototypes.put(WtIgnored.class, new WtIgnored()); this.prototypes.put(WtLctRuleGarbage.class, new WtLctRuleGarbage()); this.prototypes.put(WtLinkOptionGarbage.class, new WtLinkOptionGarbage()); this.prototypes.put(WtNewline.class, new WtNewline()); this.prototypes.put(WtPageName.class, new WtPageName()); this.prototypes.put(WtTagExtensionBody.class, new WtTagExtensionBodyImpl()); this.prototypes.put(WtTagExtensionBodyImpl.class, new WtTagExtensionBodyImpl()); this.prototypes.put(WtXmlAttributeGarbage.class, new WtXmlAttributeGarbage()); this.prototypes.put(WtXmlComment.class, new WtXmlComment()); this.prototypes.put(WtText.class, new WtText()); this.immutables.put(WtNoTagExtensionBody.class, WtTagExtensionBody.NO_BODY); this.immutables.put(WtNoBody.class, WtBody.NO_BODY); this.immutables.put(WtNoLinkOptionAltText.class, WtLinkOptionAltText.NO_ALT); this.immutables.put(WtNoLinkTitle.class, WtLinkTitle.NO_TITLE); this.immutables.put(WtNoName.class, WtName.NO_NAME); this.immutables.put(WtNoValue.class, WtValue.NO_VALUE); this.immutables.put(WtEmptyBody.class, WtBody.EMPTY); this.immutables.put(WtEmptyLinkOptions.class, WtLinkOptions.EMPTY); this.immutables.put(WtEmptyNodeList.class, WtNodeList.EMPTY); this.immutables.put(WtEmptyTemplateArguments.class, WtTemplateArguments.EMPTY); this.immutables.put(WtEmptyXmlAttributes.class, WtXmlAttributes.EMPTY); this.immutables.put(WtNoLctFlags.class, WtLctFlags.NO_FLAGS); this.immutables.put(WtNoLink.class, WtLinkTarget.NO_LINK); // Default values for nodes that can have "NO_*" children this.defaultValueImmutables.put(new NamedMemberId(WtLctRuleConv.class, "flags"), WtLctFlags.NO_FLAGS); this.defaultValueImmutables.put(new NamedMemberId(WtLctVarConv.class, "flags"), WtLctFlags.NO_FLAGS); this.defaultValueImmutables.put(new NamedMemberId(WtLinkOptionLinkTargetImpl.class, "target"), WtLinkTarget.NO_LINK); this.defaultValueImmutables.put(new NamedMemberId(WtTable.class, "body"), WtBody.NO_BODY); this.defaultValueImmutables.put(new NamedMemberId(WtSection.class, "body"), WtBody.NO_BODY); this.defaultValueImmutables.put(new NamedMemberId(WtXmlElement.class, "body"), WtBody.NO_BODY); this.defaultValueImmutables.put(new NamedMemberId(WtImageLink.class, "alt"), WtLinkOptionAltText.NO_ALT); this.defaultValueImmutables.put(new NamedMemberId(WtImageLink.class, "title"), WtLinkTitle.NO_TITLE); this.defaultValueImmutables.put(new NamedMemberId(WtInternalLink.class, "title"), WtLinkTitle.NO_TITLE); this.defaultValueImmutables.put(new NamedMemberId(WtExternalLink.class, "title"), WtLinkTitle.NO_TITLE); this.defaultValueImmutables.put(new NamedMemberId(WtTemplateArgument.class, "name"), WtName.NO_NAME); this.defaultValueImmutables.put(new NamedMemberId(WtTemplateParameter.class, "default"), WtValue.NO_VALUE); this.defaultValueImmutables.put(new NamedMemberId(WtXmlAttribute.class, "value"), WtValue.NO_VALUE); this.defaultValueImmutables.put(new NamedMemberId(WtTagExtension.class, "body"), WtTagExtensionBody.NO_BODY); } // ========================================================================= protected ParserConfig getParserConfig() { return parserConfig; } protected Map, WtNode> getPrototypes() { return prototypes; } protected Map, WtNode> getImmutables() { return immutables; } protected Map getDefaultValueImmutables() { return defaultValueImmutables; } // ========================================================================= @Override public WtNode instantiateNode(Class clazz) { WtNode p = prototypes.get(clazz); try { if (p != null) return (WtNode) p.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } p = immutables.get(clazz); if (p != null) return p; return super.instantiateNode(clazz); } @Override public WtNode instantiateDefaultChild( NodeFactory.NamedMemberId id, Class type) { WtNode p = (WtNode) defaultValueImmutables.get(id); if (p != null) return p; return super.instantiateDefaultChild(id, type); } @Override public Object instantiateDefaultProperty( NodeFactory.NamedMemberId id, Class type) { if (type == WtRtData.class) return null; if (type == String.class) return ""; Object p = defaultValueImmutables.get(id); if (p != null) return p; return super.instantiateDefaultProperty(id, type); } // ========================================================================= @Override public WtLinkOptionLinkTarget loLinkTarget( WtLinkTarget target, LinkTargetType type) { return new WtLinkOptionLinkTargetImpl(target, type); } @Override public WtLinkOptionLinkTarget loLinkTargetNoLink() { return new WtLinkOptionLinkTargetImpl(WtLinkTarget.NO_LINK, LinkTargetType.NO_LINK); } @Override public WtTableImplicitTableBody itbody(WtBody body) { return new WtTableImplicitTableBody(body); } @Override public WtRedirect redirect(WtPageName target) { return new WtRedirect(target); } @Override public WtXmlAttribute attr(WtName name) { return new WtXmlAttribute(name); } @Override public WtXmlAttribute attr(WtName name, WtValue value) { return new WtXmlAttribute(name, value); } @Override public WtXmlEmptyTag emptyTag(String name, WtXmlAttributes xmlAttributes) { return new WtXmlEmptyTag(name, xmlAttributes); } @Override public WtXmlStartTag startTag(String name, WtXmlAttributes xmlAttributes) { return new WtXmlStartTag(name, xmlAttributes); } @Override public WtImStartTag imStartTag(IntermediateTags type) { return new WtImStartTag(type); } @Override public WtExternalLink extLink(WtUrl target) { return new WtExternalLink(target); } @Override public WtExternalLink extLink(WtUrl target, WtLinkTitle title) { return new WtExternalLink(target, title); } @Override public WtInternalLink intLink( String prefix, WtPageName target, String postfix) { return new WtInternalLink(prefix, target, postfix); } @Override public WtSection section(int level, WtHeading heading, WtBody body) { return new WtSection(level, heading, body); } @Override public WtTable table(WtXmlAttributes xmlAttributes) { return new WtTable(xmlAttributes); } @Override public WtTable table(WtXmlAttributes xmlAttributes, WtBody body) { return new WtTable(xmlAttributes, body); } @Override public WtTableCaption caption(WtXmlAttributes xmlAttributes, WtBody body) { return new WtTableCaption(xmlAttributes, body); } @Override public WtTableCell td(WtXmlAttributes xmlAttributes, WtBody body) { return new WtTableCell(xmlAttributes, body); } @Override public WtTableHeader th(WtXmlAttributes xmlAttributes, WtBody body) { return new WtTableHeader(xmlAttributes, body); } @Override public WtTableRow tr(WtXmlAttributes xmlAttributes, WtBody body) { return new WtTableRow(xmlAttributes, body); } @Override public WtTagExtension tagExt(String name, WtXmlAttributes xmlAttributes) { return new WtTagExtension(name, xmlAttributes); } @Override public WtTagExtension tagExt( String name, WtXmlAttributes xmlAttributes, WtTagExtensionBody body) { return new WtTagExtension(name, xmlAttributes, body); } @Override public WtTemplate tmpl(WtName name, WtTemplateArguments args) { return new WtTemplate(name, args); } @Override public WtTemplateArgument tmplArg(WtValue value) { return new WtTemplateArgument(value); } @Override public WtTemplateArgument tmplArg(WtName name, WtValue value) { return new WtTemplateArgument(name, value); } @Override public WtXmlElement elem(String name, WtXmlAttributes xmlAttributes) { return new WtXmlElement(name, xmlAttributes); } @Override public WtXmlElement elem( String name, WtXmlAttributes xmlAttributes, WtBody body) { return new WtXmlElement(name, xmlAttributes, body); } @Override public WtLctVarConv lctVarConv(WtLctFlags flags, WtBody body) { return new WtLctVarConv(flags, body); } @Override public WtLctRuleConv lctRuleConv(WtLctFlags flags, WtLctRules rules) { return new WtLctRuleConv(flags, rules); } @Override public WtImageLink img(WtPageName target) { return img(target, emptyLinkOpts()); } @Override public WtImageLink img(WtPageName target, WtLinkOptions options) { LinkBuilder b = new LinkBuilder(parserConfig, target); for (WtNode option : options) { switch (option.getNodeType()) { case WtNode.NT_LINK_OPTION_ALT_TEXT: case WtNode.NT_LINK_OPTION_GARBAGE: case WtNode.NT_LINK_OPTION_LINK_TARGET: break; case WtNode.NT_LINK_OPTION_KEYWORD: b.addOption((WtLinkOptionKeyword) option); break; case WtNode.NT_LINK_OPTION_RESIZE: b.addOption((WtLinkOptionResize) option); break; default: // Unresolved templates and the like // We cannot translate those... //throw new AssertionError("Is that an option?"); } } WtNode link = b.build(options, null); if (!(link instanceof WtImageLink)) throw new IllegalArgumentException("Given target does not point to an image!"); return (WtImageLink) link; } @Override public WtImageLink img( WtPageName target, WtLinkOptions options, ImageViewFormat format, boolean border, ImageHorizAlign hAlign, ImageVertAlign vAlign, int width, int height, boolean upright) { return new WtImageLink( target, options, format, border, hAlign, vAlign, width, height, upright); } @Override public WtTemplateParameter tmplParam(WtName name) { return new WtTemplateParameter(name); } @Override public WtTemplateParameter tmplParam(WtName name, WtValue defaultValue) { return new WtTemplateParameter(name, defaultValue); } @Override public WtTemplateParameter tmplParam( WtName name, WtValue defaultValue, WtTemplateArguments garbage) { return new WtTemplateParameter(name, defaultValue, garbage); } @Override public WtHorizontalRule hr() { return new WtHorizontalRule(); } @Override public WtIllegalCodePoint illegalCp( String codePoint, IllegalCodePointType type) { return new WtIllegalCodePoint(codePoint, type); } @Override public WtLinkOptionKeyword loKeyword(String keyword) { return new WtLinkOptionKeyword(keyword); } @Override public WtLinkOptionResize loResize(int width, int height) { return new WtLinkOptionResize(width, height); } @Override public WtPageSwitch pageSwitch(String name) { return new WtPageSwitch(name); } @Override public WtSignature sig(int tildeCount) { return new WtSignature(tildeCount); } @Override public WtTicks ticks(int tickCount) { return new WtTicks(tickCount); } @Override public WtUrl url(String protocol, String path) { return new WtUrl(protocol, path); } @Override public WtXmlCharRef charRef(int codePoint) { return new WtXmlCharRef(codePoint); } @Override public WtXmlEndTag endTag(String name) { return new WtXmlEndTag(name); } @Override public WtImEndTag imEndTag(IntermediateTags type) { return new WtImEndTag(type); } @Override public WtXmlEntityRef entityRef(String name, String resolved) { return new WtXmlEntityRef(name, resolved); } @Override public WtLctFlags lctFlags(List flags) { Set lctFlags = new LinkedHashSet(); Set lctVariants = new LinkedHashSet(); List lctGarbage = new ArrayList(); for (String flag : flags) { if (this.parserConfig.isLctFlag(flag)) { lctFlags.add(this.parserConfig.normalizeLctFlag(flag)); } else if (this.parserConfig.isLctVariant(flag)) { lctVariants.add(this.parserConfig.normalizeLctVariant(flag)); } else { lctGarbage.add(flag); } } return new WtLctFlags.WtLctFlagsImpl(lctFlags, lctVariants, lctGarbage); } @Override public WtLctFlags noLctFlags() { return WtLctFlags.NO_FLAGS; } @Override public WtLctRule lctRule( String search, String variant, WtLctRuleText replace) { return new WtLctRule(search, variant, replace); } @Override public WtLctRule lctRule(String variant, WtLctRuleText replace) { return new WtLctRule(variant, replace); } @Override public WtNodeList list() { return new WtNodeListImpl(); } @Override public WtNodeList list(Collection list) { return new WtNodeListImpl(list); } @Override public WtNodeList list(Pair list) { return new WtNodeListImpl(list); } @Override public WtNodeList list(WtNode child) { return new WtNodeListImpl(child); } @Override public WtNodeList list(Object... content) { return new WtNodeListImpl(content); } public WtNodeList toList(AstNode n) { WtNodeList list = list(); list.addAll(n); return list; } @Override public WtNodeList unwrap(AstNodeList n) { WtNodeList list = list(); list.exchange(n); return list; } @Override public WtNodeList emptyList() { return WtNodeList.EMPTY; } @Override public WtBody body(WtNodeList content) { return new WtBodyImpl(content); } @Override public WtBody emptyBody() { return WtBody.EMPTY; } @Override public WtBody noBody() { return WtBody.NO_BODY; } @Override public WtBold b(WtNodeList content) { return new WtBold(content); } @Override public WtDefinitionList dl(WtNodeList content) { return new WtDefinitionList(content); } @Override public WtDefinitionListDef dd(WtNodeList content) { return new WtDefinitionListDef(content); } @Override public WtDefinitionListTerm dt(WtNodeList content) { return new WtDefinitionListTerm(content); } @Override public WtHeading heading(WtNodeList content) { return new WtHeading(content); } @Override public WtItalics i(WtNodeList content) { return new WtItalics(content); } @Override public WtLinkOptionAltText loAlt(WtNodeList content) { return new WtLinkOptionAltTextImpl(content); } @Override public WtLinkOptionAltText noLoAlt() { return WtLinkOptionAltText.NO_ALT; } @Override public WtLinkOptions linkOpts(WtNodeList content) { return new WtLinkOptionsImpl(content); } @Override public WtLinkOptions emptyLinkOpts() { return WtLinkOptions.EMPTY; } @Override public WtLinkTitle linkTitle(WtNodeList content) { return new WtLinkTitleImpl(content); } @Override public WtLinkTitle noLinkTitle() { return WtLinkTitle.NO_TITLE; } @Override public WtListItem li(WtNodeList content) { return new WtListItem(content); } @Override public WtName name(WtNodeList content) { return new WtNameImpl(content); } @Override public WtName noName() { return WtName.NO_NAME; } @Override public WtOnlyInclude onlyInc(WtNodeList content, XmlElementType elementType) { return new WtOnlyInclude(content, elementType); } @Override public WtOrderedList ol(WtNodeList content) { return new WtOrderedList(content); } @Override public WtParsedWikitextPage parsedPage(WtNodeList content) { return new WtParsedWikitextPage(content); } @Override public WtParsedWikitextPage parsedPage( WtNodeList content, WtEntityMap entityMap) { return new WtParsedWikitextPage(content, entityMap); } @Override public WtPreproWikitextPage preproPage(WtNodeList content) { return new WtPreproWikitextPage(content); } @Override public WtPreproWikitextPage preproPage( WtNodeList content, WtEntityMap entityMap) { return new WtPreproWikitextPage(content, entityMap); } @Override public WtParagraph p(WtNodeList content) { return new WtParagraph(content); } @Override public WtSemiPre semiPre(WtNodeList content) { return new WtSemiPre(content); } @Override public WtSemiPreLine semiPreLine(WtNodeList content) { return new WtSemiPreLine(content); } @Override public WtTemplateArguments tmplArgs(WtNodeList content) { return new WtTemplateArgumentsImpl(content); } @Override public WtTemplateArguments emptyTmplArgs() { return WtTemplateArguments.EMPTY; } @Override public WtUnorderedList ul(WtNodeList content) { return new WtUnorderedList(content); } @Override public WtValue value(WtNodeList content) { return new WtValueImpl(content); } @Override public WtValue noValue() { return WtValue.NO_VALUE; } @Override public WtWhitespace ws(WtNodeList content, boolean hasNewline) { return new WtWhitespace(content, hasNewline); } @Override public WtXmlAttributes attrs(WtNodeList content) { return new WtXmlAttributesImpl(content); } @Override public WtXmlAttributes emptyAttrs() { return WtXmlAttributes.EMPTY; } @Override public WtLctRules lctRules(WtNodeList rules) { return new WtLctRules(rules); } @Override public WtLctRuleText lctRuleText(WtNodeList content) { return new WtLctRuleText(content); } @Override public WtPageName pageName(WtNodeList content) { return new WtPageName(content); } @Override public WtIgnored ignored(String content) { return new WtIgnored(content); } @Override public WtLinkOptionGarbage loGarbage(WtNodeList content) { return new WtLinkOptionGarbage(content); } @Override public WtNewline newline(String content) { return new WtNewline(content); } @Override public WtTagExtensionBody tagExtBody(String content) { return new WtTagExtensionBodyImpl(content); } @Override public WtTagExtensionBody noTagExtBody() { return WtTagExtensionBody.NO_BODY; } @Override public WtXmlAttributeGarbage attrGarbage(WtNodeList content) { return new WtXmlAttributeGarbage(content); } @Override public WtXmlComment comment(String content) { return new WtXmlComment(content); } @Override public WtXmlComment comment(String prefix, String content, String suffix) { return new WtXmlComment(content, prefix, suffix); } @Override public WtLctRuleGarbage lctGarbage(String content) { return new WtLctRuleGarbage(content); } @Override public WtText text(String content) { return new WtText(content); } } WtBody.java000066400000000000000000000060211335270560400446240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; public interface WtBody extends WtContentNode { public static final WtNoBody NO_BODY = new WtNoBody(); public static final WtEmptyBody EMPTY = new WtEmptyBody(); // ========================================================================= public static final class WtNoBody extends WtAbsentContentNode implements WtBody { private static final long serialVersionUID = -1064749733891892633L; private WtNoBody() { } @Override public int getNodeType() { return NT_BODY; } @Override public String getNodeName() { return WtBody.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtBody.NO_BODY; } } // ========================================================================= public static final class WtEmptyBody extends WtEmptyContentNode implements WtBody { private static final long serialVersionUID = -1064749733891892633L; private WtEmptyBody() { } @Override public int getNodeType() { return NT_BODY; } @Override public String getNodeName() { return WtBody.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtBodyImpl) return AstNodeImpl.equalsNoTypeCheck(this, (WtBodyImpl) other); return super.equals(other); } protected Object readResolve() throws ObjectStreamException { return WtBody.EMPTY; } } // ========================================================================= public static final class WtBodyImpl extends WtContentNodeImpl implements WtBody { private static final long serialVersionUID = 1L; // ===================================================================== protected WtBodyImpl() { } protected WtBodyImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_BODY; } @Override public String getNodeName() { return WtBody.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtEmptyBody) return AstNodeImpl.equalsNoTypeCheck(this, (WtEmptyBody) other); return super.equals(other); } } } WtBold.java000066400000000000000000000021411335270560400446060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtBold extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtBold() { } protected WtBold(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_BOLD; } } WtContentNode.java000066400000000000000000000112461335270560400461540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import java.util.Iterator; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public interface WtContentNode extends WtNodeList { public abstract class WtAbsentContentNode extends WtEmptyImmutableNode implements WtContentNode { private static final long serialVersionUID = 2465445739660029292L; protected WtAbsentContentNode() { } @Override public abstract int getNodeType(); @Override public abstract String getNodeName(); @Override public void exchange(AstNodeList other) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean indicatesAbsence() { return true; } } // ===================================================================== public abstract class WtEmptyContentNode extends WtEmptyImmutableNode implements WtContentNode { private static final long serialVersionUID = 2465445739660029292L; protected WtEmptyContentNode() { } @Override public abstract int getNodeType(); @Override public abstract String getNodeName(); @Override public void exchange(AstNodeList other) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean indicatesAbsence() { return false; } } // ===================================================================== public abstract class WtContentNodeImpl extends WtNodeListImpl implements WtContentNode { private static final long serialVersionUID = 3407356901471138122L; private WtRtData rtd = null; // ===================================================================== protected WtContentNodeImpl() { } protected WtContentNodeImpl(WtNodeList content) { super(content); } // ===================================================================== @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != 2) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(2, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(2, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ===================================================================== @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtContentNodePropertyIterator(); } public class WtContentNodePropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtContentNodeImpl.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtContentNodeImpl.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtContentNodeImpl.this.getRtd(); WtContentNodeImpl.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } // ===================================================================== @Override public void toString(Appendable out) throws IOException { out.append(getNodeName()); out.append('['); for (Iterator i = this.iterator(); i.hasNext();) { i.next().toString(out); if (i.hasNext()) out.append(", "); } out.append(']'); } } } WtDefinitionList.java000066400000000000000000000022121335270560400466510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtDefinitionList extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtDefinitionList() { } protected WtDefinitionList(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_DEFINITION_LIST; } } WtDefinitionListDef.java000066400000000000000000000022271335270560400472760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtDefinitionListDef extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtDefinitionListDef() { } protected WtDefinitionListDef(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_DEFINITION_LIST_DEF; } } WtDefinitionListTerm.java000066400000000000000000000022331335270560400475040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtDefinitionListTerm extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtDefinitionListTerm() { } protected WtDefinitionListTerm(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_DEFINITION_LIST_TERM; } } WtEmptyImmutableNode.java000066400000000000000000000246511335270560400475040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Map; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import xtc.tree.Locatable; import xtc.tree.Location; import xtc.util.Pair; public abstract class WtEmptyImmutableNode implements WtNode { private static final long serialVersionUID = -8143436141986490761L; // ========================================================================= public abstract boolean indicatesAbsence(); // ========================================================================= @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { throw new UnsupportedOperationException(genMsg()); } @Override public void suppressRtd() { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= protected String genMsg() { return "You are operating on an immutable " + getNodeName() + " object!"; } // ========================================================================= @Override public boolean hasLocation() { return false; } @Override public Location getLocation() { return null; } @Override public void setLocation(Location location) { // This is called by the parser, can't prevent that ... } @Override public void setLocation(Locatable locatable) { // This is called by the parser, can't prevent that ... } // ========================================================================= @Override public boolean hasAttributes() { return false; } @Override public Map getAttributes() { return Collections.emptyMap(); } @Override public void setAttributes(Map attrs) { throw new UnsupportedOperationException(genMsg()); } @Override public void clearAttributes() { throw new UnsupportedOperationException(genMsg()); } @Override public boolean hasAttribute(String name) { return false; } @Override public Object getAttribute(String name) { return null; } @Override public Object setAttribute(String name, Object value) { throw new UnsupportedOperationException(genMsg()); } @Override public Object removeAttribute(String name) { throw new UnsupportedOperationException(genMsg()); } @Override public int getIntAttribute(String name) { return 0; } @Override public Integer setIntAttribute(String name, Integer value) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean getBooleanAttribute(String name) { return false; } @Override public boolean setBooleanAttribute(String name, boolean value) { throw new UnsupportedOperationException(genMsg()); } @Override public String getStringAttribute(String name) { return null; } @Override public String setStringAttribute(String name, String value) { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= @Override public boolean hasProperties() { return false; } @Override public int getPropertyCount() { return 0; } @Override public Object getProperty(String name) { throw new UnsupportedOperationException(genMsg()); } @Override public Object getProperty(String name, Object default_) { return default_; } @Override public boolean hasProperty(String name) { return false; } @Override public Object setProperty(String name, Object value) { throw new UnsupportedOperationException(genMsg()); } @Override public AstNodePropertyIterator propertyIterator() { return new AstNodePropertyIterator() { @Override protected Object setValue(int index, Object value) { throw new UnsupportedOperationException(genMsg()); } @Override protected Object getValue(int index) { throw new UnsupportedOperationException(genMsg()); } @Override protected int getPropertyCount() { return 0; } @Override protected String getName(int index) { throw new UnsupportedOperationException(genMsg()); } }; } // ========================================================================= @Override public abstract int getNodeType(); @Override public boolean isNodeType(int testType) { return getNodeType() == testType; } @Override public final String getNodeTypeName() { return getClass().getName(); } @Override public abstract String getNodeName(); @Override public de.fau.cs.osr.ptk.common.ast.AstLocation getNativeLocation() { return null; } @Override public void setNativeLocation( de.fau.cs.osr.ptk.common.ast.AstLocation location) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean addAll(Pair p) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean isList() { return false; } @Override public String[] getChildNames() { return EMPTY_CHILD_NAMES; } @Override public void toString(Appendable out) throws IOException { out.append(getClass().getSimpleName()); out.append("()"); } @Override public Object clone() throws CloneNotSupportedException { return this; } @Override public AstNode cloneWrapException() { return this; } @Override public AstNode deepClone() throws CloneNotSupportedException { return this; } @Override public AstNode deepCloneWrapException() { return this; } // ========================================================================= @Override public void add(int index, WtNode element) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean add(WtNode e) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean addAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean addAll(int index, Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public void clear() { throw new UnsupportedOperationException(genMsg()); } @Override public boolean contains(Object o) { return false; } @Override public boolean containsAll(Collection c) { return false; } @Override public WtNode get(int index) { throw new UnsupportedOperationException(genMsg()); } @Override public S get(int index, Class clazz) { throw new UnsupportedOperationException(genMsg()); } @Override public int indexOf(Object o) { return -1; } @Override public boolean isEmpty() { return true; } @Override public Iterator iterator() { return new Iterator() { @Override public void remove() { throw new UnsupportedOperationException(genMsg()); } @Override public WtNode next() { throw new UnsupportedOperationException(genMsg()); } @Override public boolean hasNext() { return false; } }; } @Override public int lastIndexOf(Object o) { return -1; } @Override public ListIterator listIterator() { return new NullNodeListIterator(); } @Override public ListIterator listIterator(int index) { return new NullNodeListIterator(); } @Override public WtNode remove(int index) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean remove(Object o) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean removeAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean retainAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public WtNode set(int index, WtNode element) { throw new UnsupportedOperationException(genMsg()); } @Override public int size() { return 0; } @Override public List subList(int fromIndex, int toIndex) { if (fromIndex == toIndex) return Collections.emptyList(); throw new UnsupportedOperationException(genMsg()); } @Override public Object[] toArray() { return new Object[] {}; } @Override public T[] toArray(T[] a) { if (a.length > 0) a[0] = null; return a; } // ========================================================================= private final class NullNodeListIterator implements ListIterator { @Override public void set(WtNode arg0) { throw new UnsupportedOperationException(genMsg()); } @Override public void remove() { throw new UnsupportedOperationException(genMsg()); } @Override public int previousIndex() { return -1; } @Override public WtNode previous() { throw new UnsupportedOperationException(genMsg()); } @Override public int nextIndex() { return 0; } @Override public WtNode next() { throw new UnsupportedOperationException(genMsg()); } @Override public boolean hasPrevious() { return false; } @Override public boolean hasNext() { return false; } @Override public void add(WtNode arg0) { throw new UnsupportedOperationException(genMsg()); } } // ========================================================================= @Override public String toString() { return "---"; } @Override public boolean equals(Object obj) { if (obj == null) return false; return (obj.getClass() == getClass()); } } WtExternalLink.java000066400000000000000000000035741335270560400463410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtExternalLink extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtExternalLink() { super(Uninitialized.X); } protected WtExternalLink(WtUrl target) { super(target, WtLinkTitle.NO_TITLE); } protected WtExternalLink(WtUrl target, WtLinkTitle title) { super(target, title); } @Override public int getNodeType() { return NT_EXTERNAL_LINK; } // ========================================================================= // Children public final void setTarget(WtUrl target) { set(0, target); } public final WtUrl getTarget() { return (WtUrl) get(0); } public final boolean hasTitle() { return getTitle() != WtLinkTitle.NO_TITLE; } public final void setTitle(WtLinkTitle title) { set(1, title); } public final WtLinkTitle getTitle() { return (WtLinkTitle) get(1); } private static final String[] CHILD_NAMES = new String[] { "target", "title" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtHeading.java000066400000000000000000000021551335270560400452720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtHeading extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtHeading() { } protected WtHeading(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_HEADING; } } WtHorizontalRule.java000066400000000000000000000017601335270560400467150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public class WtHorizontalRule extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= protected WtHorizontalRule() { } @Override public int getNodeType() { return NT_HORIZONTAL_RULE; } } WtIgnored.java000066400000000000000000000022761335270560400453260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtIgnored extends WtStringNodeImpl implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtIgnored() { super(Uninitialized.X); } protected WtIgnored(String content) { super(content); } @Override public int getNodeType() { return NT_IGNORED; } } WtIllegalCodePoint.java000066400000000000000000000067221335270560400471150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtIllegalCodePoint extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtIllegalCodePoint() { } protected WtIllegalCodePoint(String codePoint, IllegalCodePointType type) { setCodePoint(codePoint); setType(type); } @Override public int getNodeType() { return NT_ILLEGAL_CODE_POINT; } // ========================================================================= // Properties private String codePoint; public final String getCodePoint() { return this.codePoint; } public final void setCodePoint(String codePoint) { if (codePoint == null) throw new NullPointerException(); this.codePoint = codePoint; } private IllegalCodePointType type; public final IllegalCodePointType getType() { return this.type; } public final void setType(IllegalCodePointType type) { if (type == null) throw new NullPointerException(); this.type = type; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtIllegalCodePoint.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "codePoint"; case 1: return "type"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtIllegalCodePoint.this.getCodePoint(); case 1: return WtIllegalCodePoint.this.getType(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtIllegalCodePoint.this.getCodePoint(); WtIllegalCodePoint.this.setCodePoint((String) value); return old; } case 1: { IllegalCodePointType old = WtIllegalCodePoint.this.getType(); WtIllegalCodePoint.this.setType((IllegalCodePointType) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= public enum IllegalCodePointType { ISOLATED_SURROGATE, NON_CHARACTER, PRIVATE_USE_CHARACTER, CONTROL_CHARACTER } } WtImEndTag.java000066400000000000000000000023521335270560400453620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.postprocessor.IntermediateTags; public class WtImEndTag extends WtXmlEndTag { private static final long serialVersionUID = 1L; // ========================================================================= /* No default ctor. This node should not get de-/serialized */ protected WtImEndTag(IntermediateTags type) { super(type.getElementName()); } // ========================================================================= @Override public int getNodeType() { return NT_IM_END_TAG; } } WtImStartTag.java000066400000000000000000000024111335270560400457450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.postprocessor.IntermediateTags; public class WtImStartTag extends WtXmlStartTag { private static final long serialVersionUID = 1L; // ========================================================================= /* No default ctor. This node should not get de-/serialized */ protected WtImStartTag(IntermediateTags type) { super(type.getElementName(), WtXmlAttributes.EMPTY); } // ========================================================================= @Override public int getNodeType() { return NT_IM_START_TAG; } } WtImageLink.java000066400000000000000000000277641335270560400456100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.util.ListIterator; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtImageLink extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtImageLink() { super(Uninitialized.X); } protected WtImageLink( WtPageName target, WtLinkOptions options, ImageViewFormat format, boolean border, ImageHorizAlign hAlign, ImageVertAlign vAlign, int width, int height, boolean upright) { super(target, options); setFormat(format); setBorder(border); setHAlign(hAlign); setVAlign(vAlign); setWidth(width); setHeight(height); setUpright(upright); } @Override public int getNodeType() { return NT_IMAGE_LINK; } // ========================================================================= // Properties private int width; public final int getWidth() { return this.width; } public final void setWidth(int width) { this.width = width; } private int height; public final int getHeight() { return this.height; } public final void setHeight(int height) { this.height = height; } private boolean upright; public final boolean getUpright() { return this.upright; } public final void setUpright(boolean upright) { this.upright = upright; } private ImageHorizAlign hAlign; public final ImageHorizAlign getHAlign() { return this.hAlign; } public final void setHAlign(ImageHorizAlign hAlign) { if (hAlign == null) throw new NullPointerException(); this.hAlign = hAlign; } private ImageVertAlign vAlign; public final ImageVertAlign getVAlign() { return this.vAlign; } public final void setVAlign(ImageVertAlign vAlign) { if (vAlign == null) throw new NullPointerException(); this.vAlign = vAlign; } private ImageViewFormat format; public final ImageViewFormat getFormat() { return this.format; } public final void setFormat(ImageViewFormat format) { if (format == null) throw new NullPointerException(); this.format = format; } private boolean border; public final boolean getBorder() { return this.border; } public final void setBorder(boolean border) { this.border = border; } @Override public final int getPropertyCount() { return 7 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtImageLink.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "width"; case 1: return "height"; case 2: return "upright"; case 3: return "hAlign"; case 4: return "vAlign"; case 5: return "format"; case 6: return "border"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtImageLink.this.getWidth(); case 1: return WtImageLink.this.getHeight(); case 2: return WtImageLink.this.getUpright(); case 3: return WtImageLink.this.getHAlign(); case 4: return WtImageLink.this.getVAlign(); case 5: return WtImageLink.this.getFormat(); case 6: return WtImageLink.this.getBorder(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtImageLink.this.getWidth(); WtImageLink.this.setWidth((Integer) value); return old; } case 1: { int old = WtImageLink.this.getHeight(); WtImageLink.this.setHeight((Integer) value); return old; } case 2: { boolean old = WtImageLink.this.getUpright(); WtImageLink.this.setUpright((Boolean) value); return old; } case 3: { ImageHorizAlign old = WtImageLink.this.getHAlign(); WtImageLink.this.setHAlign((ImageHorizAlign) value); return old; } case 4: { ImageVertAlign old = WtImageLink.this.getVAlign(); WtImageLink.this.setVAlign((ImageVertAlign) value); return old; } case 5: { ImageViewFormat old = WtImageLink.this.getFormat(); WtImageLink.this.setFormat((ImageViewFormat) value); return old; } case 6: { boolean old = WtImageLink.this.getBorder(); WtImageLink.this.setBorder((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setTarget(WtPageName target) { set(0, target); } public final WtPageName getTarget() { return (WtPageName) get(0); } public final void setOptions(WtLinkOptions options) { set(1, options); } public final WtLinkOptions getOptions() { return (WtLinkOptions) get(1); } private static final String[] CHILD_NAMES = new String[] { "target", "options" }; public final String[] getChildNames() { return CHILD_NAMES; } // ========================================================================= // Helper public final WtLinkOptionLinkTarget getLink() { WtNode target = getFromOpts(WtNode.NT_LINK_OPTION_LINK_TARGET); if (target == null) return WtLinkOptionLinkTarget.DEFAULT; return (WtLinkOptionLinkTarget) target; } public final void setLink(WtLinkOptionLinkTarget link) { if (link == WtLinkOptionLinkTarget.DEFAULT) link = null; setInOpts(WtNode.NT_LINK_OPTION_LINK_TARGET, link); } public final boolean hasAlt() { return getFromOpts(WtNode.NT_LINK_OPTION_ALT_TEXT) != null; } public final void setAlt(WtLinkOptionAltText alt) { if (alt == WtLinkOptionAltText.NO_ALT) alt = null; setInOpts(WtNode.NT_LINK_OPTION_ALT_TEXT, alt); } public final WtLinkOptionAltText getAlt() { WtNode alt = getFromOpts(WtNode.NT_LINK_OPTION_ALT_TEXT); if (alt == null) return WtLinkOptionAltText.NO_ALT; return (WtLinkOptionAltText) alt; } public boolean hasTitle() { return getFromOpts(WtNode.NT_LINK_TITLE) != null; } public final void setTitle(WtLinkTitle title) { if (title == WtLinkTitle.NO_TITLE) title = null; setInOpts(WtNode.NT_LINK_TITLE, title); } public final WtLinkTitle getTitle() { WtNode title = getFromOpts(WtNode.NT_LINK_TITLE); if (title == null) return WtLinkTitle.NO_TITLE; return (WtLinkTitle) title; } // ========================================================================= private void setInOpts(int type, WtNode node) { WtLinkOptions opts = getOptions(); ListIterator i = opts.listIterator(opts.size()); while (i.hasPrevious()) { WtNode o = i.previous(); if (o.getNodeType() == type) { if (node != null) { i.set(node); return; } else { // Remove ALL matching nodes... i.remove(); } } } // We could not replace an existing link instance, append new instead if (node != null) opts.add(node); } private WtNode getFromOpts(int type) { WtLinkOptions opts = getOptions(); for (int i = opts.size() - 1; i >= 0; --i) { WtNode o = opts.get(i); if (o.getNodeType() == type) return o; } return null; } // ========================================================================= public static enum ImageHorizAlign { LEFT { @Override public String asKeyword() { return "left"; } }, RIGHT { @Override public String asKeyword() { return "right"; } }, CENTER { @Override public String asKeyword() { return "center"; } }, NONE { @Override public String asKeyword() { return "none"; } }, UNSPECIFIED { @Override public String asKeyword() { return null; } }; public abstract String asKeyword(); public static ImageHorizAlign which(String s) { if (s == null) throw new NullPointerException(); s = s.trim().toLowerCase(); for (ImageHorizAlign h : ImageHorizAlign.values()) { if (s.equals(h.asKeyword())) return h; } return null; } } // ========================================================================= public static enum ImageVertAlign { BASELINE { @Override public String asKeyword() { return "baseline"; } }, SUB { @Override public String asKeyword() { return "sub"; } }, SUPER { @Override public String asKeyword() { return "super"; } }, TOP { @Override public String asKeyword() { return "top"; } }, TEXT_TOP { @Override public String asKeyword() { return "text-top"; } }, MIDDLE { @Override public String asKeyword() { return "middle"; } }, BOTTOM { @Override public String asKeyword() { return "bottom"; } }, TEXT_BOTTOM { @Override public String asKeyword() { return "text-bottom"; } }; public abstract String asKeyword(); public static ImageVertAlign which(String s) { if (s == null) throw new NullPointerException(); s = s.trim().toLowerCase(); for (ImageVertAlign v : ImageVertAlign.values()) { if (v.asKeyword().equals(s)) return v; } return null; } } // ========================================================================= public static enum ImageViewFormat { UNRESTRAINED { @Override public String asKeyword() { return ""; } @Override public int priority() { return 0; } @Override public boolean isFramed() { return false; } }, FRAMELESS { @Override public String asKeyword() { return "frameless"; } @Override public int priority() { return 1; } @Override public boolean isFramed() { return false; } }, THUMBNAIL { @Override public String asKeyword() { return "thumb"; } @Override public int priority() { return 2; } @Override public boolean isFramed() { return true; } }, FRAME { @Override public String asKeyword() { return "frame"; } @Override public int priority() { return 3; } @Override public boolean isFramed() { return true; } }; private static final Object[] formatMap = new Object[] { "frameless", FRAMELESS, "thumb", THUMBNAIL, "thumbnail", THUMBNAIL, "frame", FRAME, }; public abstract String asKeyword(); public abstract int priority(); public abstract boolean isFramed(); public static ImageViewFormat which(String s) { if (s == null) throw new NullPointerException(); s = s.trim().toLowerCase(); for (int i = 0; i < formatMap.length; i += 2) { String f = (String) formatMap[i]; if (f.equals(s)) return (ImageViewFormat) formatMap[i + 1]; } return null; } public ImageViewFormat combine(ImageViewFormat other) { return priority() > other.priority() ? this : other; } } } WtInnerImmutableNode1.java000066400000000000000000000163321335270560400475370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.util.Collection; import java.util.Map; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstAbstractInnerNode.AstInnerNode1; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import xtc.tree.Locatable; import xtc.tree.Location; import xtc.util.Pair; public abstract class WtInnerImmutableNode1 extends AstInnerNode1 implements WtNode { private static final long serialVersionUID = -3023143947405463528L; // ========================================================================= protected WtInnerImmutableNode1(WtNode n0) { super(n0); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(genMsg()); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { throw new UnsupportedOperationException(genMsg()); } @Override public void suppressRtd() { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= protected String genMsg() { return "You are operating on an immutable " + getNodeName() + " object!"; } // ========================================================================= @Override public void setLocation(Location location) { // This is called by the parser, can't prevent that ... } @Override public void setLocation(Locatable locatable) { // This is called by the parser, can't prevent that ... } @Override public void setNativeLocation( de.fau.cs.osr.ptk.common.ast.AstLocation location) { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= @Override public void setAttributes(Map attrs) { throw new UnsupportedOperationException(genMsg()); } @Override public void clearAttributes() { throw new UnsupportedOperationException(genMsg()); } @Override public Object setAttribute(String name, Object value) { throw new UnsupportedOperationException(genMsg()); } @Override public Object removeAttribute(String name) { throw new UnsupportedOperationException(genMsg()); } @Override public Integer setIntAttribute(String name, Integer value) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean setBooleanAttribute(String name, boolean value) { throw new UnsupportedOperationException(genMsg()); } @Override public String setStringAttribute(String name, String value) { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= @Override public abstract int getNodeType(); @Override public abstract String getNodeName(); // ========================================================================= @Override public abstract String[] getChildNames(); // ========================================================================= @Override public Object clone() throws CloneNotSupportedException { throw new UnsupportedOperationException(genMsg()); } @Override public AstNodeImpl cloneWrapException() { throw new UnsupportedOperationException(genMsg()); } @Override public AstNodeImpl deepClone() throws CloneNotSupportedException { throw new UnsupportedOperationException(genMsg()); } @Override public AstNodeImpl deepCloneWrapException() { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= @Override public boolean addAll(Pair p) { throw new UnsupportedOperationException(genMsg()); } @Override public void add(int index, WtNode element) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean add(WtNode e) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean addAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean addAll(int index, Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public WtNode remove(int index) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean remove(Object o) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean removeAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public boolean retainAll(Collection c) { throw new UnsupportedOperationException(genMsg()); } @Override public WtNode set(int index, WtNode element) { if (element == null) throw new NullPointerException(); // We allow one initial set call (which should be done by the // constructor). Since null values are not allowed as children, we can // identify the first "set" operation by seeing if the current value is // still null. if (get(index) != null) throw new UnsupportedOperationException(genMsg()); return super.set(index, element); } @Override public void clear() { throw new UnsupportedOperationException(genMsg()); } // ========================================================================= @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator(); } protected class WtInnerNode1PropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtInnerImmutableNode1.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtInnerImmutableNode1.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtInnerImmutableNode1.this.getRtd(); WtInnerImmutableNode1.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } WtInnerNode1.java000066400000000000000000000062251335270560400456770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstAbstractInnerNode.AstInnerNode1; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; import xtc.tree.Location; public abstract class WtInnerNode1 extends AstInnerNode1 implements WtNode { private static final long serialVersionUID = -3023143947405463528L; private WtRtData rtd = null; // ========================================================================= protected WtInnerNode1(Uninitialized u) { super(u); } protected WtInnerNode1(WtNode n0) { super(n0); } protected WtInnerNode1(Location arg0, WtNode n0) { super(arg0, n0); } protected WtInnerNode1(Location arg0) { super(arg0); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != this.size() + 1) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(this, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(this, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ========================================================================= @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator(); } protected class WtInnerNode1PropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtInnerNode1.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtInnerNode1.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtInnerNode1.this.getRtd(); WtInnerNode1.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } WtInnerNode2.java000066400000000000000000000062621335270560400457010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstAbstractInnerNode.AstInnerNode2; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; import xtc.tree.Location; public abstract class WtInnerNode2 extends AstInnerNode2 implements WtNode { private static final long serialVersionUID = -3133816643760188432L; private WtRtData rtd = null; // ========================================================================= protected WtInnerNode2(Uninitialized u) { super(u); } protected WtInnerNode2(WtNode n0, WtNode n1) { super(n0, n1); } protected WtInnerNode2(Location arg0, WtNode n0, WtNode n1) { super(arg0, n0, n1); } protected WtInnerNode2(Location arg0) { super(arg0); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != this.size() + 1) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(this, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(this, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ========================================================================= @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator(); } protected class WtInnerNode2PropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtInnerNode2.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtInnerNode2.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtInnerNode2.this.getRtd(); WtInnerNode2.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } WtInnerNode3.java000066400000000000000000000063341335270560400457020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstAbstractInnerNode.AstInnerNode3; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; import xtc.tree.Location; public abstract class WtInnerNode3 extends AstInnerNode3 implements WtNode { private static final long serialVersionUID = 3962368845249207297L; private WtRtData rtd = null; // ========================================================================= protected WtInnerNode3(Uninitialized u) { super(u); } protected WtInnerNode3(WtNode n0, WtNode n1, WtNode n2) { super(n0, n1, n2); } protected WtInnerNode3( Location arg0, WtNode n0, WtNode n1, WtNode n2) { super(arg0, n0, n1, n2); } protected WtInnerNode3(Location arg0) { super(arg0); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != this.size() + 1) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(this, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(this, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ========================================================================= @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtInnerNode3PropertyIterator(); } protected class WtInnerNode3PropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtInnerNode3.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtInnerNode3.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtInnerNode3.this.getRtd(); WtInnerNode3.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } WtIntermediate.java000066400000000000000000000013771335270560400463520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public interface WtIntermediate extends WtNode { } WtInternalLink.java000066400000000000000000000076071335270560400463340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtInternalLink extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtInternalLink() { super(Uninitialized.X); } protected WtInternalLink( String prefix, WtPageName target, String postfix) { super(target, WtLinkTitle.NO_TITLE); setPrefix(prefix); setPostfix(postfix); } @Override public int getNodeType() { return NT_INTERNAL_LINK; } // ========================================================================= // Properties private String prefix; public final String getPrefix() { return this.prefix; } public final void setPrefix(String prefix) { if (prefix == null) throw new NullPointerException(); this.prefix = prefix; } private String postfix; public final String getPostfix() { return this.postfix; } public final void setPostfix(String postfix) { if (postfix == null) throw new NullPointerException(); this.postfix = postfix; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtInternalLink.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "prefix"; case 1: return "postfix"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtInternalLink.this.getPrefix(); case 1: return WtInternalLink.this.getPostfix(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtInternalLink.this.getPrefix(); WtInternalLink.this.setPrefix((String) value); return old; } case 1: { String old = WtInternalLink.this.getPostfix(); WtInternalLink.this.setPostfix((String) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setTarget(WtPageName target) { set(0, target); } public final WtPageName getTarget() { return (WtPageName) get(0); } public boolean hasTitle() { return getTitle() != WtLinkTitle.NO_TITLE; } public final void setTitle(WtLinkTitle title) { set(1, title); } public final WtLinkTitle getTitle() { return (WtLinkTitle) get(1); } private static final String[] CHILD_NAMES = new String[] { "target", "title" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtItalics.java000066400000000000000000000021551335270560400453230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtItalics extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtItalics() { } protected WtItalics(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_ITALICS; } } WtLctFlags.java000066400000000000000000000137471335270560400454430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import java.util.Collections; import java.util.List; import java.util.Set; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public interface WtLctFlags extends WtNode { public static final WtNoLctFlags NO_FLAGS = new WtNoLctFlags(); // ========================================================================= public Set getFlags(); public void setFlags(Set flags); public Set getVariants(); public void setVariants(Set variants); public List getGarbage(); public void setGarbage(List garbage); // ========================================================================= public static final class WtNoLctFlags extends WtEmptyImmutableNode implements WtLctFlags { private static final long serialVersionUID = 2465445739660029292L; private WtNoLctFlags() { } @Override public int getNodeType() { return NT_LCT_FLAGS; } @Override public String getNodeName() { return WtLctFlags.class.getSimpleName(); } @Override public boolean indicatesAbsence() { return true; } @Override public Set getFlags() { return Collections.emptySet(); } @Override public void setFlags(Set flags) { throw new UnsupportedOperationException(genMsg()); } @Override public Set getVariants() { return Collections.emptySet(); } @Override public void setVariants(Set variants) { throw new UnsupportedOperationException(genMsg()); } @Override public List getGarbage() { return Collections.emptyList(); } @Override public void setGarbage(List garbage) { throw new UnsupportedOperationException(genMsg()); } // ===================================================================== protected Object readResolve() throws ObjectStreamException { return WtLctFlags.NO_FLAGS; } } // ========================================================================= public static final class WtLctFlagsImpl extends WtLeafNode implements WtLctFlags { private static final long serialVersionUID = 1L; // ===================================================================== /** * Only for use by de-serialization code. */ protected WtLctFlagsImpl() { } protected WtLctFlagsImpl( Set flags, Set variants, List garbage) { setFlags(flags); setVariants(variants); setGarbage(garbage); } @Override public int getNodeType() { return NT_LCT_FLAGS; } @Override public String getNodeName() { return WtLctFlags.class.getSimpleName(); } // ===================================================================== // Properties private Set flags; public final Set getFlags() { return this.flags; } public final void setFlags(Set flags) { this.flags = flags; } private Set variants; public final Set getVariants() { return this.variants; } public final void setVariants(Set variants) { this.variants = variants; } private List garbage; public final List getGarbage() { return this.garbage; } public final void setGarbage(List garbage) { this.garbage = garbage; } @Override public final int getPropertyCount() { return 3 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtLctFlagsImpl.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "flags"; case 1: return "variants"; case 2: return "garbage"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLctFlagsImpl.this.getFlags(); case 1: return WtLctFlagsImpl.this.getVariants(); case 2: return WtLctFlagsImpl.this.getGarbage(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { @SuppressWarnings("unchecked") Set flags = (Set) value; Set old = WtLctFlagsImpl.this.getFlags(); WtLctFlagsImpl.this.setFlags(flags); return old; } case 1: { @SuppressWarnings("unchecked") Set variants = (Set) value; Set old = WtLctFlagsImpl.this.getVariants(); WtLctFlagsImpl.this.setVariants(variants); return old; } case 2: { @SuppressWarnings("unchecked") List garbage = (List) value; List old = WtLctFlagsImpl.this.getGarbage(); WtLctFlagsImpl.this.setGarbage(garbage); return old; } default: return super.setValue(index, value); } } }; } } } WtLctRule.java000066400000000000000000000101211335270560400452750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtLctRule extends WtInnerNode1 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLctRule() { super(Uninitialized.X); } protected WtLctRule(String search, String variant, WtLctRuleText replace) { super(replace); if (search == null || search.isEmpty()) throw new IllegalArgumentException(); setSearch(search); setVariant(variant); } protected WtLctRule(String variant, WtLctRuleText replace) { super(replace); setSearch(""); setVariant(variant); } @Override public int getNodeType() { return NT_LCT_RULE; } // ========================================================================= // Properties private boolean directConvert; public final boolean isDirectConvert() { return this.directConvert; } private String search; public final String getSearch() { return this.search; } public final void setSearch(String search) { this.directConvert = search.isEmpty(); this.search = search; } private String variant; public final String getVariant() { return this.variant; } public final void setVariant(String variant) { this.variant = variant; } @Override public final int getPropertyCount() { return 3 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator() { @Override protected int getPropertyCount() { return WtLctRule.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "directConvert"; case 1: return "search"; case 2: return "variant"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLctRule.this.isDirectConvert(); case 1: return WtLctRule.this.getSearch(); case 2: return WtLctRule.this.getVariant(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: throw new UnsupportedOperationException( "You cannot set variable `directConvert' directly! " + "Use setSearch() instead."); case 1: { String old = WtLctRule.this.getSearch(); WtLctRule.this.setSearch((String) value); return old; } case 2: { String old = WtLctRule.this.getVariant(); WtLctRule.this.setVariant((String) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setReplace(WtLctRuleText replace) { set(0, replace); } public final WtLctRuleText getReplace() { return (WtLctRuleText) get(0); } private static final String[] CHILD_NAMES = new String[] { "replace" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtLctRuleConv.java000066400000000000000000000034451335270560400461360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtLctRuleConv extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLctRuleConv() { super(Uninitialized.X); } protected WtLctRuleConv(WtLctFlags flags, WtLctRules rules) { super(flags, rules); } @Override public int getNodeType() { return NT_LCT_RULE_CONV; } // ========================================================================= // Children public boolean hasFlags() { return getFlags() != WtLctFlags.NO_FLAGS; } public final void setFlags(WtLctFlags flags) { set(0, flags); } public final WtLctFlags getFlags() { return (WtLctFlags) get(0); } public final void setRules(WtLctRules rules) { set(1, rules); } public final WtLctRules getRules() { return (WtLctRules) get(1); } private static final String[] CHILD_NAMES = new String[] { "flags", "rules" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtLctRuleGarbage.java000066400000000000000000000022771335270560400465630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtLctRuleGarbage extends WtStringNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLctRuleGarbage() { super(Uninitialized.X); } protected WtLctRuleGarbage(String content) { super(content); } @Override public int getNodeType() { return NT_LCT_RULE_GARBAGE; } } WtLctRuleText.java000066400000000000000000000023301335270560400461450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtLctRuleText extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ===================================================================== protected WtLctRuleText() { } protected WtLctRuleText(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LCT_RULE_TEXT; } @Override public String getNodeName() { return WtLctRuleText.class.getSimpleName(); } } WtLctRules.java000066400000000000000000000023101335270560400454610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtLctRules extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ===================================================================== protected WtLctRules() { } protected WtLctRules(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LCT_RULES; } @Override public String getNodeName() { return WtLctRules.class.getSimpleName(); } } WtLctVarConv.java000066400000000000000000000034121335270560400457510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtLctVarConv extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLctVarConv() { super(Uninitialized.X); } protected WtLctVarConv(WtLctFlags flags, WtBody body) { super(flags, body); } @Override public int getNodeType() { return NT_LCT_VAR_CONV; } // ========================================================================= // Children public boolean hasFlags() { return getFlags() != WtLctFlags.NO_FLAGS; } public final void setFlags(WtLctFlags flags) { set(0, flags); } public final WtLctFlags getFlags() { return (WtLctFlags) get(0); } public final void setText(WtBody text) { set(0, text); } public final WtBody getText() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "flags", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtLeafNode.java000066400000000000000000000053351335270560400454130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstLeafNodeImpl; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class WtLeafNode extends AstLeafNodeImpl implements WtNode { private static final long serialVersionUID = -2024251471331960556L; private WtRtData rtd = null; // ========================================================================= @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != this.size() + 1) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(this, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(this, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ========================================================================= @Override public int getPropertyCount() { return 1; } @Override public AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator(); } protected class WtLeafNodePropertyIterator extends AstNodePropertyIterator { @Override protected int getPropertyCount() { return WtLeafNode.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index) { case 0: return "rtd"; default: throw new IndexOutOfBoundsException(); } } @Override protected Object getValue(int index) { switch (index) { case 0: return WtLeafNode.this.getRtd(); default: throw new IndexOutOfBoundsException(); } } @Override protected Object setValue(int index, Object value) { switch (index) { case 0: { WtRtData old = WtLeafNode.this.getRtd(); WtLeafNode.this.setRtd((WtRtData) value); return old; } default: throw new IndexOutOfBoundsException(); } } } } WtLinkOptionAltText.java000066400000000000000000000041711335270560400473270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; public interface WtLinkOptionAltText extends WtContentNode { public static final WtNoLinkOptionAltText NO_ALT = new WtNoLinkOptionAltText(); // ========================================================================= public static final class WtNoLinkOptionAltText extends WtAbsentContentNode implements WtLinkOptionAltText { private static final long serialVersionUID = -1064749733891892633L; private WtNoLinkOptionAltText() { } @Override public int getNodeType() { return NT_LINK_OPTION_ALT_TEXT; } @Override public String getNodeName() { return WtLinkOptionAltText.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtLinkOptionAltText.NO_ALT; } } // ========================================================================= public static final class WtLinkOptionAltTextImpl extends WtContentNodeImpl implements WtLinkOptionAltText { private static final long serialVersionUID = 1L; // ===================================================================== protected WtLinkOptionAltTextImpl() { } protected WtLinkOptionAltTextImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LINK_OPTION_ALT_TEXT; } @Override public String getNodeName() { return WtLinkOptionAltText.class.getSimpleName(); } } } WtLinkOptionGarbage.java000066400000000000000000000023141335270560400472670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtLinkOptionGarbage extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLinkOptionGarbage() { } protected WtLinkOptionGarbage(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LINK_OPTION_GARBAGE; } } WtLinkOptionKeyword.java000066400000000000000000000052771335270560400473760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtLinkOptionKeyword extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLinkOptionKeyword() { } protected WtLinkOptionKeyword(String keyword) { setKeyword(keyword); } @Override public int getNodeType() { return NT_LINK_OPTION_KEYWORD; } // ========================================================================= // Properties private String keyword; public final String getKeyword() { return this.keyword; } public final void setKeyword(String keyword) { if (keyword == null) throw new NullPointerException(); this.keyword = keyword; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtLinkOptionKeyword.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "keyword"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLinkOptionKeyword.this.getKeyword(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtLinkOptionKeyword.this.getKeyword(); WtLinkOptionKeyword.this.setKeyword((String) value); return old; } default: return super.setValue(index, value); } } }; } } WtLinkOptionLinkTarget.java000066400000000000000000000156171335270560400500150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import org.sweble.wikitext.parser.nodes.WtLinkTarget.LinkTargetType; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public interface WtLinkOptionLinkTarget extends WtNode { public static final WtLinkOptionLinkTargetDefault DEFAULT = new WtLinkOptionLinkTargetDefault(); // ========================================================================= public LinkTargetType getTargetType(); public void setTargetType(LinkTargetType targetType); public boolean hasTarget(); public void setTarget(WtLinkTarget target); public WtLinkTarget getTarget(); // ========================================================================= public static final class WtLinkOptionLinkTargetDefault extends WtInnerImmutableNode1 implements WtLinkOptionLinkTarget { private static final long serialVersionUID = -1064749733891892633L; // ===================================================================== private WtLinkOptionLinkTargetDefault() { super(WtLinkTarget.NO_LINK); } // ===================================================================== @Override public String getNodeName() { return WtLinkOptionLinkTarget.class.getSimpleName(); } @Override public int getNodeType() { return NT_LINK_OPTION_LINK_TARGET; } protected Object readResolve() throws ObjectStreamException { return WtLinkOptionLinkTarget.DEFAULT; } // ===================================================================== // Properties @Override public LinkTargetType getTargetType() { return LinkTargetType.DEFAULT; } @Override public void setTargetType(LinkTargetType targetType) { throw new UnsupportedOperationException(genMsg()); } @Override public final int getPropertyCount() { return getSuperPropertyCount() + 1; } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator() { @Override protected int getPropertyCount() { return WtLinkOptionLinkTargetDefault.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "targetType"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLinkOptionLinkTargetDefault.this.getTargetType(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { throw new UnsupportedOperationException(genMsg()); } }; } // ===================================================================== // Children public final boolean hasTarget() { return false; } public final void setTarget(WtLinkTarget target) { throw new UnsupportedOperationException(genMsg()); } public final WtLinkTarget getTarget() { return (WtLinkTarget) get(0); } @Override public String[] getChildNames() { return WtLinkOptionLinkTargetImpl.CHILD_NAMES; } } // ========================================================================= public static final class WtLinkOptionLinkTargetImpl extends WtInnerNode1 implements WtLinkOptionLinkTarget { private static final long serialVersionUID = 1L; // ===================================================================== /** * Only for use by de-serialization code. */ public WtLinkOptionLinkTargetImpl() { super(Uninitialized.X); } public WtLinkOptionLinkTargetImpl( WtLinkTarget target, LinkTargetType type) { super(target); setTargetType(type); } @Override public String getNodeName() { return WtLinkOptionLinkTarget.class.getSimpleName(); } @Override public int getNodeType() { return NT_LINK_OPTION_LINK_TARGET; } // ===================================================================== // Properties private LinkTargetType targetType; public final LinkTargetType getTargetType() { return this.targetType; } public final void setTargetType(LinkTargetType targetType) { if (targetType == null) throw new NullPointerException(); this.targetType = targetType; } @Override public final int getPropertyCount() { return getSuperPropertyCount() + 1; } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator() { @Override protected int getPropertyCount() { return WtLinkOptionLinkTargetImpl.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "targetType"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLinkOptionLinkTargetImpl.this.getTargetType(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { LinkTargetType old = WtLinkOptionLinkTargetImpl.this.getTargetType(); WtLinkOptionLinkTargetImpl.this.setTargetType((LinkTargetType) value); return old; } default: return super.setValue(index, value); } } }; } // ===================================================================== // Children public final boolean hasTarget() { return getTarget() != WtLinkTarget.NO_LINK; } public final void setTarget(WtLinkTarget target) { set(0, target); } public final WtLinkTarget getTarget() { return (WtLinkTarget) get(0); } private static final String[] CHILD_NAMES = new String[] { "target" }; public final String[] getChildNames() { return CHILD_NAMES; } } } WtLinkOptionResize.java000066400000000000000000000060121335270560400471770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtLinkOptionResize extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtLinkOptionResize() { } protected WtLinkOptionResize(int width, int height) { setWidth(width); setHeight(height); } @Override public int getNodeType() { return NT_LINK_OPTION_RESIZE; } // ========================================================================= // Properties private int width; public final int getWidth() { return this.width; } public final void setWidth(int width) { this.width = width; } private int height; public final int getHeight() { return this.height; } public final void setHeight(int height) { this.height = height; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtLinkOptionResize.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "width"; case 1: return "height"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtLinkOptionResize.this.getWidth(); case 1: return WtLinkOptionResize.this.getHeight(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtLinkOptionResize.this.getWidth(); WtLinkOptionResize.this.setWidth((Integer) value); return old; } case 1: { int old = WtLinkOptionResize.this.getHeight(); WtLinkOptionResize.this.setHeight((Integer) value); return old; } default: return super.setValue(index, value); } } }; } } WtLinkOptions.java000066400000000000000000000051011335270560400461760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; public interface WtLinkOptions extends WtContentNode { public static final WtLinkOptions EMPTY = new WtEmptyLinkOptions(); // ========================================================================= public static final class WtEmptyLinkOptions extends WtEmptyContentNode implements WtLinkOptions { private static final long serialVersionUID = -1064749733891892633L; private WtEmptyLinkOptions() { } @Override public int getNodeType() { return NT_LINK_OPTIONS; } @Override public String getNodeName() { return WtLinkOptions.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtLinkOptionsImpl) return AstNodeImpl.equalsNoTypeCheck(this, (WtLinkOptionsImpl) other); return super.equals(other); } protected Object readResolve() throws ObjectStreamException { return WtLinkOptions.EMPTY; } } // ========================================================================= public static final class WtLinkOptionsImpl extends WtContentNodeImpl implements WtLinkOptions { private static final long serialVersionUID = 1L; // ===================================================================== protected WtLinkOptionsImpl() { } protected WtLinkOptionsImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LINK_OPTIONS; } @Override public String getNodeName() { return WtLinkOptions.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtEmptyLinkOptions) return AstNodeImpl.equalsNoTypeCheck(this, (WtEmptyLinkOptions) other); return super.equals(other); } } } WtLinkTarget.java000066400000000000000000000036421335270560400460010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; public interface WtLinkTarget extends WtNode { public static final WtLinkTarget NO_LINK = new WtNoLink(); // ========================================================================= public LinkTargetType getTargetType(); // ========================================================================= public static enum LinkTargetType { /** The "link=X" argument was not present */ DEFAULT, PAGE, URL, /** The "link=" argument was empty */ NO_LINK } // ========================================================================= public static final class WtNoLink extends WtEmptyImmutableNode implements WtLinkTarget { private static final long serialVersionUID = 4433767404703646519L; private WtNoLink() { } @Override public LinkTargetType getTargetType() { return LinkTargetType.NO_LINK; } @Override public int getNodeType() { return NT_UNTYPED; } @Override public String getNodeName() { return WtLinkTarget.class.getSimpleName(); } @Override public boolean indicatesAbsence() { return true; } protected Object readResolve() throws ObjectStreamException { return WtLinkTarget.NO_LINK; } } } WtLinkTitle.java000066400000000000000000000040011335270560400456220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; public interface WtLinkTitle extends WtContentNode { public static final WtNoLinkTitle NO_TITLE = new WtNoLinkTitle(); // ========================================================================= public static final class WtNoLinkTitle extends WtAbsentContentNode implements WtLinkTitle { private static final long serialVersionUID = -1064749733891892633L; private WtNoLinkTitle() { } @Override public int getNodeType() { return NT_LINK_TITLE; } @Override public String getNodeName() { return WtLinkTitle.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtLinkTitle.NO_TITLE; } } // ========================================================================= public static final class WtLinkTitleImpl extends WtContentNodeImpl implements WtLinkTitle { private static final long serialVersionUID = 1L; // ===================================================================== protected WtLinkTitleImpl() { } protected WtLinkTitleImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LINK_TITLE; } @Override public String getNodeName() { return WtLinkTitle.class.getSimpleName(); } } } WtListItem.java000066400000000000000000000021621335270560400454630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtListItem extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtListItem() { } protected WtListItem(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_LIST_ITEM; } } WtName.java000066400000000000000000000051741335270560400446170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; public interface WtName extends WtContentNode { public static final WtNoName NO_NAME = new WtNoName(); // ========================================================================= public boolean isResolved(); public String getAsString(); // ========================================================================= public static final class WtNoName extends WtAbsentContentNode implements WtName { private static final long serialVersionUID = -1064749733891892633L; private WtNoName() { } @Override public int getNodeType() { return NT_NAME; } @Override public String getNodeName() { return WtName.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtName.NO_NAME; } // ===================================================================== public boolean isResolved() { return false; } public String getAsString() { throw new UnsupportedOperationException(genMsg()); } } // ========================================================================= public static class WtNameImpl extends WtContentNodeImpl implements WtName { private static final long serialVersionUID = 1L; // ===================================================================== protected WtNameImpl() { } protected WtNameImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_NAME; } @Override public String getNodeName() { return WtName.class.getSimpleName(); } // ===================================================================== public boolean isResolved() { return (size() == 1) && get(0).isNodeType(NT_TEXT); } public String getAsString() { if (!isResolved()) throw new IllegalStateException("Cannot return unresolved name as string."); return ((WtText) get(0)).getContent(); } } } WtNamedXmlElement.java000066400000000000000000000026701335270560400467540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public interface WtNamedXmlElement extends WtNode { public String getName(); } WtNewline.java000066400000000000000000000023001335270560400453240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtNewline extends WtStringNodeImpl implements WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtNewline() { super(Uninitialized.X); } protected WtNewline(String content) { super(content); } @Override public int getNodeType() { return NT_NEWLINE; } } WtNode.java000066400000000000000000000200571335270560400446210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstNode; public interface WtNode extends AstNode { public void setRtd(WtRtData rtd); public void setRtd(Object... glue); public void setRtd(String... glue); public WtRtData getRtd(); public void clearRtd(); public void suppressRtd(); // ========================================================================= public static final int NT_MW_NODE_BITS /* ................. */= NT_CUSTOM_BIT | 0x20000; public static final int NT_ENCVAL_BITS /* .................. */= NT_MW_NODE_BITS | 0x40000; public static final int NT_PREPROC_BITS /* ................. */= NT_MW_NODE_BITS | 0x60000; public static final int NT_PARSER_BITS /* .................. */= NT_MW_NODE_BITS | 0x80000; // -- General nodes -------------------------------------------------------- public static final int NT_SPACES /* ....................... */= NT_MW_NODE_BITS + 1; public static final int NT_NEWLINE /* ...................... */= NT_MW_NODE_BITS + 2; public static final int NT_WHITESPACE /* ................... */= NT_MW_NODE_BITS + 3; public static final int NT_GARBAGE /* ...................... */= NT_MW_NODE_BITS + 4; public static final int NT_IGNORED /* ...................... */= NT_MW_NODE_BITS + 5; // -- Preprocessor nodes --------------------------------------------------- public static final int NT_ILLEGAL_CODE_POINT /* ........... */= NT_ENCVAL_BITS + 1; // -- Preprocessor nodes --------------------------------------------------- public static final int NT_PREPRO_WIKITEXT_PAGE /* ......... */= NT_PREPROC_BITS + 1; public static final int NT_XML_COMMENT /* .................. */= NT_PREPROC_BITS + 2; public static final int NT_TAG_EXTENSION /* ................ */= NT_PREPROC_BITS + 3; public static final int NT_TEMPLATE /* ..................... */= NT_PREPROC_BITS + 4; public static final int NT_TEMPLATE_ARGUMENT /* ............ */= NT_PREPROC_BITS + 5; public static final int NT_TEMPLATE_PARAMETER /* ........... */= NT_PREPROC_BITS + 6; public static final int NT_ONLY_INCLUDE /* ................. */= NT_PREPROC_BITS + 7; public static final int NT_REDIRECT /* ..................... */= NT_PREPROC_BITS + 8; public static final int NT_NAME/* .......................... */= NT_PREPROC_BITS + 9; public static final int NT_TEMPLATE_ARGUMENTS/* ............ */= NT_PREPROC_BITS + 10; public static final int NT_VALUE/* ......................... */= NT_PREPROC_BITS + 11; public static final int NT_TAG_EXTENSION_BODY /* ........... */= NT_PREPROC_BITS + 12; // -- Parser nodes --------------------------------------------------------- public static final int NT_PARSED_WIKITEXT_PAGE /* ......... */= NT_PARSER_BITS + 1; public static final int NT_PARAGRAPH /* .................... */= NT_PARSER_BITS + 2; public static final int NT_HORIZONTAL_RULE /* .............. */= NT_PARSER_BITS + 3; public static final int NT_URL /* .......................... */= NT_PARSER_BITS + 4; public static final int NT_EXTERNAL_LINK /* ................ */= NT_PARSER_BITS + 5; public static final int NT_INTERNAL_LINK /* ................ */= NT_PARSER_BITS + 6; public static final int NT_IMAGE_LINK /* ................... */= NT_PARSER_BITS + 7; public static final int NT_LINK_OPTION_ALT_TEXT /* ......... */= NT_PARSER_BITS + 8; public static final int NT_LINK_OPTION_GARBAGE /* .......... */= NT_PARSER_BITS + 9; public static final int NT_LINK_OPTION_KEYWORD /* .......... */= NT_PARSER_BITS + 10; public static final int NT_LINK_OPTION_LINK_TARGET /* ...... */= NT_PARSER_BITS + 11; public static final int NT_LINK_OPTION_RESIZE /* ........... */= NT_PARSER_BITS + 12; public static final int NT_PAGE_NAME /* .................... */= NT_PARSER_BITS + 13; public static final int NT_LINK_TITLE /* ................... */= NT_PARSER_BITS + 14; public static final int NT_TABLE /* ........................ */= NT_PARSER_BITS + 15; public static final int NT_TABLE_CAPTION /* ................ */= NT_PARSER_BITS + 16; public static final int NT_TABLE_ROW /* .................... */= NT_PARSER_BITS + 17; public static final int NT_TABLE_CELL /* ................... */= NT_PARSER_BITS + 18; public static final int NT_TABLE_HEADER /* ................. */= NT_PARSER_BITS + 19; public static final int NT_TICKS /* ........................ */= NT_PARSER_BITS + 20; public static final int NT_BOLD /* ......................... */= NT_PARSER_BITS + 21; public static final int NT_ITALICS /* ...................... */= NT_PARSER_BITS + 22; public static final int NT_DEFINITION_LIST_DEF /* .......... */= NT_PARSER_BITS + 24; public static final int NT_DEFINITION_LIST /* .............. */= NT_PARSER_BITS + 25; public static final int NT_DEFINITION_LIST_TERM /* ......... */= NT_PARSER_BITS + 26; public static final int NT_ORDERED_LIST /* ................. */= NT_PARSER_BITS + 27; public static final int NT_UNORDERED_LIST /* ............... */= NT_PARSER_BITS + 29; public static final int NT_LIST_ITEM /* .................... */= NT_PARSER_BITS + 30; public static final int NT_SEMI_PRE /* ..................... */= NT_PARSER_BITS + 31; public static final int NT_SEMI_PRE_LINE /* ................ */= NT_PARSER_BITS + 32; public static final int NT_XML_ATTRIBUTE /* ................ */= NT_PARSER_BITS + 33; public static final int NT_XML_ATTRIBUTE_GARBAGE /* ........ */= NT_PARSER_BITS + 34; public static final int NT_XML_CHAR_REF /* ................. */= NT_PARSER_BITS + 35; public static final int NT_XML_ELEMENT /* .................. */= NT_PARSER_BITS + 36; public static final int NT_XML_ENTITY_REF /* ............... */= NT_PARSER_BITS + 37; public static final int NT_XML_END_TAG /* .................. */= NT_PARSER_BITS + 38; public static final int NT_XML_EMPTY_TAG /* ................ */= NT_PARSER_BITS + 39; public static final int NT_XML_START_TAG /* ................ */= NT_PARSER_BITS + 40; public static final int NT_HEADING /* ...................... */= NT_PARSER_BITS + 41; public static final int NT_SECTION /* ...................... */= NT_PARSER_BITS + 42; public static final int NT_PAGE_SWITCH /* .................. */= NT_PARSER_BITS + 43; public static final int NT_SIGNATURE /* .................... */= NT_PARSER_BITS + 44; public static final int NT_BODY /* ......................... */= NT_PARSER_BITS + 45; public static final int NT_LINK_OPTIONS /* ................. */= NT_PARSER_BITS + 46; public static final int NT_XML_ATTRIBUTES /* ............... */= NT_PARSER_BITS + 47; public static final int NT_IM_START_TAG /* ................. */= NT_PARSER_BITS + 48; public static final int NT_IM_END_TAG /* ................... */= NT_PARSER_BITS + 49; public static final int NT_TABLE_IMPLICIT_TBODY /* ......... */= NT_PARSER_BITS + 50; public static final int NT_LCT_FLAGS /* .................... */= NT_PARSER_BITS + 51; public static final int NT_LCT_RULE /* ..................... */= NT_PARSER_BITS + 52; public static final int NT_LCT_RULE_TEXT /* ................ */= NT_PARSER_BITS + 53; public static final int NT_LCT_VAR_CONV /* ................. */= NT_PARSER_BITS + 54; public static final int NT_LCT_RULES /* .................... */= NT_PARSER_BITS + 55; public static final int NT_LCT_RULE_CONV /* ................ */= NT_PARSER_BITS + 56; public static final int NT_LCT_RULE_GARBAGE /* ............. */= NT_PARSER_BITS + 57; } WtNodeList.java000066400000000000000000000105131335270560400454510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import java.util.Collection; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtContentNode.WtEmptyContentNode; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.ast.AstNodeListImpl; import xtc.util.Pair; public interface WtNodeList extends WtNode, AstNodeList { public static final WtEmptyNodeList EMPTY = new WtEmptyNodeList(); // ========================================================================= public class WtEmptyNodeList extends WtEmptyContentNode implements WtNodeList { private static final long serialVersionUID = 2465445739660029292L; private WtEmptyNodeList() { } @Override public int getNodeType() { return NT_NODE_LIST; } @Override public String getNodeName() { return WtNodeList.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtNodeListImpl) return AstNodeImpl.equalsNoTypeCheck(this, (WtNodeListImpl) other); return super.equals(other); } protected Object readResolve() throws ObjectStreamException { return WtNodeList.EMPTY; } } // ========================================================================= public class WtNodeListImpl extends AstNodeListImpl implements WtNodeList { private static final long serialVersionUID = 6285729315278264384L; // ===================================================================== protected WtNodeListImpl() { } protected WtNodeListImpl(Collection list) { super(list); } protected WtNodeListImpl(Pair list) { super(list); } protected WtNodeListImpl(WtNode child) { super(child); } protected WtNodeListImpl(Object... content) { for (Object o : content) { if (o == null) { continue; } else if (o instanceof WtNode) { add((WtNode) o); } else if (o instanceof Pair) { @SuppressWarnings("unchecked") Pair cast = (Pair) o; addAll(cast); } else if (o instanceof Collection) { @SuppressWarnings("unchecked") Collection cast = (Collection) o; addAll(cast); } else { throw new IllegalArgumentException("Can't add object of type: " + o.getClass().getName()); } } } // ===================================================================== @Override public String getNodeName() { return (getClass() == WtNodeListImpl.class) ? WtNodeList.class.getSimpleName() : super.getNodeName(); } // ===================================================================== @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { } @Override public void suppressRtd() { throw new UnsupportedOperationException(); } // ===================================================================== @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtEmptyNodeList) return AstNodeImpl.equalsNoTypeCheck(this, (WtEmptyNodeList) other); return super.equals(other); } } } WtOnlyInclude.java000066400000000000000000000057701335270560400461660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtOnlyInclude extends WtContentNodeImpl implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtOnlyInclude() { } protected WtOnlyInclude(WtNodeList content, XmlElementType elementType) { super(content); setElementType(elementType); } @Override public int getNodeType() { return NT_ONLY_INCLUDE; } // ========================================================================= // Properties private XmlElementType elementType; public final XmlElementType getElementType() { return this.elementType; } public final void setElementType(XmlElementType elementType) { this.elementType = elementType; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtContentNodePropertyIterator() { @Override protected int getPropertyCount() { return WtOnlyInclude.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "elementType"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtOnlyInclude.this.getElementType(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { XmlElementType old = WtOnlyInclude.this.getElementType(); WtOnlyInclude.this.setElementType((XmlElementType) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= public static enum XmlElementType { FULL_ELEMENT, EMPTY_ELEMENT, UNCLOSED_ELEMENT, } } WtOrderedList.java000066400000000000000000000021761335270560400461560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtOrderedList extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtOrderedList() { } protected WtOrderedList(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_ORDERED_LIST; } } WtPage.java000066400000000000000000000100331335270560400446010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.util.Collections; import java.util.List; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public abstract class WtPage extends WtContentNodeImpl { private static final long serialVersionUID = 1L; @SuppressWarnings("unchecked") public static final List NO_WARNINGS = Collections.EMPTY_LIST; public static final WtEntityMap NO_ENTITIES = WtEntityMap.EMPTY_ENTITY_MAP; // ========================================================================= protected WtPage() { setWarnings(NO_WARNINGS); setEntityMap(NO_ENTITIES); } protected WtPage(WtNodeList content) { super(content); setWarnings(NO_WARNINGS); setEntityMap(NO_ENTITIES); } protected WtPage( WtNodeList content, WtEntityMap entityMap) { super(content); setWarnings(NO_WARNINGS); setEntityMap(entityMap); } @Override public int getNodeType() { return NT_PARSED_WIKITEXT_PAGE; } // ========================================================================= // Properties private List warnings; public final boolean hasWarnings() { return this.warnings != NO_WARNINGS || !this.warnings.isEmpty(); } public final List getWarnings() { return this.warnings; } public final void setWarnings(List warnings) { if (warnings == null) throw new NullPointerException(); this.warnings = warnings; } private WtEntityMap entityMap; public final boolean hasEntities() { return this.entityMap != NO_ENTITIES || !this.entityMap.isEmpty(); } public final WtEntityMap getEntityMap() { return this.entityMap; } public final void setEntityMap(WtEntityMap entityMap) { if (entityMap == null) throw new NullPointerException(); this.entityMap = entityMap; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtContentNodePropertyIterator() { @Override protected int getPropertyCount() { return WtPage.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "warnings"; case 1: return "entityMap"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtPage.this.getWarnings(); case 1: return WtPage.this.getEntityMap(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { @SuppressWarnings("unchecked") List list = (List) value; List old = WtPage.this.getWarnings(); WtPage.this.setWarnings(list); return old; } case 1: { WtEntityMap old = WtPage.this.getEntityMap(); WtPage.this.setEntityMap((WtEntityMap) value); return old; } default: return super.setValue(index, value); } } }; } } WtPageName.java000066400000000000000000000025401335270560400454060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtName.WtNameImpl; public class WtPageName extends WtNameImpl implements WtLinkTarget { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtPageName() { } protected WtPageName(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_PAGE_NAME; } @Override public String getNodeName() { return WtPageName.class.getSimpleName(); } @Override public LinkTargetType getTargetType() { return LinkTargetType.PAGE; } } WtPageSwitch.java000066400000000000000000000051651335270560400457750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtPageSwitch extends WtLeafNode implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtPageSwitch() { } protected WtPageSwitch(String name) { setName(name); } @Override public int getNodeType() { return NT_PAGE_SWITCH; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } @Override public final int getPropertyCount() { return getSuperPropertyCount() + 1; } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtPageSwitch.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtPageSwitch.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtPageSwitch.this.getName(); WtPageSwitch.this.setName((String) value); return old; } default: return super.setValue(index, value); } } }; } } WtParagraph.java000066400000000000000000000021651335270560400456410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtParagraph extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtParagraph() { } protected WtParagraph(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_PARAGRAPH; } } WtParsedWikitextPage.java000066400000000000000000000022361335270560400474770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtEntityMap; public class WtParsedWikitextPage extends WtPage { private static final long serialVersionUID = 1L; // ========================================================================= protected WtParsedWikitextPage() { } protected WtParsedWikitextPage(WtNodeList content) { super(content); } protected WtParsedWikitextPage( WtNodeList content, WtEntityMap entityMap) { super(content, entityMap); } } WtParserEntity.java000066400000000000000000000036041335270560400463640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstParserEntity; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtParserEntity extends AstParserEntity implements WtNode, /* keep this here since WtIntermediate is only a "signal" interface. */ WtIntermediate { private static final long serialVersionUID = 7333107598118095040L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtParserEntity() { super(Uninitialized.X); } protected WtParserEntity(int id) { super(id); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { } @Override public void suppressRtd() { throw new UnsupportedOperationException(); } } WtPreproNode.java000066400000000000000000000026311335270560400460070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public interface WtPreproNode extends WtNode { } WtPreproWikitextPage.java000066400000000000000000000022641335270560400475310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtEntityMap; public class WtPreproWikitextPage extends WtPage implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= protected WtPreproWikitextPage() { } protected WtPreproWikitextPage(WtNodeList content) { super(content); } protected WtPreproWikitextPage(WtNodeList content, WtEntityMap entityMap) { super(content, entityMap); } } WtRedirect.java000066400000000000000000000030741335270560400454750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtRedirect extends WtInnerNode1 implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtRedirect() { super(Uninitialized.X); } protected WtRedirect(WtPageName target) { super(target); } @Override public int getNodeType() { return NT_REDIRECT; } // ========================================================================= // Children public final void setTarget(WtPageName target) { set(0, target); } public final WtPageName getTarget() { return (WtPageName) get(0); } private static final String[] CHILD_NAMES = new String[] { "target" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtSection.java000066400000000000000000000065171335270560400453450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtSection extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtSection() { super(Uninitialized.X); } protected WtSection(int level, WtHeading heading) { super(heading, WtBody.NO_BODY); setLevel(level); } protected WtSection(int level, WtHeading heading, WtBody body) { super(heading, body); setLevel(level); } @Override public int getNodeType() { return NT_SECTION; } // ========================================================================= // Properties private int level; public final int getLevel() { return this.level; } public final void setLevel(int level) { this.level = level; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtSection.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "level"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtSection.this.getLevel(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtSection.this.getLevel(); WtSection.this.setLevel((Integer) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setHeading(WtHeading title) { set(0, title); } public final WtHeading getHeading() { return (WtHeading) get(0); } public final boolean hasBody() { return getBody() != WtBody.NO_BODY; } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "heading", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtSemiPre.java000066400000000000000000000021561335270560400453000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtSemiPre extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtSemiPre() { } protected WtSemiPre(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_SEMI_PRE; } } WtSemiPreLine.java000066400000000000000000000022361335270560400461070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtSemiPreLine extends WtContentNodeImpl implements WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= protected WtSemiPreLine() { } protected WtSemiPreLine(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_SEMI_PRE_LINE; } } WtSignature.java000066400000000000000000000051341335270560400456740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtSignature extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtSignature() { } protected WtSignature(int tildeCount) { setTildeCount(tildeCount); } @Override public int getNodeType() { return NT_SIGNATURE; } // ========================================================================= // Properties private int tildeCount; public final int getTildeCount() { return this.tildeCount; } public final void setTildeCount(int tildeCount) { this.tildeCount = tildeCount; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtSignature.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "tildeCount"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtSignature.this.getTildeCount(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtSignature.this.getTildeCount(); WtSignature.this.setTildeCount((Integer) value); return old; } default: return super.setValue(index, value); } } }; } } WtStringNode.java000066400000000000000000000026111335270560400460040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstStringNode; public interface WtStringNode extends WtNode, AstStringNode { public abstract class WtNoStringNode extends WtEmptyImmutableNode implements WtStringNode { private static final long serialVersionUID = 2465445739660029292L; protected WtNoStringNode() { } @Override public String getContent() { return ""; } @Override public void setContent(String content) { throw new UnsupportedOperationException(genMsg()); } @Override public abstract int getNodeType(); @Override public abstract String getNodeName(); @Override public boolean indicatesAbsence() { return true; } } } WtStringNodeImpl.java000066400000000000000000000063201335270560400466270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.AstStringNodeImpl; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public abstract class WtStringNodeImpl extends AstStringNodeImpl implements WtStringNode { private static final long serialVersionUID = -2087712873453224402L; private WtRtData rtd = null; // ========================================================================= protected WtStringNodeImpl(Uninitialized u) { super(u); } protected WtStringNodeImpl(String content) { super(content); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { if (rtd != null && rtd.size() != this.size() + 1) throw new IllegalArgumentException(); this.rtd = rtd; } @Override public void setRtd(Object... glue) { rtd = new WtRtData(this, glue); } @Override public void setRtd(String... glue) { rtd = new WtRtData(this, glue); } @Override public WtRtData getRtd() { return rtd; } @Override public void clearRtd() { rtd = null; } @Override public void suppressRtd() { rtd = WtRtData.SUPPRESS; } // ========================================================================= @Override public int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public AstNodePropertyIterator propertyIterator() { return new WtStringContentNodePropertyIterator(); } protected class WtStringContentNodePropertyIterator extends StringContentNodePropertyIterator { @Override protected int getPropertyCount() { return WtStringNodeImpl.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "rtd"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtStringNodeImpl.this.getRtd(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { WtRtData old = WtStringNodeImpl.this.getRtd(); WtStringNodeImpl.this.setRtd((WtRtData) value); return old; } default: return super.setValue(index, value); } } } } WtTable.java000066400000000000000000000036401335270560400447620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTable extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTable() { super(Uninitialized.X); } protected WtTable(WtXmlAttributes xmlAttributes) { super(xmlAttributes, WtBody.NO_BODY); } protected WtTable(WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); } @Override public int getNodeType() { return NT_TABLE; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final boolean hasBody() { return getBody() != WtBody.NO_BODY; } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTableCaption.java000066400000000000000000000034171335270560400463020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTableCaption extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTableCaption() { super(Uninitialized.X); } protected WtTableCaption(WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); } @Override public int getNodeType() { return NT_TABLE_CAPTION; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTableCell.java000066400000000000000000000034031335270560400455570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTableCell extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTableCell() { super(Uninitialized.X); } protected WtTableCell(WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); } @Override public int getNodeType() { return NT_TABLE_CELL; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTableHeader.java000066400000000000000000000034131335270560400460710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTableHeader extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTableHeader() { super(Uninitialized.X); } protected WtTableHeader(WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); } @Override public int getNodeType() { return NT_TABLE_HEADER; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTableImplicitTableBody.java000066400000000000000000000030671335270560400502460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTableImplicitTableBody extends WtInnerNode1 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTableImplicitTableBody() { super(Uninitialized.X); } protected WtTableImplicitTableBody(WtBody body) { super(body); } @Override public int getNodeType() { return NT_TABLE_IMPLICIT_TBODY; } // ========================================================================= // Children public final void setBody(WtBody body) { set(0, body); } public final WtBody getBody() { return (WtBody) get(0); } private static final String[] CHILD_NAMES = new String[] { "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTableRow.java000066400000000000000000000063571335270560400454620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTableRow extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTableRow() { super(Uninitialized.X); } protected WtTableRow(WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); } @Override public int getNodeType() { return NT_TABLE_ROW; } // ========================================================================= // Properties private boolean implicit; public final boolean isImplicit() { return this.implicit; } public final void setImplicit(boolean implicit) { this.implicit = implicit; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtTableRow.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "implicit"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtTableRow.this.isImplicit(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = WtTableRow.this.isImplicit(); WtTableRow.this.setImplicit((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTagExtension.java000066400000000000000000000072011335270560400463400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTagExtension extends WtInnerNode2 implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTagExtension() { super(Uninitialized.X); } protected WtTagExtension( String name, WtXmlAttributes xmlAttributes) { super(xmlAttributes, WtTagExtensionBody.NO_BODY); setName(name); } protected WtTagExtension( String name, WtXmlAttributes xmlAttributes, WtTagExtensionBody body) { super(xmlAttributes, body); setName(name); } @Override public int getNodeType() { return NT_TAG_EXTENSION; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtTagExtension.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtTagExtension.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtTagExtension.this.getName(); WtTagExtension.this.setName((String) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final boolean hasBody() { return getBody() != WtTagExtensionBody.NO_BODY; } public final void setBody(WtTagExtensionBody body) { set(1, body); } public final WtTagExtensionBody getBody() { return (WtTagExtensionBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTagExtensionBody.java000066400000000000000000000044121335270560400471570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public interface WtTagExtensionBody extends WtStringNode, WtPreproNode { public static final WtNoTagExtensionBody NO_BODY = new WtNoTagExtensionBody(); // ========================================================================= public static final class WtNoTagExtensionBody extends WtNoStringNode implements WtTagExtensionBody { private static final long serialVersionUID = -1064749733891892633L; private WtNoTagExtensionBody() { } @Override public int getNodeType() { return NT_TAG_EXTENSION_BODY; } @Override public String getNodeName() { return WtTagExtensionBody.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtTagExtensionBody.NO_BODY; } } // ========================================================================= public static final class WtTagExtensionBodyImpl extends WtStringNodeImpl implements WtTagExtensionBody { private static final long serialVersionUID = -6588373105033239206L; // ===================================================================== /** * Only for use by de-serialization code. */ protected WtTagExtensionBodyImpl() { super(Uninitialized.X); } protected WtTagExtensionBodyImpl(String content) { super(content); } @Override public int getNodeType() { return NT_TAG_EXTENSION_BODY; } @Override public String getNodeName() { return WtTagExtensionBody.class.getSimpleName(); } } } WtTempNode.java000066400000000000000000000014551335270560400454500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; public class WtTempNode extends WtLeafNode { private static final long serialVersionUID = 1L; } WtTemplate.java000066400000000000000000000066501335270560400455120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTemplate extends WtInnerNode2 implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTemplate() { super(Uninitialized.X); } protected WtTemplate(WtName name, WtTemplateArguments args) { super(name, args); } @Override public int getNodeType() { return NT_TEMPLATE; } // ========================================================================= // Properties private boolean precededByNewline; /** * @deprecated */ public final boolean getPrecededByNewline() { return this.precededByNewline; } public final boolean isPrecededByNewline() { return this.precededByNewline; } public final void setPrecededByNewline(boolean precededByNewline) { this.precededByNewline = precededByNewline; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtTemplate.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "precededByNewline"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtTemplate.this.isPrecededByNewline(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = WtTemplate.this.isPrecededByNewline(); WtTemplate.this.setPrecededByNewline((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setName(WtName name) { set(0, name); } public final WtName getName() { return (WtName) get(0); } public final void setArgs(WtTemplateArguments args) { set(1, args); } public final WtTemplateArguments getArgs() { return (WtTemplateArguments) get(1); } private static final String[] CHILD_NAMES = new String[] { "name", "args" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTemplateArgument.java000066400000000000000000000036051335270560400472120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTemplateArgument extends WtInnerNode2 implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTemplateArgument() { super(Uninitialized.X); } protected WtTemplateArgument(WtValue value) { super(WtName.NO_NAME, value); } protected WtTemplateArgument(WtName name, WtValue value) { super(name, value); } @Override public int getNodeType() { return NT_TEMPLATE_ARGUMENT; } // ========================================================================= // Children public final boolean hasName() { return getName() != WtName.NO_NAME; } public final void setName(WtName name) { set(0, name); } public final WtName getName() { return (WtName) get(0); } public final void setValue(WtValue value) { set(1, value); } public final WtValue getValue() { return (WtValue) get(1); } private static final String[] CHILD_NAMES = new String[] { "name", "value" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtTemplateArguments.java000066400000000000000000000052701335270560400473750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; public interface WtTemplateArguments extends WtContentNode { public static final WtEmptyTemplateArguments EMPTY = new WtEmptyTemplateArguments(); // ========================================================================= public static final class WtEmptyTemplateArguments extends WtEmptyContentNode implements WtTemplateArguments { private static final long serialVersionUID = -1064749733891892633L; private WtEmptyTemplateArguments() { } @Override public int getNodeType() { return NT_TEMPLATE_ARGUMENTS; } @Override public String getNodeName() { return WtTemplateArguments.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtTemplateArgumentsImpl) return AstNodeImpl.equalsNoTypeCheck(this, (WtTemplateArgumentsImpl) other); return super.equals(other); } protected Object readResolve() throws ObjectStreamException { return WtTemplateArguments.EMPTY; } } // ========================================================================= public static final class WtTemplateArgumentsImpl extends WtContentNodeImpl implements WtTemplateArguments { private static final long serialVersionUID = 1L; // ===================================================================== protected WtTemplateArgumentsImpl() { } protected WtTemplateArgumentsImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_TEMPLATE_ARGUMENTS; } @Override public String getNodeName() { return WtTemplateArguments.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtEmptyTemplateArguments) return AstNodeImpl.equalsNoTypeCheck(this, (WtEmptyTemplateArguments) other); return super.equals(other); } } } WtTemplateParameter.java000066400000000000000000000076501335270560400473540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtTemplateParameter extends WtInnerNode3 implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTemplateParameter() { super(Uninitialized.X); } protected WtTemplateParameter(WtName name) { super(name, WtValue.NO_VALUE, WtTemplateArguments.EMPTY); } protected WtTemplateParameter(WtName name, WtValue defaultValue) { super(name, defaultValue, WtTemplateArguments.EMPTY); } protected WtTemplateParameter( WtName name, WtValue defaultValue, WtTemplateArguments garbage) { super(name, defaultValue, garbage); } @Override public int getNodeType() { return NT_TEMPLATE_PARAMETER; } // ========================================================================= // Properties private boolean precededByNewline; public final boolean getPrecededByNewline() { return this.precededByNewline; } public final void setPrecededByNewline(boolean precededByNewline) { this.precededByNewline = precededByNewline; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode3PropertyIterator() { @Override protected int getPropertyCount() { return WtTemplateParameter.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "precededByNewline"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtTemplateParameter.this.getPrecededByNewline(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = WtTemplateParameter.this.getPrecededByNewline(); WtTemplateParameter.this.setPrecededByNewline((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setName(WtName name) { set(0, name); } public final WtName getName() { return (WtName) get(0); } public final boolean hasDefault() { return getDefault() != WtValue.NO_VALUE; } public final void setDefault(WtValue _default) { set(1, _default); } public final WtValue getDefault() { return (WtValue) get(1); } public final void setGarbage(WtTemplateArguments garbage) { set(2, garbage); } public final WtTemplateArguments getGarbage() { return (WtTemplateArguments) get(2); } private static final String[] CHILD_NAMES = new String[] { "name", "default", "garbage" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtText.java000066400000000000000000000034241335270560400446570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.WtRtData; import de.fau.cs.osr.ptk.common.ast.AstText; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtText extends AstText implements WtStringNode { private static final long serialVersionUID = 7333107598118095040L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtText() { super(Uninitialized.X); } protected WtText(String content) { super(content); } // ========================================================================= @Override public void setRtd(WtRtData rtd) { throw new UnsupportedOperationException(); } @Override public void setRtd(Object... glue) { throw new UnsupportedOperationException(); } @Override public void setRtd(String... glue) { throw new UnsupportedOperationException(); } @Override public WtRtData getRtd() { return null; } @Override public void clearRtd() { } @Override public void suppressRtd() { throw new UnsupportedOperationException(); } } WtTicks.java000066400000000000000000000051151335270560400450070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtTicks extends WtLeafNode implements WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtTicks() { } protected WtTicks(int tickCount) { setTickCount(tickCount); } @Override public int getNodeType() { return NT_TICKS; } // ========================================================================= // Properties private int tickCount; public final int getTickCount() { return this.tickCount; } public final void setTickCount(int tickCount) { this.tickCount = tickCount; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtTicks.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "tickCount"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtTicks.this.getTickCount(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtTicks.this.getTickCount(); WtTicks.this.setTickCount((Integer) value); return old; } default: return super.setValue(index, value); } } }; } } WtUnorderedList.java000066400000000000000000000022061335270560400465130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtUnorderedList extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= protected WtUnorderedList() { } protected WtUnorderedList(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_UNORDERED_LIST; } } WtUrl.java000066400000000000000000000062131335270560400444740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtUrl extends WtLeafNode implements WtLinkTarget { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtUrl() { } protected WtUrl(String protocol, String path) { setProtocol(protocol); setPath(path); } @Override public int getNodeType() { return NT_URL; } @Override public LinkTargetType getTargetType() { return LinkTargetType.URL; } // ========================================================================= // Properties private String protocol; public final String getProtocol() { return this.protocol; } public final void setProtocol(String protocol) { if (protocol == null) throw new NullPointerException(); this.protocol = protocol; } private String path; public final String getPath() { return this.path; } public final void setPath(String path) { if (path == null) throw new NullPointerException(); this.path = path; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtUrl.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "protocol"; case 1: return "path"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtUrl.this.getProtocol(); case 1: return WtUrl.this.getPath(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtUrl.this.getProtocol(); WtUrl.this.setProtocol((String) value); return old; } case 1: { String old = WtUrl.this.getPath(); WtUrl.this.setPath((String) value); return old; } default: return super.setValue(index, value); } } }; } } WtValue.java000066400000000000000000000037031335270560400450070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; public interface WtValue extends WtContentNode { public static final WtNoValue NO_VALUE = new WtNoValue(); // ========================================================================= public static final class WtNoValue extends WtAbsentContentNode implements WtValue { private static final long serialVersionUID = -1064749733891892633L; private WtNoValue() { } @Override public int getNodeType() { return NT_VALUE; } @Override public String getNodeName() { return WtValue.class.getSimpleName(); } protected Object readResolve() throws ObjectStreamException { return WtValue.NO_VALUE; } } // ========================================================================= public static final class WtValueImpl extends WtContentNodeImpl implements WtValue { private static final long serialVersionUID = 1L; // ===================================================================== protected WtValueImpl() { } protected WtValueImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_VALUE; } @Override public String getNodeName() { return WtValue.class.getSimpleName(); } } } WtWhitespace.java000066400000000000000000000054131335270560400460270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtWhitespace extends WtContentNodeImpl implements WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtWhitespace() { } protected WtWhitespace(WtNodeList content, boolean hasNewline) { super(content); setHasNewline(hasNewline); } @Override public int getNodeType() { return NT_WHITESPACE; } // ========================================================================= // Properties private boolean hasNewline; public final boolean getHasNewline() { return this.hasNewline; } public final void setHasNewline(boolean hasNewline) { this.hasNewline = hasNewline; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtContentNodePropertyIterator() { @Override protected int getPropertyCount() { return WtWhitespace.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "hasNewline"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtWhitespace.this.getHasNewline(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { boolean old = WtWhitespace.this.getHasNewline(); WtWhitespace.this.setHasNewline((Boolean) value); return old; } default: return super.setValue(index, value); } } }; } } WtXmlAttribute.java000066400000000000000000000035311335270560400463560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtXmlAttribute extends WtInnerNode2 { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlAttribute() { super(Uninitialized.X); } protected WtXmlAttribute(WtName name) { super(name, WtValue.NO_VALUE); } protected WtXmlAttribute(WtName name, WtValue value) { super(name, value); } @Override public int getNodeType() { return NT_XML_ATTRIBUTE; } // ========================================================================= // Children public final void setName(WtName value) { set(0, value); } public final WtName getName() { return (WtName) get(0); } public final boolean hasValue() { return getValue() != WtValue.NO_VALUE; } public final void setValue(WtValue value) { set(1, value); } public final WtValue getValue() { return (WtValue) get(1); } private static final String[] CHILD_NAMES = new String[] { "name", "value" }; public final String[] getChildNames() { return CHILD_NAMES; } } WtXmlAttributeGarbage.java000066400000000000000000000023241335270560400476260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import org.sweble.wikitext.parser.nodes.WtContentNode.WtContentNodeImpl; public class WtXmlAttributeGarbage extends WtContentNodeImpl { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlAttributeGarbage() { } protected WtXmlAttributeGarbage(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_XML_ATTRIBUTE_GARBAGE; } } WtXmlAttributes.java000066400000000000000000000051471335270560400465460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.ObjectStreamException; import de.fau.cs.osr.ptk.common.ast.AstNodeImpl; public interface WtXmlAttributes extends WtContentNode { public static final WtXmlAttributes EMPTY = new WtEmptyXmlAttributes(); // ========================================================================= public static final class WtEmptyXmlAttributes extends WtEmptyContentNode implements WtXmlAttributes { private static final long serialVersionUID = -1064749733891892633L; private WtEmptyXmlAttributes() { } @Override public int getNodeType() { return NT_XML_ATTRIBUTES; } @Override public String getNodeName() { return WtXmlAttributes.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtXmlAttributesImpl) return AstNodeImpl.equalsNoTypeCheck(this, (WtXmlAttributesImpl) other); return super.equals(other); } protected Object readResolve() throws ObjectStreamException { return WtXmlAttributes.EMPTY; } } // ========================================================================= public static final class WtXmlAttributesImpl extends WtContentNodeImpl implements WtXmlAttributes { private static final long serialVersionUID = 1L; // ===================================================================== protected WtXmlAttributesImpl() { } protected WtXmlAttributesImpl(WtNodeList content) { super(content); } @Override public int getNodeType() { return NT_XML_ATTRIBUTES; } @Override public String getNodeName() { return WtXmlAttributes.class.getSimpleName(); } @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof WtEmptyXmlAttributes) return AstNodeImpl.equalsNoTypeCheck(this, (WtEmptyXmlAttributes) other); return super.equals(other); } } } WtXmlCharRef.java000066400000000000000000000051301335270560400457220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtXmlCharRef extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlCharRef() { } protected WtXmlCharRef(int codePoint) { setCodePoint(codePoint); } @Override public int getNodeType() { return NT_XML_CHAR_REF; } // ========================================================================= // Properties private int codePoint; public final int getCodePoint() { return this.codePoint; } public final void setCodePoint(int codePoint) { this.codePoint = codePoint; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtXmlCharRef.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "codePoint"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlCharRef.this.getCodePoint(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { int old = WtXmlCharRef.this.getCodePoint(); WtXmlCharRef.this.setCodePoint((Integer) value); return old; } default: return super.setValue(index, value); } } }; } } WtXmlComment.java000066400000000000000000000065441335270560400460240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtXmlComment extends WtStringNodeImpl implements WtPreproNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlComment() { super(Uninitialized.X); } protected WtXmlComment(String content) { super(content); setPrefix(""); setSuffix(""); } protected WtXmlComment(String content, String prefix, String suffix) { super(content); setPrefix(prefix); setSuffix(suffix); } @Override public int getNodeType() { return NT_XML_COMMENT; } // ========================================================================= // Properties private String prefix; public final String getPrefix() { return this.prefix; } public final void setPrefix(String prefix) { if (prefix == null) throw new NullPointerException(); this.prefix = prefix; } private String suffix; public final String getSuffix() { return this.suffix; } public final void setSuffix(String suffix) { if (suffix == null) throw new NullPointerException(); this.suffix = suffix; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtStringContentNodePropertyIterator() { @Override protected int getPropertyCount() { return WtXmlComment.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "prefix"; case 1: return "suffix"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlComment.this.getPrefix(); case 1: return WtXmlComment.this.getSuffix(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlComment.this.getPrefix(); WtXmlComment.this.setPrefix((String) value); return old; } case 1: { String old = WtXmlComment.this.getSuffix(); WtXmlComment.this.setSuffix((String) value); return old; } default: return super.setValue(index, value); } } }; } } WtXmlElement.java000066400000000000000000000077351335270560400460160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtXmlElement extends WtInnerNode2 implements WtNamedXmlElement { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlElement() { super(Uninitialized.X); } protected WtXmlElement( String name, WtXmlAttributes xmlAttributes) { super(xmlAttributes, WtBody.NO_BODY); setName(name); } protected WtXmlElement( String name, WtXmlAttributes xmlAttributes, WtBody body) { super(xmlAttributes, body); setName(name); } @Override public int getNodeType() { return NT_XML_ELEMENT; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { this.name = name; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode2PropertyIterator() { @Override protected int getPropertyCount() { return WtXmlElement.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlElement.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlElement.this.getName(); WtXmlElement.this.setName((String) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } public final boolean hasBody() { return getBody() != WtBody.NO_BODY; } public final void setBody(WtBody body) { set(1, body); } public final WtBody getBody() { return (WtBody) get(1); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes", "body" }; public final String[] getChildNames() { return CHILD_NAMES; } // ========================================================================= @Override public void toString(Appendable out) throws IOException { out.append(getClass().getSimpleName()); out.append('['); out.append(name); out.append(']'); out.append('('); boolean first = true; for (WtNode node : this) { if (first) { first = false; } else { out.append(", "); } node.toString(out); } out.append(')'); } } WtXmlEmptyTag.java000066400000000000000000000072661335270560400461560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtXmlEmptyTag extends WtInnerNode1 implements WtNamedXmlElement, WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlEmptyTag() { super(Uninitialized.X); } protected WtXmlEmptyTag(String name, WtXmlAttributes xmlAttributes) { super(xmlAttributes); setName(name); } @Override public int getNodeType() { return NT_XML_EMPTY_TAG; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } @Override public final int getPropertyCount() { return 1 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtInnerNode1PropertyIterator() { @Override protected int getPropertyCount() { return WtXmlEmptyTag.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlEmptyTag.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlEmptyTag.this.getName(); WtXmlEmptyTag.this.setName((String) value); return old; } default: return super.setValue(index, value); } } }; } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes" }; public final String[] getChildNames() { return CHILD_NAMES; } // ========================================================================= @Override public void toString(Appendable out) throws IOException { out.append(getClass().getSimpleName()); out.append('['); out.append(name); out.append(']'); out.append('('); boolean first = true; for (WtNode node : this) { if (first) { first = false; } else { out.append(", "); } node.toString(out); } out.append(')'); } } WtXmlEndTag.java000066400000000000000000000063411335270560400455570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtXmlEndTag extends WtLeafNode implements WtNamedXmlElement, WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlEndTag() { } protected WtXmlEndTag(String name) { setName(name); } @Override public int getNodeType() { return NT_XML_END_TAG; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } @Override public int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public AstNodePropertyIterator propertyIterator() { return new WtXmlEndTagPropertyIterator(); } // ========================================================================= protected class WtXmlEndTagPropertyIterator extends WtLeafNodePropertyIterator { @Override protected int getPropertyCount() { return WtXmlEndTag.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlEndTag.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlEndTag.this.getName(); WtXmlEndTag.this.setName((String) value); return old; } default: return super.setValue(index, value); } } } // ========================================================================= @Override public void toString(Appendable out) throws IOException { out.append(getClass().getSimpleName()); out.append('['); out.append(name); out.append(']'); out.append('('); boolean first = true; for (WtNode node : this) { if (first) { first = false; } else { out.append(", "); } node.toString(out); } out.append(')'); } } WtXmlEntityRef.java000066400000000000000000000062461335270560400463320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; public class WtXmlEntityRef extends WtLeafNode { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlEntityRef() { } /** * @param resolved * null allowed to indicate failed resolution. */ protected WtXmlEntityRef(String name, String resolved) { setName(name); setResolved(resolved); } @Override public int getNodeType() { return NT_XML_ENTITY_REF; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } private String resolved; public final String getResolved() { return this.resolved; } public final void setResolved(String resolved) { this.resolved = resolved; } @Override public final int getPropertyCount() { return 2 + getSuperPropertyCount(); } public final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public final AstNodePropertyIterator propertyIterator() { return new WtLeafNodePropertyIterator() { @Override protected int getPropertyCount() { return WtXmlEntityRef.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; case 1: return "resolved"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlEntityRef.this.getName(); case 1: return WtXmlEntityRef.this.getResolved(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlEntityRef.this.getName(); WtXmlEntityRef.this.setName((String) value); return old; } case 1: { String old = WtXmlEntityRef.this.getResolved(); WtXmlEntityRef.this.setResolved((String) value); return old; } default: return super.setValue(index, value); } } }; } } WtXmlStartTag.java000066400000000000000000000074531335270560400461530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.nodes; import java.io.IOException; import de.fau.cs.osr.ptk.common.ast.AstNodePropertyIterator; import de.fau.cs.osr.ptk.common.ast.Uninitialized; public class WtXmlStartTag extends WtInnerNode1 implements WtNamedXmlElement, WtIntermediate { private static final long serialVersionUID = 1L; // ========================================================================= /** * Only for use by de-serialization code. */ protected WtXmlStartTag() { super(Uninitialized.X); } protected WtXmlStartTag(String name, WtXmlAttributes xmlAttributes) { super(xmlAttributes); setName(name); } @Override public int getNodeType() { return NT_XML_START_TAG; } // ========================================================================= // Properties private String name; public final String getName() { return this.name; } public final void setName(String name) { if (name == null) throw new NullPointerException(); this.name = name; } @Override public int getPropertyCount() { return 1 + getSuperPropertyCount(); } private final int getSuperPropertyCount() { return super.getPropertyCount(); } @Override public AstNodePropertyIterator propertyIterator() { return new WtXmlStartTagPropertyIterator(); } // ========================================================================= protected class WtXmlStartTagPropertyIterator extends WtInnerNode1PropertyIterator { @Override protected int getPropertyCount() { return WtXmlStartTag.this.getPropertyCount(); } @Override protected String getName(int index) { switch (index - getSuperPropertyCount()) { case 0: return "name"; default: return super.getName(index); } } @Override protected Object getValue(int index) { switch (index - getSuperPropertyCount()) { case 0: return WtXmlStartTag.this.getName(); default: return super.getValue(index); } } @Override protected Object setValue(int index, Object value) { switch (index - getSuperPropertyCount()) { case 0: { String old = WtXmlStartTag.this.getName(); WtXmlStartTag.this.setName((String) value); return old; } default: return super.setValue(index, value); } } } // ========================================================================= // Children public final void setXmlAttributes(WtXmlAttributes xmlAttributes) { set(0, xmlAttributes); } public final WtXmlAttributes getXmlAttributes() { return (WtXmlAttributes) get(0); } private static final String[] CHILD_NAMES = new String[] { "xmlAttributes" }; public final String[] getChildNames() { return CHILD_NAMES; } // ========================================================================= @Override public void toString(Appendable out) throws IOException { out.append(getClass().getSimpleName()); out.append('['); out.append(name); out.append(']'); out.append('('); boolean first = true; for (WtNode node : this) { if (first) { first = false; } else { out.append(", "); } node.toString(out); } out.append(')'); } } parser/000077500000000000000000000000001335270560400427365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserLinkBuilder.java000066400000000000000000000137421335270560400460140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; import java.util.ArrayList; import java.util.ListIterator; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageVertAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageViewFormat; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtLinkOptionKeyword; import org.sweble.wikitext.parser.nodes.WtLinkOptionResize; import org.sweble.wikitext.parser.nodes.WtLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkTitle; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtPageName; import de.fau.cs.osr.ptk.common.Warning; public class LinkBuilder { private final WtPageName target; // -- format private int width; private int height; private boolean upright; private ImageHorizAlign hAlign; private ImageVertAlign vAlign; private ImageViewFormat format; private boolean border; // -- warnings picked up along the way private ArrayList warnings; // -- internal state private final ParserConfig parserConfig; private final LinkType targetType; // ========================================================================= public LinkBuilder(ParserConfig parserConfig, WtPageName target) { this.target = target; this.parserConfig = parserConfig; LinkType targetType = LinkType.INVALID; if (target.isResolved()) targetType = parserConfig.classifyTarget(target.getAsString()); this.targetType = targetType; this.width = -1; this.height = -1; this.upright = false; this.hAlign = null; this.vAlign = null; this.format = null; this.border = false; } // ========================================================================= public boolean isImageTarget() { return targetType == LinkType.IMAGE; } public boolean isValidTarget() { return targetType != LinkType.INVALID; } public boolean isKeyword(String keyword) { return (ImageViewFormat.which(keyword) != null) || (ImageHorizAlign.which(keyword) != null) || (ImageVertAlign.which(keyword) != null) || (keyword.equals("border")) || (keyword.equals("upright")); } // ========================================================================= public void addOption(WtLinkOptionKeyword option) { ImageViewFormat f; ImageHorizAlign h; ImageVertAlign v; String keyword = option.getKeyword(); if ((f = ImageViewFormat.which(keyword)) != null) { format = (format == null) ? f : format.combine(f); } else if ((h = ImageHorizAlign.which(keyword)) != null) { hAlign = h; } else if ((v = ImageVertAlign.which(keyword)) != null) { vAlign = v; } else if (keyword.equals("border")) { border = true; } else if (keyword.equals("upright")) { upright = true; } } public void addOption(WtLinkOptionResize option) { int width = option.getWidth(); if (width >= 0) this.width = width; int height = option.getHeight(); if (height >= 0) this.height = height; } public void addWarning(Warning warning) { if (warnings == null) warnings = new ArrayList(); warnings.add(warning); } // ========================================================================= public WtNode build(WtLinkOptions options, String postfix) { WtLinkTitle title = findTitle(options); if (this.targetType == LinkType.IMAGE) { if (hAlign == null) hAlign = ImageHorizAlign.UNSPECIFIED; if (vAlign == null) vAlign = ImageVertAlign.MIDDLE; if (format == null) format = ImageViewFormat.UNRESTRAINED; WtImageLink result = parserConfig.getNodeFactory().img( target, options, format, border, hAlign, vAlign, width, height, upright); /* if (title != null) result.setTitle(title); */ finish(result); return result; } else { if (postfix == null) postfix = ""; WtInternalLink result = parserConfig.getNodeFactory().intLink( "", target, postfix); if (title != null) result.setTitle(title); finish(result); return result; } } /** * Converts all but the last title option node into garbage nodes (since * only the last is really considered). The last node becomes the title node * and is returned. May return null if there are no title nodes at all. */ private WtLinkTitle findTitle(WtLinkOptions options) { ListIterator i = options.listIterator(options.size()); WtLinkTitle title = null; while (i.hasPrevious()) { WtNode n = i.previous(); if (n.getNodeType() == WtNode.NT_LINK_TITLE) { if (title == null) { title = (WtLinkTitle) n; } else { WtLinkOptionGarbage garbage = parserConfig.getNodeFactory().loGarbage( parserConfig.getNodeFactory().list()); garbage.exchange((WtLinkTitle) n); garbage.setRtd(n.getRtd()); i.set(garbage); } } } return title; } public void finish(WtNode n) { if (warnings != null && !warnings.isEmpty()) n.setAttribute("warnings", warnings); } // ========================================================================= public static enum LinkType { INVALID, PAGE, IMAGE, } } LinkTargetException.java000066400000000000000000000052201335270560400475230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; public final class LinkTargetException extends Exception { private static final long serialVersionUID = 1L; private final String title; private final Reason reason; private String offendingSubstring; // ========================================================================= public LinkTargetException(Reason reason, String title) { super(makeMessage(reason, title, null)); this.reason = reason; this.title = title; } public LinkTargetException( Reason reason, String title, String offendingSubstring) { super(makeMessage(reason, title, offendingSubstring)); this.reason = reason; this.title = title; this.offendingSubstring = offendingSubstring; } // ========================================================================= public String getTitle() { return title; } public Reason getReason() { return reason; } public String getOffendingSubstring() { return offendingSubstring; } private static String makeMessage( Reason reason, String title, String offendingSubstring) { return String.format(reason.getDescription(), title, offendingSubstring); } // ========================================================================= public static enum Reason { EMPTY_TARGET("Target string must not be empty (or contain only characters that are reduced to whitespace)"), INVALID_ENTITIES("The title `%1$s' contains invalid entities: %2$s"), ONLY_NAMESPACE("A namespace alone is not a valid link target: %1$s"), NO_ARTICLE_TITLE("Title part of target string is empty: %1$s"), IW_IW_LINK("An interwiki name cannot be followed by another interwiki name `%2$s' in target `%1$s'"), TALK_NS_IW_LINK("The Talk namespace in a link target may not be followed by another namespace or interwiki name `%2$s' in target `%1$s'"); private String description; private Reason(String description) { this.description = description; } public String getDescription() { return description; } } } LinkTargetParser.java000066400000000000000000000202571335270560400470300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.parser.LinkTargetException.Reason; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.XmlGrammar; /** * Expects the string to contain only valid Unicode characters. It must not * contain invalid, non- or private use characters. It further expects the * string to not contain the following characters: * [\u0000-\u001F\u007F\uFFFD<>{}|[\]]. * * The parser checks if the link target contains any of the following entites, * which are not allowed in link targets: * *
      *
    • Percent encoding of URIs: * *
       * %[0-9A-Fa-f]{2}
       * 
      * *
    • *
    • XML entity references: * *
       * &<Name>;
       * 
      * *
    • *
    • XML char references: * *
       * (&#[0-9]+;)|(&#x[0-9A-Fa-f]+;)
       * 
      * *
    • *
    • Relative path components: * *
       * (^\.\.?($|/))|(/\.\.?/)|(/\.\.?$)
       * 
      * *
    • *
    • No magic tilde sequences: * *
       * ~~~
       * 
      * *
    • *
    */ public class LinkTargetParser { private String title; private String fragment; private String namespace; private String interwiki; private boolean initialColon; // ========================================================================= private final static Pattern bidiCharPattern = Pattern.compile( "[\u200E\u200F\u202A-\u202E]"); private final static Pattern spacePlusPattern = Pattern.compile( "[ _\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+"); private final static Pattern namespaceSeparatorPattern = Pattern.compile( "^(.+?)_*:_*(.*)$"); private final static Pattern invalidTitle = Pattern.compile( // Percent encoding for URIs "(%[0-9A-Fa-f]{2})" + // XML entity reference "|(&" + XmlGrammar.RE_XML_NAME + ";)" + // XML char reference "|((&#[0-9]+;)|(&#x[0-9A-Fa-f]+;))" + // Relative path components "|(^\\.\\.?($|/))" + "|(/\\.\\.?/)" + "|(/\\.\\.?$)" + // No magic tilde sequences "|(~~~)" + // No invalid characters "|[\\u0000-\\u001F\\u007F\\uFFFD<>{}\\|\\[\\]]"); // ========================================================================= public void parse(ParserConfig config, final String target) throws LinkTargetException { String result = target; // Decode URL encoded characters { result = urlDecode(result); } // Decode XML entities { result = xmlDecode(config, result); } // Strip bidi override characters { Matcher matcher = bidiCharPattern.matcher(result); result = matcher.replaceAll(""); } // Trim whitespace (*) { result = StringTools.trim(result); } /* // Remove trailing whitespace characters result = StringTools.trimUnderscores(result); */ if (result.isEmpty()) throw new LinkTargetException(Reason.EMPTY_TARGET, target); // Has the link an initial colon? Can be reset by identifyNamespaces! if (result.charAt(0) == ':') { this.initialColon = true; result = result.substring(1); result = StringTools.trimUnderscores(result); } // Identify namespaces and interwiki names result = identifyNamespaces(config, target, result); // Get the part after the '#' result = extractFragment(result); // Perform sanity checks on remaining title { // Fixes issue #45: // "&_foo_;" become "& foo ;" and will not be recognized as illegal entity. // Related to (**) result = result.replace('_', ' '); Matcher matcher = invalidTitle.matcher(result); if (matcher.find()) throw new LinkTargetException( Reason.INVALID_ENTITIES, target, matcher.group()); } // Fixes issue #45: // (**) Strip whitespace characters // IMPORTANT: Was done after (*). Led to problems for titles like // '& foo ;' which became '&_foo_;' and were treated as illegal XML // entities by the sanity check. Also when done here it will not // affect the fragment which seems to be a good thing... { Matcher matcher = spacePlusPattern.matcher(result); result = matcher.replaceAll("_"); } // Empty links to a namespace alone are not allowed if (result.isEmpty() && this.interwiki == null && this.namespace != null) { throw new LinkTargetException(Reason.ONLY_NAMESPACE, target); } this.title = result; } private String identifyNamespaces( ParserConfig config, final String target, String result) throws LinkTargetException { Matcher matcher = namespaceSeparatorPattern.matcher(result); if (matcher.matches()) { // We have at least ONE namespace String nsName = matcher.group(1); if (config.isNamespace(nsName)) { // It is a KNOWN namespace result = matcher.group(2); this.namespace = nsName; checkNoNsAfterTalkNs(config, target, result, nsName); } else if (config.isInterwikiName(nsName)) { // It is a KNOWN interwiki name result = matcher.group(2); if (config.isIwPrefixOfThisWiki(nsName)) { // It points to THIS wiki if (result.isEmpty()) { throw new LinkTargetException(Reason.NO_ARTICLE_TITLE, target); } else { matcher = namespaceSeparatorPattern.matcher(result); if (matcher.matches()) { // There are more namespace parts nsName = matcher.group(1); if (config.isNamespace(nsName)) { result = matcher.group(2); this.namespace = nsName; checkNoNsAfterTalkNs(config, target, result, nsName); } else if (config.isInterwikiName(nsName)) { throw new LinkTargetException(Reason.IW_IW_LINK, target, nsName); } } } } else { this.interwiki = nsName; if (!result.isEmpty() && result.charAt(0) == ':') { this.initialColon = true; result = result.substring(1); result = StringTools.trimUnderscores(result); } } } } return result; } private void checkNoNsAfterTalkNs( ParserConfig config, final String target, String result, String nsName) throws LinkTargetException { Matcher matcher; if (config.isTalkNamespace(nsName)) { matcher = namespaceSeparatorPattern.matcher(result); if (matcher.matches()) { nsName = matcher.group(1); if ((config.isNamespace(nsName) || config.isInterwikiName(nsName))) throw new LinkTargetException(Reason.TALK_NS_IW_LINK, target, nsName); } } } private String extractFragment(String result) { int i = result.indexOf('#'); if (i != -1) { String fragment = result.substring(i + 1); this.fragment = StringTools.trimUnderscores(fragment); result = result.substring(0, i); result = StringTools.trimUnderscores(result); } return result; } private static String urlDecode(String text) { // It's intentional that only '%' characters trigger the decoding. // MediaWiki does not decode '+' characters if there's not at least // one '%' character :D if (text.indexOf('%') >= 0) return StringTools.urlDecode(text); return text; } private static String xmlDecode(ParserConfig config, String text) { if (text.indexOf('&') >= 0) return StringTools.xmlDecode(text, config); return text; } // ========================================================================= public String getTitle() { return title; } public String getFragment() { return fragment; } public String getNamespace() { return namespace; } public String getInterwiki() { return interwiki; } public boolean isInitialColon() { return initialColon; } } ParserAtoms.java000066400000000000000000000016161335270560400460450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; public enum ParserAtoms { INTERNAL_LINK, EXTERNAL_LINK, /** Guess that's a different name for "just a URL" */ PLAIN_EXTERNAL_LINK, HORIZONTAL_RULE, LIST, SEMI_PRE, SECTIONS, TABLE, LCT, } ParserScopes.java000066400000000000000000000133351335270560400462170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; public enum ParserScopes { PAGE { @Override public boolean accepts(ParserAtoms atom) { return true; } }, /* That is not even a thing. I don't know why I've added it... INTERNAL_LINK_ALT { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { //case SECTIONS: // oh the horror ... //case INTERNAL_LINK: // terminates the outer internal link case LIST: case SEMI_PRE: case EXTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return false; default: return true; } } @Override public boolean isSticky() { return true; } }, */ IMAGE_LINK_ALT { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { //case SECTIONS: // oh the horror ... //case INTERNAL_LINK: // terminates the outer internal link case LIST: case SEMI_PRE: /* It appears that external links are properly parsed in MediaWiki and then stripped of their * syntactic sugar before being rendered into the alt="" attribute. Therefore we must not exclude * external links from parsing. case EXTERNAL_LINK: */ case PLAIN_EXTERNAL_LINK: return false; default: return true; } } @Override public boolean isSticky() { return true; } }, INTERNAL_LINK_TITLE { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { //case SECTIONS: // oh the horror ... //case INTERNAL_LINK: // terminates the outer internal link case LIST: case SEMI_PRE: case EXTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return false; default: return true; } } @Override public boolean isSticky() { return true; } }, IMAGE_LINK_TITLE { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { //case SECTIONS: // oh the horror ... //case INTERNAL_LINK: // terminates the outer internal link case LIST: case SEMI_PRE: /* I don't know why those were forbidden. After all an image's caption can contain all kinds of links... case EXTERNAL_LINK: case PLAIN_EXTERNAL_LINK: */ return false; default: return true; } } @Override public boolean isSticky() { return true; } }, EXTERNAL_LINK_TITLE { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case INTERNAL_LINK: return true; default: return false; } } }, LIST_ITEM { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case EXTERNAL_LINK: case INTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return true; default: return false; } } }, SEMI_PRE { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case EXTERNAL_LINK: case INTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return true; default: return false; } } }, SECTION_HEADING { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case EXTERNAL_LINK: case INTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return true; default: return false; } } @Override public boolean isNoEolScope() { return true; } @Override public boolean isSticky() { return true; } }, SECTION_BODY { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case SECTIONS: return false; default: return true; } } }, TABLE_ELEMENTS { @Override public boolean accepts(ParserAtoms atom) { return true; } @Override public boolean isSticky() { return true; } }, TABLE_CELL { @Override public boolean accepts(ParserAtoms atom) { return true; } }, TABLE_INLINE_CELL { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case EXTERNAL_LINK: case INTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return true; default: return false; } } @Override public boolean isNoEolScope() { return true; } @Override public boolean isSticky() { return true; } }, TABLE_INLINE_HEADER { @Override public boolean accepts(ParserAtoms atom) { switch (atom) { case EXTERNAL_LINK: case INTERNAL_LINK: case PLAIN_EXTERNAL_LINK: return true; default: return false; } } @Override public boolean isNoEolScope() { return true; } @Override public boolean isSticky() { return true; } }, LCT_PROTECTED_CONTENT { @Override public boolean accepts(ParserAtoms atom) { return true; } @Override public boolean isNoEolScope() { return false; } @Override public boolean isSticky() { return false; } }, LCT_RULE_TEXT { @Override public boolean accepts(ParserAtoms atom) { return true; } @Override public boolean isNoEolScope() { return false; } @Override public boolean isSticky() { return false; } }; public abstract boolean accepts(ParserAtoms atom); public boolean isSticky() { return false; } public boolean isNoEolScope() { return false; } } PreprocessorToParserTransformer.java000066400000000000000000000064341335270560400522010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtOnlyInclude; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import de.fau.cs.osr.ptk.common.AstVisitor; public class PreprocessorToParserTransformer { public static PreprocessedWikitext transform( WtPreproWikitextPage preprocessedArticle) { return transform(preprocessedArticle, false); } public static PreprocessedWikitext transform( WtPreproWikitextPage preprocessedArticle, boolean trim) { TransformVisitor tv = new TransformVisitor(trim); return (PreprocessedWikitext) tv.go(preprocessedArticle); } // ========================================================================= protected static final class TransformVisitor extends AstVisitor { private StringBuilder builder; private WtEntityMap entityMap; private final boolean trim; // ===================================================================== public TransformVisitor(boolean trim) { this.trim = trim; } // ===================================================================== @Override protected WtNode before(WtNode node) { builder = new StringBuilder(); return super.before(node); } @Override protected PreprocessedWikitext after(WtNode node, Object result) { return new PreprocessedWikitext(builder.toString(), entityMap); } // ===================================================================== public void visit(WtPreproWikitextPage n) { entityMap = n.getEntityMap(); iterate(n); } public void visit(WtNodeList n) { iterate(n); } public void visit(WtOnlyInclude n) { iterate(n); } public void visit(WtText n) { builder.append(n.getContent()); } // ===================================================================== public void visit(WtNode n) { makeParserEntity(n); } public void visit(WtIgnored n) { if (!trim) makeParserEntity(n); } public void visit(WtXmlComment n) { if (!trim) makeParserEntity(n); } // ===================================================================== private void makeParserEntity(WtNode n) { int id = entityMap.registerEntity(n); builder.append('\uE000'); builder.append(id); builder.append('\uE001'); } } } WikitextParserContext.java000066400000000000000000000056261335270560400501440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.nodes.WtPageName; import de.fau.cs.osr.ptk.common.ParserContext; public class WikitextParserContext extends ParserContext { private int stickingScopes; private ParserScopes scope; private LinkBuilder linkBuilder; // ========================================================================= @Override public final void clear() { this.scope = null; this.stickingScopes = 0; this.linkBuilder = null; } @Override public final void init(ParserContext parent) { WikitextParserContext p = (WikitextParserContext) parent; this.stickingScopes = p.stickingScopes; this.scope = p.scope; this.linkBuilder = p.linkBuilder; // null; } // ========================================================================= public final ParserScopes getScope() { return scope; } public final void setScope(ParserScopes scope) { this.scope = scope; } public final int getStickingScopes() { return stickingScopes; } public final void addStickingScope(ParserScopes scope) { stickingScopes |= 1 << scope.ordinal(); } public final LinkBuilder getLinkBuilder() { return linkBuilder; } public final void initLinkBuilder( ParserConfig parserConfig, WtPageName target) { this.linkBuilder = new LinkBuilder(parserConfig, target); } // ========================================================================= @Override public final int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((scope == null) ? 0 : scope.hashCode()); result = prime * result + stickingScopes; return result; } @Override public final boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; return equals((WikitextParserContext) obj); } public final boolean equals(WikitextParserContext other) { if (this == other) return true; if (scope != other.scope) return false; if (stickingScopes != other.stickingScopes) return false; return true; } @Override public String toString() { return "WikitextParserContext [stickingScopes=" + stickingScopes + ", scope=" + scope + "]"; } } WikitextParserState.java000066400000000000000000000102231335270560400475650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.parser; import java.util.regex.Pattern; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.WtEntityMapImpl; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtPageName; import de.fau.cs.osr.ptk.common.ParserState; public class WikitextParserState extends ParserState { private WtEntityMap entityMap = new WtEntityMapImpl(); private ParserConfig config; private Pattern postfixPattern; private Pattern prefixPattern; private boolean autoCorrect; private boolean warningsEnabled; private boolean gatherRtData; private boolean langConvTagsEnabled; // ========================================================================= @Override protected WikitextParserContext instantiateContext() { return new WikitextParserContext(); } // ========================================================================= public WtEntityMap getEntityMap() { return entityMap; } public WtNode getEntity(int id) { return entityMap.getEntity(id); } // ========================================================================= public ParserConfig getConfig() { return config; } public void init(ParserConfig config, WtEntityMap entityMap) { this.config = config; this.entityMap = entityMap; this.autoCorrect = config.isAutoCorrect(); this.warningsEnabled = config.isWarningsEnabled(); this.gatherRtData = config.isGatherRtData(); this.langConvTagsEnabled = config.isLangConvTagsEnabled(); this.prefixPattern = Pattern.compile( "(" + config.getInternalLinkPrefixPattern() + ")$"); this.postfixPattern = Pattern.compile( config.getInternalLinkPostfixPattern()); } // ========================================================================= public boolean isAutoCorrect() { return autoCorrect; } public boolean isWarnignsEnabled() { return warningsEnabled; } public boolean isGatherRtData() { return gatherRtData; } // ========================================================================= public Pattern getInternalLinkPrefixPattern() { return prefixPattern; } public Pattern getInternalLinkPostfixPattern() { return postfixPattern; } // ========================================================================= public LinkBuilder getLinkBuilder() { return getTop().getLinkBuilder(); } public void initLinkBuilder(WtPageName target) { getTop().initLinkBuilder(config, target); } // ========================================================================= public ParserScopes getScope() { return getTop().getScope(); } public void setScope(ParserScopes scope) { WikitextParserContext c = getTop(); c.setScope(scope); if (scope.isSticky()) c.addStickingScope(scope); } public boolean accepts(ParserAtoms atom) { WikitextParserContext c = getTop(); if (c.getScope().accepts(atom)) { int sticking = c.getStickingScopes(); for (int i = 0; sticking != 0; ++i, sticking >>= 1) { if ((sticking & 1) != 0) { if (!ParserScopes.values()[i].accepts(atom)) return false; } } return true; } return false; } public boolean inScope(ParserScopes scope) { WikitextParserContext c = getTop(); if (c.getScope() == scope) { return true; } else { int bit = 1 << scope.ordinal(); return 0 != (c.getStickingScopes() & bit); } } public boolean isLangConvTagsEnabled() { return langConvTagsEnabled; } } postprocessor/000077500000000000000000000000001335270560400443675ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserElementFactory.java000066400000000000000000000475061335270560400501670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import de.fau.cs.osr.ptk.common.ast.RtData; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.*; import static org.sweble.wikitext.parser.nodes.WtNode.*; import static org.sweble.wikitext.parser.postprocessor.ElementType.getType; import static org.sweble.wikitext.parser.postprocessor.TreeBuilder.getNodeType; public class ElementFactory { private final TreeBuilder tb; private final WikitextNodeFactory nf; // ========================================================================= public ElementFactory(TreeBuilder treeBuilder) { this.tb = treeBuilder; this.nf = treeBuilder.getConfig().getNodeFactory(); } // ========================================================================= public WtText text(String content) { return nf.text(content); } // ========================================================================= /** * This method is always called if we first have to open a container node in * order to process the node we are currently dealing with. For example we * are dealing with a <td> tag but haven't seen a <tbody> yet. In this * case this method is called to generate a synthetic <tbody> element. */ public WtNode createMissingRepairStartTag(ElementType type) { return WtNodeFlags.setRepairNode(createStartTag(type)); } /** * This method is called when a native wiki markup element (for example an * internal link) which really only exists as one element is trying to * emulate an "end tag event". These tags should not be repair tags since * they stem from a "real" element with valid RTD information attached to * it. */ public WtNode createSyntheticEndTag(WtNode node) { return createSyntheticEndTag(node, getType(node)); } /** * Same as createSyntheticEndTag(WtNode). It's only used by image links * which can be closed as framed image or inline image. However, which one * it is cannot easily be determined from the WtImageLink node type alone. */ public WtNode createSyntheticEndTag(WtNode node, ElementType type) { WtXmlEndTag endTag = createEndTag(type); /** * Copy only the last field. We assume that every element is built like * "RTD (CHILD RTD)* (BODY RTD)?". By only copying the last RTD field * (only if there's at least two RTD fields) we hope to always only copy * the RTD portion that belongs to the "end tag". */ WtRtData rtd = node.getRtd(); if ((rtd != null) && (rtd.size() >= 2)) endTag.setRtd(rtd.getField(rtd.size() - 1)); return endTag; } /** * We find ourselves forced to prematurely close the element that's * currently on top of the scope stack. This might happen, for example, if * we're inside a table cell but encounter a table row start tag. In this * case we'll have to close the cell before we've actually encountered a * cell end tag. */ public WtNode createMissingRepairEndTag(ElementType type) { return WtNodeFlags.setRepairNode(createEndTag(type)); } // ========================================================================= private WtXmlStartTag createStartTag(ElementType type) { return nf.startTag(getTagNameOrFail(type), nf.emptyAttrs()); } private WtXmlEndTag createEndTag(final ElementType type) { return nf.endTag(getTagNameOrFail(type)); } // ========================================================================= /** * Called when a formatting element is reopened after it had to be closed * forcibly previously. */ public WtNode createRepairFormattingElement(WtNode template) { return create(template, true); } /** * Called to create a <X> element when what we really encountered was a * isolated </X> end tag. */ public WtNode createElementRepair(WtNode template) { WtXmlEndTag tag = (WtXmlEndTag) template; WtXmlElement newElement = createEmptyElement(tag.getName()); copyNodeAttributes(tag, newElement); /** * Don't set repair flag. We have original RTD information on such a * <br> element. */ //setRepairNode(element); WtRtData rtd = tag.getRtd(); if (rtd != null) newElement.setRtd(rtd.getField(0)); return newElement; } /** * Only used by adoption agency algorithm to create the adopting node. * * I'm not sure if the adopter is a repair element. I think it is, but we * probably have to render it fully, otherwise things could get messy. After * all the adoption agency algorithm completely rearranges nodes thus * messing up faulty wikitext. */ public WtNode createAdopterElement(WtNode template) { WtNode newElement = createNewElement(template); /** * Don't treat it as repair element. Those won't be rendered which might * cause havoc in the case of adopter nodes (I'm not sure about * this...). */ //setRepairNode(element); return newElement; } /** * Called when a new element is put on the scope stack. */ public WtNode createNewElement(WtNode template) { return create(template, false); } // ========================================================================= private WtNode create(WtNode template, boolean suppressRtd) { ElementType elementType = getNodeType(template); switch (template.getNodeType()) { case NT_IM_START_TAG: return createFromIntermediate(elementType, (WtIntermediate) template, suppressRtd); case NT_XML_START_TAG: switch (elementType) { case TR: if (WtNodeFlags.isImplicit(template)) return createImplicitTableRow(); break; case TBODY: if (WtNodeFlags.isImplicit(template)) return createImplicitTableBody(); break; default: break; } // FALL THROUGH case NT_XML_EMPTY_TAG: case NT_XML_ELEMENT: return createFromTag(elementType, (WtNamedXmlElement) template, suppressRtd); case NT_IM_END_TAG: case NT_XML_END_TAG: throw new AssertionError(); default: return createFromNative(elementType, template, suppressRtd); } } // ========================================================================= private WtNode createFromIntermediate( ElementType elementType, WtIntermediate template, boolean suppressRtd) { WtNode newElement; /** * Unlike other nodes, intermediate nodes (@i and @b) can already be * marked as repair nodes by the TicksAnalyzer. */ //suppressRtd |= WtNodeFlags.isRepairNode(template); switch (getNodeType(template)) { case B: newElement = nf.b(nf.list()); copyIntermediateRtd(template, suppressRtd, newElement); break; case I: newElement = nf.i(nf.list()); copyIntermediateRtd(template, suppressRtd, newElement); break; case P: newElement = nf.p(nf.list()); break; default: throw new AssertionError("Don't know how to create intermediate element: " + elementType); } copyNodeAttributes(template, newElement); return newElement; } private WtNode createFromTag( ElementType elementType, WtNamedXmlElement template, boolean suppressRtd) { WtXmlElement newElement = createEmptyElement(template.getName()); WtRtData rtd = template.getRtd(); WtXmlAttributes attribs; int nodeType = template.getNodeType(); switch (nodeType) { case NT_XML_START_TAG: attribs = ((WtXmlStartTag) template).getXmlAttributes(); copyStartTagRtd(suppressRtd, newElement, rtd); break; case NT_XML_EMPTY_TAG: attribs = ((WtXmlEmptyTag) template).getXmlAttributes(); copyStartTagRtd(suppressRtd, newElement, rtd); break; case NT_XML_ELEMENT: attribs = ((WtXmlElement) template).getXmlAttributes(); copyElementRtd(suppressRtd, newElement, rtd); break; default: throw new AssertionError(); } if (suppressRtd) attribs = suppressRtdOnChildren(attribs); newElement.setXmlAttributes(attribs); setElementBody(elementType, nodeType, template, newElement); copyNodeAttributes(template, newElement); return newElement; } // ========================================================================= private WtXmlElement createEmptyElement(String name) { return nf.elem(name, nf.emptyAttrs()); } private void copyIntermediateRtd( WtIntermediate template, boolean suppressRtd, WtNode newElement) { if (!suppressRtd) copyAllExceptLastRtd(template, newElement, false); //newElement.setRtd(template.getRtd()); } private void copyElementRtd( boolean suppressRtd, WtXmlElement newElement, WtRtData rtd) { copyStartTagRtd(suppressRtd, newElement, rtd); /* if ((!suppressRtd && (rtd != null))) newElement.setRtd(rtd); */ } private void copyStartTagRtd( boolean suppressRtd, WtXmlElement newElement, WtRtData rtd) { if ((!suppressRtd && (rtd != null))) newElement.setRtd( rtd.getField(0), RtData.SEP, rtd.getField(1), RtData.SEP); } private void setElementBody( ElementType elementType, int nodeType, WtNamedXmlElement template, WtXmlElement element) { switch (elementType) { case AREA: case BR: case IMG: case HR: case COL: if (nodeType != NT_XML_EMPTY_TAG) tb.error((WtNode) template, "12.2.4 Element should be an empty tag!"); // Doesn't need body break; default: if ((nodeType == NT_XML_EMPTY_TAG) || (nodeType == NT_XML_ELEMENT && !((WtXmlElement) template).hasBody())) tb.error((WtNode) template, "12.2.4 Element should not be an empty tag!"); if (nodeType != NT_XML_EMPTY_TAG) element.setBody(createEmptyBody()); break; } } // ========================================================================= private WtNode createFromNative( ElementType elementType, WtNode template, boolean suppressRtd) { WtNode newElement; boolean copyAllRtd = false; switch (elementType) { case PAGE: newElement = createPage((WtParsedWikitextPage) template); break; case DL: newElement = nf.dl(nf.list()); break; case OL: newElement = nf.ol(nf.list()); break; case UL: newElement = nf.ul(nf.list()); break; case LI: newElement = nf.li(nf.list()); break; case DD: newElement = nf.dd(nf.list()); break; case DT: newElement = nf.dt(nf.list()); break; case P: newElement = nf.p(nf.list()); break; case INT_LINK: newElement = createIntLink((WtInternalLink) template, suppressRtd); break; case EXT_LINK: newElement = createExtLink((WtExternalLink) template, suppressRtd); break; case URL: newElement = createUrl((WtUrl) template); break; case B: newElement = nf.b(nf.list()); break; case I: newElement = nf.i(nf.list()); break; case SEMIPRE: newElement = nf.semiPre(nf.list()); break; case HR: newElement = nf.hr(); break; case SECTION: newElement = createSection((WtSection) template, suppressRtd); break; case SECTION_HEADING: newElement = nf.heading(nf.list()); /** * Section headings cannot be interrupted and therefore cannot * "loose" their closing RTD. They also do not generate * synthetic end tags and would not get their closing RTD * otherwise. */ copyAllRtd = true; break; case SECTION_BODY: newElement = createEmptyBody(); break; case TABLE: newElement = createTable((WtTable) template, suppressRtd); break; case TBODY: newElement = nf.itbody(createEmptyBody()); break; case CAPTION: newElement = createCaption((WtTableCaption) template, suppressRtd); break; case TR: newElement = createTr((WtTableRow) template, suppressRtd); break; case TD: newElement = createTd((WtTableCell) template, suppressRtd); break; case TH: newElement = createTh((WtTableHeader) template, suppressRtd); break; case FRAMED_IMG: case INLINE_IMG: newElement = createImage((WtImageLink) template, suppressRtd); break; case LCT_VAR_CONV: newElement = createLctVarConv((WtLctVarConv) template, suppressRtd); break; default: throw new AssertionError("Don't know how to create element for: " + elementType); } if (!suppressRtd) { /** * Copy everything except the last field. We assume that every * element is built like "RTD (CHILD RTD)* (BODY RTD)?". By * excluding the last RTD field (only if there's at least two RTD * fields) we hope to always "cut off" the RTD portion that belongs * to the "end tag". */ copyAllExceptLastRtd(template, newElement, copyAllRtd); } copyNodeAttributes(template, newElement); return newElement; } private void copyAllExceptLastRtd( WtNode template, WtNode newElement, boolean copyAllRtd) { WtRtData rtd = template.getRtd(); if (rtd != null) { if (copyAllRtd || rtd.size() == 1) { newElement.setRtd(rtd); } else { int size = rtd.size() - 1; WtRtData newRtd = new WtRtData(size + 1); for (int i = 0; i < size; ++i) newRtd.setField(i, template.getRtd().getField(i)); newElement.setRtd(newRtd); } } } // ========================================================================= private WtNode createLctVarConv(WtLctVarConv template, boolean suppressRtd) { WtLctFlags flags = template.getFlags(); if (suppressRtd && !(flags instanceof WtEmptyImmutableNode)) { flags = (WtLctFlags) template.getFlags().deepCloneWrapException(); flags.suppressRtd(); } return nf.lctVarConv(flags, createBody(template.getText(), suppressRtd)); } private WtNode createTh(WtTableHeader template, boolean suppressRtd) { return nf.th( suppressRtdOnChildren(template.getXmlAttributes(), suppressRtd), createBody(template.getBody(), suppressRtd)); } private WtNode createTd(WtTableCell template, boolean suppressRtd) { return nf.td( suppressRtdOnChildren(template.getXmlAttributes(), suppressRtd), createBody(template.getBody(), suppressRtd)); } private WtNode createTr(WtTableRow template, boolean suppressRtd) { return nf.tr( suppressRtdOnChildren(template.getXmlAttributes(), suppressRtd), createBody(template.getBody(), suppressRtd)); } private WtNode createCaption(WtTableCaption template, boolean suppressRtd) { return nf.caption( suppressRtdOnChildren(template.getXmlAttributes(), suppressRtd), createBody(template.getBody(), suppressRtd)); } private WtNode createImage(WtImageLink template, boolean suppressRtd) { WtLinkTitle title = null; if (template.hasTitle()) title = createLinkTitle(template.getTitle(), suppressRtd); WtLinkOptions options = template.getOptions(); if (suppressRtd) { // Does the cloning for us options = suppressRtdOnChildren(options); } else if ((title != null) && !(options instanceof WtEmptyImmutableNode)) { // We have to clone ourselves options = (WtLinkOptions) options.deepCloneWrapException(); } WtImageLink newElement = nf.img(template.getTarget(), options); if (title != null) newElement.setTitle(title); return newElement; } private WtNode createExtLink(WtExternalLink template, boolean suppressRtd) { WtUrl target = template.getTarget(); if (suppressRtd) { target = (WtUrl) target.deepCloneWrapException(); target.suppressRtd(); } WtExternalLink newElement = nf.extLink(target); if (template.hasTitle()) newElement.setTitle(createLinkTitle(template.getTitle(), suppressRtd)); return newElement; } private WtNode createIntLink(WtInternalLink template, boolean suppressRtd) { WtPageName target = template.getTarget(); if (suppressRtd) { target = (WtPageName) target.deepCloneWrapException(); target.suppressRtd(); } WtInternalLink newElement = nf.intLink( template.getPrefix(), target, template.getPostfix()); if (template.hasTitle()) newElement.setTitle(createLinkTitle(template.getTitle(), suppressRtd)); return newElement; } private WtLinkTitle createLinkTitle( WtLinkTitle template, boolean suppressRtd) { WtLinkTitle newElement = createEmptyLinkTitle(); if (!suppressRtd) newElement.setRtd(template.getRtd()); /** * LinkTitle is the "body" of a link, the part that gets repeated if the * link was interrupted. Therefore, it must be rendered. However, we * don't copy the RTD of the LinkTitle since the RTD is only the * starting pipe which must not get repeated. */ /* else newElement.suppressRtd(); */ return newElement; } private WtNode createUrl(WtUrl template) { return nf.url(template.getProtocol(), template.getPath()); } private WtNode createTable(WtTable template, boolean suppressRtd) { WtBody body = createBody( template.hasBody() ? template.getBody() : null, suppressRtd); return nf.table( suppressRtdOnChildren(template.getXmlAttributes(), suppressRtd), body); } private WtNode createSection(WtSection template, boolean suppressRtd) { WtBody body = createBody( template.hasBody() ? template.getBody() : null, suppressRtd); WtHeading heading = nf.heading(nf.list()); if (!suppressRtd) heading.setRtd(template.getHeading().getRtd()); else heading.suppressRtd(); return nf.section(template.getLevel(), heading, body); } private WtNode createPage(WtParsedWikitextPage template) { WtParsedWikitextPage newElement = nf.parsedPage(nf.list()); newElement.setEntityMap(template.getEntityMap()); newElement.setWarnings(template.getWarnings()); return newElement; } private WtNode createImplicitTableRow() { WtTableRow tr = nf.tr(nf.emptyAttrs(), createEmptyBody()); tr.setImplicit(true); return tr; } private WtNode createImplicitTableBody() { return nf.itbody(createEmptyBody()); } // ========================================================================= private WtBody createEmptyBody() { return nf.body(nf.list()); } private WtLinkTitle createEmptyLinkTitle() { return nf.linkTitle(nf.list()); } private WtBody createBody(WtBody template, boolean suppressRtd) { WtBody newBody; if (template != null) { newBody = createEmptyBody(); if (!suppressRtd) newBody.setRtd(template.getRtd()); else /** * We never suppress RTD of the body node's children. Only the * RTD information of the body node itself. */ ;//newBody.suppressRtd(); } else newBody = nf.noBody(); return newBody; } // ========================================================================= private String getTagNameOrFail(ElementType type) { String tagName = type.getXmlTagName(); if (tagName == null) throw new IllegalArgumentException( "Don't know tag name for given node type: " + type); return tagName; } private static void copyNodeAttributes(WtNode from, WtNode to) { if (from.hasAttributes()) to.setAttributes(from.getAttributes()); } private T suppressRtdOnChildren( T container, boolean suppressRtd) { return suppressRtd ? suppressRtdOnChildren(container) : container; } private T suppressRtdOnChildren(T container) { if (container instanceof WtEmptyImmutableNode) return container; @SuppressWarnings("unchecked") T clone = (T) container.deepCloneWrapException(); clone.suppressRtd(); /* for (WtNode attr : clone) attr.suppressRtd(); */ return clone; } // ========================================================================= public WtNode createSemiPreRtdNode() { WtSemiPreLine semiPreLine = nf.semiPreLine(nf.emptyList()); semiPreLine.setRtd(" ", WtRtData.SEP); return semiPreLine; } } ElementType.java000066400000000000000000000271361335270560400474760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import static org.sweble.wikitext.parser.nodes.WtNode.NT_BODY; import static org.sweble.wikitext.parser.nodes.WtNode.NT_BOLD; import static org.sweble.wikitext.parser.nodes.WtNode.NT_DEFINITION_LIST; import static org.sweble.wikitext.parser.nodes.WtNode.NT_DEFINITION_LIST_DEF; import static org.sweble.wikitext.parser.nodes.WtNode.NT_DEFINITION_LIST_TERM; import static org.sweble.wikitext.parser.nodes.WtNode.NT_EXTERNAL_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_HEADING; import static org.sweble.wikitext.parser.nodes.WtNode.NT_HORIZONTAL_RULE; import static org.sweble.wikitext.parser.nodes.WtNode.NT_IMAGE_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_IM_END_TAG; import static org.sweble.wikitext.parser.nodes.WtNode.NT_IM_START_TAG; import static org.sweble.wikitext.parser.nodes.WtNode.NT_INTERNAL_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_ITALICS; import static org.sweble.wikitext.parser.nodes.WtNode.NT_LCT_VAR_CONV; import static org.sweble.wikitext.parser.nodes.WtNode.NT_LIST_ITEM; import static org.sweble.wikitext.parser.nodes.WtNode.NT_ORDERED_LIST; import static org.sweble.wikitext.parser.nodes.WtNode.NT_PARAGRAPH; import static org.sweble.wikitext.parser.nodes.WtNode.NT_PARSED_WIKITEXT_PAGE; import static org.sweble.wikitext.parser.nodes.WtNode.NT_SECTION; import static org.sweble.wikitext.parser.nodes.WtNode.NT_SEMI_PRE; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_CAPTION; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_CELL; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_HEADER; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_IMPLICIT_TBODY; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_ROW; import static org.sweble.wikitext.parser.nodes.WtNode.NT_UNORDERED_LIST; import static org.sweble.wikitext.parser.nodes.WtNode.NT_URL; import static org.sweble.wikitext.parser.nodes.WtNode.NT_XML_ELEMENT; import static org.sweble.wikitext.parser.nodes.WtNode.NT_XML_EMPTY_TAG; import static org.sweble.wikitext.parser.nodes.WtNode.NT_XML_END_TAG; import static org.sweble.wikitext.parser.nodes.WtNode.NT_XML_START_TAG; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtNamedXmlElement; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.utils.DualHashBidiMap; public enum ElementType { // == Meta Element Types =================================================== PAGE, SECTION, SECTION_HEADING, SECTION_BODY, SEMIPRE, INLINE_IMG, FRAMED_IMG, LCT_VAR_CONV, UNKNOWN, // A replacements INT_LINK, EXT_LINK, URL, // == HTML Version 4.01 ==================================================== /* A, */ ABBR, // Normal Tag ACRONYM, // Normal Tag ADDRESS, // APPLET AREA, // Normal Tag B, // BASE // BASEFONT BDO, // Normal Tag BIG, BLOCKQUOTE, // BODY BR, // BUTTON, CAPTION, CENTER, CITE, // Normal Tag CODE, COL, COLGROUP, DD, DEL, // Normal Tag DFN, // Normal Tag DIR, DIV, DL, DT, EM, // FIELDSET, FONT, // FORM // FRAME // FRAMESET H1, H2, H3, H4, H5, H6, // HEAD HR, // HTML I, // IFRAME IMG, // INPUT INS, // Normal Tag // ISINDEX KBD, // Normal Tag // LABEL // LEGEND LI, // LINK MAP, // Normal Tag MENU, // META // NOFRAMES // NOSCRIPT // OBJECT OL, // OPTGROUP // OPTION P, // PARAM PRE, Q, // Normal Tag S, SAMP, // Normal Tag // STRICT // SELECT SMALL, SPAN, // Normal Tag STRIKE, STRONG, // STYLE SUB, // Normal Tag SUP, // Normal Tag TABLE, TBODY, TD, // TEXTAREA TFOOT, TH, THEAD, // TITLE TR, TT, U, UL, VAR, // Normal Tag ; // ========================================================================= public String getXmlTagName() { return (String) xmlElementTypeMap.getKey(this); } public boolean isSpecial() { switch (this) { case PAGE: case SECTION: case SECTION_HEADING: case SEMIPRE: case INLINE_IMG: case FRAMED_IMG: // -------------- case ADDRESS: // case APPLET: case AREA: // case ARTICLE: // case ASIDE: // case BASE: // case BASEFONT: // case BGSOUND: case BLOCKQUOTE: // case BODY: case BR: // case BUTTON: case CAPTION: case CENTER: case COL: case COLGROUP: // case COMMAND: case DD: // case DETAILS: case DIR: case DIV: case DL: case DT: // case EMBED: // case FIELDSET: // case FIGCAPTION: // case FIGURE: // case FOOTER: // case FORM: // case FRAME: // case FRAMESET: case H1: case H2: case H3: case H4: case H5: case H6: // case HEAD: // case HEADER: // case HGROUP: case HR: // case HTML: // case IFRAME: case IMG: // case INPUT: // case ISINDEX: case LI: // case LINK: // case LISTING: // case MARQUEE: case MENU: // case META: // case NAV: // case NOEMBED: // case NOFRAMES: // case NOSCRIPT: // case OBJECT: case OL: case P: // case PARAM: // case PLAINTEXT: case PRE: // case SCRIPT: // case SECTION: // case SELECT: // case SOURCE: // case STYLE: // case SUMMARY: case TABLE: case TBODY: case TD: // case TEXTAREA: case TFOOT: case TH: case THEAD: // case TITLE: case TR: // case TRACK: case UL: // case WBR: // case XMP: return true; default: return false; } } public boolean isFormatting() { switch (this) { case INT_LINK: case EXT_LINK: case URL: case LCT_VAR_CONV: // case A: case B: case BIG: case CODE: case EM: case FONT: case I: // case NOBR: case S: case SMALL: case STRIKE: case STRONG: case TT: case U: return true; default: return false; } } // ========================================================================= private static final DualHashBidiMap xmlElementTypeMap = new DualHashBidiMap(); static { /* Bug 35: We must not recognize tags! xmlElementTypeMap.put("a", A); */ xmlElementTypeMap.put("#int-link", INT_LINK); xmlElementTypeMap.put("#ext-link", EXT_LINK); xmlElementTypeMap.put("#url", URL); xmlElementTypeMap.put("abbr", ABBR); xmlElementTypeMap.put("acronym", ACRONYM); xmlElementTypeMap.put("address", ADDRESS); xmlElementTypeMap.put("area", AREA); xmlElementTypeMap.put("b", B); xmlElementTypeMap.put("bdo", BDO); xmlElementTypeMap.put("big", BIG); xmlElementTypeMap.put("blockquote", BLOCKQUOTE); xmlElementTypeMap.put("br", BR); xmlElementTypeMap.put("caption", CAPTION); xmlElementTypeMap.put("center", CENTER); xmlElementTypeMap.put("cite", CITE); xmlElementTypeMap.put("code", CODE); xmlElementTypeMap.put("col", COL); xmlElementTypeMap.put("colgroup", COLGROUP); xmlElementTypeMap.put("dd", DD); xmlElementTypeMap.put("del", DEL); xmlElementTypeMap.put("dfn", DFN); xmlElementTypeMap.put("dir", DIR); xmlElementTypeMap.put("div", DIV); xmlElementTypeMap.put("dl", DL); xmlElementTypeMap.put("dt", DT); xmlElementTypeMap.put("em", EM); xmlElementTypeMap.put("font", FONT); xmlElementTypeMap.put("h1", H1); xmlElementTypeMap.put("h2", H2); xmlElementTypeMap.put("h3", H3); xmlElementTypeMap.put("h4", H4); xmlElementTypeMap.put("h5", H5); xmlElementTypeMap.put("h6", H6); xmlElementTypeMap.put("hr", HR); xmlElementTypeMap.put("i", I); // Image elements are not supported as pure HTML //xmlElementTypeMap.put("img", IMG); xmlElementTypeMap.put("ins", INS); xmlElementTypeMap.put("kbd", KBD); xmlElementTypeMap.put("li", LI); xmlElementTypeMap.put("map", MAP); xmlElementTypeMap.put("menu", MENU); xmlElementTypeMap.put("ol", OL); xmlElementTypeMap.put("p", P); xmlElementTypeMap.put("pre", PRE); xmlElementTypeMap.put("q", Q); xmlElementTypeMap.put("s", S); xmlElementTypeMap.put("samp", SAMP); xmlElementTypeMap.put("small", SMALL); xmlElementTypeMap.put("span", SPAN); xmlElementTypeMap.put("strike", STRIKE); xmlElementTypeMap.put("strong", STRONG); xmlElementTypeMap.put("sub", SUB); xmlElementTypeMap.put("sup", SUP); xmlElementTypeMap.put("table", TABLE); xmlElementTypeMap.put("tbody", TBODY); xmlElementTypeMap.put("td", TD); xmlElementTypeMap.put("tfoot", TFOOT); xmlElementTypeMap.put("th", TH); xmlElementTypeMap.put("thead", THEAD); xmlElementTypeMap.put("tr", TR); xmlElementTypeMap.put("tt", TT); xmlElementTypeMap.put("u", U); xmlElementTypeMap.put("ul", UL); xmlElementTypeMap.put("var", VAR); // It's a BIDI map, the following lines would remove the // non-intermediate tags! // Intermediate tags //xmlElementTypeMap.put("@b", B); //xmlElementTypeMap.put("@i", I); //xmlElementTypeMap.put("@p", P); xmlElementTypeMap.put("#inline-img", INLINE_IMG); xmlElementTypeMap.put("#framed-img", FRAMED_IMG); xmlElementTypeMap.put("#semipre", SEMIPRE); xmlElementTypeMap.put("#lct-var-conv", LCT_VAR_CONV); } // ========================================================================= public static ElementType getType(WtNode n) { switch (n.getNodeType()) { case NT_PARSED_WIKITEXT_PAGE: return PAGE; case NT_SECTION: return SECTION; case NT_HEADING: return SECTION_HEADING; case NT_BODY: // FIXME: Pretending that body can only be a section body might // be dangerous? return SECTION_BODY; case NT_DEFINITION_LIST: return DL; case NT_ORDERED_LIST: return OL; case NT_PARAGRAPH: return P; case NT_UNORDERED_LIST: return UL; case NT_LIST_ITEM: return LI; case NT_DEFINITION_LIST_DEF: return DD; case NT_DEFINITION_LIST_TERM: return DT; case NT_TABLE: return TABLE; case NT_TABLE_CAPTION: return CAPTION; case NT_TABLE_CELL: return TD; case NT_TABLE_HEADER: return TH; case NT_TABLE_ROW: return TR; case NT_TABLE_IMPLICIT_TBODY: return TBODY; case NT_BOLD: return B; case NT_ITALICS: return I; case NT_SEMI_PRE: return SEMIPRE; case NT_HORIZONTAL_RULE: return HR; case NT_IMAGE_LINK: return TreeBuilder.isInlineImage((WtImageLink) n) ? INLINE_IMG : FRAMED_IMG; case NT_INTERNAL_LINK: return INT_LINK; case NT_EXTERNAL_LINK: return EXT_LINK; case NT_URL: return URL; case NT_XML_START_TAG: case NT_IM_START_TAG: case NT_XML_END_TAG: case NT_IM_END_TAG: case NT_XML_EMPTY_TAG: case NT_XML_ELEMENT: return getType((WtNamedXmlElement) n); case NT_LCT_VAR_CONV: return LCT_VAR_CONV; default: throw new AssertionError(); } } public static ElementType getType(WtNamedXmlElement e) { String name = e.getName().toLowerCase(); if (name.isEmpty()) throw new AssertionError(); if (name.charAt(0) == '@') { return (ElementType) xmlElementTypeMap.get(name.substring(1)); } else { ElementType type = (ElementType) xmlElementTypeMap.get(name); if (type == null) return UNKNOWN; return type; } } } InsertionMode.java000066400000000000000000000015241335270560400500130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; public enum InsertionMode { IN_BODY, IN_TABLE, IN_TABLE_TEXT, IN_CAPTION, IN_COLUMN_GROUP, IN_TABLE_BODY, IN_CELL, IN_ROW } IntermediateTags.java000066400000000000000000000050271335270560400504670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtImEndTag; import org.sweble.wikitext.parser.nodes.WtImStartTag; import org.sweble.wikitext.parser.nodes.WtNode; public enum IntermediateTags { ITALICS { @Override public String getElementName() { return "@i"; } public WtNode createOpen(WikitextNodeFactory nf, boolean repair) { WtNode tag = super.createOpen(nf, repair); if (!repair) tag.setRtd("''"); return tag; } public WtNode createClose(WikitextNodeFactory nf, boolean repair) { WtNode tag = super.createClose(nf, repair); if (!repair) tag.setRtd("''"); return tag; } }, // ========================================================================= BOLD { @Override public String getElementName() { return "@b"; } public WtNode createOpen(WikitextNodeFactory nf, boolean repair) { WtNode tag = super.createOpen(nf, repair); if (!repair) tag.setRtd("'''"); return tag; } public WtNode createClose(WikitextNodeFactory nf, boolean repair) { WtNode tag = super.createClose(nf, repair); if (!repair) tag.setRtd("'''"); return tag; } }, // ========================================================================= PARAGRAPH { @Override public String getElementName() { return "@p"; } }; // ========================================================================= public abstract String getElementName(); public WtNode createOpen(WikitextNodeFactory nf, boolean repair) { WtImStartTag tag = nf.imStartTag(this); /* if (repair) WtNodeFlags.setRepairNode(tag); */ return tag; } public WtNode createClose(WikitextNodeFactory nf, boolean repair) { WtImEndTag tag = nf.imEndTag(this); /* if (repair) WtNodeFlags.setRepairNode(tag); */ return tag; } } StackScope.java000066400000000000000000000041631335270560400472750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; public enum StackScope { GENERAL_SCOPE_WITHOUT_LAZY_PARSED_PAGE { @Override public boolean isInList(ElementType nodeType) { switch (nodeType) { // APPLET, MARQUEE, OBJECT // MI, MO, MN, MS, MTEXT, ANNOTATION // FORAIGNOBJECT, DESC, TITLE case SECTION_HEADING: case SECTION_BODY: case CAPTION: case TABLE: case TD: case TH: return true; default: return false; } } }, GENERAL_SCOPE { @Override public boolean isInList(ElementType nodeType) { switch (nodeType) { case PAGE: return true; default: return GENERAL_SCOPE_WITHOUT_LAZY_PARSED_PAGE.isInList(nodeType); } } }, BUTTON_SCOPE { @Override public boolean isInList(ElementType nodeType) { switch (nodeType) { /* case BUTTON: return true; */ default: return GENERAL_SCOPE.isInList(nodeType); } } }, LIST_ITEM_SCOPE { @Override public boolean isInList(ElementType nodeType) { switch (nodeType) { case UL: case OL: return true; default: return GENERAL_SCOPE.isInList(nodeType); } } }, TABLE_SCOPE { @Override public boolean isInList(ElementType nodeType) { switch (nodeType) { /* case SECTION_HEADING: case SECTION_BODY: */ case TABLE: case PAGE: return true; default: return false; } } }; public abstract boolean isInList(ElementType nodeType); } TicksAnalyzer.java000066400000000000000000000405471335270560400500270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import static org.sweble.wikitext.parser.postprocessor.IntermediateTags.BOLD; import static org.sweble.wikitext.parser.postprocessor.IntermediateTags.ITALICS; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtDefinitionListDef; import org.sweble.wikitext.parser.nodes.WtDefinitionListTerm; import org.sweble.wikitext.parser.nodes.WtLeafNode; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtSemiPreLine; import org.sweble.wikitext.parser.nodes.WtStringNode; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtTicks; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.FmtInternalLogicError; import de.fau.cs.osr.utils.StringTools; public class TicksAnalyzer { public static WtNode process(ParserConfig config, WtNode a) { return (new TicksAnalyzer(config)).process(a); } // ========================================================================= private WikitextNodeFactory nf; // ========================================================================= public TicksAnalyzer(ParserConfig config) { this.nf = config.getNodeFactory(); } public WtNode process(WtNode a) { LinkedList lines = new LinkedList(); new LineAnalyzer(lines).go(a); if (lines.isEmpty()) return a; analyzeOddTicksCombos(lines); return (WtNode) new TicksConverter(lines).go(a); } // ========================================================================= private void analyzeOddTicksCombos(LinkedList lines) { for (Line line : lines) { if ((line.numBold % 2 == 1) && (line.numItalics % 2 == 1)) { int firstSpace = -1; int firstSlWord = -1; int firstMlWord = -1; for (int i = 0; i < line.ticks.size(); ++i) { LineEntry entry = line.ticks.get(i); WtNode p = entry.previous; if (p == null || entry.tickCount != 3) continue; if (p instanceof WtContentNode) { WtContentNode c = (WtContentNode) p; p = null; if (!c.isEmpty()) p = c.get(c.size() - 1); } char tMinus1 = '\0'; char tMinus2 = '\0'; if (p instanceof WtStringNode) { String t = ((WtStringNode) p).getContent(); if (t.length() >= 1) tMinus1 = t.charAt(t.length() - 1); if (t.length() >= 2) tMinus2 = t.charAt(t.length() - 2); } if (tMinus1 == ' ') { if (firstSpace == -1) firstSpace = i; } else if (tMinus2 == ' ') { if (firstSlWord == -1) firstSlWord = i; } else { if (firstMlWord == -1) firstMlWord = i; } } if (firstSlWord != -1) { apostrophize(line.ticks.get(firstSlWord)); } else if (firstMlWord != -1) { apostrophize(line.ticks.get(firstMlWord)); } else if (firstSpace != -1) { apostrophize(line.ticks.get(firstSpace)); } } } } private void apostrophize(LineEntry entry) { --entry.tickCount; if (entry.prefix != null) { String t = entry.prefix.getContent() + "'"; entry.prefix.setContent(t); } else { entry.prefix = nf.text("'"); } } // ========================================================================= protected final class LineAnalyzer extends AstVisitor { private final LinkedList lines; private ArrayList ticks; private int numItalics = 0; private int numBold = 0; private WtNode previous = null; public LineAnalyzer(LinkedList lines) { this.lines = lines; } @Override protected Object after(WtNode node, Object result) { finishLine(); return node; } public void visit(WtNode n) { iterate(n); } public void visit(WtNodeList list) { iterateContent(list); } private void iterateContent(WtNodeList list) { previous = null; for (WtNode n : list) { dispatch(n); previous = n; } previous = null; } public void visit(WtNewline ws) { finishLine(); } public void visit(WtWhitespace ws) { if (ws.getHasNewline()) finishLine(); } public void visit(WtListItem n) { iterateContent(n); finishLine(); } public void visit(WtDefinitionListTerm n) { iterateContent(n); finishLine(); } public void visit(WtDefinitionListDef n) { iterateContent(n); finishLine(); } public void visit(WtSemiPreLine n) { iterateContent(n); finishLine(); } public void visit(WtTableCell n) { // Inline table cells are on one line but we want to finish after // each line to prevent leakage of tick formatting into adjacent // cells iterateContent(n.getBody()); finishLine(); } public void visit(WtTableHeader n) { // Inline table cells are on one line but we want to finish after // each line to prevent leakage of tick formatting into adjacent // cells iterateContent(n.getBody()); finishLine(); } public void visit(WtLeafNode n) { // Nothing to do here } public void visit(WtTicks n) { if (ticks == null) ticks = new ArrayList(); int tickCount = n.getTickCount(); switch (tickCount) { case 2: ticks.add(new LineEntry(null, null, 2)); ++numItalics; break; case 3: ticks.add(new LineEntry(previous, null, 3)); ++numBold; break; case 4: ticks.add(new LineEntry(previous, nf.text("'"), 3)); ++numBold; break; case 5: ticks.add(new LineEntry(null, null, 5)); ++numBold; ++numItalics; break; default: if (n.getTickCount() <= 5) throw new FmtInternalLogicError(); String excessTicks = StringTools.strrep('\'', tickCount - 5); ticks.add(new LineEntry(null, nf.text(excessTicks), 5)); ++numBold; ++numItalics; break; } } private void finishLine() { if (ticks == null) return; lines.add(new Line(numItalics, numBold, ticks)); numItalics = 0; numBold = 0; ticks = null; } } // ========================================================================= private static enum State { None, Italics, Bold, ItalicsBold, BoldItalics, } // ========================================================================= protected final class TicksConverter extends AstVisitor { private final Iterator lineIter; private Iterator entryIter; private State state = State.None; private boolean elementStartedItalic = false; private boolean elementStartedBold = false; public TicksConverter(LinkedList lines) { this.lineIter = lines.iterator(); if (lineIter.hasNext()) this.entryIter = lineIter.next().ticks.iterator(); } public WtNode visit(WtNode n) { mapInPlace(n); return n; } public WtNode visit(WtLeafNode n) { // Nothing to do here return n; } public WtNode visit(WtTicks n) { LineEntry entry = nextEntry(); WtNodeList result = nf.list(entry.prefix); toTag(entry, result); return result; } public WtNode visit(WtXmlStartTag n) { if (n.getName().equalsIgnoreCase("i")) { switch (state) { case Italics: case BoldItalics: case ItalicsBold: break; case Bold: state = State.BoldItalics; break; case None: state = State.Italics; break; } elementStartedItalic = true; } else if (n.getName().equalsIgnoreCase("b")) { switch (state) { case Bold: case BoldItalics: case ItalicsBold: break; case Italics: state = State.ItalicsBold; break; case None: state = State.Bold; break; } elementStartedBold = true; } mapInPlace(n); return n; } public WtNode visit(WtXmlEndTag n) { if (n.getName().equalsIgnoreCase("i")) { switch (state) { case Italics: state = State.None; break; case BoldItalics: case ItalicsBold: state = State.Bold; break; case Bold: case None: break; } elementStartedItalic = false; } else if (n.getName().equalsIgnoreCase("b")) { switch (state) { case Bold: state = State.None; break; case BoldItalics: case ItalicsBold: state = State.Italics; break; case Italics: case None: break; } elementStartedBold = false; } mapInPlace(n); return n; } public WtNode visit(WtNewline newline) { WtNodeList result = closeRemainingTags(); if (result == null) return newline; result.add(newline); return result; } public WtNode visit(WtWhitespace ws) { if (!ws.getHasNewline()) return ws; WtNodeList result = closeRemainingTags(); if (result == null) return ws; result.add(ws); return result; } public WtNode visit(WtListItem n) { return implicitLineScope(n); } public WtNode visit(WtDefinitionListTerm n) { return implicitLineScope(n); } public WtNode visit(WtDefinitionListDef n) { return implicitLineScope(n); } public WtNode visit(WtSemiPreLine n) { return implicitLineScope(n); } public WtNode visit(WtTableCell n) { implicitLineScope(n.getBody()); return n; } public WtNode visit(WtTableHeader n) { implicitLineScope(n.getBody()); return n; } private WtNode implicitLineScope(WtNodeList content) { mapInPlace(content); finishLine(content); return content; } private void finishLine(WtNodeList body) { WtNodeList result = closeRemainingTags(); if (result == null) return; body.add(result); } private LineEntry nextEntry() { if (!entryIter.hasNext()) { Line line = lineIter.next(); entryIter = line.ticks.iterator(); } return entryIter.next(); } private void toTag(LineEntry entry, WtNodeList result) { switch (entry.tickCount) { case 2: switch (state) { case Italics: result.add(ITALICS.createClose(nf, false)); state = State.None; break; case BoldItalics: result.add(ITALICS.createClose(nf, false)); state = State.Bold; break; case ItalicsBold: result.add(BOLD.createClose(nf, true)); result.add(ITALICS.createClose(nf, false)); result.add(BOLD.createOpen(nf, true)); state = State.Bold; break; case Bold: result.add(ITALICS.createOpen(nf, false)); state = State.BoldItalics; break; case None: result.add(ITALICS.createOpen(nf, false)); state = State.Italics; break; } break; case 3: switch (state) { case Bold: result.add(BOLD.createClose(nf, false)); state = State.None; break; case BoldItalics: result.add(ITALICS.createClose(nf, true)); result.add(BOLD.createClose(nf, false)); result.add(ITALICS.createOpen(nf, true)); state = State.Italics; break; case ItalicsBold: result.add(BOLD.createClose(nf, false)); state = State.Italics; break; case Italics: result.add(BOLD.createOpen(nf, false)); state = State.ItalicsBold; break; case None: result.add(BOLD.createOpen(nf, false)); state = State.Bold; break; } break; case 5: switch (state) { case Italics: result.add(ITALICS.createClose(nf, false)); result.add(BOLD.createOpen(nf, false)); state = State.Bold; break; case Bold: result.add(BOLD.createClose(nf, false)); result.add(ITALICS.createOpen(nf, false)); state = State.Italics; break; case BoldItalics: result.add(ITALICS.createClose(nf, false)); result.add(BOLD.createClose(nf, false)); state = State.None; break; case ItalicsBold: result.add(BOLD.createClose(nf, false)); result.add(ITALICS.createClose(nf, false)); state = State.None; break; case None: result.add(ITALICS.createOpen(nf, false)); result.add(BOLD.createOpen(nf, false)); state = State.ItalicsBold; break; } break; } } private WtNodeList closeRemainingTags() { WtNodeList result = null; switch (state) { case Italics: if (!elementStartedItalic) { result = nf.list(); result.add(ITALICS.createClose(nf, true)); state = State.None; } break; case Bold: if (!elementStartedBold) { result = nf.list(); result.add(BOLD.createClose(nf, true)); state = State.None; } break; case BoldItalics: if (!elementStartedItalic && !elementStartedBold) { result = nf.list(); result.add(ITALICS.createClose(nf, true)); result.add(BOLD.createClose(nf, true)); state = State.None; } else if (elementStartedItalic) { result = nf.list(); result.add(BOLD.createClose(nf, true)); state = State.Italics; } else if (!elementStartedBold) { result = nf.list(); result.add(ITALICS.createClose(nf, true)); state = State.Bold; } break; case ItalicsBold: if (!elementStartedItalic && !elementStartedBold) { result = nf.list(); result.add(BOLD.createClose(nf, true)); result.add(ITALICS.createClose(nf, true)); state = State.None; } else if (elementStartedItalic) { result = nf.list(); result.add(BOLD.createClose(nf, true)); state = State.Italics; } else if (!elementStartedBold) { result = nf.list(); result.add(ITALICS.createClose(nf, true)); state = State.Bold; } break; case None: break; } return result; } } // ========================================================================= protected final static class Line { public final int numItalics; public final int numBold; public final ArrayList ticks; public Line(int numItalics, int numBold, ArrayList ticks) { this.numItalics = numItalics; this.numBold = numBold; this.ticks = ticks; } @Override public String toString() { return String.format( "Line(#i = %d, #b = %d): %s", numItalics, numBold, (ticks != null ? ticks.toString() : "-")); } } // ========================================================================= protected final static class LineEntry { public final WtNode previous; public WtText prefix; public int tickCount; public LineEntry(WtNode previous, WtText prefix, int tickCount) { this.previous = previous; this.prefix = prefix; this.tickCount = tickCount; } @Override public String toString() { String pv = "null"; if (previous != null) { pv = previous.getNodeName(); if (previous.isNodeType(WtNode.NT_TEXT)) { pv = ((WtText) previous).getContent(); if (pv.length() > 16) { pv = pv.substring(pv.length() - (16 - 4)); pv = "... " + pv; } } pv = '"' + pv + '"'; } String pf = "-"; if (prefix != null) pf = '"' + prefix.getContent() + '"'; return String.format( "LineEntry(%s, %s, %d)", pv, pf, tickCount); } } } TreeBuilder.java000066400000000000000000001151651335270560400474510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import static org.sweble.wikitext.parser.nodes.WtNode.NT_EXTERNAL_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_IMAGE_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_INTERNAL_LINK; import static org.sweble.wikitext.parser.nodes.WtNode.NT_LCT_VAR_CONV; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_CAPTION; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_CELL; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_HEADER; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_IMPLICIT_TBODY; import static org.sweble.wikitext.parser.nodes.WtNode.NT_TABLE_ROW; import static org.sweble.wikitext.parser.nodes.WtNode.NT_XML_ELEMENT; import static org.sweble.wikitext.parser.postprocessor.ElementType.DD; import static org.sweble.wikitext.parser.postprocessor.ElementType.DT; import static org.sweble.wikitext.parser.postprocessor.ElementType.LCT_VAR_CONV; import static org.sweble.wikitext.parser.postprocessor.ElementType.LI; import static org.sweble.wikitext.parser.postprocessor.ElementType.P; import static org.sweble.wikitext.parser.postprocessor.ElementType.PAGE; import static org.sweble.wikitext.parser.postprocessor.ElementType.TABLE; import static org.sweble.wikitext.parser.postprocessor.ElementType.TBODY; import static org.sweble.wikitext.parser.postprocessor.ElementType.TFOOT; import static org.sweble.wikitext.parser.postprocessor.ElementType.THEAD; import static org.sweble.wikitext.parser.postprocessor.ElementType.TR; import static org.sweble.wikitext.parser.postprocessor.ElementType.UNKNOWN; import static org.sweble.wikitext.parser.postprocessor.StackScope.BUTTON_SCOPE; import static org.sweble.wikitext.parser.postprocessor.StackScope.GENERAL_SCOPE; import static org.sweble.wikitext.parser.postprocessor.StackScope.LIST_ITEM_SCOPE; import static org.sweble.wikitext.parser.postprocessor.StackScope.TABLE_SCOPE; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.Map; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.comparer.WtComparer; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtContentNode.WtAbsentContentNode; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtImEndTag; import org.sweble.wikitext.parser.nodes.WtImStartTag; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtLctVarConv; import org.sweble.wikitext.parser.nodes.WtLeafNode; import org.sweble.wikitext.parser.nodes.WtLinkTitle; import org.sweble.wikitext.parser.nodes.WtNamedXmlElement; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableImplicitTableBody; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInCaption; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInCell; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInColumnGroup; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInRow; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInTableBody; import org.sweble.wikitext.parser.postprocessor.TreeBuilderInTable.TreeBuilderInTableText; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.visitor.VisitorInterface; import de.fau.cs.osr.utils.visitor.VisitorLogic; /** * Some of the comments in this class are taken from the page * http://whatwg.org/html, which is copyright 2004-2011 Apple Computer, Inc., * Mozilla Foundation, and Opera Software ASA. However, we are granted a license * to use, reproduce and create derivative works of this document. * * TODO: Round trip information has to get fixed! */ public class TreeBuilder { static final boolean DEBUG = false; private static final WtNode MARKER = null; private static final WtNode BOOKMARK = new Bookmark(); private final VisitorLogic logic = new VisitorLogic(null); private final AstVisitor inBodyMode = new TreeBuilderInBody(logic, this); private final AstVisitor inTableMode = new TreeBuilderInTable(logic, this); private final AstVisitor inTableTextMode = new TreeBuilderInTableText(logic, this); private final AstVisitor inCaptionMode = new TreeBuilderInCaption(logic, this); private final AstVisitor inColumnGroupMode = new TreeBuilderInColumnGroup(logic, this); private final AstVisitor inTableBodyMode = new TreeBuilderInTableBody(logic, this); private final AstVisitor inRowMode = new TreeBuilderInRow(logic, this); private final AstVisitor inCellMode = new TreeBuilderInCell(logic, this); private final LinkedList stack = new LinkedList(); private final LinkedList activeFormattingElements = new LinkedList(); private final LinkedList errors = new LinkedList(); private final ElementFactory factory; private final ParserConfig config; private WtParsedWikitextPage rootNode = null; private WtNode formPointer = null; private VisitorInterface originalInsertionMode; private String pendingTableCharTokens = null; private boolean fosterParentingMode = false; private final WikitextNodeFactory nf; // ========================================================================= public static WtParsedWikitextPage process( ParserConfig config, WtNode ast) { return new TreeBuilder(config).go(ast); } // ========================================================================= public TreeBuilder(ParserConfig config) { this.config = config; this.factory = new ElementFactory(this); nf = getConfig().getNodeFactory(); } // ========================================================================= private int dbgIndent = 0; void dbgIn(String format, Object... args) { System.out.println(StringTools.indent( String.format(format, args), StringTools.strrep(' ', dbgIndent * 4))); ++dbgIndent; } void dbg(String format, Object... args) { System.out.println(StringTools.indent( String.format(format, args), StringTools.strrep(' ', dbgIndent * 4))); } void dbgOut(String format, Object... args) { --dbgIndent; System.out.println(StringTools.indent( String.format(format, args), StringTools.strrep(' ', dbgIndent * 4))); } // ========================================================================= private WtParsedWikitextPage go(WtNode ast) { if (DEBUG) dbgIn("> TreeBuilder.go"); switchInsertionMode(InsertionMode.IN_BODY); logic.go(ast); if (getRootNode() == null) throw new AssertionError("No root node set after processing!"); if (!errors.isEmpty()) { if (getRootNode().getWarnings().isEmpty()) getRootNode().setWarnings(errors); else getRootNode().getWarnings().addAll(errors); } if (DEBUG) dbgOut("< TreeBuilder.go"); return getRootNode(); } // ========================================================================= void processInInsertionMode(InsertionMode mode, WtNode n) { VisitorLogic.dispatchTo(getModeImpl(mode), n); } void switchInsertionMode(InsertionMode mode) { if (DEBUG) dbg("!! %s", mode); logic.setImpl(getModeImpl(mode)); } VisitorInterface getModeImpl(InsertionMode mode) { switch (mode) { case IN_BODY: return inBodyMode; case IN_TABLE: return inTableMode; case IN_CAPTION: return inCaptionMode; case IN_CELL: return inCellMode; case IN_COLUMN_GROUP: return inColumnGroupMode; case IN_ROW: return inRowMode; case IN_TABLE_BODY: return inTableBodyMode; case IN_TABLE_TEXT: return inTableTextMode; default: throw new AssertionError(); } } void setOriginalInsertionMode() { this.originalInsertionMode = logic.getImpl(); } void resetToOriginalInsertionMode() { if (DEBUG) dbg("!! %s", this.originalInsertionMode.getClass().getSimpleName()); logic.setImpl(this.originalInsertionMode); } /** * 12.2.3.1 * * When the steps below require the UA to reset the insertion mode * appropriately, it means the UA must follow these steps: */ void resetInsertionMode() { // 1. Let last be false. // 2. Let node be the last node in the stack of open elements. for (WtNode node : stack) { // We have no fragment case: // // 3. Loop: If node is the first node in the stack of open elements, // then set last to true and set node to the context element. // (fragment case) // // 4. If node is a select element, then switch the insertion mode to // "in select" and abort these steps. // (fragment case) switch (getNodeType(node)) { case TD: case TH: // 5. If node is a td or th element and last is false, then switch the // insertion mode to "in cell" and abort these steps. switchInsertionMode(InsertionMode.IN_CELL); return; case TR: // 6. If node is a tr element, then switch the insertion mode to "in row" // and abort these steps. switchInsertionMode(InsertionMode.IN_ROW); return; case TBODY: case THEAD: case TFOOT: // 7. If node is a tbody, thead, or tfoot element, then switch the insertion // mode to "in table body" and abort these steps. switchInsertionMode(InsertionMode.IN_TABLE_BODY); return; case CAPTION: // 8. If node is a caption element, then switch the insertion mode to // "in caption" and abort these steps. switchInsertionMode(InsertionMode.IN_CAPTION); return; /* We have no Fragment case: case COLGROUP: // 9. If node is a colgroup element, then switch the insertion mode to // "in column group" and abort these steps. (fragment case) setInsertionMode(InsertionMode.IN_COLUMN_GROUP); return; */ case TABLE: // 10. If node is a table element, then switch the insertion mode to // "in table" and abort these steps. switchInsertionMode(InsertionMode.IN_TABLE); return; /* We have no Fragment case: case HEAD: // 11. 1. If node is a head element, then switch the insertion mode to // "in body" ("in body"! not "in head"!) and abort these steps. (fragment // case) setInsertionMode(InsertionMode.IN_BODY); return; */ case PAGE: // 12. If node is a body element, then switch the insertion mode to // "in body" and abort these steps. switchInsertionMode(InsertionMode.IN_BODY); return; /* We have no Fragment case: // 13. If node is a frameset element, then switch the insertion mode to // "in frameset" and abort these steps. (fragment case) // 14. If node is an html element, then switch the insertion mode to // "before head" Then, abort these steps. (fragment case) // 15. If last is true, then switch the insertion mode to "in body" and // abort these steps. (fragment case) */ default: break; } } } // ========================================================================= ParserConfig getConfig() { return config; } ElementFactory getFactory() { return factory; } WtParsedWikitextPage getRootNode() { return rootNode; } void setRootNode(WtParsedWikitextPage rootNode) { this.rootNode = rootNode; } LinkedList getStack() { return stack; } WtNode getFormPointer() { return formPointer; } void setFormPointer(WtNode formPointer) { this.formPointer = formPointer; } // ========================================================================= void resetPendingTableCharTokens() { this.pendingTableCharTokens = ""; } void appendToPendingTableCharTokens(String content) { this.pendingTableCharTokens += content; } String getPendingTableCharTokens() { String text = this.pendingTableCharTokens; this.pendingTableCharTokens = null; return text; } // ========================================================================= WtNodeList getContentOfNode(WtNode node) { if (node instanceof WtNodeList) { return (WtNodeList) node; } else { switch (node.getNodeType()) { case NT_INTERNAL_LINK: return ((WtInternalLink) node).getTitle(); case NT_EXTERNAL_LINK: return ((WtExternalLink) node).getTitle(); case NT_IMAGE_LINK: return ((WtImageLink) node).getTitle(); case NT_XML_ELEMENT: return ((WtXmlElement) node).getBody(); case NT_TABLE: return ((WtTable) node).getBody(); case NT_TABLE_IMPLICIT_TBODY: return ((WtTableImplicitTableBody) node).getBody(); case NT_TABLE_CAPTION: return ((WtTableCaption) node).getBody(); case NT_TABLE_ROW: return ((WtTableRow) node).getBody(); case NT_TABLE_HEADER: return ((WtTableHeader) node).getBody(); case NT_TABLE_CELL: return ((WtTableCell) node).getBody(); case NT_LCT_VAR_CONV: return ((WtLctVarConv) node).getText(); default: throw new AssertionError(); } } } WtNodeList getContentOfNodeForModification(WtNode node) { WtNodeList content = getContentOfNode(node); if (content instanceof WtAbsentContentNode) { WtNodeList originalContent = content; switch (node.getNodeType()) { case NT_INTERNAL_LINK: content = nf.linkTitle(nf.list()); ((WtInternalLink) node).setTitle((WtLinkTitle) content); break; case NT_EXTERNAL_LINK: content = nf.linkTitle(nf.list()); ((WtExternalLink) node).setTitle((WtLinkTitle) content); break; case NT_IMAGE_LINK: content = nf.linkTitle(nf.list()); ((WtImageLink) node).setTitle((WtLinkTitle) content); break; case NT_XML_ELEMENT: content = nf.body(nf.list()); ((WtXmlElement) node).setBody((WtBody) content); break; case NT_TABLE: content = nf.body(nf.list()); ((WtTable) node).setBody((WtBody) content); break; default: throw new AssertionError(); } content.setRtd(originalContent.getRtd()); } return content; } static boolean isNodeTypeOneOf(WtNode node, ElementType... types) { return isTypeOneOf(getNodeType(node), types); } static ElementType getNodeType(WtNode node) { ElementType nodeType = ElementType.getType(node); /* if (nodeType == null) { if (node instanceof WtNamedXmlElement) throw new AssertionError("Unknown node type: <" + ((WtNamedXmlElement) node).getName() + ">"); else throw new AssertionError("Unknown node type: " + node.getClass().getSimpleName()); } */ return nodeType; } static boolean isTypeOneOf(ElementType nodeType, ElementType... types) { for (ElementType type : types) { if (type == nodeType) return true; } return false; } static boolean isSameFormattingElement(WtNode e0, WtNode e1) { if (e0 == e1) return true; ElementType t0 = getNodeType(e0); ElementType t1 = getNodeType(e1); if (t0 != t1) return false; if (e0.getNodeType() == WtNode.NT_XML_ELEMENT) { WtNodeList a0 = ((WtXmlElement) e0).getXmlAttributes(); if (e1.getNodeType() == WtNode.NT_XML_ELEMENT) { return isSameAttributes( a0, ((WtXmlElement) e1).getXmlAttributes()); } else if (a0 != null && !a0.isEmpty()) return false; } else { if (e1.getNodeType() == WtNode.NT_XML_ELEMENT) { WtNodeList a1 = ((WtXmlElement) e1).getXmlAttributes(); if (a1 != null && !a1.isEmpty()) return false; } } return true; } static boolean isSameAttributes(WtNodeList a0, WtNodeList a1) { if (a0 == a1) return true; Map m0 = new HashMap(); for (WtNode n : a0) { if (n.getNodeType() != WtNode.NT_XML_ATTRIBUTE) continue; WtXmlAttribute a = (WtXmlAttribute) n; // TODO: This cannot handle unresolved attribute names: if (!a.getName().isResolved()) return false; m0.put(a.getName().getAsString(), a.getValue()); } for (WtNode n : a1) { if (n.getNodeType() != WtNode.NT_XML_ATTRIBUTE) continue; WtXmlAttribute a = (WtXmlAttribute) n; if (!a.getName().isResolved()) return false; WtNodeList v0 = m0.remove(a.getName().getAsString()); WtNodeList v1 = a.getValue(); if (v0 == v1) return true; if (!WtComparer.compareNoThrow(v0, v1, false, false)) return false; } return m0.isEmpty(); } // ========================================================================= void ignore(WtNode node) { switch (node.getNodeType()) { case WtNode.NT_XML_START_TAG: case WtNode.NT_XML_END_TAG: case WtNode.NT_XML_EMPTY_TAG: case WtNode.NT_IM_START_TAG: case WtNode.NT_IM_END_TAG: if (!WtNodeFlags.isRepairNode(node) && hasNonEmptyRtd(node)) appendToCurrentNode(node); break; default: ((TreeBuilderModeBase) logic.getImpl()) .dispatch(getFactory().text(WtRtDataPrinter.print(node))); //throw new AssertionError(); } } private boolean hasNonEmptyRtd(WtNode node) { WtRtData rtd = node.getRtd(); if (rtd == null) return false; for (Object[] glue : rtd.getFields()) { if (glue.length != 0) return true; } return false; } void error(WtNode node, String message) { if ((node instanceof WtImStartTag) || (node instanceof WtImEndTag)) return; errors.add(new TreeBuilderWarning(node, message)); } // ========================================================================= /** * 12.2.5.1 * * When the steps below require the UA to insert an HTML element for a * token, the UA must first create an element for the token in the HTML * namespace, and then append this node to the current node, and push it * onto the stack of open elements so that it is the new current node. * * We don't create an element (unless we are dealing with only a tag instead * of a scoped native wikitext element). We use the specified element * instead and assume, that it has been properly prepared (i.e. children * have been stripped and replaced with EMPTY_LIST). */ WtNode insertAnHtmlElement(WtNode sample) { WtNode newNode = factory.createNewElement(sample); appendToCurrentNode(newNode); getStack().push(newNode); return newNode; } WtNode insertAnHtmlRepairFormattingElement(WtNode sample) { WtNode newNode = factory.createRepairFormattingElement(sample); appendToCurrentNode(newNode); getStack().push(newNode); return newNode; } /** * 12.2.5 * * When the steps below require the UA to insert a character into a node, if * that node has a child immediately before where the character is to be * inserted, and that child is a WtText node, then the character must be * appended to that WtText node; otherwise, a new WtText node whose data is * just that character must be inserted in the appropriate place. */ void insertText(WtText text) { WtNode last = pollLastChildOfCurrentNode(); // We don't want to merge text nodes with attributes, thus loosing/smearing the attributes. if (!text.hasAttributes() && last != null && !last.hasAttributes() && last instanceof WtText) { WtText lastText = (WtText) last; lastText.setContent(lastText.getContent() + text.getContent()); } else { appendToCurrentNode(text); } } // ========================================================================= WtNode getCurrentNode() { assert !getStack().isEmpty(); return getStack().peek(); } void appendToCurrentNode(WtNode e) { if (fosterParentingMode && getConfig().isFosterParenting() && isCurrentNodeTypeOneOf(TABLE, TBODY, TFOOT, THEAD, TR) && (getConfig().isFosterParentingForTransclusions() || !isTransclusionTypeNode(e))) { insertInFosterParent(e); } else { getContentOfNodeForModification(getCurrentNode()).add(e); } } private boolean isTransclusionTypeNode(WtNode e) { switch (e.getNodeType()) { case WtNode.NT_TEMPLATE: case WtNode.NT_TEMPLATE_PARAMETER: return true; default: return false; } } WtNode pollLastChildOfCurrentNode() { WtNodeList content = getContentOfNode(getCurrentNode()); if (content.isEmpty()) return null; return content.get(content.size() - 1); } boolean isCurrentNodeTypeOneOf(ElementType... nodeTypes) { return isNodeTypeOneOf(getCurrentNode(), nodeTypes); } // ========================================================================= /** * The stack of open elements is said to have an element in a specific scope * consisting of a list of element types list when the following algorithm * terminates in a match state: * * Initialize node to be the current node (the bottommost node of the * stack). * * If node is the target node, terminate in a match state. * * Otherwise, if node is one of the element types in list, terminate in a * failure state. * * Otherwise, set node to the previous entry in the stack of open elements * and return to step 2. (This will never fail, since the loop will always * terminate in the previous step if the top of the stack — an html element * — is reached.) */ boolean isElementTypeInSpecificScope( StackScope scope, ElementType targetType) { Iterator i = getStack().iterator(); while (i.hasNext()) { ElementType nodeType = getNodeType(i.next()); if (nodeType == targetType) return true; if (scope.isInList(nodeType)) return false; } throw new AssertionError("This should never happen!"); } boolean isElementTypeInScope(ElementType elementType) { return isElementTypeInSpecificScope(GENERAL_SCOPE, elementType); } boolean isElementTypeInListScope(ElementType elementType) { return isElementTypeInSpecificScope(LIST_ITEM_SCOPE, elementType); } boolean isElementTypeInButtonScope(ElementType elementType) { return isElementTypeInSpecificScope(BUTTON_SCOPE, elementType); } boolean isElementTypeInTableScope(ElementType elementType) { return isElementTypeInSpecificScope(TABLE_SCOPE, elementType); } boolean isOneOfElementTypesInSpecificScope( StackScope scope, ElementType... targetTypes) { Iterator i = getStack().iterator(); while (i.hasNext()) { ElementType nodeType = getNodeType(i.next()); if (isTypeOneOf(nodeType, targetTypes)) return true; if (scope.isInList(nodeType)) return false; } throw new AssertionError("This should never happen!"); } boolean isOneOfElementTypesInScope(ElementType... targetTypes) { return isOneOfElementTypesInSpecificScope(GENERAL_SCOPE, targetTypes); } boolean isNodeInSpecificScope(StackScope scope, WtNode targetNode) { Iterator i = getStack().iterator(); while (true) { WtNode node = i.next(); if (isSameTag(node, targetNode)) return true; if (scope.isInList(getNodeType(node))) return false; } } boolean isNodeRefInSpecificScope(StackScope scope, WtNode targetNode) { Iterator i = getStack().iterator(); while (true) { WtNode node = i.next(); if (node == targetNode) return true; if (scope.isInList(getNodeType(node))) return false; } } boolean isNodeRefInScope(WtNode targetNode) { return isNodeRefInSpecificScope(GENERAL_SCOPE, targetNode); } // ========================================================================= void removeFromStack(WtNode node) { Iterator i = getStack().iterator(); while (i.hasNext()) { if (i.next() == node) { i.remove(); return; } } throw new AssertionError("Could not remove node from stack!"); } boolean isInStackOfOpenElements(WtNode node) { for (WtNode e : getStack()) { if (e == node) return true; } return false; } WtNode getFromStack(ElementType nodeType) { for (WtNode e : getStack()) { if (getNodeType(e) == nodeType) return e; } return null; } WtNode popFromStackUntilIncluding(WtNode nodeExample) { while (!getStack().isEmpty()) { WtNode found = popFromStack(); if (isSameTag(nodeExample, found)) return found; } throw new AssertionError("Everything's gone :("); } WtNode popFromStackUntilIncluding(ElementType nodeType) { while (!getStack().isEmpty()) { WtNode found = popFromStack(); if (getNodeType(found) == nodeType) return found; } throw new AssertionError("Everything's gone :("); } WtNode popFromStackUntilIncluding(ElementType... nodeTypes) { while (!getStack().isEmpty()) { WtNode found = popFromStack(); if (isTypeOneOf(getNodeType(found), nodeTypes)) return found; } throw new AssertionError("Everything's gone :("); } void popFromStackUntilIncludingRef(WtNode node) { while (popFromStack() != node) ; if (getStack().isEmpty()) throw new AssertionError("Everything's gone :("); } void popFromStackUntilExcluding(ElementType... nodeTypes) { while (!isTypeOneOf(getNodeType(getCurrentNode()), nodeTypes)) popFromStack(); if (getStack().isEmpty()) throw new AssertionError("Everything's gone :("); } WtNode popFromStack() { return getStack().pop(); } void clearStackBackToTableContext() { popFromStackUntilExcluding(PAGE, /*SECTION_HEADING, SECTION_BODY, */TABLE); } void clearStackBackToTableBodyContext() { popFromStackUntilExcluding(PAGE, /*SECTION_HEADING, SECTION_BODY, */TBODY, TFOOT, THEAD); } void clearStackBackToTableRowContext() { popFromStackUntilExcluding(PAGE, /*SECTION_HEADING, SECTION_BODY, */TR); } WtNode getAboveOnStack(WtNode node) { Iterator i = getStack().iterator(); while (i.hasNext()) { if (i.next() == node) { if (i.hasNext()) return i.next(); } } return null; } void insertOnStackBelow(WtNode marker, WtNode node) { ListIterator i = getStack().listIterator(); while (i.hasNext()) { if (i.next() == marker) { i.previous(); i.add(node); return; } } throw new AssertionError("Marker MUST exist in stack!"); } void removeFromParent(WtNode node, WtNode parent) { WtNodeList content = getContentOfNode(parent); ListIterator i = content.listIterator(content.size()); while (i.hasPrevious()) { WtNode p = i.previous(); if (p == node) { i.remove(); return; } } throw new AssertionError("Node given as parent IS NOT parent of other node!"); } // ========================================================================= /** * 12.2.5.2 * * When the steps below require the UA to generate implied end tags, then, * while the current node is a dd element, a dt element, an li element, an * option element, an optgroup element, a p element, an rp element, or an rt * element, the UA must pop the current node off the stack of open elements. * * If a step requires the UA to generate implied end tags but lists an * element to exclude from the process, then the UA must perform the above * steps as if that element was not in the above list. */ void generateImpliedEndTags(ElementType excludedType) { while (true) { ElementType nodeType = getNodeType(getCurrentNode()); // OPTION, OPTGROUP, RP, RT if (nodeType == excludedType || !isTypeOneOf(nodeType, DD, DT, LI, P)) break; popFromStack(); } } void generateImpliedEndTags() { generateImpliedEndTags((ElementType) null); } void generateImpliedEndTags(WtNode node) { while (true) { WtNode currentNode = getCurrentNode(); ElementType nodeType = getNodeType(currentNode); // OPTION, OPTGROUP, RP, RT if (!isTypeOneOf(nodeType, DD, DT, LI, P) || isSameTag(currentNode, node)) break; popFromStack(); } } static boolean isSameTag(WtNode n0, WtNode n1) { ElementType t0 = getNodeType(n0); ElementType t1 = getNodeType(n1); if ((t0 == t1) && (t0 != UNKNOWN)) { return true; } else if (t0 != t1) { // If only one node is UNKONWN they cannot be the same... return false; } else if (n0 instanceof WtNamedXmlElement) { String name0 = ((WtNamedXmlElement) n0).getName(); if (n1 instanceof WtNamedXmlElement) { String name1 = ((WtNamedXmlElement) n1).getName(); if (name0.equalsIgnoreCase(name1)) return true; } } return false; } // ========================================================================= void pushActiveFormattingElements(WtNode node) { int count = 0; Iterator i = activeFormattingElements.descendingIterator(); while (i.hasNext()) { WtNode fe = i.next(); if (fe == MARKER) break; if (isSameFormattingElement(fe, node)) ++count; if (count == 3) { i.remove(); break; } } activeFormattingElements.add(node); } boolean isInListOfActiveFormattingElements(WtNode node) { return activeFormattingElements.contains(node); } WtNode getActiveFormattingElement(ElementType nodeType) { Iterator i = activeFormattingElements.descendingIterator(); while (i.hasNext()) { WtNode node = i.next(); if (node == MARKER) return null; if (getNodeType(node) == nodeType) return node; } return null; } void removeFromActiveFormattingElements(WtNode node) { Iterator i = activeFormattingElements.descendingIterator(); while (i.hasNext()) { if (i.next() == node) { i.remove(); return; } } throw new AssertionError("Could not remove formatting element"); } void replaceInListOfActiveFormattingElements( WtNode replacee, WtNode replacement) { ListIterator i = activeFormattingElements.listIterator(activeFormattingElements.size()); while (i.hasPrevious()) { if (i.previous() == replacee) { i.set(replacement); return; } } throw new AssertionError("Could not replace formatting element"); } /** * 12.2.3.3 * * When the steps below require the UA to reconstruct the active formatting * elements, the UA must perform the following steps: * * [[ Find the steps in the code ]] * * This has the effect of reopening all the formatting elements that were * opened in the current body, cell, or caption (whichever is youngest) that * haven't been explicitly closed. * * The way this specification is written, the list of active formatting * elements always consists of elements in chronological order with the * least recently added element first and the most recently added element * last (except for while steps 8 to 11 of the above algorithm are being * executed, of course). */ void reconstructActiveFormattingElements() { LinkedList list = activeFormattingElements; /* 1) If there are no entries in the list of active formatting elements, then * there is nothing to reconstruct; stop this algorithm. */ if (list.isEmpty()) return; /* 2) If the last (most recently added) entry in the list of active formatting * elements is a marker, or if it is an element that is in the stack of open * elements, then there is nothing to reconstruct; stop this algorithm. */ WtNode last = list.getLast(); if (last == MARKER || isInStackOfOpenElements(last)) return; /* 3) Let entry be the last (most recently added) element in the list of active * formatting elements. */ int entryIndex = list.size() - 1; WtNode entry = list.get(entryIndex); while (true) { /* 4) If there are no entries before entry in the list of active formatting * elements, then jump to step 8. */ if (entryIndex > 0) { /* 5) Let entry be the entry one earlier than entry in the list of active * formatting elements. */ entry = list.get(--entryIndex); /* 6) If entry is neither a marker nor an element that is also in the stack of * open elements, go to step 4. */ if (entry != MARKER && !isInStackOfOpenElements(entry)) continue; /* 7) Let entry be the element one later than entry in the list of active * formatting elements. */ entry = list.get(++entryIndex); break; } break; } while (true) { /* 8) Create an element for the token for which the element entry was created, * to obtain new element. * * 9) Append new element to the current node and push it onto the stack of open * elements so that it is the new current node. */ WtNode newNode = insertAnHtmlRepairFormattingElement(entry); /* 10) Replace the entry for entry in the list with an entry for new element. */ list.set(entryIndex, newNode); /* 11) If the entry for new element in the list of active formatting elements is * not the last entry in the list, return to step 7. */ if (entryIndex == list.size() - 1) break; entry = list.get(++entryIndex); } } void insertMarkerInActiveFormattingElements() { this.activeFormattingElements.add(MARKER); // LctVarConv tags must be effective over marker boundaries in order // to "leak" into tables LinkedList list = activeFormattingElements; ListIterator iter = list.listIterator(list.size()); // Skip the just inserted marker iter.previous(); while (iter.hasPrevious()) { WtNode e = iter.previous(); // We only look back to the last marker if (e == MARKER) break; if (getNodeType(e) == LCT_VAR_CONV) { // Copy the LctVarConv tag after the marker this.activeFormattingElements.add(e); break; } } } void clearActiveFormattingElementsToLastMarker() { Iterator i = this.activeFormattingElements.descendingIterator(); while (i.hasNext()) { WtNode fe = i.next(); i.remove(); if (fe == MARKER) break; } } void placeBookmarkAfter(WtNode node) { ListIterator i = this.activeFormattingElements.listIterator( this.activeFormattingElements.size()); while (i.hasPrevious()) { WtNode fe = i.previous(); if (fe == node) { i.next(); i.add(BOOKMARK); return; } } throw new AssertionError("This method must only be called if there definitily is a bookmark!"); } void moveBookmarkAfter(WtNode node) { ListIterator i = this.activeFormattingElements.listIterator( this.activeFormattingElements.size()); while (i.hasPrevious()) { WtNode fe = i.previous(); if (fe == node) { i.next(); i.add(BOOKMARK); i.previous(); break; } } while (i.hasPrevious()) { WtNode fe = i.previous(); if (fe == BOOKMARK) { i.remove(); return; } } throw new AssertionError("This method must only be called if there definitily is a bookmark!"); } public void replaceBookmarkWithAndRemove(WtNode replacement, WtNode remove) { ListIterator i = this.activeFormattingElements.listIterator( this.activeFormattingElements.size()); while (i.hasPrevious()) { WtNode fe = i.previous(); if (fe == BOOKMARK) { i.remove(); i.add(replacement); break; } } while (i.hasPrevious()) { WtNode fe = i.previous(); if (fe == remove) { i.remove(); return; } } throw new AssertionError("This method must only be called if there definitily is a bookmark!"); } // ========================================================================= /** * 12.2.5.3 * * Foster parenting happens when content is misnested in tables. * * When a node node is to be foster parented, the node node must be inserted * into the foster parent element. * * The foster parent element is the parent element of the last table element * in the stack of open elements, if there is a table element and it has * such a parent element. * * It might have no parent or some other kind parent if a script manipulated * the DOM after the element was inserted by the parser. * * If there is no table element in the stack of open elements (fragment * case), then the foster parent element is the first element in the stack * of open elements (the html element). Otherwise, if there is a table * element in the stack of open elements, but the last table element in the * stack of open elements has no parent, or its parent node is not an * element, then the foster parent element is the element before the last * table element in the stack of open elements. * * If the foster parent element is the parent element of the last table * element in the stack of open elements, then node must be inserted into * the foster parent element, immediately before the last table element in * the stack of open elements; otherwise, node must be appended to the * foster parent element. */ void insertInFosterParent(WtNode node) { WtNode lastTable = getFromStack(TABLE); if (lastTable != null) { // I believe it is not possible (only in our case, not in HTML in // general) for the last table NOT to have a parent. Therefore, we // can skip the special treatment of tables without or with the // wrong kind of parent. WtNode fosterParent = getAboveOnStack(lastTable); WtNodeList content = getContentOfNodeForModification(fosterParent); int i = content.indexOf(lastTable); content.add(i, node); } else { getContentOfNodeForModification(getStack().getLast()).add(node); } } void setFosterParentingMode(boolean fosterParentingMode) { this.fosterParentingMode = fosterParentingMode; } // ========================================================================= static boolean isInlineImage(WtImageLink n) { switch (n.getFormat()) { case FRAME: case THUMBNAIL: return false; default: return (n.getHAlign() == ImageHorizAlign.UNSPECIFIED); } } // ========================================================================= private static final class Bookmark extends WtLeafNode { private static final long serialVersionUID = 1L; } } TreeBuilderInBody.java000066400000000000000000001037371335270560400505600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import de.fau.cs.osr.utils.visitor.VisitorLogic; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.*; import java.util.ListIterator; import static org.sweble.wikitext.parser.nodes.WtNode.*; import static org.sweble.wikitext.parser.postprocessor.ElementType.*; import static org.sweble.wikitext.parser.postprocessor.StackScope.GENERAL_SCOPE; import static org.sweble.wikitext.parser.postprocessor.StackScope.GENERAL_SCOPE_WITHOUT_LAZY_PARSED_PAGE; public final class TreeBuilderInBody extends TreeBuilderModeBase { public TreeBuilderInBody( VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } // ===================================================================== public void visit(WtImStartTag n) { switch (getNodeType(n)) { case B: case I: startTagR28(n); break; case P: startTagR12(n); break; default: throw new AssertionError("Should not happen!"); } } public void visit(WtImEndTag n) { switch (getNodeType(n)) { case B: case I: endTagR30(n); break; case P: /** * Synthetic paragraph closing tags can be ignored if they don't * have a proper opening tag */ if (tb.isElementTypeInButtonScope(P)) { /** * An intermediate paragraph closing never has RTD * information attached. We don't have to worry about * whether RTD information is copied to the created element * or not. */ WtNode pEndTag = getFactory().createSyntheticEndTag(n); WtNodeFlags.setParserRecognized(pEndTag); endTagR22(pEndTag); } break; default: throw new AssertionError("Should not happen!"); } } // ===================================================================== public void visit(WtXmlStartTag n) { handleStartTag(n); } public void visit(WtXmlEmptyTag n) { handleStartTag(n); } private void handleStartTag(WtNode n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { startUnknownTag(n); return; } switch (nodeType) { case ADDRESS: //ARTICLE, ASIDE, case BLOCKQUOTE: case CENTER: //DETAILS, DIALOG, case DIR: case DIV: case DL: /* case FIELDSET: //FIGCAPTION, FIGURE, FOOTER, HEADER, HGROUP, */ case MENU: //NAV, case OL: case P: //SECTION, SUMMARY, case UL: startTagR12(n); break; case H1: case H2: case H3: case H4: case H5: case H6: startTagR13(n); break; case PRE: /*, "LISTING"*/ /** * Issue AssertionError #35: I assume that the original idea of the AssertionError was this: <pre> * elements are always handled as tag extension and should never show up here as elements. The problem * is: Tag extension name matching is not done case insensitive while HTML element recognition on the * other hand is case insensitive. An all uppercase PRE element will not be recognized as tag extension * and cause an internal error here. We will now introduce a switch that turns on case insensitive tag * extension name matching if requested but we still have to fix this issue for devs who do not want to * turn on case insensitive matching. We'll treat the element like a real <pre> element. */ startTagR14(n); break; // throw new AssertionError("This must not happen!"); //startTagR14(n); //break; /* case FORM: startTagR15(n); break; */ case LI: startTagR16(n); break; case DD: case DT: startTagR17(n); break; /* case BUTTON: startTagR19(n); break; */ /* case A: throw new AssertionError("This must not happen!"); */ case B: case BIG: case CODE: case EM: case FONT: case I: case S: case SMALL: case STRIKE: case STRONG: case TT: case U: startTagR28(n); break; case TABLE: startTagR33(n); break; case AREA: case BR: startTagR34(n); break; case IMG: throw new AssertionError("This must not happen!"); /* case INPUT: startTagR35(n); break; */ case HR: startTagR37(n); break; /* case TEXTAREA: startTagR40(n); break; case SELECT: startTagR44(n); break; case OPTGROUP: case OPTION: startTag45(n); break; */ case CAPTION: // case COL: // case COLGROUP: case TD: case TH: case TR: startTagR50(n); break; default: if (nodeType == UNKNOWN) startUnknownTag(n); else startTagR51(n); break; } } private void startUnknownTag(WtNode n) { if (n instanceof WtNamedXmlElement) { String name = ((WtNamedXmlElement) n).getName().toLowerCase(); switch (getNonStandardElementBehavior(name)) { case LIKE_BR: // br, img, ... startTagR34(n); break; case LIKE_DIV: // div, ul, ... startTagR12(n); break; case LIKE_FORMATTING: // b, ... startTagR28(n); break; case LIKE_ANY_OTHER: case UNSPECIFIED: default: // any other tag startTagR51(n); break; } } else { // any other tag startTagR51(n); } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { endUnknownTag(n); return; } switch (nodeType) { case ADDRESS: //ARTICLE, ASIDE, case BLOCKQUOTE: /* case BUTTON: */ case CENTER: //DETAILS, DIALOG, case DIR: case DIV: case DL: /* case FIELDSET: //FIGCAPTION, FIGURE, FOOTER, HEADER, HGROUP, LISTING, */ case MENU: //NAV, case OL: //PRE, SECTION, SUMMARY, case UL: endTagR20(n); break; /* case FORM: endTagR21(n); break; */ case P: endTagR22(n); break; case LI: endTagR23(n); break; case DD: case DT: endTagR24(n); break; case H1: case H2: case H3: case H4: case H5: case H6: endTagR25(n); break; /* case A: */ case INT_LINK: case EXT_LINK: case URL: case B: case BIG: case CODE: case EM: case FONT: case I: //NOBR case S: case SMALL: case STRIKE: case STRONG: case TT: case U: endTagR30(n); break; case BR: endTagR47(n); break; case FRAMED_IMG: endTagFramedImage(n); break; /* case INLINE_IMG: */ default: if (nodeType == UNKNOWN) endUnknownTag(n); else endTagR52(n); } } private void endUnknownTag(WtNode n) { if (n instanceof WtNamedXmlElement) { String name = ((WtNamedXmlElement) n).getName().toLowerCase(); switch (getNonStandardElementBehavior(name)) { case LIKE_BR: // br, img, ... endTagR47(n); break; case LIKE_DIV: // div, ul, ... endTagR20(n); break; case LIKE_FORMATTING: // b, ... endTagR30(n); break; case LIKE_ANY_OTHER: case UNSPECIFIED: default: // any other tag endTagR52(n); break; } } else { // any other tag endTagR52(n); } } // ========================================================================= /* Nodes to consider: * InnerNode * - InnerNode1 * - ContentNode * - WtBold [X] * - DefinitionDefinition [X] * - DefinitionList [X] * - DefinitionTerm [X] * - WtOrderedList [X] * - WtItalics [X] * - Itemization [X] * - WtParsedWikitextPage [X] * - ListItem [X] * - WtLinkTitle [X] * - Paragraph [-] // Not yet in AST * - SemiPre [X] * - SemiPreLine [-] * - InternalLink [X] * - TagExtension [X] * - WtXmlEmptyTag [X] * - WtXmlStartTag [X] * - WtImStartTag [X] * - InnerNode2 * - ExternalLink [X] * - WtImageLink [X] * - Section [ ] * - Table [X] * - TableCaption [X] * - TableCell [X] * - TableHeader [X] * - TabelRow [X] * - Template [X] * - WtXmlElement [-] // Not yet in AST * - InnerNode3 * - TemplateParameter [X] * WtLeafNode [X] * - HorizontalRule [X] * - IllegalCodePoint [X] * - PageSwitch [X] * - ParserEntity [X] * - Redirect [X] * - Signature [X] * - StringContentNode * - Ignored [X] * - WtNewline [X] * - WtText [X] * - ProtectedText [-] // Not yet in AST * - XmlComment [X] * - Url [X] * - XmlCharRef [X] * - WtXmlEndTag [X] * - WtImEndTag [X] * - XmlEntityRef [X] */ public void visit(WtNode n) { switch (n.getNodeType()) { // -- leaf nodes -- case NT_ILLEGAL_CODE_POINT: case NT_SIGNATURE: case NT_XML_CHAR_REF: case NT_XML_ENTITY_REF: // Treat these like text tokenR01andR02(n); break; case WtNode.NT_PARSER_ENTITY: case NT_PAGE_SWITCH: case NT_REDIRECT: case NT_IGNORED: case NT_XML_COMMENT: // Treat these like comments tokenR03(n); break; // -- unexpected nodes -- case NT_SEMI_PRE: throw new AssertionError("Node should only occur in SemiPre scope: " + n.getClass().getSimpleName()); case NT_TABLE_CAPTION: case NT_TABLE_CELL: case NT_TABLE_HEADER: case NT_TABLE_ROW: //throw new AssertionError("Node should only occur in Table scope: " + n.getClass().getSimpleName()); // Although native WtNode tables elements are always correctly // nested by the parser, it is possible that the TreeBuilder // leaves the table/row/cell scope before all the tables/... // children were processed. And in that case, we can end up // here... startTagR50(n); break; case NT_XML_ELEMENT: default: //throw new AssertionError("Unhandled node: " + n.getClass().getSimpleName()); // Treat these like comments tokenR03(n); break; } } public void visit(WtParsedWikitextPage n) { // insertAnHtmlElement WtNode newNode = getFactory().createNewElement(n); tb.getStack().push(newNode); tb.setRootNode((WtParsedWikitextPage) newNode); iterate(n); // 12.2.5.4.7 R10 // 12.2.5.4.17 R05 // 12.2.5.4.21 R05 if (!tb.isElementTypeInSpecificScope(GENERAL_SCOPE_WITHOUT_LAZY_PARSED_PAGE, PAGE)) tb.error(n, "12.2.5.4.7 R10 (1)"); for (WtNode node : tb.getStack()) { switch (getNodeType(node)) { case DD: case DT: case LI: // optgroup // option case P: // rp // rt case TABLE: // == tbody, tfoot, thead case TD: case TH: case TR: case PAGE: break; default: tb.error(n, "12.2.5.4.7 R10 (2)"); break; } } } public void visit(WtText n) { tokenR01andR02(n); } public void visit(WtNewline n) { tokenR01andR02(getFactory().text(n.getContent())); } public void visit(WtTemplate n) { tokenR03(n); } public void visit(WtTemplateParameter n) { tokenR03(n); } public void visit(WtTagExtension n) { tokenR03(n); } public void visit(WtHorizontalRule n) { startTagR37(n); } public void visit(WtBold n) { startTagR28(n); iterate(n); endTagR30(getFactory().createSyntheticEndTag(n)); } public void visit(WtItalics n) { startTagR28(n); iterate(n); endTagR30(getFactory().createSyntheticEndTag(n)); } public void visit(WtListItem n) { startTagR16(n); iterate(n); endTagR23(getFactory().createSyntheticEndTag(n)); } public void visit(WtOrderedList n) { startTagR12(n); iterate(n); endTagR20(getFactory().createSyntheticEndTag(n)); } public void visit(WtUnorderedList n) { startTagR12(n); iterate(n); endTagR20(getFactory().createSyntheticEndTag(n)); } public void visit(WtDefinitionList n) { startTagR12(n); iterate(n); endTagR20(getFactory().createSyntheticEndTag(n)); } public void visit(WtDefinitionListDef n) { startTagR17(n); iterate(n); endTagR24(getFactory().createSyntheticEndTag(n)); } public void visit(WtDefinitionListTerm n) { startTagR17(n); iterate(n); endTagR24(getFactory().createSyntheticEndTag(n)); } public void visit(WtInternalLink n) { startTagR27(n); if (n.hasTitle()) dispatch(n.getTitle()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtExternalLink n) { startTagR27(n); if (n.hasTitle()) dispatch(n.getTitle()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtUrl n) { startTagR27(n); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtImageLink n) { if (TreeBuilder.isInlineImage(n)) { startTagR51(n); if (n.hasTitle()) dispatch(n.getTitle()); dispatch(getFactory().createSyntheticEndTag(n, INLINE_IMG)); } else { startTagR12(n); if (n.hasTitle()) dispatch(n.getTitle()); dispatch(getFactory().createSyntheticEndTag(n, FRAMED_IMG)); } } public void visit(WtLinkTitle n) { iterate(n); } public void visit(WtSemiPre n) { startTagR12(n); if (!n.isEmpty()) iterate(n); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtSemiPreLine n) { // Lines are dissolved which is why we have to save RTD info. WtRtData rtd = n.getRtd(); iterateSemiPreRtdField(rtd); iterate(n); iterateSemiPreRtdField(rtd, 1); } private void iterateSemiPreRtdField(WtRtData rtd) { if (tb.getConfig().isPreserveSemiPreLeadingSpace()) { Object[] field = rtd.getField(0); int lastItem = field.length - 1; for (int i = 0; i <= lastItem; i += 1) { if ((i == lastItem) && (field[i] instanceof String)) { String content = (String) field[i]; int lastChar = content.length() - 1; if (lastChar >= 0 && content.charAt(lastChar) == ' ') { if (lastChar > 0) dispatch(getFactory().text(content.substring(0, lastChar))); tb.appendToCurrentNode(getFactory().createSemiPreRtdNode()); break; } } rtdToContent(field[i]); } } else { iterateSemiPreRtdField(rtd, 0); } } private void iterateSemiPreRtdField(WtRtData rtd, int index) { if (rtd != null) { for (Object o : rtd.getField(index)) rtdToContent(o); } } private void rtdToContent(Object o) { if (o instanceof WtNode) { dispatch((WtNode) o); } else { dispatch(getFactory().text(String.valueOf(o))); } } public void visit(WtTable n) { startTagR33(n); if (n.hasBody()) { iterate(n.getBody()); dispatch(getFactory().createSyntheticEndTag(n)); } } public void visit(WtSection n) { // We treat the section title, body and the section itself as DIV // However, when it comes to stack scopes we treat those elements // like something impenetrable, like a PAGE. startTagR12(n); WtSection section = (WtSection) tb.getCurrentNode(); // -- title ---- if (visitSectionHeading(n.getHeading())) { if (tb.getCurrentNode() != section) throw new AssertionError("Stack of open elements corrupted!"); // -- body ---- boolean processedBody = false; if (n.hasBody()) { if (visitSectionBody(n.getBody())) { processedBody = true; if (tb.getCurrentNode() != section) throw new AssertionError("Stack of open elements corrupted!"); } } // -- done ---- if (processedBody) { // Almost: endTagR20(getFactory().synEndTag(section)); tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != SECTION) tb.error(n, "12.2.5.4.7 - R20 (2)"); // We don't want native wiki markup section to interrupt table cells //tb.popFromStackUntilIncluding(SECTION); tb.popFromStackUntilExcluding(PAGE, SECTION, TABLE, TBODY, TFOOT, THEAD, TR, TD, TH, CAPTION); if (tb.getCurrentNode() == section) tb.popFromStack(); } } else { // just iterate the body, don't treat it as part of a section if (n.hasBody()) iterate(n.getBody()); } } /** * @return True if the heading was fully processed. False if the heading was * interrupted by another element that forced the heading to end * prematurely. */ public boolean visitSectionHeading(WtHeading heading) { if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); // Almost: tb.insertAnHtmlElement(heading); WtHeading newNode = (WtHeading) getFactory().createNewElement(heading); ((WtSection) tb.getCurrentNode()).setHeading(newNode); tb.getStack().push(newNode); // --- iterate(heading); if (!tb.isInStackOfOpenElements(newNode)) //throw new AssertionError("Section heading was removed from stack prematurely!"); return false; // Almost: endTagR20(getFactory().synEndTag(heading)); tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != SECTION_HEADING) tb.error(heading, "12.2.5.4.7 - R20 (2)"); // We don't want native wiki markup section to interrupt table cells //tb.popFromStackUntilIncluding(SECTION_HEADING); tb.popFromStackUntilExcluding(PAGE, SECTION_HEADING, TABLE, TBODY, TFOOT, THEAD, TR, TD, TH, CAPTION); if (tb.getCurrentNode() == newNode) { tb.popFromStack(); return true; } else { return false; } } /** * @return True if the body was fully processed. False if the body was * interrupted by another element that forced the body to end * prematurely. */ public boolean visitSectionBody(WtBody body) { if (tb.isElementTypeInButtonScope(P)) /** * I don't think that's even possible. A section body can only be * started after a section and a section cannot end with a P in * scope */ dispatch(getFactory().createMissingRepairEndTag(P)); // Almost: tb.insertAnHtmlElement(heading); WtBody newNode = (WtBody) getFactory().createNewElement(body); ((WtSection) tb.getCurrentNode()).setBody(newNode); tb.getStack().push(newNode); // --- iterate(body); if (!tb.isInStackOfOpenElements(newNode)) //throw new AssertionError("Section body was removed from stack prematurely!"); return false; // Almost: endTagR20(getFactory().synEndTag(body)); tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != SECTION_BODY) tb.error(body, "12.2.5.4.7 - R20 (2)"); // We don't want native wiki markup section to interrupt table cells //tb.popFromStackUntilIncluding(SECTION_BODY); tb.popFromStackUntilExcluding(PAGE, SECTION_BODY, TABLE, TBODY, TFOOT, THEAD, TR, TD, TH, CAPTION); if (tb.getCurrentNode() == newNode) { tb.popFromStack(); return true; } else { return false; } } public void visit(WtLctVarConv n) { startTagR28(n); iterate(n.getText()); endTagR30(getFactory().createSyntheticEndTag(n)); } // ===================================================================== /** * R01: Whitespace token * * R02: Any other character token */ private void tokenR01andR02(WtText text) { tb.reconstructActiveFormattingElements(); tb.insertText(text); } private void tokenR01andR02(WtNode n) { tb.reconstructActiveFormattingElements(); tb.appendToCurrentNode(n); } /** * R03: Comment token */ private void tokenR03(WtNode n) { tb.appendToCurrentNode(n); } /** * R12: A start tag whose tag name is one of: address, article, aside, * blockquote, center, details, dialog, dir, div, dl, fieldset, figcaption, * figure, footer, header, hgroup, menu, nav, ol, p, section, summary, ul */ private void startTagR12(WtNode n) { if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); } /** * R13: A start tag whose tag name is one of: h1, h2, h3, h4, h5, h6 */ private void startTagR13(WtNode n) { if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); if (tb.isCurrentNodeTypeOneOf(H1, H2, H3, H4, H5, H6)) { tb.error(n, "12.2.5.4.7 - R13"); tb.popFromStack(); } tb.insertAnHtmlElement(n); } /** * R14: A start tag whose tag name is one of: "pre", "listing" */ private void startTagR14(WtNode n) { if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); // FIXME: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move on to // the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.) } /** * R16: A start tag whose tag name is li */ private void startTagR16(WtNode n) { for (WtNode node : tb.getStack()) { ElementType nodeType = getNodeType(node); if (nodeType == LI) { dispatch(getFactory().createMissingRepairEndTag(LI)); break; } if (nodeType.isSpecial() && !isTypeOneOf(nodeType, ADDRESS, DIV, P)) break; } if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); } /** * R17: A start tag whose tag name is one of: dd, dt */ private void startTagR17(WtNode n) { for (WtNode node : tb.getStack()) { ElementType nodeType = getNodeType(node); if (isTypeOneOf(nodeType, DD, DT)) { dispatch(getFactory().createMissingRepairEndTag(nodeType)); break; } if (nodeType.isSpecial() && !isTypeOneOf(nodeType, ADDRESS, DIV, P)) break; } if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); } /** * R20: An end tag whose tag name is one of: address, article, aside, * blockquote, button, center, details, dialog, dir, div, dl, fieldset, * figcaption, figure, footer, header, hgroup, listing, menu, nav, ol, pre, * section, summary, ul */ private void endTagR20(WtNode n) { ElementType elementType = getNodeType(n); if (elementType == UNKNOWN) { unknownEndTagR20(n); } else { if (!tb.isElementTypeInScope(elementType)) { tb.error(n, "12.2.5.4.7 - R20 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != elementType) tb.error(n, "12.2.5.4.7 - R20 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(elementType), n); } } } /** * Like R20 but for unknown tags. */ private void unknownEndTagR20(WtNode n) { if (!tb.isNodeInSpecificScope(GENERAL_SCOPE, n)) { tb.error(n, "12.2.5.4.7 - R20 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(); if (!TreeBuilder.isSameTag(tb.getCurrentNode(), n)) tb.error(n, "12.2.5.4.7 - R20 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(n), n); } } /** * R22: An end tag whose tag name is p */ private void endTagR22(WtNode n) { if (!tb.isElementTypeInButtonScope(P)) { tb.error(n, "12.2.5.4.7 - R22 (1)"); dispatch(getFactory().createMissingRepairStartTag(P)); dispatch(n); } else { tb.generateImpliedEndTags(P); if (getNodeType(tb.getCurrentNode()) != P) tb.error(n, "12.2.5.4.7 - R22 (2)"); WtNode p = tb.popFromStackUntilIncluding(P); addRtDataOfEndTag(p, n); if (!WtNodeFlags.isParserRecognized(n)) { /* Hannes: When a paragraph is implicitly closed in front of * another block element we have to manually fix newlines. If * the parser guessed the end tag of a paragraph correctly, this * is already done by the paser. If not, all newlines are * located in front of the next block element and the implicit * closing tag will come after those newlines. We'll have to * move all but two newlines after the implicit closing node. */ /* Newlines are converted to text nodes and text nodes are * merged. Therefore, if there is a newline at the end of the * paragraph, the last child of the paragraph must be a text node * which will contain the newlines. */ int last = p.size() - 1; if (last > 0) { WtNode t = p.get(last); if (t.getNodeType() == WtNode.NT_TEXT) { WtText tn = (WtText) t; String text = tn.getContent(); // extract all but the first two newlines int count = 0; int lastNewline = -1; outer: for (int j = text.length() - 1; j >= 0; --j) { char ch = text.charAt(j); switch (ch) { case ' ': case '\t': continue; case '\n': ++count; if (count <= 2) lastNewline = j; break; default: break outer; } } // if we found newlines... if (count > 0) { // remove at most 2 from paragraph String outerNewlines; if (lastNewline > 0) { tn.setContent(text.substring(0, lastNewline)); outerNewlines = text.substring(lastNewline); } else { p.remove(last); outerNewlines = text; } // and insert them after paragraph tokenR01andR02(getFactory().text(outerNewlines)); } } } } } } /** * R23: An end tag whose tag name is li */ private void endTagR23(WtNode n) { if (!tb.isElementTypeInListScope(LI)) { tb.error(n, "12.2.5.4.7 - R23 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(LI); if (getNodeType(tb.getCurrentNode()) != LI) tb.error(n, "12.2.5.4.7 - R23 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(LI), n); } } /** * R24: An end tag whose tag name is one of: dd, dt */ private void endTagR24(WtNode n) { ElementType nodeType = getNodeType(n); if (!tb.isElementTypeInScope(nodeType)) { tb.error(n, "12.2.5.4.7 - R24 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(nodeType); if (getNodeType(tb.getCurrentNode()) != nodeType) tb.error(n, "12.2.5.4.7 - R24 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(nodeType), n); } } /** * The same as R24. */ private void endTagFramedImage(WtNode n) { ElementType nodeType = getNodeType(n); if (!tb.isElementTypeInScope(nodeType)) { tb.error(n, "12.2.5.4.7 - R24 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(nodeType); if (getNodeType(tb.getCurrentNode()) != nodeType) tb.error(n, "12.2.5.4.7 - R24 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(nodeType), n); } } /** * R25: An end tag whose tag name is one of: h1, h2, h3, h4, h5, h6 */ private void endTagR25(WtNode n) { if (!tb.isOneOfElementTypesInScope(H1, H2, H3, H4, H5, H6)) { tb.error(n, "12.2.5.4.7 - R25 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != getNodeType(n)) tb.error(n, "12.2.5.4.7 - R25 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(H1, H2, H3, H4, H5, H6), n); } } /** * R27: A start tag whose tag name is "a" */ private void startTagR27(WtNode n) { // Only one of those can actually happen -> short circuit logic if (forceCloseLink(n, INT_LINK) || forceCloseLink(n, EXT_LINK) || forceCloseLink(n, URL)) /* do nothing */; tb.reconstructActiveFormattingElements(); WtNode a = tb.insertAnHtmlElement(n); tb.pushActiveFormattingElements(a); } private boolean forceCloseLink(WtNode n, ElementType type) { WtNode active = tb.getActiveFormattingElement(type); if (active != null) { tb.error(n, "12.2.5.4.7 - R27"); dispatch(getFactory().createMissingRepairEndTag(type)); // Remove if not already done // (can happen if not in table scope) if (tb.isInStackOfOpenElements(active)) tb.removeFromStack(active); if (tb.isInListOfActiveFormattingElements(active)) tb.removeFromActiveFormattingElements(active); return true; } else { return false; } } /** * R28: A start tag whose tag name is one of: b, big, code, em, font, i, s, * small, strike, strong, tt, u */ private void startTagR28(WtNode n) { tb.reconstructActiveFormattingElements(); WtNode e = tb.insertAnHtmlElement(n); tb.pushActiveFormattingElements(e); } /** * R30: An end tag whose tag name is one of: a, b, big, code, em, font, i, * nobr, s, small, strike, strong, tt, u */ private void endTagR30(WtNode n) { ElementType nodeType = getNodeType(n); for (int i = 0; i < 8;) { ++i; WtNode fe = tb.getActiveFormattingElement(nodeType); if (fe == null) { // act as described in R52 -> call directly endTagR52(n); return; } else if (!tb.isInStackOfOpenElements(fe)) { tb.error(n, "12.2.5.4.7 - R30 (1)"); tb.removeFromActiveFormattingElements(fe); tb.ignore(n); return; } else if (!tb.isNodeRefInScope(fe)) { tb.error(n, "12.2.5.4.7 - R30 (2)"); tb.ignore(n); return; } else if (tb.getCurrentNode() != fe) { tb.error(n, "12.2.5.4.7 - R30 (3)"); } ListIterator stackIter = tb.getStack().listIterator(); WtNode commonAncestor = null; while (stackIter.hasNext()) { WtNode e = stackIter.next(); if (e == fe) { commonAncestor = stackIter.next(); stackIter.previous(); stackIter.previous(); break; } } if (commonAncestor == null) throw new AssertionError(); WtNode furthestBlock = null; WtNode furthestBlockParent = fe; while (stackIter.hasPrevious()) { WtNode e = stackIter.previous(); if (getNodeType(e).isSpecial()) { furthestBlock = e; break; } furthestBlockParent = e; } if (furthestBlock == null) { tb.popFromStackUntilIncludingRef(fe); addRtDataOfEndTag(fe, n); tb.removeFromActiveFormattingElements(fe); return; } // Step 8 tb.placeBookmarkAfter(fe); // Step 9 // Note: stackIter last returned furthestBlock after call to // previous. Make sure the next next() call will return the node // "above" furthestBlock. stackIter.next(); WtNode node = furthestBlock; WtNode lastNode = furthestBlock; WtNode lastNodeParent = furthestBlockParent; inner: for (int j = 0; j < 3;) { ++j; // Step 9.4 node = stackIter.next(); // Step 9.5 if (!tb.isInListOfActiveFormattingElements(node)) { // Node is guaranteed to be on stack. From here we // definitely get to step 9.4 next. Make sure, we know // which node was "above" node before node was removed. stackIter.remove(); continue inner; } else if (node == fe) { break inner; } WtNode replacement = getFactory().createRepairFormattingElement(node); tb.replaceInListOfActiveFormattingElements(node, replacement); stackIter.set(replacement); node = replacement; // Step 9.8 if (lastNode == furthestBlock) tb.moveBookmarkAfter(replacement); // Step 9.9 if (lastNodeParent != null) tb.removeFromParent(lastNode, lastNodeParent); tb.getContentOfNodeForModification(node).add(lastNode); // Step 9.10 lastNode = node; // Node is the replacement node that has just been created. // Since lastNode is set to node and node has not yet been // inserted into a parent element, lastNode's parent is set // to null. lastNodeParent = null; } // Step 10 if (isNodeOneOf(commonAncestor, TABLE, TBODY, TFOOT, THEAD, TR)) { if (lastNodeParent != null) tb.removeFromParent(lastNode, lastNodeParent); tb.insertInFosterParent(lastNode); } else { if (lastNodeParent != null) tb.removeFromParent(lastNode, lastNodeParent); tb.getContentOfNodeForModification(commonAncestor).add(lastNode); } WtNode adopter = getFactory().createAdopterElement(fe); WtNodeList contentOfFb = tb.getContentOfNodeForModification(furthestBlock); tb.getContentOfNodeForModification(adopter).addAll(contentOfFb); contentOfFb.clear(); contentOfFb.add(adopter); tb.replaceBookmarkWithAndRemove(adopter, fe); tb.removeFromStack(fe); tb.insertOnStackBelow(furthestBlock, adopter); } } /** * R33: A start tag whose tag name is table */ private void startTagR33(WtNode n) { // We don't support quirks mode! if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_TABLE); } /** * R34: A start tag whose tag name is one of: area, br, embed, img, keygen, * wbr */ private void startTagR34(WtNode n) { tb.reconstructActiveFormattingElements(); tb.insertAnHtmlElement(n); tb.popFromStack(); } /** * R37: A start tag whose tag name is hr */ private void startTagR37(WtNode n) { if (tb.isElementTypeInButtonScope(P)) dispatch(getFactory().createMissingRepairEndTag(P)); tb.insertAnHtmlElement(n); tb.popFromStack(); } /** * R47: An end tag whose tag name is br */ private void endTagR47(WtNode n) { tb.error(n, "12.2.5.4.7 - R47"); // This is an exception for which the create() method knows a special rule handleStartTag(getFactory().createElementRepair(n)); } /** * R50: A start tag whose tag name is one of: caption, col, colgroup, frame, * head, tbody, td, tfoot, th, thead, tr */ private void startTagR50(WtNode n) { tb.error(n, "12.2.5.4.7 - R50"); tb.ignore(n); } /** * R51: Any other start tag */ private void startTagR51(WtNode n) { tb.reconstructActiveFormattingElements(); tb.insertAnHtmlElement(n); if (n.getNodeType() == NT_XML_EMPTY_TAG) tb.popFromStack(); } /** * R41: Any other end tag */ private void endTagR52(WtNode n) { for (WtNode node : tb.getStack()) { if (TreeBuilder.isSameTag(node, n)) { tb.generateImpliedEndTags(n); if (!TreeBuilder.isSameTag(tb.getCurrentNode(), n)) tb.error(n, "12.2.5.4.7 - R52 (1)"); tb.popFromStackUntilIncludingRef(node); addRtDataOfEndTag(node, n); return; } else if (getNodeType(node).isSpecial()) { tb.error(n, "12.2.5.4.7 - R52 (2)"); tb.ignore(n); return; } } } } TreeBuilderInTable.java000066400000000000000000000553041335270560400507060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import static org.sweble.wikitext.parser.postprocessor.ElementType.CAPTION; import static org.sweble.wikitext.parser.postprocessor.ElementType.COL; import static org.sweble.wikitext.parser.postprocessor.ElementType.COLGROUP; import static org.sweble.wikitext.parser.postprocessor.ElementType.TABLE; import static org.sweble.wikitext.parser.postprocessor.ElementType.TBODY; import static org.sweble.wikitext.parser.postprocessor.ElementType.TD; import static org.sweble.wikitext.parser.postprocessor.ElementType.TH; import static org.sweble.wikitext.parser.postprocessor.ElementType.TR; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.visitor.VisitorLogic; public final class TreeBuilderInTable extends TreeBuilderModeBase { public TreeBuilderInTable(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } // ========================================================================= public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElseR16(n); return; } switch (nodeType) { case CAPTION: startTagR04(n); break; case COLGROUP: startTagR05(n); break; case COL: startTagR06(n); break; case TBODY: case TFOOT: case THEAD: startTagR07(n); break; case TD: case TH: case TR: startTagR08(n); break; case TABLE: startTagR09(n); break; case P: /** * The parser generates intermediate paragraph tags inside HTML * tables because it does not understand the scope. We can * simply ignore those intermediate paragraphs which do not * contain any other information that could get lost. */ if (n.getNodeType() != WtNode.NT_IM_START_TAG) anythingElseR16(n); break; default: anythingElseR16(n); return; } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElseR16(n); return; } switch (nodeType) { case TABLE: endTagR10(n); break; case PAGE: // == HTML, BODY case CAPTION: case COL: case COLGROUP: case TBODY: case TD: case TFOOT: case TH: case THEAD: case TR: endTagR11(n); break; case P: /** * The parser generates intermediate paragraph tags inside HTML * tables because it does not understand the scope. We can * simply ignore those intermediate paragraphs which do not * contain any other information that could get lost. */ if (n.getNodeType() != WtNode.NT_IM_END_TAG) anythingElseR16(n); break; default: anythingElseR16(n); break; } } // ========================================================================= public void visit(WtNode n) { anythingElseR16(n); } public void visit(WtText n) { ElementType nodeType = getNodeType(tb.getCurrentNode()); if (nodeType == null) { anythingElseR16(n); return; } switch (nodeType) { case TABLE: case TBODY: case TFOOT: case THEAD: case TR: tokenR01(n); break; default: anythingElseR16(n); break; } } public void visit(WtNewline n) { dispatch(getFactory().text(n.getContent())); } public void visit(WtXmlComment n) { tokenR02(n); } /* public void visit(WtTableImplicitTableBody n) { startTagR07(n); iterate(n.getBody()); dispatch(getFactory().synEndTag(TBODY)); } */ public void visit(WtTableCaption n) { startTagR04(n); iterate(n.getBody()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtTableCell n) { // startTagR08 re-dispatches startTagR08(n); } public void visit(WtTableHeader n) { // startTagR08 re-dispatches startTagR08(n); } public void visit(WtTableRow n) { // startTagR08 re-dispatches startTagR08(n); } public void visit(WtTable n) { // startTagR09 re-dispatches startTagR09(n); } // ========================================================================= /** * R01: A character token, if the current node is table, tbody, tfoot, * thead, or tr element */ private void tokenR01(WtNode node) { tb.resetPendingTableCharTokens(); tb.setOriginalInsertionMode(); tb.switchInsertionMode(InsertionMode.IN_TABLE_TEXT); dispatch(node); } /** * R02: A comment token */ private void tokenR02(WtNode n) { tb.appendToCurrentNode(n); } /** * R04: A start tag whose tag name is caption */ private void startTagR04(WtNode n) { tb.clearStackBackToTableContext(); tb.insertMarkerInActiveFormattingElements(); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_CAPTION); } /** * R05: A start tag whose tag name is colgroup */ private void startTagR05(WtNode n) { tb.clearStackBackToTableContext(); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_COLUMN_GROUP); } /** * R06: A start tag whose tag name is col */ private void startTagR06(WtNode n) { dispatch(getFactory().createMissingRepairStartTag(COLGROUP)); dispatch(n); } /** * R07: A start tag whose tag name is one of: tbody, tfoot, thead */ private void startTagR07(WtNode n) { tb.clearStackBackToTableContext(); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_TABLE_BODY); } /** * R08: A start tag whose tag name is one of: td, th, tr */ private void startTagR08(WtNode n) { WtNode itbody = getFactory().createMissingRepairStartTag(TBODY); WtNodeFlags.setImplicit(itbody); dispatch(itbody); dispatch(n); } /** * R09: A start tag whose tag name is table */ private void startTagR09(WtNode n) { tb.error(n, "12.2.5.4.9 R09"); dispatch(getFactory().createMissingRepairEndTag(TABLE)); // Since we have no fragment case, the fake token cannot be ignored dispatch(n); } /** * R10: An end tag whose tag name is table */ private void endTagR10(WtNode n) { // We don't have a fragment case // -> No scope checking addRtDataOfEndTag( tb.popFromStackUntilIncluding(TABLE), n); tb.resetInsertionMode(); } /** * R11: An end tag whose tag name is one of: body, caption, col, colgroup, * html, tbody, td, tfoot, th, thead, tr */ private void endTagR11(WtNode n) { tb.error(n, "12.2.5.4.9 R11"); tb.ignore(n); } /** * R16: Anything else */ private void anythingElseR16(WtNode n) { tb.error(n, "12.2.5.4.9 R16"); tb.setFosterParentingMode(true); tb.processInInsertionMode(InsertionMode.IN_BODY, n); tb.setFosterParentingMode(false); } // ========================================================================= public static final class TreeBuilderInTableText extends TreeBuilderModeBase { public TreeBuilderInTableText(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtNode n) { WtText textNode = getFactory().text(tb.getPendingTableCharTokens()); if (StringTools.isWhitespace(textNode.getContent())) { tb.insertText(textNode); } else { ((TreeBuilderInTable) tb.getModeImpl(InsertionMode.IN_TABLE)) .anythingElseR16(textNode); } tb.resetToOriginalInsertionMode(); dispatch(n); } public void visit(WtText n) { tb.appendToPendingTableCharTokens(n.getContent()); } public void visit(WtNewline n) { dispatch(getFactory().text(n.getContent())); } } // ========================================================================= public static final class TreeBuilderInCaption extends TreeBuilderModeBase { public TreeBuilderInCaption(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case CAPTION: case COL: case COLGROUP: case TBODY: case TD: case TFOOT: case TH: case THEAD: case TR: rule02(n); break; default: anythingElse(n); break; } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case CAPTION: { // We don't have a fragment case // -> No scope checking tb.generateImpliedEndTags(); if (!isNodeOneOf(tb.getCurrentNode(), CAPTION)) tb.error(n, "12.2.5.4.11 R01 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(CAPTION), n); tb.clearActiveFormattingElementsToLastMarker(); tb.switchInsertionMode(InsertionMode.IN_TABLE); break; } case TABLE: rule02(n); break; case PAGE: // == HTML, BODY case COL: case COLGROUP: case TBODY: case TD: case TFOOT: case TH: case THEAD: case TR: tb.error(n, "12.2.5.4.11 R03"); tb.ignore(n); break; default: anythingElse(n); break; } } public void visit(WtNode n) { anythingElse(n); // throw new AssertionError(); } private void rule02(WtNode n) { tb.error(n, "12.2.5.4.11 R02"); dispatch(getFactory().createMissingRepairEndTag(CAPTION)); // Since we have no fragment case, the fake token cannot be ignored dispatch(n); } public void visit(WtTableCaption n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableCell n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableHeader n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableRow n) { // rule02 re-dispatches rule02(n); } private void anythingElse(WtNode n) { tb.processInInsertionMode(InsertionMode.IN_BODY, n); } } // ========================================================================= public static final class TreeBuilderInColumnGroup extends TreeBuilderModeBase { public TreeBuilderInColumnGroup(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); } else if (nodeType == COL) { tb.insertAnHtmlElement(n); tb.popFromStack(); } else { anythingElse(n); } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); } else if (nodeType == COLGROUP) { // We have no fragment case! if (getNodeType(tb.popFromStack()) != COLGROUP) throw new AssertionError(); tb.switchInsertionMode(InsertionMode.IN_TABLE); } else if (nodeType == COL) { tb.error(n, "12.2.5.4.12 R07"); tb.ignore(n); } else { anythingElse(n); } } public void visit(WtNode n) { // anythingElse(n); throw new AssertionError(); } public void visit(WtText n) { if (StringTools.isWhitespace(n.getContent())) { tb.insertText(n); } else { anythingElse(n); } } public void visit(WtNewline n) { dispatch(getFactory().text(n.getContent())); } public void visit(WtXmlComment n) { tb.appendToCurrentNode(n); } private void anythingElse(WtNode n) { dispatch(getFactory().createMissingRepairEndTag(COLGROUP)); // Since we have no fragment case, the fake token cannot be ignored dispatch(n); } } // ========================================================================= public static final class TreeBuilderInTableBody extends TreeBuilderModeBase { public TreeBuilderInTableBody(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case TR: rule01(n); break; case TH: case TD: rule02(n); break; case CAPTION: case COL: case COLGROUP: case TBODY: case TFOOT: case THEAD: rule04(n); break; default: anythingElse(n); break; } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case TBODY: case TFOOT: case THEAD: if (!tb.isElementTypeInTableScope(nodeType)) { tb.error(n, "12.2.5.4.13 R03"); tb.ignore(n); } else { tb.clearStackBackToTableBodyContext(); addRtDataOfEndTag(tb.popFromStack(), n); tb.switchInsertionMode(InsertionMode.IN_TABLE); } break; case TABLE: rule04(n); break; case PAGE: // == HTML,BODY case CAPTION: case COL: case COLGROUP: case TD: case TH: case TR: tb.error(n, "12.2.5.4.13 R05"); tb.ignore(n); break; default: anythingElse(n); break; } } public void visit(WtNode n) { anythingElse(n); // throw new AssertionError(); } public void visit(WtTableRow n) { rule01(n); iterate(n.getBody()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtTableHeader n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableCell n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableCaption n) { // rule04 re-dispatches rule04(n); } private void rule01(WtNode n) { tb.clearStackBackToTableBodyContext(); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_ROW); } private void rule02(WtNode n) { /* * This is extra: It's valid in Wikitext for the first row to be * implicit. Therefore we'll look for table to which this cell * belongs and if there's no row yet, this is legal and will become * the implicit first row. */ WtNode table = tb.getFromStack(TABLE); if (table.getNodeType() == WtNode.NT_TABLE && !hasRows((WtTable) table)) { // Pretend we saw the implicit row: WtNode tr = getFactory().createMissingRepairStartTag(TR); WtNodeFlags.setImplicit(tr); dispatch(tr); dispatch(n); } else { tb.error(n, "12.2.5.4.13 R02"); dispatch(getFactory().createMissingRepairStartTag(TR)); dispatch(n); } } /** * Iterate through the elements of the "new" table that we already * processed to see if the table already has a row attached. */ private boolean hasRows(WtTable table) { for (WtNode n : table.getBody()) { switch (n.getNodeType()) { case WtNode.NT_TABLE_IMPLICIT_TBODY: for (WtNode rows : n) { if (getNodeType(rows) == TR) return true; } return false; case WtNode.NT_TEXT: // Whitespace only text can be part of the table. // Non-whitespace text should have been hoisted in // front of the table already -> no need to check. continue; case WtNode.NT_TABLE_CAPTION: continue; case WtNode.NT_XML_ELEMENT: if (getNodeType(n) == CAPTION) continue; else ; // FALL THROUGH default: // Any other garbage should have been hoisted in front // of the table already. throw new AssertionError(); } } return false; } private void rule04(WtNode n) { // We have no fragment case! tb.clearStackBackToTableBodyContext(); ElementType curNodeType = getNodeType(tb.getCurrentNode()); switch (curNodeType) { case TBODY: case TFOOT: case THEAD: dispatch(getFactory().createMissingRepairEndTag(curNodeType)); break; default: throw new AssertionError(); } dispatch(n); } private void anythingElse(WtNode n) { tb.processInInsertionMode(InsertionMode.IN_TABLE, n); } } // ========================================================================= public static final class TreeBuilderInRow extends TreeBuilderModeBase { public TreeBuilderInRow(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case TH: case TD: rule01(n); break; case CAPTION: case COL: case COLGROUP: case TBODY: case TFOOT: case THEAD: case TR: rule03(n); break; default: anythingElse(n); break; } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case TR: { // We don't have a fragment case! tb.clearStackBackToTableRowContext(); WtNode row = tb.popFromStack(); if (getNodeType(row) != TR) throw new AssertionError(); addRtDataOfEndTag(row, n); tb.switchInsertionMode(InsertionMode.IN_TABLE_BODY); break; } case TABLE: rule03(n); break; case TBODY: case TFOOT: case THEAD: if (tb.isElementTypeInTableScope(nodeType)) { tb.error(n, "12.2.5.4.14 R04"); tb.ignore(n); } else { dispatch(getFactory().createMissingRepairEndTag(TR)); dispatch(n); } break; case PAGE: // == HTML,BODY case CAPTION: case COL: case COLGROUP: case TD: case TH: tb.error(n, "12.2.5.4.14 R05"); tb.ignore(n); break; default: anythingElse(n); break; } } public void visit(WtNode n) { anythingElse(n); // throw new AssertionError(n.toString()); } public void visit(WtTableCell n) { rule01(n); iterate(n.getBody()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtTableHeader n) { rule01(n); iterate(n.getBody()); dispatch(getFactory().createSyntheticEndTag(n)); } public void visit(WtTableCaption n) { // rule03 re-dispatches rule03(n); } public void visit(WtTableRow n) { // rule03 re-dispatches rule03(n); } private void rule01(WtNode n) { tb.clearStackBackToTableRowContext(); tb.insertAnHtmlElement(n); tb.switchInsertionMode(InsertionMode.IN_CELL); tb.insertMarkerInActiveFormattingElements(); } private void rule03(WtNode n) { dispatch(getFactory().createMissingRepairEndTag(TR)); // We don't have a fragment case! dispatch(n); } private void anythingElse(WtNode n) { tb.processInInsertionMode(InsertionMode.IN_TABLE, n); } } // ========================================================================= public static final class TreeBuilderInCell extends TreeBuilderModeBase { public TreeBuilderInCell(VisitorLogic logic, TreeBuilder treeBuilder) { super(logic, treeBuilder); } public void visit(WtXmlStartTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case CAPTION: case COL: case COLGROUP: case TBODY: case TD: case TFOOT: case TH: case THEAD: case TR: rule02(n); break; default: anythingElse(n); break; } } public void visit(WtXmlEndTag n) { ElementType nodeType = getNodeType(n); if (nodeType == null) { anythingElse(n); return; } switch (nodeType) { case TD: case TH: if (!tb.isElementTypeInTableScope(nodeType)) { tb.error(n, "12.2.5.4.15 R01 (1)"); tb.ignore(n); } else { tb.generateImpliedEndTags(); if (getNodeType(tb.getCurrentNode()) != nodeType) tb.error(n, "12.2.5.4.15 R01 (2)"); addRtDataOfEndTag( tb.popFromStackUntilIncluding(nodeType), n); tb.clearActiveFormattingElementsToLastMarker(); tb.switchInsertionMode(InsertionMode.IN_ROW); } break; case PAGE: // == HTML,BODY case CAPTION: case COL: case COLGROUP: tb.error(n, "12.2.5.4.15 R03"); tb.ignore(n); break; case TABLE: case TBODY: case TFOOT: case THEAD: case TR: if (!tb.isElementTypeInTableScope(nodeType)) { switch (nodeType) { case TBODY: case TFOOT: case THEAD: tb.error(n, "12.2.5.4.15 R04"); tb.ignore(n); break; default: // We don't have a fragment case. Then, // according to spec, this can only happen // for TBODY, TFOOT and THEAD throw new AssertionError(nodeType.toString()); } } else { closeCell(); dispatch(n); } break; default: anythingElse(n); break; } } public void visit(WtNode n) { anythingElse(n); // throw new AssertionError(n.toString()); } public void visit(WtTableCaption n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableCell n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableHeader n) { // rule02 re-dispatches rule02(n); } public void visit(WtTableRow n) { // rule02 re-dispatches rule02(n); } private void rule02(WtNode n) { // We don't have a fragment case! closeCell(); dispatch(n); } private void anythingElse(WtNode n) { tb.processInInsertionMode(InsertionMode.IN_BODY, n); } /** * This method is only called if a cell has to be closed forcefully. */ private void closeCell() { if (tb.isElementTypeInTableScope(TD)) { dispatch(getFactory().createMissingRepairEndTag(TD)); } else { if (!tb.isElementTypeInTableScope(TH)) throw new AssertionError(); dispatch(getFactory().createMissingRepairEndTag(TH)); } } } } TreeBuilderModeBase.java000066400000000000000000000077731335270560400510560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import org.sweble.wikitext.parser.NonStandardElementBehavior; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtNamedXmlElement; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.ptk.common.ast.RtData; import de.fau.cs.osr.utils.visitor.VisitorLogic; public class TreeBuilderModeBase extends AstVisitor { protected final TreeBuilder tb; // ===================================================================== public TreeBuilderModeBase( VisitorLogic logic, TreeBuilder treeBuilder) { super(logic); this.tb = treeBuilder; } // ===================================================================== @Override public Object dispatch(WtNode node) { if (TreeBuilder.DEBUG) { String nodeName = node.getNodeName(); if (node instanceof WtNamedXmlElement) nodeName = String.format( "%s <%s>", nodeName, ((WtNamedXmlElement) node).getName()); tb.dbgIn("~~> %s (%08X)", nodeName, System.identityHashCode(node)); } Object result = super.dispatch(node); if (TreeBuilder.DEBUG) tb.dbgOut("<~~ %s", node.getNodeName()); return result; } // ===================================================================== protected ElementFactory getFactory() { return tb.getFactory(); } protected NonStandardElementBehavior getNonStandardElementBehavior( String elementName) { return tb.getConfig().getNonStandardElementBehavior(elementName); } protected static boolean isNodeOneOf(WtNode node, ElementType... types) { return TreeBuilder.isNodeTypeOneOf(node, types); } protected static ElementType getNodeType(WtNode node) { return TreeBuilder.getNodeType(node); } protected static boolean isTypeOneOf( ElementType nodeType, ElementType... types) { return TreeBuilder.isTypeOneOf(nodeType, types); } protected static void addRtDataOfEndTag(WtNode finish, WtNode endTag) { WtRtData etRtd = endTag.getRtd(); if (etRtd == null) return; if (WtNodeFlags.isRepairNode(endTag)) // Synthetic tags should not show up in RTD information. return; if (endTag.getNodeType() == WtNode.NT_IM_END_TAG) { // Special treatment for intermediate tags addRtDataOfImEndTag(finish, etRtd); return; } WtRtData feRtd = finish.getRtd(); if (feRtd == null) { // The element we have to finish might not have RTD data associated. finish.setRtd((Object) null); feRtd = finish.getRtd(); } int size = feRtd.size(); if (size >= 2) feRtd.setField(size - 1, etRtd.getField(0)); } protected static void addRtDataOfImEndTag(WtNode finish, WtRtData etRtd) { switch (finish.getNodeType()) { case WtNode.NT_BOLD: case WtNode.NT_ITALICS: { RtData feRtd = finish.getRtd(); if (feRtd == null) { finish.setRtd(RtData.SEP, etRtd.getField(0)); } else { feRtd.setField(1, etRtd.getField(0)); } break; } case WtNode.NT_XML_ELEMENT: { RtData feRtd = finish.getRtd(); if (feRtd == null) { finish.setRtd(RtData.SEP, RtData.SEP, etRtd.getField(0)); } else { feRtd.setField(2, etRtd.getField(0)); } break; } default: // Finish is assumed to be WtBold, WtItalics or an WtXmlElement node throw new AssertionError(); } } } TreeBuilderWarning.java000066400000000000000000000043671335270560400510000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import java.io.Serializable; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.ptk.common.ast.Span; public final class TreeBuilderWarning extends Warning implements Serializable { private static final long serialVersionUID = -3629058682383966718L; protected final WtNode trigger; // ========================================================================= public TreeBuilderWarning(WtNode trigger, String message) { super(new Span(trigger.getNativeLocation(), null), TreeBuilder.class, makeMessage(trigger, message)); this.trigger = trigger; } private static String makeMessage(WtNode trigger, String message) { return String.format("%s @ %s", message, trigger.getNodeName()); } // ========================================================================= public WtNode getTrigger() { return trigger; } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((trigger == null) ? 0 : trigger.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; TreeBuilderWarning other = (TreeBuilderWarning) obj; if (trigger == null) { if (other.trigger != null) return false; } else if (!trigger.equals(other.trigger)) return false; return true; } } WtNodeFlags.java000066400000000000000000000033311335270560400474070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/postprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.postprocessor; import org.sweble.wikitext.parser.nodes.WtNode; public class WtNodeFlags { public static final String PARSER_RECOGNIZED = "parser-recognized"; public static void setParserRecognized(WtNode pEndTag) { pEndTag.setBooleanAttribute(PARSER_RECOGNIZED, true); } public static boolean isParserRecognized(WtNode n) { return n.getBooleanAttribute(PARSER_RECOGNIZED); } // ========================================================================= public static final String REPAIR = "repair"; public static WtNode setRepairNode(WtNode node) { node.setAttribute(REPAIR, true); return node; } public static boolean isRepairNode(WtNode node) { return node.getBooleanAttribute(REPAIR); } // ========================================================================= private static final String IMPLICIT = "implicit"; public static void setImplicit(WtNode node) { node.setBooleanAttribute(IMPLICIT, true); } public static boolean isImplicit(WtNode node) { return node.getBooleanAttribute(IMPLICIT); } } preprocessor/000077500000000000000000000000001335270560400441705ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserPreprocessedWikitext.java000066400000000000000000000021551335270560400512250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/preprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * */ package org.sweble.wikitext.parser.preprocessor; import org.sweble.wikitext.parser.WtEntityMap; public final class PreprocessedWikitext { private String wikitext; private WtEntityMap entityMap; public PreprocessedWikitext(String wikitext, WtEntityMap entityMap) { this.wikitext = wikitext; this.entityMap = entityMap; } public String getWikitext() { return wikitext; } public WtEntityMap getEntityMap() { return entityMap; } } WikitextPreprocessorContext.java000066400000000000000000000027041335270560400526220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/preprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.preprocessor; import de.fau.cs.osr.ptk.common.ParserContext; public class WikitextPreprocessorContext extends ParserContext { private String tagExtensionName; private int templateBraces; // ========================================================================= public String getTagExtensionName() { return tagExtensionName; } public void setTagExtensionName(String name) { this.tagExtensionName = name; } public int getTemplateBraces() { return templateBraces; } public void setTemplateBraces(int templateBraces) { this.templateBraces = templateBraces; } // ========================================================================= @Override public void clear() { this.tagExtensionName = null; this.templateBraces = 0; } } WikitextPreprocessorState.java000066400000000000000000000100051335270560400522470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/preprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.preprocessor; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.ParserState; public class WikitextPreprocessorState extends ParserState { private ParserConfig config; private WtEntityMap entityMap; private boolean autoCorrect; private boolean warningsEnabled; private boolean gatherRtData; // ========================================================================= private boolean hasOnlyInclude; private boolean parseForInclusion; // ========================================================================= public WikitextPreprocessorState() { super(WikitextPreprocessorContext.class); this.hasOnlyInclude = false; this.parseForInclusion = false; } // ========================================================================= public ParserConfig getConfig() { return config; } public void init( ParserConfig config, WtEntityMap entityMap, boolean forInclusion) { this.config = config; this.entityMap = entityMap; this.parseForInclusion = forInclusion; this.autoCorrect = config.isAutoCorrect(); this.warningsEnabled = config.isWarningsEnabled(); this.gatherRtData = config.isGatherRtData(); } // ========================================================================= public WtEntityMap getEntityMap() { return entityMap; } public boolean isAutoCorrect() { return autoCorrect; } public boolean isWarnignsEnabled() { return warningsEnabled; } public boolean isGatherRtData() { return gatherRtData; } // ========================================================================= public void setTagExtensionName(String name) { getTop().setTagExtensionName(name); } public boolean isValidClosingTag(String name) { String cur = getTop().getTagExtensionName(); if (cur == null) return false; return name.compareToIgnoreCase(cur) == 0; } public void setTemplateBraces(int i) { getTop().setTemplateBraces(i); } public int getTemplateBraces() { return getTop().getTemplateBraces(); } public boolean hasAtLeastTemplateBraces(int i) { return getTop().getTemplateBraces() >= i; } public void eatTemplateBraces(int i) { getTop().setTemplateBraces( getTop().getTemplateBraces() - i); } // ========================================================================= public boolean isHasOnlyInclude() { return hasOnlyInclude; } public void setHasOnlyInclude(boolean hasOnlyInclude) { this.hasOnlyInclude = hasOnlyInclude; } public boolean isParseForInclusion() { return parseForInclusion; } public boolean isIgnoredElement(String name) { String lcName = name.toLowerCase(); if (isParseForInclusion()) { return "noinclude".compareTo(lcName) == 0; } else { return "includeonly".compareTo(lcName) == 0; } } public boolean isIgnoredTag(String name) { String lcName = name.toLowerCase(); if (isParseForInclusion()) { return "includeonly".compareTo(lcName) == 0; } else { return ("noinclude".compareTo(lcName) == 0) || ("onlyinclude".compareTo(lcName) == 0); } } public boolean isRedirectKeyword(String keyword) { return config.isRedirectKeyword(keyword); } public WtNode getEntity(int id) { return entityMap.getEntity(id); } } utils/000077500000000000000000000000001335270560400426025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parserAstTextUtils.java000066400000000000000000000036351335270560400460710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; public interface AstTextUtils { /** * When converting an AST to text, the conversion will abort with a * StringConversionException if it encounters an unresolved XML entity * reference. If a partial conversion is performed, the conversion will stop * at a unresolved XML entity reference. */ public static final int FAIL_ON_UNRESOLVED_ENTITY_REF = 1; public static final int AST_TO_TEXT_LAST_OPTION = 1; // ========================================================================= public String astToText(WtNode node) throws StringConversionException; public String astToText(WtNode node, int... options) throws StringConversionException; public PartialConversion astToTextPartial(WtNode node); public PartialConversion astToTextPartial(WtNode node, int... options); // ========================================================================= public interface PartialConversion { /** * Concatenated text of the first nodes which could be converted. */ public String getText(); /** * The remaining nodes, the first of which stopped the conversion. */ public WtNodeList getTail(); } } AstTextUtilsImpl.java000066400000000000000000000145461335270560400467160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.util.Iterator; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; public class AstTextUtilsImpl implements AstTextUtils { protected final ParserConfig parserConfig; // ========================================================================= public AstTextUtilsImpl(ParserConfig parserConfig) { this.parserConfig = parserConfig; } // ========================================================================= @Override public String astToText(WtNode node) throws StringConversionException { return astToText(node, new SimpleStringConverter()); } @Override public String astToText(WtNode node, int... options) throws StringConversionException { return astToText(node, new SimpleStringConverter(options)); } protected String astToText(WtNode node, SimpleStringConverter sc) throws StringConversionException { /* We will not resolve content nodes into strings unless the specified * node itself is a content node. */ int nodeType = node.getNodeType(); if (node instanceof WtContentNode) nodeType = WtNode.NT_NODE_LIST; sc.dispatch(node, nodeType); return sc.toString(); } @Override public PartialConversion astToTextPartial(WtNode node) { return astToTextPartial(node, new PartialStringConverter()); } @Override public PartialConversion astToTextPartial(WtNode node, int... options) { return astToTextPartial(node, new PartialStringConverter(options)); } protected PartialConversion astToTextPartial( WtNode node, final PartialStringConverter sc) { /* We will not resolve content nodes into strings unless the specified * node itself is a content node. */ int nodeType = node.getNodeType(); if (node instanceof WtContentNode) nodeType = WtNode.NT_NODE_LIST; try { sc.dispatch(node, nodeType); } catch (StringConversionException e) { // The specified node is not a container/list and could not be // converted. sc.tail = nf().list(node); } return new PartialConversion() { @Override public String getText() { return sc.toString(); } @Override public WtNodeList getTail() { return sc.tail; } }; } // ========================================================================= protected WikitextNodeFactory nf() { return this.parserConfig.getNodeFactory(); } // ========================================================================= public static class SimpleStringConverter { protected boolean failOnUnresolvedEntityRef; protected StringBuilder b = new StringBuilder(); public SimpleStringConverter() { failOnUnresolvedEntityRef = false; } public SimpleStringConverter(int[] options) { this(); for (int option : options) setOption(option); } protected void setOption(int option) { switch (option) { case FAIL_ON_UNRESOLVED_ENTITY_REF: failOnUnresolvedEntityRef = true; break; default: throw new IllegalArgumentException("Unknown option"); } } public String toString() { return b.toString(); } public void dispatch(WtNode node, int nodeType) throws StringConversionException { switch (nodeType) { case WtNode.NT_NODE_LIST: visit((WtNodeList) node); break; case WtNode.NT_TEXT: visit((WtText) node); break; case WtNode.NT_XML_CHAR_REF: visit((WtXmlCharRef) node); break; case WtNode.NT_XML_ENTITY_REF: visit((WtXmlEntityRef) node); break; case WtNode.NT_XML_COMMENT: visit((WtXmlComment) node); break; case WtNode.NT_IGNORED: visit((WtIgnored) node); break; default: visitNotFound(node); break; } } protected void visitNotFound(WtNode node) throws StringConversionException { throw new StringConversionException(node); } protected void visit(WtIgnored node) { // Ignore } protected void visit(WtXmlComment node) { // Ignore } protected void visit(WtXmlEntityRef node) throws StringConversionException { if (node.getResolved() == null) { if (failOnUnresolvedEntityRef) throw new StringConversionException(node); b.append('&'); b.append(node.getName()); b.append(';'); } else { b.append(node.getResolved()); } } protected void visit(WtXmlCharRef node) { b.append(Character.toChars(node.getCodePoint())); } protected void visit(WtText node) { b.append(node.getContent()); } protected void visit(WtNodeList node) throws StringConversionException { for (WtNode n : node) dispatch(n, n.getNodeType()); } } // ========================================================================= public class PartialStringConverter extends SimpleStringConverter { WtNodeList tail = nf().emptyList(); public PartialStringConverter() { } public PartialStringConverter(int[] options) { super(options); } @Override public void visit(WtNodeList node) throws StringConversionException { Iterator i = node.iterator(); while (i.hasNext()) { WtNode c = i.next(); try { dispatch(c, c.getNodeType()); } catch (StringConversionException e) { tail = nf().list(); tail.add(c); while (i.hasNext()) tail.add(i.next()); return; } } } } } NodeStats.java000066400000000000000000000066141335270560400453600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.StringTools; public class NodeStats { public static void process(WtNode astNode) { new NodeStatsVisitor().go(astNode); } protected static final class NodeStatsVisitor extends AstVisitor { private final Map nodeCounts = new HashMap(); private int varCount = 0; private int varEmptyCount = 0; private int varChildCount = 0; private int varMaxChildCount = -1; private int fixCount = 0; private int fixChildCount = 0; private int leafCount = 0; @Override protected Object after(WtNode node, Object result) { System.out.println("Analysis:"); List nodeNames = new ArrayList(nodeCounts.keySet()); Collections.sort(nodeNames); int sum = 0; for (String name : nodeNames) { int count = nodeCounts.get(name); sum += count; String space = StringTools.strrep('.', 80 - name.length()); System.out.format(" %s %s %5d\n", name, space, count); } System.out.println(" " + StringTools.strrep('=', 87)); System.out.format(" %s%5d\n", StringTools.strrep(' ', 82), sum); System.out.println(); System.out.println(" Nodes with variable number of children: "); System.out.format(" Count: %5d\n", varCount); System.out.format(" Leaf: %5d\n", varEmptyCount); System.out.format(" Biggest: %5d\n", varMaxChildCount); System.out.format(" Average: %5.2f\n", varChildCount / (float) (varCount - varEmptyCount)); System.out.println(); System.out.println(" Nodes with fixed number of children: "); System.out.format(" Inner: %5d\n", fixCount); System.out.format(" Leafs: %5d\n", leafCount); System.out.format(" Average: %5.2f\n", fixChildCount / (float) fixCount); return super.after(node, result); } public void visit(WtNode n) { if (n != null) { countNode(n); int size = n.size(); if (n.isList()) { ++varCount; varChildCount += size; if (n.isEmpty()) ++varEmptyCount; if (size > varMaxChildCount) varMaxChildCount = size; } else { if (!n.isEmpty()) { ++fixCount; fixChildCount += size; } else { ++leafCount; } } iterate(n); } } private void countNode(WtNode n) { Class clazz = n.getClass(); String name = clazz.getName(); Integer i = nodeCounts.get(name); if (i == null) i = 0; nodeCounts.put(name, i + 1); } } } NonExpandingParser.java000066400000000000000000000072571335270560400472250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.IOException; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WikitextEncodingValidator; import org.sweble.wikitext.parser.WikitextParser; import org.sweble.wikitext.parser.WikitextPostprocessor; import org.sweble.wikitext.parser.WikitextPreprocessor; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.parser.PreprocessorToParserTransformer; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import de.fau.cs.osr.ptk.common.ParserCommon; import xtc.parser.ParseException; public final class NonExpandingParser extends ParserCommon { private ParserConfig parserConfig; // ========================================================================= public NonExpandingParser() { parserConfig = new NonExpandingParserConfig(); } public NonExpandingParser( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect) { parserConfig = new NonExpandingParserConfig( warningsEnabled, gatherRtd, autoCorrect); } public NonExpandingParser( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect, boolean langConvTagsEnabled) { parserConfig = new SimpleParserConfig( warningsEnabled, gatherRtd, autoCorrect, langConvTagsEnabled); } public NonExpandingParser( boolean convertIllegalCodePoints, boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect, boolean langConvTagsEnabled) { parserConfig = new SimpleParserConfig( convertIllegalCodePoints, warningsEnabled, gatherRtd, autoCorrect, langConvTagsEnabled); } // ========================================================================= @Override public WtNode parseArticle(String source, String title) throws IOException, ParseException { // Encoding validation WikitextEncodingValidator v = new WikitextEncodingValidator(); ValidatedWikitext validated = v.validate(parserConfig, source, title); // Pre-processing WikitextPreprocessor prep = new WikitextPreprocessor(parserConfig); WtPreproWikitextPage prepArticle = (WtPreproWikitextPage) prep.parseArticle(validated, title, false); // Parsing PreprocessedWikitext ppw = PreprocessorToParserTransformer .transform(prepArticle); WikitextParser p = new WikitextParser(parserConfig); WtParsedWikitextPage parsedArticle = (WtParsedWikitextPage) p.parseArticle(ppw, title); // Post-processing WikitextPostprocessor postp = new WikitextPostprocessor(parserConfig); WtParsedWikitextPage postpArticle = (WtParsedWikitextPage) postp.postprocess(parsedArticle, title); // User-defined processing WtParsedWikitextPage userProcessed = (WtParsedWikitextPage) process(postpArticle); return userProcessed; } @Override public Object getConfig() { return parserConfig; } } NonExpandingParserConfig.java000066400000000000000000000033271335270560400503450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; public class NonExpandingParserConfig extends SimpleParserConfig { private boolean fosterParenting; private boolean fosterParentingForTransclusions; public NonExpandingParserConfig() { super(); initialize(); } public NonExpandingParserConfig( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect) { super(warningsEnabled, gatherRtd, autoCorrect); initialize(); } private void initialize() { fosterParenting = super.isFosterParenting(); fosterParentingForTransclusions = super.isFosterParentingForTransclusions(); } @Override public boolean isFosterParenting() { return fosterParenting; } public void setFosterParenting(boolean fosterParenting) { this.fosterParenting = fosterParenting; } @Override public boolean isFosterParentingForTransclusions() { return fosterParentingForTransclusions; } public void setFosterParentingForTransclusions( boolean fosterParentingForTransclusions) { this.fosterParentingForTransclusions = fosterParentingForTransclusions; } } NonPostproParser.java000066400000000000000000000055351335270560400467530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.IOException; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WikitextEncodingValidator; import org.sweble.wikitext.parser.WikitextParser; import org.sweble.wikitext.parser.WikitextPreprocessor; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.parser.PreprocessorToParserTransformer; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import de.fau.cs.osr.ptk.common.ParserCommon; import xtc.parser.ParseException; public final class NonPostproParser extends ParserCommon { private ParserConfig parserConfig; // ========================================================================= public NonPostproParser() { parserConfig = new SimpleParserConfig(); } public NonPostproParser( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect) { parserConfig = new SimpleParserConfig( warningsEnabled, gatherRtd, autoCorrect); } // ========================================================================= @Override public WtNode parseArticle(String source, String title) throws IOException, ParseException { // Encoding validation WikitextEncodingValidator v = new WikitextEncodingValidator(); ValidatedWikitext validated = v.validate(parserConfig, source, title); // Pre-processing WikitextPreprocessor prep = new WikitextPreprocessor(parserConfig); WtPreproWikitextPage prepArticle = (WtPreproWikitextPage) prep.parseArticle(validated, title, false); // Parsing PreprocessedWikitext ppw = PreprocessorToParserTransformer .transform(prepArticle, false); WikitextParser p = new WikitextParser(parserConfig); WtParsedWikitextPage parsedArticle = (WtParsedWikitextPage) p.parseArticle(ppw, title); // User-defined processing WtParsedWikitextPage userProcessed = (WtParsedWikitextPage) process(parsedArticle); return userProcessed; } @Override public Object getConfig() { return parserConfig; } } ParserShouldNotBeHereException.java000066400000000000000000000051561335270560400515020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import de.fau.cs.osr.ptk.common.ast.AstLocation; import de.fau.cs.osr.utils.StringTools; public class ParserShouldNotBeHereException extends RuntimeException { private static final long serialVersionUID = 1L; private final AstLocation location; private final String context; private final int pos; // ========================================================================= public ParserShouldNotBeHereException( AstLocation location, String context, int pos) { this.location = location; this.context = context; this.pos = pos; } public ParserShouldNotBeHereException( xtc.tree.Location location, String context, int pos) { this(new AstLocation(location), context, pos); } // ========================================================================= public AstLocation getLocation() { return location; } public String getContext() { return context; } public int getPos() { return pos; } // ========================================================================= @Override public String toString() { int p = pos; String before = ""; if (context.length() < p) p = context.length(); StringTools.escJava(context.substring(0, p)); String after = ""; if (context.length() > p) after = StringTools.escJava(context.substring(p)); if (before.isEmpty() && after.isEmpty()) { return String.format( "ParserShouldNotBeHereException: %s: No context available", location.toString()); } else if (before.isEmpty()) { return String.format( "ParserShouldNotBeHereException: %s: \"%s\"", location.toString(), after); } else if (after.isEmpty()) { return String.format( "ParserShouldNotBeHereException: %s: \"%s\" ", location.toString(), before); } else { return String.format( "ParserShouldNotBeHereException: %s: \"%s\" \"%s\"", location.toString(), before, after); } } } ParserStats.java000066400000000000000000000044551335270560400457300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.PrintStream; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import org.sweble.wikitext.parser.parser.RatsWikitextParser; import de.fau.cs.osr.utils.StringTools; public class ParserStats { public static final class MemoizedProduction { public int called; public int failed; public int reused; public int parsed; @Override public String toString() { return String.format( "MemoizedProduction [called=%5d, reused=%5d, parsed=%5d, failed=%5d]", called, reused, parsed, failed); } } private final Map memoizedProductions = new HashMap(); public Map getMemoizedProductions() { return memoizedProductions; } public void parsed(String prod) { getMemoizedProduction(prod).parsed++; } public void failed(String prod) { getMemoizedProduction(prod).failed++; } public void called(String prod) { getMemoizedProduction(prod).called++; } public void reused(String prod) { getMemoizedProduction(prod).reused++; } private MemoizedProduction getMemoizedProduction(String prod) { MemoizedProduction p = memoizedProductions.get(prod); if (p == null) { p = new MemoizedProduction(); memoizedProductions.put(prod, p); } return p; } public void dump(PrintStream err) { for (Entry x : RatsWikitextParser.getStats().getMemoizedProductions().entrySet()) { err.print(x.getKey() + ":"); err.print(StringTools.strrep(' ', 20 - x.getKey().length())); err.println(x.getValue()); } } } SimpleParserConfig.java000066400000000000000000000207121335270560400472030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.sweble.wikitext.parser.NonStandardElementBehavior; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WikitextNodeFactoryImpl; import org.sweble.wikitext.parser.parser.LinkBuilder.LinkType; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wikitext.parser.parser.LinkTargetParser; /** * This is a simple parser config that is ONLY suited for test purposes! */ public class SimpleParserConfig implements ParserConfig { private final boolean convertIllegalCodePoints; private final boolean warningsEnabled; private final boolean gatherRtd; private final boolean autoCorrect; private final boolean langConvTagsEnabled; private final WikitextNodeFactory nodeFactory; private final AstTextUtilsImpl textUtils; // ========================================================================= public SimpleParserConfig() { this( false /*convertIllegalCodePoints*/, true /*warningsEnabled*/, true/*gatherRtd*/, false/*autoCorrect*/, true/*langConvTagsEnabled*/); } public SimpleParserConfig( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect) { this.convertIllegalCodePoints = false; this.warningsEnabled = warningsEnabled; this.gatherRtd = gatherRtd; this.autoCorrect = autoCorrect; // Issue #48: false would be the smarter setting but we stick with true // for downward compatibility. this.langConvTagsEnabled = true; this.nodeFactory = new WikitextNodeFactoryImpl(this); this.textUtils = new AstTextUtilsImpl(this); } public SimpleParserConfig( boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect, boolean langConvTagsEnabled) { this.convertIllegalCodePoints = false; this.warningsEnabled = warningsEnabled; this.gatherRtd = gatherRtd; this.autoCorrect = autoCorrect; this.langConvTagsEnabled = langConvTagsEnabled; this.nodeFactory = new WikitextNodeFactoryImpl(this); this.textUtils = new AstTextUtilsImpl(this); } public SimpleParserConfig( boolean convertIllegalCodePoints, boolean warningsEnabled, boolean gatherRtd, boolean autoCorrect, boolean langConvTagsEnabled) { this.convertIllegalCodePoints = convertIllegalCodePoints; this.warningsEnabled = warningsEnabled; this.gatherRtd = gatherRtd; this.autoCorrect = autoCorrect; this.langConvTagsEnabled = langConvTagsEnabled; this.nodeFactory = new WikitextNodeFactoryImpl(this); this.textUtils = new AstTextUtilsImpl(this); } // ==[ Encoding validation features ]======================================= @Override public boolean isConvertIllegalCodePoints() { return convertIllegalCodePoints; } // ==[ Parser features ]==================================================== @Override public boolean isWarningsEnabled() { return warningsEnabled; } @Override public boolean isWarningLevelEnabled(WarningSeverity severity) { return true; } @Override public boolean isAutoCorrect() { return autoCorrect; } @Override public boolean isGatherRtData() { return gatherRtd; } // ==[ AST creation ]======================================================= @Override public WikitextNodeFactory getNodeFactory() { return nodeFactory; } @Override public AstTextUtils getAstTextUtils() { return textUtils; } // ==[ Link classification and parsing ]==================================== @Override public boolean isUrlProtocol(String proto) { return "http://".equalsIgnoreCase(proto) || "https://".equalsIgnoreCase(proto) || "mail:".equalsIgnoreCase(proto); } @Override public String getInternalLinkPrefixPattern() { // Doesn't make that much sense, but needed for testing ... return "[äöüßa-z]+"; } @Override public String getInternalLinkPostfixPattern() { return "[äöüßa-z]+"; } @Override public LinkType classifyTarget(String target) { LinkTargetParser ltp = new LinkTargetParser(); try { ltp.parse(this, target); } catch (LinkTargetException e) { return LinkType.INVALID; } String ns = ltp.getNamespace(); if ("file".equalsIgnoreCase(ns) || "image".equalsIgnoreCase(ns)) return LinkType.IMAGE; return LinkType.PAGE; } @Override public boolean isNamespace(String name) { // keep it simple ... return "image".equalsIgnoreCase(name) || "file".equalsIgnoreCase(name) || "template".equals(name) || "media".equals(name) || "category".equals(name); } @Override public boolean isTalkNamespace(String resultNs) { return resultNs.toLowerCase().equals("talk"); } @Override public boolean isInterwikiName(String name) { return "mediawiki".equalsIgnoreCase(name); } @Override public boolean isIwPrefixOfThisWiki(String iwPrefix) { return false; } // ==[ Names ]============================================================== @Override public boolean isValidPageSwitchName(String word) { return "NOTOC".equalsIgnoreCase(word); } @Override public boolean isValidExtensionTagName(String name) { // keep it simple ... return "ref".equalsIgnoreCase(name) || "pre".equalsIgnoreCase(name) || "nowiki".equalsIgnoreCase(name) || "gallery".equalsIgnoreCase(name) || "includeonly".equalsIgnoreCase(name) || "noinclude".equalsIgnoreCase(name) || "onlyinclude".equalsIgnoreCase(name); } public boolean isRedirectKeyword(String keyword) { return keyword.equalsIgnoreCase("#redirect"); } // ==[ Parsing XML elements ]=============================================== @Override public boolean isValidXmlEntityRef(String name) { return true; } @Override public String resolveXmlEntity(String name) { // keep it simple ... if ("amp".equalsIgnoreCase(name)) { return "&"; } else if ("lt".equalsIgnoreCase(name)) { return "<"; } else if ("gt".equalsIgnoreCase(name)) { return ">"; } else if ("nbsp".equalsIgnoreCase(name)) { return "\u00A0"; } else if ("middot".equalsIgnoreCase(name)) { return "\u00B7"; } else if ("mdash".equalsIgnoreCase(name)) { return "\u2014"; } else if ("ndash".equalsIgnoreCase(name)) { return "\u2013"; } else if ("equiv".equalsIgnoreCase(name)) { return "\u2261"; } else { return null; } } @Override public Map getXmlEntities() { return Collections.emptyMap(); } @Override public NonStandardElementBehavior getNonStandardElementBehavior( String elementName) { return NonStandardElementBehavior.UNSPECIFIED; } @Override public boolean isFosterParenting() { return true; } @Override public boolean isFosterParentingForTransclusions() { return true; } @Override public boolean isPreserveSemiPreLeadingSpace() { return false; } // ==[ Language Conversion Tags ]=========================================== private static final Set knownFlags = new HashSet(Arrays.asList( "A", "T", "R", "D", "-", "H", "N")); @Override public boolean isLangConvTagsEnabled() { return langConvTagsEnabled; } public boolean isLctFlag(String flag) { flag = normalizeLctFlag(flag); return knownFlags.contains(flag); } public String normalizeLctFlag(String flag) { return flag.trim().toUpperCase(); } private static final Set knownVariants = new HashSet(Arrays.asList( "zh", "zh-hans", "zh-hant", "zh-cn", "zh-tw", "zh-hk", "zh-sg")); public boolean isLctVariant(String variant) { variant = normalizeLctVariant(variant); return knownVariants.contains(variant); } public String normalizeLctVariant(String variant) { return variant.trim().toLowerCase(); } } StringConversionException.java000066400000000000000000000020021335270560400506320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import org.sweble.wikitext.parser.nodes.WtNode; public class StringConversionException extends Exception { private static final long serialVersionUID = 1L; private final WtNode node; public StringConversionException(WtNode node) { this.node = node; } public WtNode getNode() { return node; } } WtAstPrinter.java000066400000000000000000000051041335270560400460530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtEmptyImmutableNode; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.AstPrinter; import de.fau.cs.osr.ptk.common.ast.AstLeafNode; import de.fau.cs.osr.ptk.common.ast.AstNode; import de.fau.cs.osr.ptk.common.ast.AstNodeList; import de.fau.cs.osr.ptk.common.ast.AstStringNode; import de.fau.cs.osr.ptk.common.ast.AstText; public class WtAstPrinter extends AstPrinter { public void visit(AstNode n) { if (printAbsent((AstNode) n)) return; super.visit(n); } @Override public void visit(AstLeafNode n) { if (printAbsent((AstNode) n)) return; super.visit(n); } @Override public void visit(AstNodeList n) { if (printAbsent((AstNode) n)) return; super.visit(n); } @Override public void visit(AstStringNode n) { if (printAbsent((AstNode) n)) return; super.visit(n); } @Override public void visit(AstText n) { if (printAbsent((AstNode) n)) return; super.visit(n); } // ========================================================================= private boolean printAbsent(@SuppressWarnings("rawtypes") AstNode n) { if (!(n instanceof WtEmptyImmutableNode)) return false; WtEmptyImmutableNode ein = (WtEmptyImmutableNode) n; if (!ein.indicatesAbsence()) return false; p.indentln('-'); return true; } // ========================================================================= public static String print(WtNode node) { return WtAstPrinter.print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, WtNode node) { new WtAstPrinter(writer).go(node); return writer; } // ========================================================================= public WtAstPrinter(Writer writer) { super(writer); } } WtPrettyPrinter.java000066400000000000000000000463771335270560400466340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtBold; import org.sweble.wikitext.parser.nodes.WtDefinitionList; import org.sweble.wikitext.parser.nodes.WtDefinitionListDef; import org.sweble.wikitext.parser.nodes.WtDefinitionListTerm; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtHeading; import org.sweble.wikitext.parser.nodes.WtHorizontalRule; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtImEndTag; import org.sweble.wikitext.parser.nodes.WtImStartTag; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtItalics; import org.sweble.wikitext.parser.nodes.WtLctFlags; import org.sweble.wikitext.parser.nodes.WtLctRule; import org.sweble.wikitext.parser.nodes.WtLctRuleConv; import org.sweble.wikitext.parser.nodes.WtLctRuleGarbage; import org.sweble.wikitext.parser.nodes.WtLctRules; import org.sweble.wikitext.parser.nodes.WtLctVarConv; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtLinkOptionKeyword; import org.sweble.wikitext.parser.nodes.WtLinkOptionLinkTarget; import org.sweble.wikitext.parser.nodes.WtLinkOptionResize; import org.sweble.wikitext.parser.nodes.WtLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkTarget; import org.sweble.wikitext.parser.nodes.WtLinkTitle; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtName; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtOnlyInclude; import org.sweble.wikitext.parser.nodes.WtOrderedList; import org.sweble.wikitext.parser.nodes.WtPageName; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtSection; import org.sweble.wikitext.parser.nodes.WtSemiPre; import org.sweble.wikitext.parser.nodes.WtSemiPreLine; import org.sweble.wikitext.parser.nodes.WtSignature; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableImplicitTableBody; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateArguments; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtTicks; import org.sweble.wikitext.parser.nodes.WtUnorderedList; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.nodes.WtValue; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributeGarbage; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.nodes.WtXmlEmptyTag; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.PrinterBase; import de.fau.cs.osr.utils.StringTools; public class WtPrettyPrinter extends AstVisitor { // --[ WtInnerNode1 ]------------------------------------------------------- public void visit(WtLinkOptionLinkTarget n) { p.print("|link="); switch (n.getTargetType()) { case PAGE: case URL: dispatch(n.getTarget()); break; case DEFAULT: // This should NOT happen ... throw new AssertionError(); case NO_LINK: break; } } public void visit(WtRedirect n) { p.print("#REDIRECT[["); dispatch(n.getTarget()); p.print("]]"); } public void visit(WtTableImplicitTableBody n) { dispatch(n.getBody()); } public void visit(WtXmlAttribute n) { p.print(' '); dispatch(n.getName()); if (n.hasValue()) { boolean needQuotes = true; if (n.getValue().size() == 1) { switch (n.getValue().get(0).getNodeType()) { case WtNode.NT_TEMPLATE: case WtNode.NT_TEMPLATE_PARAMETER: needQuotes = false; } } p.print(needQuotes ? "=\"" : "="); dispatch(n.getValue()); if (needQuotes) p.print('"'); } } public void visit(WtXmlEmptyTag n) { if (n.getName().startsWith("#")) return; p.print('<'); p.print(n.getName()); dispatch(n.getXmlAttributes()); p.print(" />"); } public void visit(WtXmlStartTag n) { if (n.getName().startsWith("#")) return; p.print('<'); p.print(n.getName()); dispatch(n.getXmlAttributes()); p.print(">"); } public void visit(WtImStartTag n) { // Should not appear in post-processed wikitext } public void visit(WtLctRule n) { if (!n.isDirectConvert()) { p.print(n.getSearch()); p.print("=>"); } p.print(n.getVariant()); p.print(":"); dispatch(n.getReplace()); } // --[ WtInnerNode2 ]------------------------------------------------------- public void visit(WtExternalLink n) { scope.push(n); p.print("["); dispatch(n.getTarget()); if (n.hasTitle()) dispatch(n.getTitle()); p.print("]"); scope.pop(); } public void visit(WtInternalLink n) { scope.push(n); p.print(n.getPrefix()); p.print("[["); dispatch(n.getTarget()); if (n.hasTitle()) dispatch(n.getTitle()); p.print("]]"); p.print(n.getPostfix()); scope.pop(); } public void visit(WtSection n) { scope.push(n); p.clearEatNewlinesAndIndents(); p.needNewlines(2); iterate(n); p.needNewlines(2); scope.pop(); } public void visit(WtTable n) { p.clearEatNewlinesAndIndents(); p.needNewlines(2); p.print("{|"); dispatch(n.getXmlAttributes()); p.println(); dispatch(n.getBody()); p.clearEatNewlinesAndIndents(); p.capNewlines(1, 1); p.println(" |}"); p.needNewlines(2); } public void visit(WtTableCaption n) { p.clearEatNewlinesAndIndents(); p.capNewlines(1, 1); p.print(" |+"); if (!n.getXmlAttributes().isEmpty()) { dispatch(n.getXmlAttributes()); p.print(" |"); } p.eatNewlinesAndIndents(2); dispatch(n.getBody()); p.capNewlines(1, 1); } public void visit(WtTableCell n) { p.clearEatNewlinesAndIndents(); p.capNewlines(1, 1); p.print(" |"); if (!n.getXmlAttributes().isEmpty()) { dispatch(n.getXmlAttributes()); p.print(" |"); } p.eatNewlinesAndIndents(2); dispatch(n.getBody()); p.capNewlines(1, 1); } public void visit(WtTableHeader n) { p.clearEatNewlinesAndIndents(); p.capNewlines(1, 1); p.print(" !"); if (!n.getXmlAttributes().isEmpty()) { dispatch(n.getXmlAttributes()); p.print(" |"); } p.eatNewlinesAndIndents(2); dispatch(n.getBody()); p.capNewlines(1, 1); } public void visit(WtTableRow n) { if (!n.isImplicit()) { p.clearEatNewlinesAndIndents(); p.capNewlines(1, 1); p.print(" |-"); dispatch(n.getXmlAttributes()); p.println(); } dispatch(n.getBody()); } public void visit(WtTagExtension n) { p.print('<'); p.print(n.getName()); dispatch(n.getXmlAttributes()); p.print(n.hasBody() ? ">" : "/>"); if (n.hasBody()) { dispatch(n.getBody()); p.print("'); } } public void visit(WtTemplate n) { if (n.isPrecededByNewline()) { p.clearEatNewlinesAndIndents(); p.println(); } p.print("{{"); iterate(n); p.print("}}"); } public void visit(WtTemplateArgument n) { p.print('|'); if (n.hasName()) { dispatch(n.getName()); p.print('='); } dispatch(n.getValue()); } public void visit(WtXmlElement n) { p.print('<'); p.print(n.getName()); dispatch(n.getXmlAttributes()); p.print(n.hasBody() ? ">" : " />"); if (n.hasBody()) { dispatch(n.getBody()); p.print("'); } } public void visit(WtLctVarConv n) { p.print("-{"); if (n.hasFlags()) { dispatch(n.getFlags()); p.print('|'); } dispatch(n.getText()); p.print("}-"); } public void visit(WtLctRuleConv n) { p.print("-{"); if (n.hasFlags()) { dispatch(n.getFlags()); p.print('|'); } dispatch(n.getRules()); p.print("}-"); } // --[ WtInnerNode3 ]------------------------------------------------------- public void visit(WtImageLink n) { scope.push(n); p.print("[["); dispatch(n.getTarget()); dispatch(n.getOptions()); p.print("]]"); scope.pop(); } public void visit(WtTemplateParameter n) { p.print("{{{"); dispatch(n.getName()); if (n.hasDefault()) { p.print('|'); dispatch(n.getDefault()); } p.print("}}}"); } // --[ WtLeafNode ]--------------------------------------------------------- public void visit(WtHorizontalRule n) { p.clearEatNewlinesAndIndents(); p.needNewlines(2); p.println("----"); p.needNewlines(2); } public void visit(WtIllegalCodePoint n) { p.print(n.getCodePoint()); } public void visit(WtLinkOptionKeyword n) { p.print('|'); p.print(n.getKeyword()); } public void visit(WtLinkOptionResize n) { p.print('|'); if (n.getHeight() >= 0) { if (n.getWidth() >= 0) p.print(String.valueOf(n.getWidth())); p.print('x'); p.print(String.valueOf(n.getHeight())); } else { p.print(String.valueOf(n.getWidth())); } p.print("px"); } public void visit(WtPageSwitch n) { p.print("__"); p.print(n.getName()); p.print("__"); } public void visit(WtSignature n) { p.print(StringTools.strrep('~', n.getTildeCount())); } public void visit(WtTicks n) { p.print(StringTools.strrep('\'', n.getTickCount())); } public void visit(WtUrl n) { if (!n.getProtocol().isEmpty()) { p.print(n.getProtocol()); p.print(':'); } p.print(n.getPath()); } public void visit(WtXmlCharRef n) { p.print("&#"); p.print(String.valueOf(n.getCodePoint())); p.print(';'); } public void visit(WtXmlEndTag n) { if (n.getName().startsWith("#")) return; p.print("'); } public void visit(WtImEndTag n) { // Should not appear in post-processed wikitext } public void visit(WtXmlEntityRef n) { p.print('&'); p.print(n.getName()); p.print(';'); } public void visit(WtLctFlags n) { List flags = new ArrayList(); flags.addAll(n.getFlags()); flags.addAll(n.getVariants()); for (int i = 0; i < flags.size(); ++i) { if (i > 0) p.print(';'); p.print(flags.get(i)); } } // --[ WtNodeList ]--------------------------------------------------------- public void visit(WtNodeList n) { iterate(n); } // --[ WtContentNode ]------------------------------------------------------ public void visit(WtBody n) { iterate(n); } public void visit(WtBold n) { p.print("'''"); iterate(n); p.print("'''"); } public void visit(WtDefinitionList n) { ++insideList; scope.push(n); if (insideList <= 1) p.needNewlines(2); iterate(n); p.needNewlines(insideList > 1 ? 1 : 2); scope.pop(); --insideList; } public void visit(WtDefinitionListDef n) { scope.push(n); printListPrefix(n); iterate(n); p.println(); scope.pop(); } public void visit(WtDefinitionListTerm n) { scope.push(n); printListPrefix(n); iterate(n); p.println(); scope.pop(); } public void visit(WtHeading n) { int level = ((WtSection) scope.peek()).getLevel(); String equals = StringTools.strrep('=', level); p.print(equals); iterate(n); p.println(equals); } public void visit(WtItalics n) { p.print("''"); iterate(n); p.print("''"); } public void visit(WtLinkOptionAltText n) { p.print("|alt="); iterate(n); } public void visit(WtLinkOptions n) { for (WtNode a : n) { switch (a.getNodeType()) { case WtNode.NT_LINK_OPTION_ALT_TEXT: case WtNode.NT_LINK_OPTION_GARBAGE: case WtNode.NT_LINK_OPTION_KEYWORD: case WtNode.NT_LINK_OPTION_LINK_TARGET: case WtNode.NT_LINK_OPTION_RESIZE: break; default: // Only link options and garbage know that it has to leave a // pipe in front. We have to fix this for all other // elements (e.g. templates). p.print('|'); break; } dispatch(a); } } public void visit(WtLinkTitle n) { switch (scope.peek().getNodeType()) { case WtNode.NT_INTERNAL_LINK: p.print('|'); break; case WtNode.NT_EXTERNAL_LINK: p.print(' '); break; case WtNode.NT_IMAGE_LINK: default: break; } iterate(n); } public void visit(WtListItem n) { scope.push(n); printListPrefix(n); iterate(n); p.println(); scope.pop(); } private void printListPrefix(WtNode item) { String prefix = ""; boolean multipleNewLevels = false; WtNode parent = scope.get(1); if (scope.size() > 2 && !parent.isEmpty() && parent.get(0) == item) { // We're the first item in a list WtNode parentContainer = scope.get(2); if (!parentContainer.isEmpty() && parentContainer.get(0) == parent) { // The list to which we belong opened a new level itself. multipleNewLevels = true; } } Iterator i = scope.iterator(); outer: while (i.hasNext()) { parent = i.next(); switch (parent.getNodeType()) { case WtNode.NT_LIST_ITEM: // One more iteration to add prefix for (un-)ordered list if (multipleNewLevels) continue; case WtNode.NT_DEFINITION_LIST: break; case WtNode.NT_ORDERED_LIST: prefix = "#" + prefix; break; case WtNode.NT_UNORDERED_LIST: prefix = "*" + prefix; break; case WtNode.NT_DEFINITION_LIST_DEF: prefix = ":" + prefix; break; case WtNode.NT_DEFINITION_LIST_TERM: prefix = ";" + prefix; break; default: break outer; } if (multipleNewLevels) break; } if (!multipleNewLevels) { p.clearEatNewlinesAndIndents(); p.println(); } p.print(prefix); } public void visit(WtName n) { iterate(n); } public void visit(WtOnlyInclude n) { p.print(""); iterate(n); p.print(""); } public void visit(WtOrderedList n) { ++insideList; scope.push(n); if (insideList <= 1) p.needNewlines(2); iterate(n); p.needNewlines(insideList > 1 ? 1 : 2); scope.pop(); --insideList; } public void visit(WtParsedWikitextPage n) { iterate(n); } public void visit(WtPreproWikitextPage n) { iterate(n); } public void visit(WtParagraph n) { p.needNewlines(2); iterate(n); p.needNewlines(2); } public void visit(WtSemiPre n) { p.needNewlines(2); iterate(n); p.needNewlines(2); } public void visit(WtSemiPreLine n) { p.print(' '); iterate(n); p.println(); } public void visit(WtTemplateArguments n) { iterate(n); } public void visit(WtUnorderedList n) { ++insideList; scope.push(n); if (insideList <= 1) p.needNewlines(2); iterate(n); p.needNewlines(insideList > 1 ? 1 : 2); scope.pop(); --insideList; } public void visit(WtValue n) { iterate(n); } public void visit(WtWhitespace n) { iterate(n); } public void visit(WtXmlAttributes n) { for (WtNode a : n) { switch (a.getNodeType()) { case WtNode.NT_XML_ATTRIBUTE: case WtNode.NT_XML_ATTRIBUTE_GARBAGE: break; default: // Only attributes and garbage know that it has to leave a // space in front. We have to fix this for all other // elements (e.g. templates). p.print(' '); break; } dispatch(a); } } public void visit(WtLctRules n) { int i = 0; for (WtNode rule : n) { if (rule instanceof WtLctRuleGarbage) // Don't print garbage! continue; if (i++ > 0) p.print(";"); dispatch(rule); } } // --[ WtStringNode ]------------------------------------------------------- public void visit(WtIgnored n) { p.print(n.getContent()); } public void visit(WtLinkOptionGarbage n) { // Don't print garbage! } public void visit(WtNewline n) { p.println(); } public void visit(WtPageName n) { iterate(n); } public void visit(WtLinkTarget.WtNoLink n) { } public void visit(WtXmlAttributeGarbage n) { // Don't print garbage! } public void visit(WtXmlComment n) { p.print(n.getPrefix()); p.print(""); p.print(n.getSuffix()); } public void visit(WtTagExtensionBody n) { p.verbatim(n.getContent()); } public void visit(WtLctRuleGarbage n) { // Don't print garbage! } public void visit(WtText n) { p.print(n.getContent()); } // ========================================================================= public static String print(T node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, T node) { new WtPrettyPrinter(writer).go(node); return writer; } // ========================================================================= protected final PrinterBase p; private final LinkedList scope = new LinkedList(); private boolean newlineAtEof = false; private int insideList; // ========================================================================= public WtPrettyPrinter(Writer writer) { this.p = new PrinterBase(writer); this.p.setMemoize(false); } // ========================================================================= public void setNewlineAtEof(boolean newlineAtEof) { this.newlineAtEof = newlineAtEof; } public boolean isNewlineAtEof() { return newlineAtEof; } // ========================================================================= @Override protected WtNode before(WtNode node) { p.eatNewlinesAndIndents(2); return super.before(node); } @Override protected Object after(WtNode node, Object result) { p.ignoreNewlines(); if (newlineAtEof) p.println(); p.flush(); return result; } } WtRtDataPrettyPrinter.java000066400000000000000000000064011335270560400477140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtStringNode; import org.sweble.wikitext.parser.nodes.WtText; public class WtRtDataPrettyPrinter extends WtPrettyPrinter { public void visit(WtNewline n) { p.verbatim(n.getContent()); } public void visit(WtIgnored n) { p.verbatim(n.getContent()); } public void visit(WtText n) { p.verbatim(n.getContent()); } // ========================================================================= @Override protected Object dispatch(WtNode node) { WtRtData rtd = node.getRtd(); if (rtd != null) { if (node instanceof WtStringNode) { printStringNode(rtd, (WtStringNode) node); } else if (node instanceof WtContentNode) { printContentNode(rtd, (WtContentNode) node); } else { printAnyOtherNode(rtd, node); } } else { super.dispatch(node); } return null; } // ========================================================================= protected void printStringNode(WtRtData rtd, WtStringNode contentNode) { if (rtd != null) { printRtd(rtd.getField(0)); } else { p.verbatim(contentNode.getContent()); } } protected void printContentNode(WtRtData rtd, WtContentNode contentNode) { if (rtd != null) { printRtd(rtd.getField(0)); iterate(contentNode); printRtd(rtd.getField(1)); } else { iterate(contentNode); } } protected void printAnyOtherNode(WtRtData rtd, WtNode node) { if (rtd != null) { int i = 0; for (WtNode n : node) { printRtd(rtd.getField(i++)); dispatch(n); } printRtd(rtd.getField(i)); } else { iterate(node); } } protected void printRtd(Object[] fields) { for (Object o : fields) { if (o instanceof WtNode) { dispatch((WtNode) o); } else { p.verbatim(String.valueOf(o)); } } } // ========================================================================= public static String print(T node) { return print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, T node) { new WtRtDataPrettyPrinter(writer).go(node); return writer; } // ========================================================================= public WtRtDataPrettyPrinter(Writer writer) { super(writer); } } WtRtDataPrinter.java000066400000000000000000000070171335270560400465100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.StringWriter; import java.io.Writer; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtStringNode; import org.sweble.wikitext.parser.nodes.WtText; import de.fau.cs.osr.utils.PrinterBase; public class WtRtDataPrinter { protected void iterate(WtNode node) { for (WtNode c : node) dispatch(c); } protected void dispatch(WtNode node) { switch (node.getNodeType()) { case WtNode.NT_TEXT: printText((WtText) node); break; case WtNode.NT_NODE_LIST: printNodeList((WtNodeList) node); break; default: WtRtData rtd = node.getRtd(); if (node instanceof WtStringNode) { printStringNode(rtd, (WtStringNode) node); } else if (node instanceof WtContentNode) { printContentNode(rtd, (WtContentNode) node); } else { printAnyOtherNode(rtd, node); } break; } } // ========================================================================= protected void printText(WtText text) { p.verbatim(text.getContent()); } protected void printNodeList(WtNodeList node) { iterate(node); } protected void printContentNode(WtRtData rtd, WtContentNode contentNode) { if (rtd != null) { if (!rtd.isSuppress()) { printRtd(rtd.getField(0)); iterate(contentNode); printRtd(rtd.getField(1)); } } else { iterate(contentNode); } } protected void printStringNode(WtRtData rtd, WtStringNode contentNode) { if (rtd != null) { if (!rtd.isSuppress()) printRtd(rtd.getField(0)); } else { p.verbatim(contentNode.getContent()); } } protected void printAnyOtherNode(WtRtData rtd, WtNode node) { if (rtd != null) { if (!rtd.isSuppress()) { int i = 0; for (WtNode n : node) { printRtd(rtd.getField(i++)); dispatch(n); } printRtd(rtd.getField(i)); } } else { iterate(node); } } protected void printRtd(Object[] fields) { for (Object o : fields) { if (o instanceof WtNode) { dispatch((WtNode) o); } else { p.verbatim(String.valueOf(o)); } } } // ========================================================================= public static String print(WtNode node) { return WtRtDataPrinter.print(new StringWriter(), node).toString(); } public static Writer print(Writer writer, WtNode node) { new WtRtDataPrinter(writer).go(node); return writer; } // ========================================================================= protected final PrinterBase p; protected WtRtDataPrinter(Writer writer) { this.p = new PrinterBase(writer); this.p.setMemoize(false); } protected void go(WtNode node) { dispatch(node); p.flush(); } } jflex/000077500000000000000000000000001335270560400344155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/mainorg/000077500000000000000000000000001335270560400352045ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflexsweble/000077500000000000000000000000001335270560400364655ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflex/orgwikitext/000077500000000000000000000000001335270560400403355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflex/org/swebleparser/000077500000000000000000000000001335270560400416315ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflex/org/sweble/wikitextencval/000077500000000000000000000000001335270560400431015ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflex/org/sweble/wikitext/parserEncodingValidatorLexer.jflex000066400000000000000000000127221335270560400505330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/jflex/org/sweble/wikitext/parser/encval/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.encval; import org.sweble.wikitext.parser.WtEntityMap; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint.IllegalCodePointType; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import de.fau.cs.osr.ptk.common.ast.AstLocation; %% /**************************************************************** Options **/ %type Object %class EncodingValidatorLexer %public %unicode %line %column /***************************************************************** Java Code **/ %{ private StringBuilder text = new StringBuilder(); private WtEntityMap entityMap; private String file; private WikitextNodeFactory nf; private boolean containsIllegalCodePoints = false; private boolean convertIllegalCodePoints = false; // =========================================================================== public void setEntityMap(WtEntityMap entityMap) { this.entityMap = entityMap; } public void setFile(String file) { this.file = file; } public void setWikitextNodeFactory(WikitextNodeFactory nodeFactory) { this.nf = nodeFactory; } public void setConvertIllegalCodePoints(boolean convert) { this.convertIllegalCodePoints = convert; } private void wrapIllegalCodePoint(int line, int column, String codePoint, IllegalCodePointType type) { WtIllegalCodePoint p = nf.illegalCp(codePoint, type); p.setRtd(codePoint); p.setNativeLocation(new AstLocation( file, line, column)); int id = entityMap.registerEntity(p); if (convertIllegalCodePoints) { text.append('\uFFFD'); } else { text.append('\uE000'); text.append(id); text.append('\uE001'); } containsIllegalCodePoints = true; } public String getWikitext() { return text.toString(); } public boolean containsIllegalCodePoints() { return containsIllegalCodePoints; } %} /******************************************************************** Macros **/ IC_HIGH_NO_LOW = [\uD800-\uDBFF][\u0000-\uDBFF\uE000-\uFFFF] IC_NO_HIGH_LOW = [\u0000-\uD7FF\uDC00-\uFFFF][\uDC00-\uDFFF] NC_00FDD0_to_00FDEF = [\uFDD0-\uFDEF] NC_00FFFE_or_00FFFF = [\uFFFE\uFFFF] NC_xxFFFE_or_xxFFFF = [\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF] NON_CHAR = {NC_00FDD0_to_00FDEF}|{NC_00FFFE_or_00FFFF}|{NC_xxFFFE_or_xxFFFF} PU_00E000_to_00F8FF = [\uE000-\uF8FF] PU_0F0000_to_0FFFFD = [\uDB80-\uDBBE][\uDC00-\uDFFF]|\uDBBF[\uDC00-\uDFFD] PU_100000_to_10FFFD = [\uDBC0-\uDBFE][\uDC00-\uDFFF]|\uDBFF[\uDC00-\uDFFD] PRIVATE_USE_CHAR = {PU_00E000_to_00F8FF}|{PU_0F0000_to_0FFFFD}|{PU_100000_to_10FFFD} CONTROL_CHAR = [\u0000-\u0008\u000B\u000C\u000E-\u0019\u007F] %% /****************************************************************** Rules **/ /* Isolated surrogates */ {IC_HIGH_NO_LOW} { String match = yytext(); wrapIllegalCodePoint( yyline, yycolumn, match.substring(0, 1), IllegalCodePointType.ISOLATED_SURROGATE); text.append(match.substring(1)); } {IC_NO_HIGH_LOW} { String match = yytext(); text.append(match.substring(0, 1)); wrapIllegalCodePoint( yyline, yycolumn + 1, match.substring(1), IllegalCodePointType.ISOLATED_SURROGATE); } /* Non-character */ {NON_CHAR} { wrapIllegalCodePoint( yyline, yycolumn, yytext(), IllegalCodePointType.NON_CHARACTER); } /* Private-use character */ {PRIVATE_USE_CHAR} { wrapIllegalCodePoint( yyline, yycolumn, yytext(), IllegalCodePointType.PRIVATE_USE_CHARACTER); } /* Private-use character */ {CONTROL_CHAR} { wrapIllegalCodePoint( yyline, yycolumn, yytext(), IllegalCodePointType.CONTROL_CHARACTER); } /* Everything else */ . | \n { text.append(yytext()); } /************************************************************** End of file. **/ rats/000077500000000000000000000000001335270560400342565ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/mainorg/000077500000000000000000000000001335270560400350455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/ratssweble/000077500000000000000000000000001335270560400363265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/orgwikitext/000077500000000000000000000000001335270560400401765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/swebleparser/000077500000000000000000000000001335270560400414725ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitextparser/000077500000000000000000000000001335270560400427665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parserContent.rats000066400000000000000000000340641335270560400453020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Content * ------- * * Overview: * - First see if it's something special (a link, a page switch, ...) * - If not, it's just text * * Closer look: * - Special things always have their unique prefix. * - If such a prefix is encountered in the text, the rule for the * corresponding thing MUST match. Either because we really found * something special, or because the rule just consumed the prefix as * plain text to let the parser continue with it's work. * * Even closer look: * - This "must match" requirement helps us escape the content if a prefix * of a closing element is encountered in the text and this prefix is also * the prefix of a one of these special things. * */ module org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.utils.ContentUtils; import org.sweble.wikitext.parser.utils.Roundtrip; import org.sweble.wikitext.parser.utils.XmlReference; import org.sweble.wikitext.parser.parser.ExternalLink; import org.sweble.wikitext.parser.parser.InternalLink; import org.sweble.wikitext.parser.parser.PageSwitch; import org.sweble.wikitext.parser.utils.ParserEntity; import org.sweble.wikitext.parser.parser.Signature; import org.sweble.wikitext.parser.parser.Ticks; import org.sweble.wikitext.parser.parser.Url; import org.sweble.wikitext.parser.parser.HorizontalRule; import org.sweble.wikitext.parser.parser.LangConvTag; import org.sweble.wikitext.parser.parser.List; import org.sweble.wikitext.parser.parser.SemiPre; import org.sweble.wikitext.parser.parser.Section; import org.sweble.wikitext.parser.parser.Table; import org.sweble.wikitext.parser.parser.TableHeader; import org.sweble.wikitext.parser.parser.TableCell; import org.sweble.wikitext.parser.parser.XmlElement; import org.sweble.wikitext.parser.parser.Whitespace; // -- Body --------------------------------------------------------------------- header { import java.util.Iterator; } body { private WtNode makeP(WtNodeList pre, WtNodeList p, WtNodeList post) { WtNodeList l = null; if (pre != null) { int i = 0; for (WtNode n : pre) { if (n.getNodeType() == WtNode.NT_NEWLINE) { ++i; if (i > 2) break; } } if (i > 2) { l = nf.list(); i = 0; for (WtNode n : pre) { if (n.getNodeType() == WtNode.NT_NEWLINE) { ++i; if (i == 2) { l.add(n); l.add(IntermediateTags.PARAGRAPH.createOpen(nf, false)); } else l.add(n); } else l.add(n); } if (p == null && post == null) return l; } else if (p == null && post == null) { return pre; } else { l = nf.list(); l.add(pre); l.add(IntermediateTags.PARAGRAPH.createOpen(nf, false)); } } else { l = nf.list(); l.add(IntermediateTags.PARAGRAPH.createOpen(nf, false)); } // p != null // l != null l.add(p); int i = 0; if (post != null) { for (WtNode n : post) { if (n.getNodeType() == WtNode.NT_NEWLINE) ++i; } } if (i > 2) { for (WtNode n : post) { if (n.getNodeType() == WtNode.NT_NEWLINE) { --i; if (i == 2) { l.add(n); l.add(IntermediateTags.PARAGRAPH.createClose(nf, false)); continue; } } l.add(n); } } else { l.add(IntermediateTags.PARAGRAPH.createClose(nf, false)); l.add(post); } return l; } } // -- Block content ------------------------------------------------------------ /* BolBlockContent = ( LineStartProd / Paragraph )* */ noinline transient WtNodeList BolBlockContent = content:Block* { yyValue = nf.list(content); } ; /* BlockContent = Paragraph ( LineStartProd / Paragraph )* */ noinline transient WtNodeList BlockContent = head:Paragraph tail:Block* { yyValue = nf.list(head, tail); } ; private inline WtNode Block = !BlockStopper ( LineStartProd / Paragraph ) ; inline void BlockStopper = BlockStopperNextSection / BlockStopperNextTableElement ; private noinline transient WtNode LineStartProd = &( pExtSpaceStar "{|" ) Table / &( pTpStar "---" ) HorizontalRule / &( pTpStar [*#:;] ) List / &( pTpStar [ ] ) SemiPre / &( pTpStar [=] ) Sections ; noinline transient void LooksLikeALineStartProd = pExtSpaceStar "{|" / pTpStar "---" / pTpStar [*#:;] / pTpStar [ ] / pTpStar [=] ; // -- Paragraph --[ State Aware Memoization ]----------------------------------- noinline transient WtNode Paragraph = ^{ StateAwareResult r = (StateAwareResult) pParagraphMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pParagraphTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode ParagraphMemoized = ^{ Result yyResult = new StateAwareResult("Paragraph", getContext(), pParagraphTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- Paragraph ---------------------------------------------------------------- /* Paragraph = PreParaWs ParagraphText PostParaWs? * / PreParaWs * / ParagraphText PostParaWs? */ noinline transient WtNode ParagraphTransient = pre:PreParaWs !ParagraphStopper p:ParagraphText post:PostParaWs? { yyValue = makeP(pre, (WtNodeList) p, post); } / PreParaWs { yyValue = makeP((WtNodeList) yyResult.semanticValue(), null, null); } / p:ParagraphText post:PostParaWs? { yyValue = makeP(null, (WtNodeList) p, post); } ; private inline void ParagraphStopper = BlockStopper / LineStartProd ; /* PreParaWs = S* EOL ( S* EOL )* */ private noinline transient WtNodeList PreParaWs = s:pExtSpaceStar lt:pEolNode tail:PreParaWsMore* { yyValue = nf.list(s, lt, nf.list(tail)); } ; private inline WtNodeList PreParaWsMore = !ParagraphStopper s:pExtSpaceStar lt:pEolNode { yyValue = nf.list(s, lt); } ; /* ParagraphText = Content+ ( EOL Content+ )* */ private noinline transient WtNode ParagraphText = head:InlineContentPlus tail:ParagraphTextMore* { yyValue = nf.list(head, tail); } ; private inline WtNode ParagraphTextMore = lt:pEolNode !ParagraphStopper s:pExtSpaceStar c:InlineContentPlus { yyValue = nf.list(lt, s, c); } ; /* PostParaWs = EOL ( S* EOL )* */ private noinline transient WtNodeList PostParaWs = lt:pEolNode tail:PostParaWsMore* ( &ParagraphStopper / !ParagraphText ) { yyValue = nf.list(lt, tail); } ; private inline WtNodeList PostParaWsMore = !ParagraphStopper s:pExtSpaceStar lt:pEolNode { yyValue = nf.list(s, lt); } ; // -- For strange things like internal link titles ----------------------------- /* InlineBlockContent = InlineTextBlock ( LineStartProd / InlineTextBlock ) */ noinline transient WtNodeList InlineBlockContent = head:( !BlockStopper InlineTextBlock )? tail:InlineBlock* { yyValue = nf.list(head, nf.list(tail)); } ; private inline WtNode InlineBlock = !BlockStopper ( LineStartProd / InlineTextBlock ) ; /* InlineTextBlock = Content+ ( EOL Content* )* * / ( EOL Content* )+ */ private transient WtNode InlineTextBlock = head:InlineContentPlus tail:InlineTextBlockMore* { yyValue = nf.list(head, tail); } / tail:InlineTextBlockMore+ { yyValue = nf.list(tail); } ; private inline WtNode InlineTextBlockMore = lt:pEol more:( !ParagraphStopper InlineContentPlus )? { yyValue = nf.list(nf.text(lt), more); } ; // -- Inline Content ----------------------------------------------------------- noinline transient WtNodeList InlineContentStar = ^{ StateAwareResult r = (StateAwareResult) pInlineContentStarMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pInlineContentStarTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNodeList InlineContentStarMemoized = ^{ Result yyResult = new StateAwareResult("InlineContentStar", getContext(), pInlineContentStarTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; noinline transient WtNodeList InlineContentStarTransient = content:InlineContentChoice* { yyValue = nf.list(content); } ; noinline transient WtNodeList InlineContentPlus = ^{ StateAwareResult r = (StateAwareResult) pInlineContentPlusMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pInlineContentPlusTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNodeList InlineContentPlusMemoized = ^{ Result yyResult = new StateAwareResult("InlineContentPlus", getContext(), pInlineContentPlusTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; noinline transient WtNodeList InlineContentPlusTransient = content:InlineContentChoice+ { yyValue = nf.list(content); } ; /* TextPlus will stop on ContentAtoms and ContentStoppers. * * ContentAtoms will never fail if there is a ContentAtom prefix. If it's not a * real ContentAtom or the respective ContentAtom is not allowed in a given * context the production responsible for the prefix will consume a part of the * prefix and return a WtText node containing only the consumed prefix. That's * why ContentAtoms will never fail if there is a ContentAtom prefix. * * Eventually this production will only fail, if it encounters a * ContentStopper, that is a syntactic element which is important to the * surrounding production and must therefore not be consumed as part of the * content. * * Plain URLs are quite the hack (for performance reasons; they don't have a * "proper prefix") and have to be treated specially (see Url grammar for * details). The same goes for internal links and their prefix. */ private transient WtNode InlineContentChoice = text:TextPlus ':' &{ accept(ParserAtoms.PLAIN_EXTERNAL_LINK) } path:UrlPathString &{ isProtocol(text, path) } { yyValue = makeExternalLink(text, path); } / text:TextPlus &"[[" !InlineContentStopper link:InternalLink { yyValue = link.isNodeType(WtNode.NT_INTERNAL_LINK) ? addLinkPrefix(text, (WtInternalLink) link) : nf.list(text, link); } / TextPlus / !InlineContentStopper InlineContentAtom / !InlineContentStopper text:TextStopperPrefix { yyValue = nf.text(text); } ; /* The predicates before each ContentAtom are only there to simplify debugging. * And sort of to remind us which production is responsible for which prefix. */ private inline WtNode InlineContentAtom = &"~~" Signature / &"[[" InternalLink / &"[" ExternalLink / &"''" Ticks / &"__" PageSwitch / &"<" XmlElement / &"&" XmlReference / &"-{" LanguageConversionTag / &"\uE000" ParserEntity ; private inline void InlineContentStopper = slEol / InlineContentStopperExternalLink / InlineContentStopperInternalLink / InlineContentStopperHeading / InlineContentStopperTableHeader / InlineContentStopperTableCell / InlineContentStopperLangConvTag ; /* Plain text is basically everything that is not a ContentAtom (semantically, * a WtText node is also a ContentAtom, however, it is not part of the respective * production). Also plain text has to stop at so-called TextStoppers. These * are syntactic elements which are significant to the surrounding production * and must not become part of the plain text (in order for the surrounding * production to see and consume them). */ private memoized WtText TextPlus = text:TextPlusStr { yyValue = nf.text(text); } ; private transient String TextPlusStr = ( !TextStopperPrefix _ )+ ; private inline String TextStopperPrefix = // -- stop characters -- pSlEol // block level end (lists, semi pre) // heading abort // external link title abort // table element start // table cell/header inline element end / "=" // heading end //"=>" // LCT (already caught by "heading end" / "|" // internal link parameter end // table cell inline element end // LCT / "!" // table header inline element end / "]" // external and internal link title end / ":" // Definition list definition (in the pair TERM:DEF) // LCT / ";" // LCT / "}-" // LCT end // -- content atom prefix -- / ":" // plain url / "~~" // signature / "[" // internal or external link / "''" // bold or italic / "__" // page switch / "<" // xml tag and comment / "&" // xml entity / "-{" // LCT start / "\uE000" // parser entity ; // -- End of file -------------------------------------------------------------- ExternalLink.rats000066400000000000000000000101251335270560400462600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * External Link * ------------- * * Grammar: * - '[' Url Space* ']' * - '[' Url Space+ Title ']' * * The title can contain: * - InternalLink * - PageSwitch * - ParserEntity * - Signature * - Ticks * - XmlReference * * The title cannot contain: * - Newline * - Tables * - Headings * - Horizontal lines * - Block level elements * - ExternalLink * - PlainExternalLink * - XmlElement(*) * * The title can syntactically not contain: * - Newlines * */ module org.sweble.wikitext.parser.parser.ExternalLink; import org.sweble.wikitext.parser.utils.Warnings; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.State; import org.sweble.wikitext.parser.parser.Url; import org.sweble.wikitext.parser.parser.Whitespace; // -- External link --[ State Aware Memoization ]------------------------------- noinline transient WtNode ExternalLink = ^{ StateAwareResult r = (StateAwareResult) pExternalLinkMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pExternalLinkTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode ExternalLinkMemoized = ^{ Result yyResult = new StateAwareResult("ExternalLink", getContext(), pExternalLinkTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- External link ------------------------------------------------------------ noinline transient WtNode ExternalLinkTransient = '[' &{ accept(ParserAtoms.EXTERNAL_LINK) } yyValue:ExternalLinkChoice / '[' { yyValue = nf.text("["); } ; inline void InlineContentStopperExternalLink = &{ inScope(ParserScopes.EXTERNAL_LINK_TITLE) } ']' ; private inline stateful WtNode ExternalLinkChoice = rt0:pTpStar target:Url rt1:pExtSpacePlus title:ExternalLinkTitleContentPlus ']' { yyValue = setRtd( nf.extLink(target, nf.linkTitle(title)), '[', rt0, SEP, rt1, SEP, ']'); } / rt0:pTpStar target:Url rt1:pSpaceStar ']' { yyValue = setRtd( nf.extLink(target), '[', rt0, SEP, SEP, rt1, ']'); } / &{ isWarningsEnabled() } ExternalLinkAutoCorrect ; private inline WtNode ExternalLinkAutoCorrect = &{ isAutoCorrect(WS_INFO) } rt0:pTpStar target:Url { yyValue = setRtd( nf.extLink(target), '[', rt0, SEP, SEP, ']'); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 1, yyResult), WS_INFO, "External Link", "the finishing `]' is missing"); } / &{ isWarningLevelEnabled(WS_INFO) } &( pTpStar Url ) { yyValue = nf.text("["); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 1, yyPredResult), WS_INFO, "External Link", "the finishing `]' is missing"); } / &{ isWarningLevelEnabled(WS_NONE) } { yyValue = nf.text("["); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 1, yyStart), WS_NONE, "External Link", "the actual URL is missing"); } ; private inline WtNodeList ExternalLinkTitleContentPlus = { enter(ParserScopes.EXTERNAL_LINK_TITLE); } InlineContentPlus ; // -- End of file -------------------------------------------------------------- HorizontalRule.rats000066400000000000000000000045701335270560400466500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Horizontal Rule * --------------- * * Grammar: * - '----' '-'* * */ module org.sweble.wikitext.parser.parser.HorizontalRule; // -- Horizontal Rule --[ State Aware Memoization ]----------------------------- noinline transient WtNode HorizontalRule = ^{ StateAwareResult r = (StateAwareResult) pHorizontalRuleMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pHorizontalRuleTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode HorizontalRuleMemoized = ^{ Result yyResult = new StateAwareResult("HorizontalRule", getContext(), pHorizontalRuleTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- Horizontal Rule ---------------------------------------------------------- noinline transient WtNode HorizontalRuleTransient = "---" &{ accept(ParserAtoms.HORIZONTAL_RULE) } yyValue:HorizontalRuleChoice / "---" { yyValue = nf.text("---"); } ; private inline WtNode HorizontalRuleChoice = more:'-'+ { String dashes = StringTools.strrep('-', 3 + more.size()); yyValue = setRtd( nf.hr(), dashes); } / &{ isWarningsEnabled() } HorizontalRuleAutoCorrect ; private inline WtNode HorizontalRuleAutoCorrect = &{ isWarningLevelEnabled(WS_NONE) } { yyValue = nf.text("---"); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 3, yyStart), WS_NONE, "Horizontal Rule", "a horizontal rule consists of at least 4 dashes"); } ; // -- End of file ------------------------------------------------------------- InternalLink.rats000066400000000000000000000356331335270560400462650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * * Internal Link or Image * ---------------------- * * Grammar: * - '[[' PageTitle LinkOption* LinkTitle ']]' LinkPostfix * * - PageTitle can contain spaces but no newlines. * - If a newline occurs before the closing brackets or the first pipe * character, the internal link is not recognized as such! * * Link Option: Resize * ------------------- * * Grammar: * - LinkOptionResize ::= Ws* Digit+ Space* 'px' Ws* * - LinkOptionResize ::= Ws* Digit+ 'x' Digit* Space* 'px' Ws* * - LinkOptionResize ::= Ws* 'x' Digit+ Space* 'px' Ws* * * - If heightString is null the first production matched. * - If widthString is null the third production matched. * - If both are null there is no information which production matched. * - Otherwise the second production matched. * - If one of the dimensions is missing the value of the width/height is set * to -1. * * Link Option: Keyword * -------------------- * * Grammar: * - LinkOptionKeyword ::= Ws* LinkOptionKeyword Ws* * * Link Option: LinkTarget * ----------------------- * * Grammar: * - LinkOptionLinkTarget ::= Ws* 'link=' LinkTarget Ws* * - LinkOptionLinkTarget ::= Ws* 'link=' Url Ws* * * Link Option: AltText * -------------------- * * Grammar: * - LinkOptionAltText ::= Ws* 'alt=' LinkTitleContent{ALT}* * * Link Title * ---------- * * Grammar: * - LinkTitle ::= LinkTitleContent{TITLE}* * * LinkTitleContent can contain: * - Newline * - Tables * - Headings * - Horizontal rules * - Block level elements * - Signature * - InternalLink * - ExternalLink * - PlainExternalLink * - Ticks * - XmlReference * - XmlElement * - ParserEntity * * The LinkTitleContent cannot contain: * - PageSwitch * */ module org.sweble.wikitext.parser.parser.InternalLink; import org.sweble.wikitext.parser.utils.Numbers; import org.sweble.wikitext.parser.utils.ParserCharSequence; import org.sweble.wikitext.parser.utils.ParserEntity; import org.sweble.wikitext.parser.utils.Warnings; import org.sweble.wikitext.parser.utils.XmlReference; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.LinkTarget; import org.sweble.wikitext.parser.parser.State; import org.sweble.wikitext.parser.parser.Url; import org.sweble.wikitext.parser.parser.Whitespace; // -- Header / Body / Footer --------------------------------------------------- body { Result parseLinkPostfix(int start, int base) { Pattern p = yyState.getInternalLinkPostfixPattern(); if (p == null) return new SemanticValue("", base); Matcher m = p.matcher(new ParserCharSequence(base)); if (!m.lookingAt()) { return new SemanticValue("", base); } else { return new SemanticValue(m.group(), base + m.end()); } } private WtNode addLinkPrefix(WtText text, WtInternalLink link) { String t = text.getContent(); if (!t.isEmpty()) { // shortcut (prefix cannot contain whitespace) if (!Character.isWhitespace(t.charAt(t.length() - 1))) { Matcher matcher = getState().getInternalLinkPrefixPattern().matcher(t); if (matcher.find()) { String p = matcher.group(1); if (!p.isEmpty()) { String b = t.substring(0, t.length() - p.length()); WtInternalLink l = (WtInternalLink) link.cloneWrapException(); if (isGatherRtData()) { if (l.getRtd() != null) l.setRtd((WtRtData) l.getRtd().cloneWrapException()); prependRtd(l, p); } l.setPrefix(p); return nf.list(nf.text(b), l); } } } } return nf.list(text, link); } private int toInt(String num) { if (num == null) return -1; try { return Integer.parseInt(num); } catch (NumberFormatException e) { return -2; } } } // -- Internal link --[ State Aware Memoization ]------------------------------- noinline transient WtNode InternalLink = ^{ StateAwareResult r = (StateAwareResult) pInternalLinkMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pInternalLinkTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode InternalLinkMemoized = ^{ Result yyResult = new StateAwareResult("InternalLink", getContext(), pInternalLinkTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- Internal link ------------------------------------------------------------ noinline transient WtNode InternalLinkTransient = "[[" &{ accept(ParserAtoms.INTERNAL_LINK) } yyValue:InternalLinkChoice / "[" { yyValue = nf.text("["); } ; inline void InlineContentStopperInternalLink = /* I have no idea what a INTERNAL_LINK_ALT even is. Therefore this * alternative makes no sense to me. &{ inScope(ParserScopes.INTERNAL_LINK_ALT) } ( "]]" / "[[" InternalLinkChoice / '|' ) / */ &{ inScope(ParserScopes.INTERNAL_LINK_TITLE) } ( "]]" / "[[" InternalLinkChoice ) / &{ inScope(ParserScopes.IMAGE_LINK_ALT) } ( "]]" / '|' ) / &{ inScope(ParserScopes.IMAGE_LINK_TITLE) } ( "]]" / '|' ) ; private transient stateful WtNode InternalLinkChoice = rt0:pTpStar target:LinkTarget rt1:pExtSpaceStar { getState().initLinkBuilder(target); } &{ getLinkBuilder().isValidTarget() } options:OptionsAndTitle "]]" postfix:LinkPostfix? { if (postfix == null) postfix = ""; yyValue = getState().getLinkBuilder().build(options, postfix); if (getLinkBuilder().isImageTarget()) { setRtd( yyValue, "[[", rt0, SEP, rt1, SEP, "]]", postfix); } else { setRtd( yyValue, "[[", rt0, SEP, rt1, SEP, "]]", postfix); } } / &{ isWarningsEnabled() } InternalLinkAutoCorrect ; private inline WtNode InternalLinkAutoCorrect = &{ isAutoCorrect(WS_INFO) } rt0:pTpStar target:LinkTarget { getState().initLinkBuilder(target); } &{ getLinkBuilder().isValidTarget() } { yyValue = getState().getLinkBuilder().build(nf.emptyLinkOpts(), null); if (getLinkBuilder().isImageTarget()) { setRtd( yyValue, "[[", rt0, target, SEP, SEP); } else { setRtd( yyValue, "[[", rt0, target, SEP); } fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyResult), WS_INFO, "Internal Link", "the finishing `]]' is missing"); } / &{ isWarningLevelEnabled(WS_INFO) } &( pTpStar target:LinkTarget { getState().initLinkBuilder(target); } &{ getLinkBuilder().isValidTarget() } ) { yyValue = nf.text("[["); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyPredResult), WS_INFO, "Internal Link", "the finishing `]]' is missing"); } / &{ isWarningLevelEnabled(WS_NONE) } { yyValue = nf.text("[["); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyStart), WS_NONE, "Internal Link", "a target link is missing"); } ; // -- Options ------------------------------------------------------------------ noinline transient WtLinkOptions OptionsAndTitle = ^{ StateAwareResult r = (StateAwareResult) pOptionsAndTitleMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pOptionsAndTitleTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtLinkOptions OptionsAndTitleMemoized = ^{ Result yyResult = new StateAwareResult("OptionsAndTitle", getContext(), pOptionsAndTitleTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; noinline transient WtLinkOptions OptionsAndTitleTransient = &{ !getLinkBuilder().isImageTarget() } title:LinkTitle? { yyValue = nf.linkOpts(title); } / &{ getLinkBuilder().isImageTarget() } yyValue:LinkOptionStar ; private transient WtLinkOptions LinkOptionStar = options:( void:'|' LinkOptionChoice )* { yyValue = nf.linkOpts(nf.list(options)); } ; /* Let's try to not make this stupid mistake again: * The ''' &( '|' / "]]" ) ''' part has to be listed for each alternative and * NOT after the whole LinkOptionChoice production to make sure, that the other * alternatives are also tried first. The bug was introduced last in commit * 0449049309cfb3706561e6ddd6655d967b1bbcf3 */ private inline WtNode LinkOptionChoice = yyValue:LinkOptionResize &( '|' / "]]" ) { getLinkBuilder().addOption((WtLinkOptionResize) yyValue); } / yyValue:LinkOptionKeyword &( '|' / "]]" ) { getLinkBuilder().addOption((WtLinkOptionKeyword) yyValue); } / LinkOptionNameValue &( '|' / "]]" ) / LinkOptionUnresolved &( '|' / "]]" ) / LinkOptionTitle &( '|' / "]]" ) ; // -- Link Option Resize ------------------------------------------------------- private WtLinkOptionResize LinkOptionResize = rt0:pExtWsStar width:DigitPlus rt1:pSpaceStar "px" rt2:pExtWsStar { int w = toInt(width); if (w == -2) getLinkBuilder().addWarning( makeOddSyntaxWarning( makeSpan(yyStart, yyResult), WS_INFO, "Invalid size format")); yyValue = setRtd( nf.loResize(w, -1), '|', rt0, width, rt1, "px", rt2); } / rt0:pExtWsStar width:DigitPlus 'x' height:DigitPlus? rt1:pSpaceStar "px" rt2:pExtWsStar { int w = toInt(width); int h = toInt(height); if (w == -2 || h == -2) getLinkBuilder().addWarning( makeOddSyntaxWarning( makeSpan(yyStart, yyResult), WS_INFO, "Invalid size format")); yyValue = setRtd( nf.loResize(w, h), '|', rt0, width, 'x', height, rt1, "px", rt2); } / rt0:pExtWsStar 'x' height:DigitPlus rt1:pSpaceStar "px" rt2:pExtWsStar { int h = toInt(height); if (h == -2) getLinkBuilder().addWarning( makeOddSyntaxWarning( makeSpan(yyStart, yyResult), WS_INFO, "Invalid size format")); yyValue = setRtd( nf.loResize(-1, h), '|', rt0, 'x', height, rt1, "px", rt2); } ; // -- Link Option Keyword ------------------------------------------------------ private WtLinkOptionKeyword LinkOptionKeyword = rt0:pExtWsStar keyword:LinkOptionKeywordString &{ getLinkBuilder().isKeyword(keyword) } rt1:pExtWsStar { yyValue = setRtd( nf.loKeyword(keyword), '|', rt0, keyword, rt1); } ; private transient String LinkOptionKeywordString = [A-Za-z\-]+ ; // -- Link Option Name Value --------------------------------------------------- private transient stateful WtNode LinkOptionNameValue = rt0:pExtWsStar "link=" target:LinkTargetOverride? rt1:pExtWsStar { WtLinkOptionLinkTarget linkTarget = (target == null) ? nf.loLinkTargetNoLink() : nf.loLinkTarget(target, target.getTargetType()); yyValue = setRtd( linkTarget, '|', rt0, "link=", SEP, rt1); } / rt0:pExtWsStar "alt=" /* I don't know why it says INTERNAL_LINK_ALT. This is not a thing... * alt= options in MediaWiki do accept links (int/ext) and strip the syntax * which suggests that links in alt= options are properly parsed { enter(ParserScopes.INTERNAL_LINK_ALT); } */ { enter(ParserScopes.IMAGE_LINK_ALT); } alt:LinkTitleContentStar { yyValue = setRtd( nf.loAlt(alt), '|', rt0, "alt=", SEP); } ; private inline WtLinkTarget LinkTargetOverride = UrlNoPipe / LinkTarget ; // -- Link Option Unresolved Template ------------------------------------------ private inline WtNode LinkOptionUnresolved = rt0:pExtWsStar entity:ParserEntityTmplParamCommentIgnore rt1:pExtWsStar { prependRtd(entity, '|', rt0); appendRtd(entity, rt1); yyValue = entity; } ; // -- Link Option Title -------------------------------------------------------- private inline stateful WtLinkTitle LinkOptionTitle = /* LinkOptionTitle is only used in productions * LinkOptionStar -> LinkOptionChoice which are only invoked if we ARE dealing * with an image target. Therefore the condition on isImageTarget() does not * make sense to me. Also I do not understand why we would enter the LINK_ALT * scope instead of the "normal" scope. The alt scope only makes sense when * we are dealing with the "alt=" part of the LinkOptionNameValue production. { enter(getLinkBuilder().isImageTarget() ? ParserScopes.IMAGE_LINK_ALT : ParserScopes.INTERNAL_LINK_ALT); } */ { enter(ParserScopes.IMAGE_LINK_TITLE); } content:LinkTitleContentStar { yyValue = setRtd( nf.linkTitle(content), '|', SEP); } ; // -- Link Title --------------------------------------------------------------- private inline stateful WtLinkTitle LinkTitle = /* LinkTitle is only used in production OptionsAndTitleTransient and it will * only be tried if we are NOT dealing with an image target. Therefore the * condition on isImageTarget() does not make sense to me. { enter(getLinkBuilder().isImageTarget() ? ParserScopes.IMAGE_LINK_TITLE : ParserScopes.INTERNAL_LINK_TITLE); } */ { enter(ParserScopes.INTERNAL_LINK_TITLE); } '|' title:LinkTitleContentStar { yyValue = setRtd( nf.linkTitle(title), '|', SEP); } ; // -- Link Title Content ------------------------------------------------------- private inline WtNodeList LinkTitleContentStar = InlineBlockContent ; // -- Link Postfix ------------------------------------------------------------- private noinline transient String LinkPostfix = &{ !getLinkBuilder().isImageTarget() } ^{ Result yyResult = parseLinkPostfix(yyStart, yyBase); } ; // -- End of file -------------------------------------------------------------- LangConvTag.rats000066400000000000000000000230621335270560400460270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * LanguageConversionTag * --------------------- * * Grammar: * - "-{" TEXT "}-" * - "-{" FLAGS "|" ( A "=>" )? VARIANT ":" B ( ";" ( A "=>" )? VARIANT ":" B )* "|" TEXT }- * */ module org.sweble.wikitext.parser.parser.LangConvTag; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.State; import org.sweble.wikitext.parser.parser.Url; import org.sweble.wikitext.parser.parser.Whitespace; import org.sweble.wikitext.parser.utils.ParserCharSequence; import org.sweble.wikitext.parser.utils.Warnings; // -- Header / Body / Footer --------------------------------------------------- body { /** * Remove intermediate paragraph start and end tags at the beginning and at * the end of the body. But only if no more than one newline are in front of * the start tag or no more than one newline follows the last paragraph end * tag. * * Hint: If there are no more than one newline in front of the start tag * there cannot be any newlines directly after the start tag. This is * because newlines are only pulled after the start tag if there are more * than two newlines in front of the start tag. */ private WtBody cleanProtectedContent(WtBody text) { if (text.isEmpty()) return text; int newlines = 0; int pPosAtBeginning = 0; int pPosFromEnd = 0; boolean foundStartP = false; outer: for (WtNode n : text) { switch (n.getNodeType()) { case WtNode.NT_NEWLINE: ++newlines; if (newlines > 1) // More than one newline break outer; break; case WtNode.NT_IM_START_TAG: if (((WtImStartTag) n).getName() == "@p") { // We have less than two newlines and a paragraph -> get to work foundStartP = true; break outer; } break; case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: case WtNode.NT_TEXT: // Spaces and transparent stuff can be found in between newlines break; default: // The body does not start with a paragraph anyway break outer; } ++pPosAtBeginning; } newlines = 0; ListIterator i = text.listIterator(text.size()); boolean foundEndP = false; outer: while (i.hasPrevious()) { WtNode n = i.previous(); switch (n.getNodeType()) { case WtNode.NT_NEWLINE: ++newlines; if (newlines > 1) // More than one newline break outer; break; case WtNode.NT_IM_END_TAG: if (((WtImEndTag) n).getName() == "@p") { // We have less than two newlines and a paragraph -> get to work foundEndP = true; break outer; } break; case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: case WtNode.NT_TEXT: // Spaces and transparent stuff can be found in between newlines break; default: // The body does not end with a paragraph anyway break outer; } ++pPosFromEnd; } if (!foundStartP && !foundEndP) // nothing to do return text; WtBody body = nf.body(nf.list()); Iterator j = text.iterator(); int contentSize = text.size(); if (foundStartP) { // Add stuff in front of first start tag for (int k = 0; k < pPosAtBeginning; ++k) body.add(j.next()); // Skip paragraph tag j.next(); contentSize -= pPosAtBeginning + 1; } if (foundEndP) { contentSize -= pPosFromEnd + 1; } for (int k = 0; k < contentSize; ++k) body.add(j.next()); if (foundEndP) { // Skip paragraph tag j.next(); // Add stuff following the last end tag for (int k = 0; k < pPosFromEnd; ++k) body.add(j.next()); } return body; } private boolean hasFlag(WtLctFlags flags, char c) { return flags.getFlags().contains("" + c); } private boolean containsVariant(WtLctFlags flags) { return !flags.getVariants().isEmpty(); } private boolean isVariant(String name) { return this.getState().getConfig().isLctVariant(name); } } // -- LanguageConversionTag ---------------------------------------------------- transient WtNode LanguageConversionTag = &{ isLangConvTagsEnabled() } "-{" yyValue:LanguageConversionTagChoice / "-" { yyValue = nf.text("-"); } ; inline void InlineContentStopperLangConvTag = &{ inScope(ParserScopes.LCT_RULE_TEXT) } ( "}-" / ';' ) / &{ inScope(ParserScopes.LCT_PROTECTED_CONTENT) } "}-" ; private transient WtNode LanguageConversionTagChoice = LctConvertToSpecifiedVariant / LctRuleBasedConvert / LctProtect ; /* If flags are given AND contain a variant the stuff after the '|' is treated * as text to be converted into the given variant. The flag 'R' is set in any case. */ private transient WtLctVarConv LctConvertToSpecifiedVariant = flags:LctFlags void:'|' &{ containsVariant(flags) || hasFlag(flags, 'N') || hasFlag(flags, 'R') } text:LctProtectedContentStar "}-" { yyValue = nf.lctVarConv(flags, cleanProtectedContent(text)); setRtd(yyValue, "-{", SEP, '|', SEP, "}-"); } ; /* The flags do not specify a language variant and neither the 'N' * nor the 'R' flag is set. In this case the part after the '|' is a set of rules. */ private transient WtLctRuleConv LctRuleBasedConvert = flags:( LctFlags void:'|' )? rules:LctRulePlus "}-" { if (flags == null) flags = nf.noLctFlags(); yyValue = nf.lctRuleConv(flags, nf.lctRules(rules)); setRtd(yyValue, "-{", SEP, (yyValue.hasFlags() ? "|" : null), SEP, "}-"); } ; /* A list of flags, separated by ';'. * Flags have to be further processed. Some flags turn off other flags, * some flags add additional flags and some flags enable the identification * of variant names (which would be ignored otherwise). */ private WtLctFlags LctFlags = head:LctFlag tail:( void:';' LctFlag )* { List flags = new Pair(head, tail).list(); yyValue = nf.lctFlags(flags); setRtd(yyValue, StringUtils.join(flags, ';')); } ; private String LctFlagPipe = ; /* A flag usually is a single letter or symbol. * Some language variants have words which map to one of those symbols. * Finally a flag can also be the name of a language variant. * * Default flags: A, T, R, D, -, H, N * Implicit flags: S, +, E * Examples for additional flags from LanguageSr.php: ријеч => W, писмо => S * Examples for language variant names: zh-hans, zh-hk */ private String LctFlag = ( [ \-0-9A-Za-z_] / [\u0080-\uFFFD] / LctNewline )* ; private String LctNewline = [\r\n] !BlockStopper !LooksLikeALineStartProd ; private transient WtNodeList LctRulePlus = head:LctRule tail:( void:';' LctRuleOrGarbage )* { Pair t = tail; while (!t.isEmpty()) { WtRtData rtd = t.head().getRtd(); if (rtd != null) rtd.prepend(";"); t = t.tail(); } yyValue = nf.list(head, tail); } ; private transient WtNode LctRuleOrGarbage = LctRule / LctRuleGarbageStar ; private transient WtLctRule LctRule = a:LctConvPatternPlus "=>" v:LctVariantColon ":" b:LctRuleTextStar { yyValue = nf.lctRule(a, v, b); setRtd(yyValue, a, "=>", v, ":", SEP); } / v:LctVariantColon ":" b:LctRuleTextStar { yyValue= nf.lctRule(v, b); setRtd(yyValue, v, ":", SEP); } ; private transient String LctVariantColon = yyValue:LctVariant &":" !( &{ accept(ParserAtoms.PLAIN_EXTERNAL_LINK) } ":" path:UrlPathString &{ isProtocol(yyValue, path) } ) ; private String LctConvPatternPlus = ( [ !"$%&'()+,\-.0-9=?@A-Za-z^_`~] / [\u0080-\uFFFD] / LctNewline )+ ; private String LctVariant = yyValue:LctFlag &{ isVariant(yyValue) } ; private transient stateful WtLctRuleText LctRuleTextStar = { enter(ParserScopes.LCT_RULE_TEXT); } content:InlineContentStar { yyValue = nf.lctRuleText(content); } ; private transient WtLctRuleGarbage LctRuleGarbageStar = LctRuleTextStar { String content = difference(yyStart, yyResult); yyValue = setRtd(nf.lctGarbage(content), content); } ; /* No flags, no rules -> just protect the content in braces from language * conversion. */ private transient WtLctVarConv LctProtect = flags:( LctFlags void:'|' )? text:LctProtectedContentStar "}-" { if (flags == null) flags = nf.noLctFlags(); yyValue = nf.lctVarConv(flags, cleanProtectedContent(text)); setRtd(yyValue, "-{", SEP, (yyValue.hasFlags() ? "|" : null), SEP, "}-"); } ; private transient stateful WtBody LctProtectedContentStar = { enter(ParserScopes.LCT_PROTECTED_CONTENT); } content:BolBlockContent { yyValue = nf.body(content); } ; // -- End of file -------------------------------------------------------------- LinkTarget.rats000066400000000000000000000026141335270560400457300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Link Target * ----------- * * Grammar: * - LinkOptionTarget ::= [^\u0000-\u001F\u007F\uFFFD<>{}|[\]]+ * */ module org.sweble.wikitext.parser.parser.LinkTarget; import org.sweble.wikitext.parser.utils.ParserEntity; // -- Target ------------------------------------------------------------------- WtPageName LinkTarget = target:( LinkTargetText / ParserEntityTemplateOrParameter )+ { yyValue = nf.pageName(nf.list(target)); } ; private inline WtNode LinkTargetText = str:LinkTargetString { yyValue = nf.text(str); } ; transient String LinkTargetString = ( ![\u0000-\u001F] ![\u007F\uFFFD<>{}|[\]] ![\uE000\uE001] _ )+ ; // -- End of file -------------------------------------------------------------- List.rats000066400000000000000000000150351335270560400446000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Lists * ----- * * Grammar: * - ( [*#:]+ ';'? | ';' ) ListItemContentStar * */ module org.sweble.wikitext.parser.parser.List; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.State; import org.sweble.wikitext.parser.parser.Whitespace; // -- Body --------------------------------------------------------------------- header { import java.util.Vector; } body { @SuppressWarnings("serial") private static final class TempListItem extends WtTempNode { WtNodeList content; String rt0; WtNode rt1; String prefix; } public static class ListNode { public ListType type; public WtContentNode node; public ListNode(ListType type, WtContentNode node) { this.type = type; this.node = node; } public boolean comparePrefix(char ch) { switch (type) { case DEFINITION: return (ch == ';' || ch == ':'); case ENUMERATION: return (ch == '#'); case ITEMIZATION: return (ch == '*'); default: return false; } } public static enum ListType { DEFINITION, ITEMIZATION, ENUMERATION, } } private WtNodeList getCurrentListContent(Vector listStack) { return listStack.lastElement().node; } private WtNodeList getLastItemContent(Vector listStack) { WtNodeList items = getCurrentListContent(listStack); return (WtContentNode) items.get(items.size() - 1); } private WtNode pushNewListItem(Vector listStack, char ch, WtNodeList content) { WtNode n = null; switch (ch) { case '*': case '#': n = nf.li(content); break; case ':': n = nf.dd(content); break; case ';': n = nf.dt(content); break; } getCurrentListContent(listStack).add(n); return n; } private ListNode pushNewList(Vector listStack, char ch, boolean createItem) { ListNode node = null; switch (ch) { case '*': node = new ListNode(ListNode.ListType.ITEMIZATION, nf.ul(null)); break; case '#': node = new ListNode(ListNode.ListType.ENUMERATION, nf.ol(null)); break; case ':': case ';': node = new ListNode(ListNode.ListType.DEFINITION, nf.dl(null)); break; } if (!listStack.isEmpty()) getLastItemContent(listStack).add(node.node); listStack.add(node); if (createItem) { // TODO: Issue warning! pushNewListItem(listStack, ch, null); } return node; } private WtRtData processListItem(Vector listStack, WtNodeList items, TempListItem p, WtRtData lastItemRtd) { int j; for (j = 0; j < p.prefix.length() && j < listStack.size(); ++j) { if (!listStack.get(j).comparePrefix(p.prefix.charAt(j))) break; } // pop closed list levels listStack.setSize(j); boolean addRoot = (j == 0); int last = p.prefix.length() - 1; // open new list levels if (p.rt0 != null) { if (j < p.prefix.length()) { ListNode node = pushNewList(listStack, p.prefix.charAt(j), j < last); node.node.setRtd(p.rt0, SEP); ++j; } else { if (lastItemRtd != null) lastItemRtd.setField(1, p.rt0); } } for (; j < p.prefix.length(); ++j) pushNewList(listStack, p.prefix.charAt(j), j < last); // push the actual list item WtNode item = pushNewListItem( listStack, p.prefix.charAt(last), p.content); if (isGatherRtData()) item.setRtd(p.rt1, p.prefix, SEP); if (addRoot) items.add(listStack.firstElement().node); return item.getRtd(); } private WtNodeList makeList(TempListItem first, Pair tail) { Vector listStack = new Vector(); WtNodeList items = nf.list(); WtRtData lastItemRtd = processListItem(listStack, items, first, null); for (Pair i = tail; !i.isEmpty(); i = i.tail()) { TempListItem item = i.head(); /*if (lastItem != null) lastItem.setField(1, item.rt0);*/ lastItemRtd = processListItem(listStack, items, item, lastItemRtd); } return items; } } // -- List --[ State Aware Memoization ]------------------------------------- noinline transient WtNode List = ^{ StateAwareResult r = (StateAwareResult) pListMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pListTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode ListMemoized = ^{ Result yyResult = new StateAwareResult("List", getContext(), pListTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- List ------------------------------------------------------------------ noinline transient WtNode ListTransient = &{ accept(ParserAtoms.LIST) } first:ListItem tail:( &slEol ListItem )* { yyValue = makeList(first, tail); } ; private noinline transient TempListItem ListItem = rt0:pEol? rt1:pTpStar prefix:ListPrefix content:ListItemContentStar { // TODO: Support "; term : def" on a single line yyValue = new TempListItem(); yyValue.content = content; yyValue.rt0 = rt0; yyValue.rt1 = rt1; yyValue.prefix = prefix; } ; private inline String ListPrefix = prefix:ListPrefixStr semicolon:';'? { yyValue = (semicolon != null) ? prefix + ';' : prefix; } / ';' { yyValue = ";"; } ; private transient String ListPrefixStr = [*#:]+ ; private inline stateful WtNodeList ListItemContentStar = { enter(ParserScopes.LIST_ITEM); } InlineContentStar ; // -- End of file ------------------------------------------------------------- PageSwitch.rats000066400000000000000000000060671335270560400457300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * PageSwitch * ---------- * * Grammar: * - '__' Name '__' * */ module org.sweble.wikitext.parser.parser.PageSwitch; import org.sweble.wikitext.parser.utils.Warnings; // -- PageSwitch --------------------------------------------------------------- WtNode PageSwitch = "__" yyValue:PageSwitchChoice / "__" { yyValue = nf.text("__"); } ; private inline WtNode PageSwitchChoice = name:SwitchName "__" { yyValue = setRtd( nf.pageSwitch(name), "__", name, "__"); } / &{ isWarningsEnabled() } PageSwitchAutoCorrect ; private inline WtNode PageSwitchAutoCorrect = &{ isAutoCorrect(WS_NORMAL) } name:SwitchName '_' { yyValue = setRtd( nf.pageSwitch(name), "__", name, "__"); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyIndex), WS_NORMAL, "Page Switch", "the finishing `_' is missing"); } / &{ isWarningLevelEnabled(WS_NORMAL) } name:SwitchNameString "__" { yyValue = nf.text("__" + name + "__"); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyIndex), WS_NORMAL, "Page Switch", "the specified page switch name is unknown"); } / &{ isAutoCorrect(WS_INFO) } name:SwitchName { yyValue = setRtd( nf.pageSwitch(name), "__", name); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyResult), WS_INFO, "Page Switch", "the finishing `__' is missing"); } / &{ isWarningLevelEnabled(WS_NONE) } &SwitchNameString { yyValue = nf.text("__"); fileLooksLikeWarning( yyValue, makeSpan(yyStart - 2, yyPredResult), WS_NONE, "Page Switch", "the name of the page switch is missing or not recognized as name"); } ; private inline String SwitchName = yyValue:SwitchNameString &{ isValidSwitchName(yyValue) } ; private transient String SwitchNameString = ( '-' / [A-Z] / [a-z] / [0-9] / [\u00B7] / [\u00C0-\u00D6] / [\u00D8-\u00F6] / [\u00F8-\u02FF] / [\u0370-\u037D] / [\u037F-\u1FFF] / [\u200C-\u200D] / [\u2070-\u218F] / [\u2C00-\u2FEF] / [\u3001-\uD7FF] / [\uF900-\uFDCF] / [\uFDF0-\uFFFD] / [\u0300-\u036F] / [\u203F-\u2040] )+ ; // -- End of file -------------------------------------------------------------- RatsWikitextParser.rats000066400000000000000000000125631335270560400475070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.parser.RatsWikitextParser; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.State; // ... import org.sweble.wikitext.parser.parser.ExternalLink; import org.sweble.wikitext.parser.parser.HorizontalRule; import org.sweble.wikitext.parser.parser.InternalLink; import org.sweble.wikitext.parser.parser.List; import org.sweble.wikitext.parser.parser.Section; import org.sweble.wikitext.parser.parser.SemiPre; import org.sweble.wikitext.parser.parser.Signature; import org.sweble.wikitext.parser.parser.Table; import org.sweble.wikitext.parser.parser.TableCaption; import org.sweble.wikitext.parser.parser.TableCell; import org.sweble.wikitext.parser.parser.TableHeader; import org.sweble.wikitext.parser.parser.TableRow; import org.sweble.wikitext.parser.parser.Whitespace; // -- Header / Body / Footer --------------------------------------------------- header { import org.sweble.wikitext.parser.*; import org.sweble.wikitext.parser.WikitextWarning.WarningSeverity; import org.sweble.wikitext.parser.nodes.*; import org.sweble.wikitext.parser.postprocessor.IntermediateTags; import org.sweble.wikitext.parser.utils.ParserShouldNotBeHereException; import org.sweble.wikitext.parser.utils.ParserStats; import org.sweble.wikitext.parser.nodes.WtBody.WtBodyImpl; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText.WtLinkOptionAltTextImpl; import org.sweble.wikitext.parser.nodes.WtLinkOptions.WtLinkOptionsImpl; import org.sweble.wikitext.parser.nodes.WtLinkTarget.LinkTargetType; import org.sweble.wikitext.parser.nodes.WtLinkTitle.WtLinkTitleImpl; import org.sweble.wikitext.parser.nodes.WtNodeList.WtNodeListImpl; import org.sweble.wikitext.parser.nodes.WtValue.WtValueImpl; import org.sweble.wikitext.parser.nodes.WtXmlAttributes.WtXmlAttributesImpl; import de.fau.cs.osr.ptk.common.*; import de.fau.cs.osr.ptk.common.ast.*; import de.fau.cs.osr.utils.StringTools; import de.fau.cs.osr.utils.WrappedException; import java.util.Collections; import java.util.ListIterator; import org.apache.commons.lang3.StringUtils; } body { private WtNodeList fixNewlinesAtBoa(WtNodeList content) { WtNodeList result = nf.list(); ArrayList tmp = new ArrayList(); int count = 0; Iterator i = content.iterator(); outer: while (i.hasNext()) { WtNode n = i.next(); switch (n.getNodeType()) { case WtNode.NT_NEWLINE: ++count; // FALL THROUGH case WtNode.NT_TEXT: if (count >= 2) tmp.add(n); else result.add(n); break; case WtNode.NT_IM_START_TAG: if (count >= 2) { result.add(n); for (WtNode n2 : tmp) result.add(n2); while (i.hasNext()) result.add(i.next()); return result; } else break outer; default: break outer; } } return content; } } option // Enabling verbose requires the GPL licensed Rats! library // Due to the GPL license this can only be done during development and must // never be released! //verbose, withLocation, parser(org.sweble.wikitext.parser.parser.RatsWikitextParser); // -- Article ------------------------------------------------------------------ public transient WtParsedWikitextPage Article = { enter(ParserScopes.PAGE); } content:BolBlockContent &Eof { yyValue = nf.parsedPage( fixNewlinesAtBoa(content), getState().getEntityMap()); } ; // -- Stuff that must not be optimized away ------------------------------------ // although the grammar doesn't reference it public transient void grmbl = ListMemoized InternalLinkMemoized TableMemoized ListTransient InternalLinkTransient TableTransient TableCaptionMemoized TableRowMemoized TableHeaderMemoized TableCaptionTransient TableRowTransient TableHeaderTransient TableCellMemoized ListMemoized pExtWsStarMemoized TableCellTransient ListTransient pExtWsStarTransient SemiPreMemoized SectionsMemoized HeadingMemoized SemiPreTransient SectionsTransient HeadingTransient HorizontalRuleMemoized ExternalLinkMemoized ParagraphMemoized HorizontalRuleTransient ExternalLinkTransient ParagraphTransient OptionsAndTitleMemoized InlineContentStarMemoized InlineContentPlusMemoized OptionsAndTitleTransient InlineContentStarTransient InlineContentPlusTransient ; // -- End of file -------------------------------------------------------------- Section.rats000066400000000000000000000156131335270560400452730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Section * ------- * * Grammar: * - '='+ Title '='+ Space* EolOrEof * * The title can contain: * - ExternalLink * - InternalLink * - PageSwitch * - ParserEntity * - PlainExternalLink * - Signature * - Ticks * - XmlElement * - XmlReference * * The title cannot contain: * - Newline * - Tables * - Headings * - Horizontal lines * - Block level elements * * The title can not contain (syntactically): * - Newlines * */ module org.sweble.wikitext.parser.parser.Section; import org.sweble.wikitext.parser.utils.Warnings; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.Whitespace; // -- Header / Body / Footer --------------------------------------------------- header { import java.util.Stack; } body { @SuppressWarnings("serial") private static final class SectionHeading extends WtTempNode { int level; WtHeading heading; } private SectionHeading createHeading( int spanFrom, Result spanTo, WtNode rt0, int oCount, WtNodeList title, int cCount, WtNode rt1) { int oOdd = 0; int cOdd = 0; if (oCount > 6) { oOdd = oCount - 6; oCount = 6; } if (cCount > 6) { cOdd = cCount - 6; cCount = 6; } int level; if (cCount > oCount) { level = oCount; cOdd += cCount - oCount; cCount -= cCount - oCount; } else { level = cCount; oOdd += oCount - cCount; oCount -= oCount - cCount; } WtHeading heading = nf.heading(title); WtText oOddText = null; if (oOdd > 0) { if (isWarningLevelEnabled(WS_NORMAL)) fileOddSyntaxWarning( heading, makeSpan(spanFrom, spanTo), WS_NORMAL, "Odd number of opening equals"); oOddText = nf.text(StringTools.strrep('=', oOdd)); heading.add(0, oOddText); } WtText cOddText = null; if (cOdd > 0) { if (isWarningLevelEnabled(WS_NORMAL)) fileOddSyntaxWarning( heading, makeSpan(spanFrom, spanTo), WS_NORMAL, "Odd number of closing equals"); cOddText = nf.text(StringTools.strrep('=', cOdd)); heading.add(cOddText); } String equals = StringTools.strrep('=', level); setRtd( heading, rt0, equals, SEP, equals, rt1); SectionHeading tmp = new SectionHeading(); tmp.level = level; tmp.heading = heading; return tmp; } private WtNode makeSections(WtSection first, Pair tail) { Stack stack = new Stack(); stack.push(first); WtNodeList result = nf.list(first); Pair i = tail; while (!i.isEmpty()) { WtSection s = i.head(); while (!stack.isEmpty() && s.getLevel() <= stack.peek().getLevel()) stack.pop(); if (stack.isEmpty()) { result.add(s); } else { // TODO: Dangerous! We must clone the section instead! stack.peek().getBody().add(s); //stack.peek().setBody(nf.list(stack.peek().getBody(), s)); } stack.push(s); i = i.tail(); } return result; } } // -- Sections --[ State Aware Memoization ]------------------------------------ noinline transient WtNode Sections = ^{ StateAwareResult r = (StateAwareResult) pSectionsMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pSectionsTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode SectionsMemoized = ^{ Result yyResult = new StateAwareResult("Sections", getContext(), pSectionsTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- Sections ----------------------------------------------------------------- noinline transient WtNode SectionsTransient = &{ accept(ParserAtoms.SECTIONS) } first:WtSection tail:WtSection* { yyValue = makeSections(first, tail); } ; inline void InlineContentStopperHeading = &{ inScope(ParserScopes.SECTION_HEADING) } EqualsStr pExtSpaceStar slEolOrEof ; inline void BlockStopperNextSection = &{ inScope(ParserScopes.SECTION_BODY) } SectionHeading ; // -- WtSection ------------------------------------------------------------------ private noinline transient WtSection WtSection = h:SectionHeading Eof { yyValue = nf.section(h.level, h.heading, nf.noBody()); } / h:SectionHeading body:SectionContentStar { yyValue = nf.section(h.level, h.heading, body); } ; // -- SectionHeading --[ State Aware Memoization ]------------------------------------- noinline transient SectionHeading SectionHeading = ^{ StateAwareResult r = (StateAwareResult) pHeadingMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pHeadingTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized SectionHeading HeadingMemoized = ^{ Result yyResult = new StateAwareResult("SectionHeading", getContext(), pHeadingTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- SectionHeading ------------------------------------------------------------------ noinline transient SectionHeading HeadingTransient = rt0:pTpStar open:EqualsStr heading:HeadingContentStar close:EqualsStr rt1:pExtSpaceStar &slEolOrEof { // TODO: add warning productions yyValue = createHeading(yyStart, yyResult, rt0, open.length(), heading, close.length(), rt1); } ; private transient String EqualsStr = "="+ ; // -- Content ------------------------------------------------------------------ private inline stateful WtNodeList HeadingContentStar = { enter(ParserScopes.SECTION_HEADING); } InlineContentPlus ; private inline stateful WtBody SectionContentStar = { enter(ParserScopes.SECTION_BODY); } content:BlockContent { yyValue = nf.body(content); } ; // -- End of file -------------------------------------------------------------- SemiPre.rats000066400000000000000000000103531335270560400452270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Semi Pre Block Level Element * ---------------------------- * * Grammar: * - SemiPreLine (Eol SemiPreLine)* * * Semi Pre Line * ------------- * * Grammar: * - Eol? ' ' SemiPreContentStar * */ module org.sweble.wikitext.parser.parser.SemiPre; import org.sweble.wikitext.parser.parser.Content; import org.sweble.wikitext.parser.parser.State; import org.sweble.wikitext.parser.parser.Whitespace; // -- SemiPre --[ State Aware Memoization ]------------------------------------- noinline transient WtNode SemiPre = ^{ StateAwareResult r = (StateAwareResult) pSemiPreMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, pSemiPreTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtNode SemiPreMemoized = ^{ Result yyResult = new StateAwareResult("SemiPre", getContext(), pSemiPreTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; // -- SemiPre ------------------------------------------------------------------ /* A SemiPre section cannot begin with a line consisting only of whitespace. * All following lines may contain only whitespace. * * A line containing BlockElemStart or BlockElemEnd will not be recognized as * SemiPre line. Furthermore, if a line is located within a block element it * should not be recognized as SemiPre line. We cannot guarantee this behavior * here. * FIXME: We will have to unwrap SemiPre lines later if we should discover that * they appear inside a block element. */ noinline transient WtNode SemiPreTransient = &{ accept(ParserAtoms.SEMI_PRE) } first:FirstSemiPreLine tail:( SemiPreLine )* { yyValue = nf.semiPre(nf.list(first, tail)); } ; private inline WtSemiPreLine FirstSemiPreLine = rt1:pTpStar ' ' !EmptyLine !HasBlockElem content:SemiPreContentStar { yyValue = setRtd( nf.semiPreLine(content), rt1, ' ', SEP); } ; private inline WtSemiPreLine SemiPreLine = rt0:pEol rt1:pTpStar ' ' !HasBlockElem content:SemiPreContentStar { yyValue = setRtd( nf.semiPreLine(content), rt0, rt1, ' ', SEP); } ; private inline void EmptyLine = pExtSpaceStar slEol ; /* If there is a start tag or end tag (BlockElemStart/End) on a line, that * line will never be recognized as SemiPre. Furthermore, if a previous line * had a start tag (BlockElemStart) and no end tag has been encountered since * then the line will also not be recognized as SemiPre. However, we can only * model the behavior of the first case with these rules. * TODO: Model the scoping behavior in a post-processing step. */ private inline void HasBlockElem = ( !BlockElemStart !BlockElemEnd !slEol _ )* ( BlockElemStart / BlockElemEnd ) ; private inline void BlockElemStart = "]+ * - Url ::= Scheme ':' Path * */ module org.sweble.wikitext.parser.parser.Url; // -- Code --------------------------------------------------------------------- body { private boolean isProtocol(WtText text, String path) { String proto = extractProtocol(text); if (proto == null) return false; proto += ':'; if (path.startsWith("//")) proto += "//"; return getState().getConfig().isUrlProtocol(proto); } private boolean isProtocol(String protocol, String path) { protocol += ':'; if (path.startsWith("//")) protocol += "//"; return getState().getConfig().isUrlProtocol(protocol); } private WtNode makeExternalLink(WtText text, String path) { String protocol = extractProtocol(text); String textStr = text.getContent(); String prefix = textStr.substring(0, textStr.length() - protocol.length()); String strip = ",;\\.:!?"; if (path.indexOf('(') == -1) strip += ")"; String trimmedPath = StringUtils.stripEnd(path, strip); String suffix = path.substring(trimmedPath.length()); WtUrl url = setRtd( nf.url(protocol, trimmedPath), protocol, ':', trimmedPath); if (prefix.isEmpty() && suffix.isEmpty()) return url; WtNodeList result = nf.list(); if (!prefix.isEmpty()) result.add(nf.text(prefix)); result.add(url); if (!suffix.isEmpty()) result.add(nf.text(suffix)); return result; } private String extractProtocol(WtText text) { String s = text.getContent(); if (s.isEmpty()) return null; int i = s.length() - 1; int cp = -1; boolean validEnd = false; while (i >= 0) { cp = s.codePointAt(i); // According to http://www.ietf.org/rfc/rfc1738.txt if ((('A' <= cp) && (cp <= 'Z')) || (('a' <= cp) && (cp <= 'z'))) { validEnd = true; } else if ((('0' <= cp) && (cp <= '9')) || ('+' == cp) || ('-' == cp) || (cp == '.')) { validEnd = false; } else { break; } --i; } if (validEnd) { if (i < 0) { return s; } else { return isPerlWordCharacter(cp) ? null : s.substring(i + 1); } } else { return null; } } /** * According to http://www.php.net/manual/en/regexp.reference.escape.php */ private boolean isPerlWordCharacter(int cp) { if (cp == '_') { return true; } else { switch (Character.getType(cp)) { case Character.UPPERCASE_LETTER: case Character.LOWERCASE_LETTER: case Character.TITLECASE_LETTER: case Character.MODIFIER_LETTER: case Character.OTHER_LETTER: case Character.DECIMAL_DIGIT_NUMBER: return true; } } return false; } } // -- Url ---------------------------------------------------------------------- WtUrl Url = protocol:UrlProtocolString ':' path:UrlPathString &{ isProtocol(protocol, path) } { yyValue = setRtd( nf.url(protocol, path), protocol, ':', path); } / &"//" path:UrlPathString { yyValue = setRtd( nf.url("", path), path); } ; WtUrl UrlNoPipe = protocol:UrlProtocolString ':' path:UrlPathNoPipeString &{ isProtocol(protocol, path) } { yyValue = setRtd( nf.url(protocol, path), protocol, ':', path); } / &"//" path:UrlPathNoPipeString { yyValue = setRtd( nf.url("", path), path); } ; String UrlProtocolString = tUrlProtocolString ; String UrlPathString = tUrlPathString ; String UrlPathNoPipeString = tUrlPathNoPipeString ; /* The part before the separator ":". * According to http://www.ietf.org/rfc/rfc1738.txt * For example: http, ftp, email, ... */ private transient String tUrlProtocolString = [A-Za-z] [A-Za-z0-9+\-.]* ; /* Additionally excluded as newline characters: \u2028\u2029\u0085 * FIXME: Is this the official RFC or is this what MediaWiki expects? */ private transient String tUrlPathString = ( ![\u0000-\u0020] ![\"\[\]<>\u007F\uE000\u2028\u2029\u0085] _ )+ ; private transient String tUrlPathNoPipeString = ( ![\u0000-\u0020] ![\"\[\]<>|\u007F\uE000\u2028\u2029\u0085] _ )+ ; // -- End of file ------------------------------------------------------------- Whitespace.rats000066400000000000000000000116451335270560400457640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.parser.Whitespace; import org.sweble.wikitext.parser.utils.ParserEntity; modify org.sweble.wikitext.parser.utils.Whitespace; // -- Definition of StateLess EOL productions ---------------------------------- inline String pSlEol = "\r\n" // tateess / "\r" / "\n" / "\u2028" / "\u2029" / "\u000B" / "\u000C" / "\u0085" ; inline void slEol = "\r\n" // tateess / '\r' / '\n' / '\u2028' / '\u2029' / '\u000B' / '\u000C' / '\u0085' ; transient void slEolOrEof = slEol / Eof ; // -- Redefinition of EOL Stateful productions --------------------------------- // IMPORTANT: Due to this redefinition all production including Eol, pEol or // pEolNode are stateful and must not be memoized naively! String pEol := &{ acceptEol() } pSlEol ; void Eol := &{ acceptEol() } slEol ; transient WtNewline pEolNode = eol:pEol { yyValue = nf.newline(eol); } ; // -- Preserved Transparent Elements ------------------------------------------- WtNode pTpStar = ptTpStar ; WtNode pTpPlus = ptTpPlus ; private transient WtNodeList ptTpStar = tp:pTransparent* { yyValue = nf.list(tp); } ; private transient WtNodeList ptTpPlus = tp:pTransparent+ { yyValue = nf.list(tp); } ; private inline WtNode pTransparent = ParserEntityXmlCommentOrIgnore ; // -- Preserved Extended Spaces ------------------------------------------------ WtNode pExtSpaceStar = ptExtSpaceStar ; WtNode pExtSpacePlus = ptExtSpacePlus ; private transient WtNodeList ptExtSpaceStar = s:pExtSpaceAtom* { yyValue = nf.list(s); } ; private transient WtNodeList ptExtSpacePlus = s:pExtSpaceAtom+ { yyValue = nf.list(s); } ; private inline WtNode pExtSpaceAtom = spaces:pSpacePlus { yyValue = nf.text(spaces); } / pTransparent ; // -- Preserved Extended Whitespace -------------------------------------------- // IMPORTANT: Due to this redefinition of Eol, pEol and pEolNode all whitespace // productions are context sensitive and can only be memoized with // StateAwareResult. noinline transient WtNode pExtWsStar = ^{ StateAwareResult r = (StateAwareResult) ppExtWsStarMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, ppExtWsStarTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtWhitespace pExtWsStarMemoized = ^{ Result yyResult = new StateAwareResult("pExtWsStar", getContext(), ppExtWsStarTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; noinline transient WtWhitespace pExtWsStarTransient = s:pExtSpaceStar ws:pExtWsAtom* { yyValue = nf.ws(nf.list(s, ws), !ws.isEmpty()); } ; /* noinline transient WtNode pExtWsPlus = ^{ StateAwareResult r = (StateAwareResult) ppExtWsPlusMemoized(yyBase); final WikitextParserContext context = getContext(); Result yyResult = r.getResult(context); if (yyResult == null) yyResult = r.setResult(context, ppExtWsPlusTransient(yyBase)); if (returnTrue(r)) return yyResult; } ; noinline memoized WtWhitespace pExtWsPlusMemoized = ^{ Result yyResult = new StateAwareResult("pExtWsPlus", getContext(), ppExtWsPlusTransient(yyBase)); if (returnTrue(yyResult)) return yyResult; } ; noinline transient WtWhitespace pExtWsPlusTransient = s:pExtSpacePlus ws:pExtWsAtom* { yyValue = nf.ws(nf.list(s, ws), !ws.isEmpty()); } / ws:pExtWsAtom+ { yyValue = nf.ws(nf.list(ws), true); } ; */ private inline WtNode pExtWsAtom = ws:pWsPlus { yyValue = nf.text(ws); } / pTransparent ; // -- End of file -------------------------------------------------------------- XmlElement.rats000066400000000000000000000044551335270560400457430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * XmlElement * ---------- * * This grammar recognizes start and end tags separately without matching them. * Finding valid pairs of start and end tags is deferred to later processing. * * Grammar: * - '' * - '<' XmlName XmlAttribute* Ws* "/>" * - '<' XmlName XmlAttribute* Ws* ">" * */ module org.sweble.wikitext.parser.parser.XmlElement; import org.sweble.wikitext.parser.utils.Whitespace as Whitespace; import org.sweble.wikitext.parser.utils.XmlName; import org.sweble.wikitext.parser.utils.XmlAttribute(Whitespace); // -- XmlElement --------------------------------------------------------------- WtNode XmlElement = "' { yyValue = setRtd( nf.endTag(name), "'); } // FIXME: Add auto correction and/or warning generation ; private inline WtNode XmlStartTag = name:XmlName attributes:AttributeStar ws:pWsStar "/>" { yyValue = setRtd( nf.emptyTag(name, attributes), "<", name, SEP, ws, "/>"); } / name:XmlName attributes:AttributeStar ws:pWsStar '>' { yyValue = setRtd( nf.startTag(name, attributes), '<', name, SEP, ws, '>'); } // FIXME: Add auto correction and/or warning generation ; private inline WtXmlAttributes AttributeStar = yyValue:(&pWsPlus XmlAttributePlus)? { if (yyValue == null) yyValue = nf.emptyAttrs(); } ; // -- End of file -------------------------------------------------------------- preprocessor/000077500000000000000000000000001335270560400442205ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parserContent.rats000066400000000000000000000056151335270560400465340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/preprocessor/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.preprocessor.Content; import org.sweble.wikitext.parser.utils.Whitespace; import org.sweble.wikitext.parser.utils.ContentUtils; import org.sweble.wikitext.parser.preprocessor.XmlElement; import org.sweble.wikitext.parser.preprocessor.Template; import org.sweble.wikitext.parser.preprocessor.InternalLink; import org.sweble.wikitext.parser.preprocessor.OnlyInclude; // -- Content ------------------------------------------------------------------ transient WtNodeList ContentStar = content:ContentAtom* { yyValue = nf.list(content); } ; transient WtNodeList ContentPlus = content:ContentAtom+ { yyValue = nf.list(content); } ; private inline WtNode ContentAtom = !ContentStopper ContentChoice ; // -- Modify these to create new types of content ------------------------------ inline void XmlCommentPrefix = Eol ' '* "" suffix:PureSpaceStar eol2:pEol { WtXmlComment c = setRtd( nf.comment(prefix, content, suffix + eol2), prefix, "", suffix, eol2); yyValue = nf.list(nf.text(eol1), c); } / eol1:pEol prefix:PureSpaceStar "" { WtXmlComment c = setRtd( nf.comment(content), ""); yyValue = nf.list(nf.text(eol1 + prefix), c); } / eol1:pEol prefix:PureSpaceStar "" { yyValue = setRtd( nf.comment(content), ""); } / content:XmlCommentContent Eof { yyValue = setRtd( nf.comment(content), "" _ )* ; // -- Ignored opening, closing tags -------------------------------------------- // Ignored tags are noinclude, includeonly and onlyinclude, depending on whether // we are parsing for inclusion or not. The effect is that the tag itself is // ignored because its contents shall be included in the given parsing mode. private transient WtNode IgnoredClosingTag = name:IgnoredTagName garbage:IgnoredTagGarbage '>' { yyValue = nf.ignored(""); } ; private transient WtNode IgnoredOpeningTag = name:IgnoredTagName garbage:IgnoredTagGarbage '>' { yyValue = nf.ignored("<" + name + garbage + ">"); } ; private inline String IgnoredTagName = yyValue:TagName &{ isIgnoredTag(yyValue) } ; private transient String IgnoredTagGarbage = ( !'>' _ )* ; // -- Ignored elements --------------------------------------------------------- // Ignored elements are noinclude, includeonly and onlyinclude, depending on // whether we are parsing for inclusion or not. The effect is that the contents // of those elements are ignored and thus the whole element is cut out of the // wikitext as intended. private transient WtNode IgnoredElements = header:IgnoredElementHeader { getState().setTagExtensionName(header.name); } '>' body:TagBody { yyValue = nf.ignored("<" + header.name + header.garbage + ">" + body.content.getContent() + body.endTag); } / header:IgnoredElementHeader "/>" { yyValue = nf.ignored("<" + header.name + header.garbage + "/>"); } ; private transient IgnoredElementHeader IgnoredElementHeader = name:IgnoredElementName garbage:IgnoredTagGarbage { yyValue = new IgnoredElementHeader(); yyValue.name = name; yyValue.garbage = garbage; } ; private inline String IgnoredElementName = yyValue:TagName &{ isIgnoredElement(yyValue) } ; // -- Tag extensions ----------------------------------------------------------- private transient WtTagExtension TagExtension = header:TagHeader '>' { getState().setTagExtensionName(header.name); } body:TagBody { yyValue = setRtd( nf.tagExt(header.name, header.attrs, body.content), '<', header.name, SEP, header.ws, '>', SEP, body.endTag); } / header:TagHeader "/>" { yyValue = setRtd( nf.tagExt(header.name, header.attrs), '<', header.name, SEP, header.ws, "/>"); } ; private transient TagExtHeader TagHeader = name:ValidTagName &pWsPlus attributes:XmlAttributePlus ws:pWsStar { yyValue = new TagExtHeader(); yyValue.name = name; yyValue.attrs = attributes; yyValue.ws = ws; } / name:ValidTagName ws:pWsStar { yyValue = new TagExtHeader(); yyValue.name = name; yyValue.attrs = nf.emptyAttrs(); yyValue.ws = ws; } ; private transient TagExtBody TagBody = content:TagContentStar endTag:( ValidClosingTag / Eof { yyValue = null; } ) { yyValue = new TagExtBody(); yyValue.content = nf.tagExtBody(content); yyValue.endTag = (String) endTag; } ; private transient String TagContentStar = ( !ValidClosingTag _ )* ; // -- Opening and closing names/tags ------------------------------------------- private transient String ValidClosingTagAfterLeftAngleBracket = "/" endTag:ClosingTagHeader &{ isValidClosingTag(endTag.name) } { yyValue = ""; } ; private transient String ValidClosingTag = "<" yyValue:ValidClosingTagAfterLeftAngleBracket ; private transient ClosingTagHeader ClosingTagHeader = name:TagName ws:pWsStar '>' { yyValue = new ClosingTagHeader(); yyValue.name = name; yyValue.ws = ws; } ; private inline String ValidTagName = yyValue:TagName &{ isValidExtensionTagName(yyValue) } ; private inline String TagName = XmlName ; // -- End of file ------------------------------------------------------------- utils/000077500000000000000000000000001335270560400426325ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parserAssert.rats000066400000000000000000000034101335270560400447640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Assert; import org.sweble.wikitext.parser.utils.Trickery; // -- Header/Body -------------------------------------------------------------- body { private final void throwShouldNotBeHereException(int yyStart, String context) { int start = yyStart - 16; if (start < 0) start = 0; throw new ParserShouldNotBeHereException( columnToLocation(yyStart), difference(start, yyStart) + context, yyStart - start); } } // -- Assert ------------------------------------------------------------------- inline WtNode SantiyCheckEnd = { yyValue = null; } &{ returnFalse() } ; inline WtNode SantiyCheckAccept = { yyValue = null; } ; noinline transient void ShouldNotBeHere = ThrowShouldNotBeHereException ; noinline transient void ThrowShouldNotBeHereException = context:ErrorContextString { throwShouldNotBeHereException(yyStart, context); } ; private String ErrorContextString = (_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)? ; // -- End of file -------------------------------------------------------------- ContentUtils.rats000066400000000000000000000034571335270560400461710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.ContentUtils; // -- Header / Body / Footer --------------------------------------------------- header { import java.util.Collection; } body { protected String difference(int start, Result result) { return difference(start, result.index); } protected Span makeSpan(int from, int to) { AstLocation lFrom = columnToLocation(from); if (lFrom == null) return new Span(); AstLocation lTo = columnToLocation(to); if (lTo == null) return new Span(lFrom, difference(from, from)); return new Span(lFrom, lTo, difference(from, to)); } protected Span makeSpan(int from, Result to) { return makeSpan(from, to.index); } protected AstLocation columnToLocation(int index) { Column col = column(index); return new AstLocation(col.file, col.line, col.column); } // =========================================================================== private WikitextNodeFactory nf; public void setNodeFactory(WikitextNodeFactory nodeFactory) { this.nf = nodeFactory; } } // -- End of file -------------------------------------------------------------- Numbers.rats000066400000000000000000000030501335270560400451360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Numbers; // -- Numbers ----------------------------------------------------------------- String IntegerLiteral = HexNumeral / OctalNumeral / DecimalNumeral ; String HexNumeral = '0' [xX] HexDigitPlus ; String OctalNumeral = '0' OctalDigit+ ; String DecimalNumeral = '0' / NonZeroDigit DigitStar ; transient String DigitStar = Digit* ; transient String DigitPlus = Digit+ ; transient String HexDigitStar = HexDigit* ; transient String HexDigitPlus = HexDigit+ ; inline String HexQuad = HexDigit HexDigit HexDigit HexDigit ; inline String HexDigit = [0-9a-fA-F] ; inline String OctalDigit = [0-7] ; inline String NonZeroDigit = [1-9] ; inline String Digit = [0-9] ; // -- End of file ------------------------------------------------------------- ParserCharSequence.rats000066400000000000000000000051171335270560400472540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * ParserCharSequence * ------------------ * * Wraps the parser stream offered by xtc.parser.ParserBase as CharSequence. * */ module org.sweble.wikitext.parser.utils.ParserCharSequence; // -- Header / Body / Footer --------------------------------------------------- header { import java.util.regex.Pattern; import java.util.regex.Matcher; } body { public class ParserCharSequence implements CharSequence { protected int base; protected int length; public ParserCharSequence(int base) { if (base < 0 || base > yyData.length) throw new IndexOutOfBoundsException("Parameter base out of bounds"); this.base = base; this.length = yyData.length - base; } public ParserCharSequence(int start, int end) { if (start < 0 || start > yyData.length) throw new IndexOutOfBoundsException("Parameter start out of bounds"); if (end < start || end > yyData.length) throw new IndexOutOfBoundsException("Parameter end out of bounds"); this.base = start; this.length = end - start; } public char charAt(int index) throws IndexOutOfBoundsException { try { return (char) character(base + index); } catch (IOException e) { e.printStackTrace(); throw new IndexOutOfBoundsException( "Failed to retrieve character! " + "See stack trace for more information"); } } public int length() { return length; } public CharSequence subSequence(int start, int end) { return new ParserCharSequence(base + start, base + end); } public String toString() { final int len = length(); char[] chs = new char[len]; for (int i = 0; i < len; ++i) chs[i] = charAt(i); return new String(chs); } } } // -- End of file -------------------------------------------------------------- ParserEntity.rats000066400000000000000000000045401335270560400461610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * ParserEntity * ------------ * * Grammar: * - '\uE000' DecimalNumeral '\uE001' * */ module org.sweble.wikitext.parser.utils.ParserEntity; import org.sweble.wikitext.parser.utils.Numbers; // -- Header & Body ------------------------------------------------------------ body { private boolean isXmlCommentOrIgnored(WtNode n) { switch (n.getNodeType()) { case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: return true; default: return false; } } private boolean isTemplateOrParameter(WtNode n) { switch (n.getNodeType()) { case WtNode.NT_TEMPLATE: case WtNode.NT_TEMPLATE_PARAMETER: return true; default: return false; } } private boolean isTmplParamCommentIgnore(WtNode n) { switch (n.getNodeType()) { case WtNode.NT_TEMPLATE: case WtNode.NT_TEMPLATE_PARAMETER: case WtNode.NT_IGNORED: case WtNode.NT_XML_COMMENT: return true; default: return false; } } } // -- Entity ------------------------------------------------------------------- WtNode ParserEntity = '\uE000' id:DecimalNumeral '\uE001' { yyValue = getEntity(Integer.parseInt(id)); } ; inline WtNode ParserEntityXmlCommentOrIgnore = entity:ParserEntity &{ isXmlCommentOrIgnored(entity) } { yyValue = entity; } ; inline WtNode ParserEntityTemplateOrParameter = entity:ParserEntity &{ isTemplateOrParameter(entity) } { yyValue = entity; } ; inline WtNode ParserEntityTmplParamCommentIgnore = entity:ParserEntity &{ isTmplParamCommentIgnore(entity) } { yyValue = entity; } ; // -- End of file -------------------------------------------------------------- Roundtrip.rats000066400000000000000000000042261335270560400455170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Roundtrip; // -- Body --------------------------------------------------------------------- header { import java.util.ArrayList; } body { private static final String SEP = WtRtData.SEP; protected boolean isGatherRtData() { return getState().isGatherRtData(); } private T setRtd(T node, String... glue) { if (isGatherRtData()) node.setRtd(glue); return node; } private T setRtd(T node, Object... glue) { if (isGatherRtData()) node.setRtd(glue); return node; } private T prependRtd(T node, String glue) { if (isGatherRtData()) { WtRtData rtd = node.getRtd(); if (rtd == null) { node.setRtd(); rtd = node.getRtd(); } rtd.prepend(glue); } return node; } private T prependRtd(T node, Object... glue) { if (isGatherRtData()) { WtRtData rtd = node.getRtd(); if (rtd == null) { node.setRtd(); rtd = node.getRtd(); } rtd.prepend(glue); } return node; } private T appendRtd(T node, Object... glue) { if (isGatherRtData()) { WtRtData rtd = node.getRtd(); if (rtd == null) { node.setRtd(); rtd = node.getRtd(); } rtd.append(glue); } return node; } } // -- End of file -------------------------------------------------------------- StateAwareMemoization.rats000066400000000000000000000120701335270560400500010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.StateAwareMemoization; // -- Header / Body / Footer --------------------------------------------------- body { private static ParserStats stats = null; // =========================================================================== public static void enableStats() { stats = new ParserStats(); } public static boolean isStatsEnabled() { return stats != null; } public static ParserStats getStats() { return stats; } // =========================================================================== protected static final class StateAwareResult extends Result { private WikitextParserContext context; private Result result; private Object[] moreResults; /* DEBUG ONLY private final String prod; private boolean reused = false; */ public StateAwareResult(String prod, WikitextParserContext context, Result result) { super(-1); setResult(context, result); /* DEBUG ONLY this.prod = prod; */ } public Result setResult(WikitextParserContext context, Result result) { if (this.context != null) { Object[] moreResultsNew; if (moreResults != null) { moreResultsNew = new Object[moreResults.length + 2]; System.arraycopy(moreResults, 0, moreResultsNew, 0, moreResults.length); } else { moreResultsNew = new Object[2]; } moreResultsNew[moreResultsNew.length - 2] = this.context; moreResultsNew[moreResultsNew.length - 1] = this.result; moreResults = moreResultsNew; } this.context = context; this.result = result; /* DEBUG ONLY if (stats != null) { stats.parsed(prod); if (!result.hasValue()) stats.failed(prod); } */ return result; } public Result getResult(WikitextParserContext newContext) { Result validResult = null; if (this.context.equals(newContext)) { validResult = result; } else if (moreResults != null) { for (int i = 0; i < moreResults.length; i += 2) { WikitextParserContext context = (WikitextParserContext) moreResults[i]; if (context.equals(newContext)) { Result result = (Result) moreResults[i + 1]; moreResults[i + 0] = this.context; moreResults[i + 1] = this.result; this.context = context; this.result = result; validResult = result; break; } } } /* DEBUG ONLY if (stats != null) { stats.called(prod); if (validResult != null) { if (reused) stats.reused(prod); reused = true; } } */ return validResult; } /* DEBUG + VERBOSE ONLY public String getProd() { return prod; } public Result justGetResult() { return result; } public boolean isReused() { return reused; } */ @Override public boolean hasValue() { return result.hasValue(); } @Override public boolean hasValue(String s) { return result.hasValue(s); } @Override public boolean hasValueIgnoreCase(String s) { return result.hasValueIgnoreCase(s); } @SuppressWarnings("unchecked") @Override public T semanticValue() { return (T) result.semanticValue(); } @Override public ParseError parseError() { return result.parseError(); } @Override public ParseError select(ParseError error) { return result.select(error); } @Override public ParseError select(ParseError error, int index) { return result.select(error, index); } @Override public SemanticValue createValue(Object value, ParseError error) { return result.createValue(value, error); } } // =========================================================================== private boolean returnTrue(Result yyResult) { /* DEBUG + VERBOSE ONLY StateAwareResult r = (StateAwareResult) yyResult; String name = r.getProd(); if (!r.isReused()) name += "Memoized"; if (r.justGetResult().hasValue()) { traceSuccess(name, r.justGetResult().index); } else { traceFailure(name, r.justGetResult().index); } */ return true; } } // -- End of file -------------------------------------------------------------- Trickery.rats000066400000000000000000000020011335270560400453120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Trickery; // -- Header/Body -------------------------------------------------------------- body { private final boolean returnTrue() { return true; } private final boolean returnFalse() { return false; } } // -- End of file -------------------------------------------------------------- Warnings.rats000066400000000000000000000053161335270560400453220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Warnings; // -- Header / Body / Footer --------------------------------------------------- header { import java.util.LinkedList; import java.util.List; } body { private static final WarningSeverity WS_NONE = WarningSeverity.NONE; private static final WarningSeverity WS_INFO = WarningSeverity.INFORMATIVE; private static final WarningSeverity WS_NORMAL = WarningSeverity.NORMAL; private static final WarningSeverity WS_FATAL = WarningSeverity.FATAL; // =========================================================================== private void fileLooksLikeWarning( WtNode attach, Span range, WarningSeverity severity, String looksLikeWhat, String message) { getWarnings(attach).add(makeLooksLikeWarning(range, severity, looksLikeWhat, message)); } protected LooksLikeWarning makeLooksLikeWarning( Span range, WarningSeverity severity, String looksLikeWhat, String message) { return new LooksLikeWarning(range, severity, getClass(), looksLikeWhat, message); } // =========================================================================== private void fileOddSyntaxWarning( WtNode attach, Span range, WarningSeverity severity, String message) { getWarnings(attach).add(makeOddSyntaxWarning(range, severity, message)); } protected OddSyntaxWarning makeOddSyntaxWarning( Span range, WarningSeverity severity, String message) { return new OddSyntaxWarning(range, severity, getClass(), message); } // =========================================================================== private List getWarnings(WtNode attach) { @SuppressWarnings("unchecked") List warnings = (List) attach.getAttribute("warnings"); if (warnings == null) { warnings = new LinkedList(); attach.setAttribute("warnings", warnings); } return warnings; } } // -- End of file -------------------------------------------------------------- Whitespace.rats000066400000000000000000000056051335270560400456270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module org.sweble.wikitext.parser.utils.Whitespace; // -- Preserved Spaces --------------------------------------------------------- transient String pSpaceStar = pSpace* ; transient String pSpacePlus = pSpace+ ; inline String pSpace = ' ' / '\t' / '\f' ; // -- Preserved Whitespace ----------------------------------------------------- transient String pWsStar = pWhitespace* ; transient String pWsPlus = pWhitespace+ ; inline String pWhitespace = pSpace / pEol ; inline String pEol = "\r\n" / "\r" / "\n" / "\u2028" / "\u2029" / "\u000B" / "\u000C" / "\u0085" ; // -- Preserved End of File ---------------------------------------------------- inline String pEof = !_ ; inline String pEolOrEof = pEol / pEof ; // -- Space predicates -------------------------------------------------------- transient void SpaceStar = Space* ; transient void SpacePlus = Space+ ; inline void Space = ' ' / '\t' / '\f' ; // -- Whitespace predicates --------------------------------------------------- transient void WsStar = Ws* ; transient void WsPlus = Ws+ ; inline void Ws = Space / Eol ; inline void Eol = "\r\n" / '\r' / '\n' / '\u2028' / '\u2029' / '\u000B' / '\u000C' / '\u0085' ; // -- End of File predicates --------------------------------------------------- transient void Eof = !_ ; transient void EolOrEof = Eol / Eof ; // -- End of file -------------------------------------------------------------- XmlAttribute.rats000066400000000000000000000124171335270560400461560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/main/rats/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * XML Attribute * ------------- * * Grammar: * - Ws* XmlName Ws* '=' Ws* '\'' AttributeValueSq* '\'' * - Ws* XmlName Ws* '=' Ws* '"' ValueDqStar '"' * - Ws* XmlName Ws* '=' ValueNqStar * - Ws* XmlName * */ module org.sweble.wikitext.parser.utils.XmlAttribute(WS); import org.sweble.wikitext.parser.utils.ParserEntity; import org.sweble.wikitext.parser.utils.XmlName; import org.sweble.wikitext.parser.utils.XmlReference; import WS; // -- Attributes --------------------------------------------------------------- WtXmlAttributes XmlAttributeStar = yyValue:tXmlAttributePlus? { if (yyValue == null) yyValue = nf.emptyAttrs(); } ; WtXmlAttributes XmlAttributePlus = tXmlAttributePlus ; inline void XmlAttrGarbageStopper = "/>" / '>' / '<' ; inline void XmlAttrValueStopper = "/>" / '>' / '<' ; inline String XmlAttrWs = pWsPlus ; // -- Attributes --------------------------------------------------------------- private transient WtXmlAttributes tXmlAttributePlus = head:XmlHeadAttributeChoice tail:XmlTailAttributeChoice* { yyValue = nf.attrs(nf.list(head, tail)); } ; private inline WtNode XmlHeadAttributeChoice = ValidXmlAttribute / XmlAttributeGarbage ; private inline WtNode XmlTailAttributeChoice = &XmlAttrWs ValidXmlAttribute / XmlAttributeGarbage ; private inline WtXmlAttributeGarbage XmlAttributeGarbage = garbage:XmlAttributeGarbageChoice+ { yyValue = nf.attrGarbage(nf.list(garbage)); } ; private inline WtNode XmlAttributeGarbageChoice = !XmlAttrGarbageStopper ParserEntity / str:GarbageString { yyValue = nf.text(str); } ; private transient String GarbageString = ( !GarbageStringStopper _ )+ ; private inline void GarbageStringStopper = '\uE000' / XmlAttrWs? XmlAttrGarbageStopper / XmlAttrWs ValidXmlAttribute ; private WtNode ValidXmlAttribute = ws0:XmlAttrWs? name:XmlNameOrTemplate ws1:XmlAttrWs? '=' ws2:XmlAttrWs? ['] value:ValueSqStar ['] &AttrEnd { yyValue = setRtd( nf.attr(name, value), ws0, SEP, ws1, '=', ws2, '\'', SEP, '\''); } / ws0:XmlAttrWs? name:XmlNameOrTemplate ws1:XmlAttrWs? '=' ws2:XmlAttrWs? '"' value:ValueDqStar '"' &AttrEnd { yyValue = setRtd( nf.attr(name, value), ws0, SEP, ws1, '=', ws2, '"', SEP, '"'); } / ws0:XmlAttrWs? name:XmlNameOrTemplate ws1:XmlAttrWs? '=' value:ValueNqStar &AttrEnd { yyValue = setRtd( nf.attr(name, value), ws0, SEP, ws1, '=', SEP); } / ws0:XmlAttrWs? name:XmlName &AttrEnd { yyValue = setRtd( nf.attr(nf.name(nf.list(nf.text(name)))), ws0, SEP, SEP); } / ws0:XmlAttrWs? &'\uE000' entity:ParserEntityTmplParamCommentIgnore &AttrEnd { prependRtd(entity, ws0); yyValue = entity; } ; private inline WtName XmlNameOrTemplate = xmlName:XmlName { yyValue = nf.name(nf.list(nf.text(xmlName))); } / &'\uE000' entity:ParserEntityTemplateOrParameter { yyValue = nf.name(nf.list(entity)); } ; private inline void AttrEnd = XmlAttrWs / XmlAttrValueStopper / Eof ; // -- Single quoted attribute values ------------------------------------------- private transient WtValue ValueSqStar = value:ValueSqChoice* { yyValue = nf.value(nf.list(value)); } ; private inline WtNode ValueSqChoice = string:ValueSqString { yyValue = nf.text(string); } / &'&' XmlReference / &'\uE000' ParserEntity ; private transient String ValueSqString = ( !XmlAttrValueStopper ![<'&\uE000] _ )+ ; // -- Double quoted attribute values ------------------------------------------- private transient WtValue ValueDqStar = value:ValueDqChoice* { yyValue = nf.value(nf.list(value)); } ; private inline WtNode ValueDqChoice = string:ValueDqString { yyValue = nf.text(string); } / &'&' XmlReference / &'\uE000' ParserEntity ; private transient String ValueDqString = ( !XmlAttrValueStopper ![<"&\uE000] _ )+ ; // -- Non-quoted attribute values ---------------------------------------------- private transient WtValue ValueNqStar = value:ValueNqChoice* { yyValue = nf.value(nf.list(value)); } ; private inline WtNode ValueNqChoice = string:ValueNqString { yyValue = nf.text(string); } / &'&' XmlReference / &'\uE000' ParserEntity ; private transient String ValueNqString = ( !XmlAttrValueStopper [a-zA-Z0-9!#$%()*,\-./:; enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public BasicIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PP_SUB_DIR) public void testPrettyPrintedWikitextMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PP_SUB_DIR, new TypedPrettyPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_RT_SUB_DIR) public void testRestoredWikitextAfterPostprocessingMatchesOriginal() throws Exception { PrinterInterface printer = new TypedRtDataPrinter(); Object ast = parse(inputFile); String actual = printToString(ast, printer); try { File expectedFile = TestResourcesFixture.rebase( inputFile, INPUT_SUB_DIR, EXPECTED_RT_SUB_DIR, printer.getPrintoutType(), false /* throw if file doesn't exist */); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } catch (IllegalArgumentException e) { String expected = FileTools.lineEndToUnix( FileUtils.readFileToString(inputFile, "UTF-8")); Assert.assertEquals(expected, actual); } } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PPAST_SUB_DIR) public void testParsedPrettyPrintedWikitextMatchesOriginal() throws Exception { prettyPrintAstAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PPAST_SUB_DIR); } } ComplexIntegrationTest.java000066400000000000000000000063411335270560400470170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.TypedPrettyPrinter; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ComplexIntegrationTest extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-complex/input.wikitext"; private static final String EXPECTED_AST_SUB_DIR = "nopkg-complex/after-postprocessing.ast"; private static final String EXPECTED_PP_SUB_DIR = "nopkg-complex/pretty-printed.wikitext"; private static final String EXPECTED_PPAST_SUB_DIR = "nopkg-complex/pretty-printed.ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ComplexIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceAst() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PP_SUB_DIR) public void testPrettyPrintedWikitextMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PP_SUB_DIR, new TypedPrettyPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PPAST_SUB_DIR) public void testParsedPrettyPrintedWikitextMatchesOriginal() throws Exception { prettyPrintAstAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PPAST_SUB_DIR); } } DisableLctTest.java000066400000000000000000000050211335270560400452040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.junit.Test; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.NonExpandingParser; public class DisableLctTest { @Test public void testForLctRecognition() throws Exception { NonExpandingParser parser = new NonExpandingParser( true /*warningsEnabled*/, true /*gatherRtd*/, false /*autoCorrect*/, true /*langConvTagsEnabled*/); WtNode article = parser.parseArticle( "IUPACName=4-(2-{4-[(11''R'')-3,10-dibromo-8-chloro-6,11-dihydro-5H-benzo[5,6]cyclohepta[1,2-''b'']pyridin-11-yl]piperidin-1-yl}-2-oxoethyl)piperidine-1-carboxamide", "title"); assertNotNull(scanForLct(article)); } @Test public void testForNoLctRecognition() throws Exception { NonExpandingParser parser = new NonExpandingParser( true /*warningsEnabled*/, true /*gatherRtd*/, false /*autoCorrect*/, false /*langConvTagsEnabled*/); WtNode article = parser.parseArticle( "IUPACName=4-(2-{4-[(11''R'')-3,10-dibromo-8-chloro-6,11-dihydro-5H-benzo[5,6]cyclohepta[1,2-''b'']pyridin-11-yl]piperidin-1-yl}-2-oxoethyl)piperidine-1-carboxamide", "title"); /* PrinterInterface printer = new TypedWtAstPrinter(); System.out.println(printToString(article, printer)); */ assertNull(scanForLct(article)); } private WtNode scanForLct(WtNode node) { if (node.getClass().getSimpleName().toLowerCase().startsWith("wtlct")) return node; for (WtNode child : node) { WtNode lct = scanForLct(child); if (lct != null) return lct; } return null; } /* protected String printToString(Object ast, PrinterInterface printer) throws IOException { StringWriter writer = new StringWriter(); printer.print(ast, writer); return writer.toString(); } */ } EncodingValidatorTest.java000066400000000000000000000077171335270560400466100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Test; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint.IllegalCodePointType; import org.sweble.wikitext.parser.utils.SimpleParserConfig; import de.fau.cs.osr.ptk.common.ast.AstLocation; public class EncodingValidatorTest { @Test public void testEncodingValidator() throws IOException { String title = "dummy"; StringBuilder source = new StringBuilder(); source.append("Ein einfacher Test-String\n"); // L 0 source.append("mit ein paar \uE800 und \r\n"); // L 1:13 source.append("nat\u00FCrlich ein paar \uFDEE.\n"); // L 2:19 source.append("Aber auch \uDBEF und \uDC80 \r"); // L 3:10, 3:16 source.append("d\u00FCrfen nicht fehlen. Zu guter \n");// L4 source.append("Letzt noch ein Wohlklang \u0007."); // L 5:25 /* Ruins the test string! InputStreamReader in = new InputStreamReader( IOUtils.toInputStream(source.toString(), "UTF-8")); */ /* StringReader in = new StringReader(source.toString()); while (true) { int c = in.read(); if (c == -1) break; System.out.format("%c: U+%04x\n", c, (int) c); } in.close(); */ SimpleParserConfig parserConfig = new SimpleParserConfig(); WikitextEncodingValidator v = new WikitextEncodingValidator(); ValidatedWikitext result = v.validate(parserConfig, source.toString(), title); String validatedWikitext = result.getWikitext(); WtEntityMap entityMap = result.getEntityMap(); WtIllegalCodePoint x0 = (WtIllegalCodePoint) entityMap.getEntity(0); assertEquals("\uE800", x0.getCodePoint()); assertEquals(IllegalCodePointType.PRIVATE_USE_CHARACTER, x0.getType()); assertEquals(new AstLocation(title, 1, 13), x0.getNativeLocation()); WtIllegalCodePoint x1 = (WtIllegalCodePoint) entityMap.getEntity(1); assertEquals("\uFDEE", x1.getCodePoint()); assertEquals(IllegalCodePointType.NON_CHARACTER, x1.getType()); assertEquals(new AstLocation(title, 2, 19), x1.getNativeLocation()); WtIllegalCodePoint x2 = (WtIllegalCodePoint) entityMap.getEntity(2); assertEquals("\uDBEF", x2.getCodePoint()); assertEquals(IllegalCodePointType.ISOLATED_SURROGATE, x2.getType()); assertEquals(new AstLocation(title, 3, 10), x2.getNativeLocation()); WtIllegalCodePoint x3 = (WtIllegalCodePoint) entityMap.getEntity(3); assertEquals("\uDC80", x3.getCodePoint()); assertEquals(IllegalCodePointType.ISOLATED_SURROGATE, x3.getType()); assertEquals(new AstLocation(title, 3, 16), x3.getNativeLocation()); WtIllegalCodePoint x4 = (WtIllegalCodePoint) entityMap.getEntity(4); assertEquals("\u0007", x4.getCodePoint()); assertEquals(IllegalCodePointType.CONTROL_CHARACTER, x4.getType()); assertEquals(new AstLocation(title, 5, 25), x4.getNativeLocation()); StringBuilder ref = new StringBuilder(); ref.append("Ein einfacher Test-String\n"); ref.append("mit ein paar \uE0000\uE001 und \r\n"); ref.append("nat\u00FCrlich ein paar \uE0001\uE001.\n"); ref.append("Aber auch \uE0002\uE001 und \uE0003\uE001 \r"); ref.append("d\u00FCrfen nicht fehlen. Zu guter \n"); ref.append("Letzt noch ein Wohlklang \uE0004\uE001."); assertEquals(ref.toString(), validatedWikitext); } } HtmlTreeBuilderTest.java000066400000000000000000000076451335270560400462470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.utils.NonPostproParser; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class HtmlTreeBuilderTest extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-tree/input.wikitext"; private static final String EXPECTED_PARSED_AST_SUB_DIR = "nopkg-tree/only-parsed.ast"; private static final String EXPECTED_POSTP_AST_SUB_DIR = "nopkg-tree/after-postprocessing.ast"; private static final String EXPECTED_PP_AST_SUB_DIR = "nopkg-tree/pretty-printer.wikitext"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public HtmlTreeBuilderTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonPostproParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_POSTP_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReference() throws Exception { @SuppressWarnings("unchecked") AstVisitor[] visitors = new AstVisitor[] { new PostProcess() }; parsePrintAndCompare( inputFile, visitors, INPUT_SUB_DIR, EXPECTED_POSTP_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PARSED_AST_SUB_DIR) public void testAstAfterParsingMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PARSED_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PP_AST_SUB_DIR) public void testRestoredWikitextAfterPostprocessingMatchesOriginal() throws Exception { @SuppressWarnings("unchecked") AstVisitor[] visitors = new AstVisitor[] { new PostProcess() }; prettyPrintWikitextAndCompare( visitors, inputFile, INPUT_SUB_DIR, EXPECTED_PP_AST_SUB_DIR); } // ========================================================================= public final class PostProcess extends AstVisitor { public WtNode visit(WtParsedWikitextPage n) { WikitextPostprocessor postp = new WikitextPostprocessor( HtmlTreeBuilderTest.this.getConfig()); return postp.postprocess(n, "-"); } } } ManualTesting.java000066400000000000000000000142461335270560400451220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.List; import org.apache.commons.io.FileUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.encval.ValidatedWikitext; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.parser.PreprocessorToParserTransformer; import org.sweble.wikitext.parser.postprocessor.TicksAnalyzer; import org.sweble.wikitext.parser.postprocessor.TreeBuilder; import org.sweble.wikitext.parser.preprocessor.PreprocessedWikitext; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.SimpleParserConfig; import org.sweble.wikitext.parser.utils.TypedPrettyPrinter; import org.sweble.wikitext.parser.utils.TypedRtDataPrinter; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.ptk.common.PrinterInterface; import de.fau.cs.osr.utils.FileCompare; import de.fau.cs.osr.utils.FileContent; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; import xtc.parser.ParseException; @RunWith(value = NamedParametrized.class) public class ManualTesting extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-manual"; // ========================================================================= public static void main(String[] args) throws Exception { for (Object[] input : enumerateInputs()) { String title = (String) input[0]; TestResourcesFixture resources = (TestResourcesFixture) input[1]; File inputFile = (File) input[2]; ManualTesting test = new ManualTesting(title, resources, inputFile); test.runTests(); } } @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); File dir = new File(resources.getBaseDirectory(), INPUT_SUB_DIR); if (!dir.exists() || !dir.isDirectory()) return Collections.emptyList(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; private SimpleParserConfig parserConfig; // ========================================================================= public ManualTesting( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser() /* not used */); this.inputFile = inputFile; this.parserConfig = new SimpleParserConfig(); } // ========================================================================= @Test public void runTests() throws Exception { FileContent inputFileContent = new FileContent(inputFile); WtParsedWikitextPage ast = parseArticle( inputFileContent.getContent(), inputFile.getAbsolutePath()); printRtdComparison(ast); prettyPrintWikiMarkupComparison(ast); } // ========================================================================= public WtParsedWikitextPage parseArticle(String source, String title) throws IOException, ParseException { // Encoding validation WikitextEncodingValidator v = new WikitextEncodingValidator(); ValidatedWikitext validated = v.validate(parserConfig, source, title); // Pre-processing WikitextPreprocessor prep = new WikitextPreprocessor(parserConfig); WtPreproWikitextPage prepArticle = (WtPreproWikitextPage) prep.parseArticle(validated, title, false); // Parsing PreprocessedWikitext ppw = PreprocessorToParserTransformer .transform(prepArticle); WikitextParser p = new WikitextParser(parserConfig); WtParsedWikitextPage parsedArticle = (WtParsedWikitextPage) p.parseArticle(ppw, title); printAst(parsedArticle, "-parsed.ast"); // Post-processing WtNode ticksAnalyzed = TicksAnalyzer.process(parserConfig, parsedArticle); printAst(ticksAnalyzed, "-ticks-analyzed.ast"); WtParsedWikitextPage treeBuilt = TreeBuilder.process(parserConfig, ticksAnalyzed); printAst(treeBuilt, "-tree-built.ast"); return treeBuilt; } private void printAst(WtNode ast, String tag) throws IOException { File output = new File(inputFile.getName() + tag); PrinterInterface printer = new TypedWtAstPrinter(); String actual = printToString(ast, printer); FileUtils.writeStringToFile(output, actual, "UTF8"); } private void printRtdComparison(WtParsedWikitextPage ast) throws IOException { File expectedFile = inputFile; PrinterInterface printer = new TypedRtDataPrinter(); String actual = printToString(ast, printer); File output = new File(inputFile.getName() + "-printed-from-rtd.wikitext"); FileUtils.writeStringToFile(output, actual, "UTF8"); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } private void prettyPrintWikiMarkupComparison(WtParsedWikitextPage ast) throws IOException { File expectedFile = inputFile; PrinterInterface printer = new TypedPrettyPrinter(); String actual = printToString(ast, printer); File output = new File(inputFile.getName() + "-pretty-printed.wikitext"); FileUtils.writeStringToFile(output, actual, "UTF8"); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } } NoFosterParentingForTransclusionsTest.java000066400000000000000000000074231335270560400520540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.NonExpandingParserConfig; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class NoFosterParentingForTransclusionsTest extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-foster/input.wikitext"; private static final String EXPECTED_WITH_FP_AST_SUB_DIR = "nopkg-foster/after-postprocessing-with-fp.ast"; private static final String EXPECTED_NO_TC_FP_AST_SUB_DIR = "nopkg-foster/after-postprocessing-no-tc-fp.ast"; private static final String EXPECTED_NO_FP_AST_SUB_DIR = "nopkg-foster/after-postprocessing-no-fp.ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public NoFosterParentingForTransclusionsTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_WITH_FP_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceWithFp() throws Exception { getConfig().setFosterParenting(true); getConfig().setFosterParentingForTransclusions(true); parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_WITH_FP_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_NO_TC_FP_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceNoTcFp() throws Exception { getConfig().setFosterParenting(true); getConfig().setFosterParentingForTransclusions(false); parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_NO_TC_FP_AST_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_NO_FP_AST_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceNoFp() throws Exception { getConfig().setFosterParenting(false); getConfig().setFosterParentingForTransclusions(true); parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_NO_FP_AST_SUB_DIR, new TypedWtAstPrinter()); } protected NonExpandingParserConfig getConfig() { return (NonExpandingParserConfig) super.getConfig(); } } ParserIntegrationTestBase.java000066400000000000000000000235031335270560400474360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.StringWriter; import java.util.Collections; import org.junit.Assert; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtEmptyImmutableNode; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtPage; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlAttributeGarbage; import org.sweble.wikitext.parser.utils.TypedPrettyPrinter; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.ptk.common.ParserCommon; import de.fau.cs.osr.ptk.common.PrinterInterface; import de.fau.cs.osr.ptk.common.Warning; import de.fau.cs.osr.utils.FileCompare; import de.fau.cs.osr.utils.FileContent; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.TestResourcesFixture; import de.fau.cs.osr.utils.WrappedException; import xtc.parser.ParseException; public abstract class ParserIntegrationTestBase { private final TestResourcesFixture resources; private final ParserConfig config; private final ParserCommon parser; // ========================================================================= protected static TestResourcesFixture getTestResourcesFixture() { try { File path = TestResourcesFixture.resourceNameToFile( ParserIntegrationTestBase.class, "/"); return new TestResourcesFixture(path); } catch (FileNotFoundException e) { throw new WrappedException(e); } } // ========================================================================= protected ParserIntegrationTestBase( TestResourcesFixture resources, ParserCommon parser) { this.resources = resources; this.parser = parser; this.config = (ParserConfig) parser.getConfig(); } // ========================================================================= protected TestResourcesFixture getResources() { return resources; } protected ParserConfig getConfig() { return config; } protected ParserCommon getParser() { return parser; } // ========================================================================= protected void parsePrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, PrinterInterface printer) throws IOException, ParseException { @SuppressWarnings({ "unchecked" }) AstVisitor[] visitors = new AstVisitor[] {}; parsePrintAndCompare( inputFile, visitors, inputSubDir, expectedSubDir, printer); } /** * Parse an input file, use the specified visitors for post-processing, * print the resulting AST as text using the given printer instance and * compare the result with a file with the expected output. * * The expected output has to be located in a file that has the same name as * the input file but possibly resides in a different sub-directory. * * Important: Always use the UNIX file separator '/'. */ protected void parsePrintAndCompare( File inputFile, AstVisitor[] visitors, String inputSubDir, String expectedSubDir, PrinterInterface printer) throws IOException, ParseException { Object ast = parse(inputFile, visitors); String actual = printToString(ast, printer); File expectedFile = TestResourcesFixture.rebase( inputFile, inputSubDir, expectedSubDir, printer.getPrintoutType(), true /* don't throw if file doesn't exist */); FileCompare cmp = new FileCompare(resources); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } protected void prettyPrintAstAndCompare( File inputFile, String inputSubDir, String expectedSubDir) throws IOException, ParseException { // -- pretty print @SuppressWarnings("unchecked") AstVisitor[] visitors = new AstVisitor[] {}; Object originalAst = parse(inputFile, visitors); String ppOriginalAst = printToString(originalAst, new TypedPrettyPrinter()); // -- generate cleaned ASTs from original and pretty printed wikitext @SuppressWarnings("unchecked") AstVisitor[] cleaningVisitors = new AstVisitor[] { new CleanupAst(config) }; for (AstVisitor v : cleaningVisitors) parser.addVisitor(v); Object cleanedReparsedAst = parser.parseArticle(ppOriginalAst, "pp"); Object cleanedOriginalAst = parse(inputFile, cleaningVisitors); // -- print and compare ASTs TypedWtAstPrinter astPrinter = new TypedWtAstPrinter(); String reparsedAstPrinted = printToString(cleanedReparsedAst, astPrinter); try { File expectedFile = TestResourcesFixture.rebase( inputFile, inputSubDir, expectedSubDir, astPrinter.getPrintoutType(), false /* throw if file doesn't exist */); FileCompare cmp = new FileCompare(resources); reparsedAstPrinted = cmp.fixActualText(reparsedAstPrinted); cmp.assertEquals(expectedFile, reparsedAstPrinted); } catch (IllegalArgumentException e) { String originalAstPrinted = printToString(cleanedOriginalAst, astPrinter); Assert.assertEquals(originalAstPrinted, reparsedAstPrinted); } } protected void prettyPrintWikitextAndCompare( AstVisitor[] visitors, File inputFile, String inputSubDir, String expectedSubDir) throws IOException, ParseException { // -- pretty print Object ast = parse(inputFile, visitors); TypedPrettyPrinter printer = new TypedPrettyPrinter(); String actual = printToString(ast, printer); // -- print and compare ASTs FileCompare cmp = new FileCompare(resources); actual = cmp.fixActualText(actual); try { File expectedFile = TestResourcesFixture.rebase( inputFile, inputSubDir, expectedSubDir, printer.getPrintoutType(), false /* throw if file doesn't exist */); cmp.assertEquals(expectedFile, actual); } catch (IllegalArgumentException e) { cmp.assertEquals(inputFile, actual); } } // ========================================================================= protected Object parse(File inputFile) throws IOException, ParseException { FileContent inputFileContent = new FileContent(inputFile); return parser.parseArticle( inputFileContent.getContent(), inputFile.getAbsolutePath()); } protected Object parse(File inputFile, AstVisitor[] visitors) throws IOException, ParseException { for (AstVisitor visitor : visitors) parser.addVisitor(visitor); FileContent inputFileContent = new FileContent(inputFile); return parser.parseArticle( inputFileContent.getContent(), inputFile.getAbsolutePath()); } protected String printToString(Object ast, PrinterInterface printer) throws IOException { StringWriter writer = new StringWriter(); printer.print(ast, writer); String result = writer.toString(); // We always operate with UNIX line end '\n': result = FileTools.lineEndToUnix(result); return resources.stripBaseDirectoryAndFixPath(result); } // ========================================================================= protected static final class CleanupAst extends AstVisitor { private final ParserConfig config; public CleanupAst(ParserConfig config) { this.config = config; } public WtPage visit(WtPage n) { n.setEntityMap(WtEntityMap.EMPTY_ENTITY_MAP); n.setWarnings(Collections. emptyList()); clearNode(n); mapInPlace(n); int last = n.size() - 1; if (last >= 0 && n.get(last).isNodeType(WtNode.NT_NEWLINE)) n.remove(last); return n; } public Object visit(WtNewline n) { return REMOVE; } public WtNode visit(WtTableCaption n) { clearNode(n); mapInPlace(n); removeParagraph(n.getBody()); return n; } public WtNode visit(WtTableHeader n) { clearNode(n); mapInPlace(n); removeParagraph(n.getBody()); return n; } public WtNode visit(WtTableCell n) { clearNode(n); mapInPlace(n); removeParagraph(n.getBody()); return n; } private void removeParagraph(WtBody n) { if (n.isEmpty()) return; WtNode first = n.get(0); if (first.isNodeType(WtNode.NT_PARAGRAPH)) { n.remove(0); n.addAll(0, first); } } public Object visit(WtParagraph n) { WtNodeList l = config.getNodeFactory().list(); l.exchange(n); mapInPlace(l); return l; } public Object visit(WtText n) { clearNode(n); n.setContent(n.getContent().trim()); if (n.getContent().isEmpty()) return REMOVE; return n; } public Object visit(WtLinkOptionGarbage n) { return REMOVE; } public Object visit(WtXmlAttributeGarbage n) { return REMOVE; } public WtNode visit(WtNode n) { if (!(n instanceof WtEmptyImmutableNode)) clearNode(n); mapInPlace(n); return n; } private void clearNode(WtNode n) { n.clearRtd(); n.clearAttributes(); } } } ProductionScopeTest.java000066400000000000000000000063131335270560400463230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.TypedPrettyPrinter; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ProductionScopeTest extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-scopes/input.wikitext"; private static final String EXPECTED_SUB_DIR = "nopkg-scopes/after-postprocessing.ast"; private static final String EXPECTED_PP_SUB_DIR = "nopkg-scopes/pretty-printed.wikitext"; private static final String EXPECTED_PPAST_SUB_DIR = "nopkg-scopes/pretty-printed.ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ProductionScopeTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceAst() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PP_SUB_DIR) public void testPrettyPrintedWikitextMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PP_SUB_DIR, new TypedPrettyPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PPAST_SUB_DIR) public void testParsedPrettyPrintedWikitextMatchesOriginal() throws Exception { prettyPrintAstAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PPAST_SUB_DIR); } } RegressionTest.java000066400000000000000000000063211335270560400453220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.TypedPrettyPrinter; import org.sweble.wikitext.parser.utils.TypedWtAstPrinter; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class RegressionTest extends ParserIntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-regression/input.wikitext"; private static final String EXPECTED_SUB_DIR = "nopkg-regression/after-postprocessing.ast"; private static final String EXPECTED_PP_SUB_DIR = "nopkg-regression/pretty-printed.wikitext"; private static final String EXPECTED_PPAST_SUB_DIR = "nopkg-regression/pretty-printed.ast"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public RegressionTest( String title, TestResourcesFixture resources, File inputFile) { super(resources, new NonExpandingParser()); this.inputFile = inputFile; } // ========================================================================= @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_SUB_DIR) public void testAstAfterPostprocessingMatchesReferenceAst() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_SUB_DIR, new TypedWtAstPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PP_SUB_DIR) public void testPrettyPrintedWikitextMatchesReference() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PP_SUB_DIR, new TypedPrettyPrinter()); } @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_PPAST_SUB_DIR) public void testParsedPrettyPrintedWikitextMatchesOriginal() throws Exception { prettyPrintAstAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_PPAST_SUB_DIR); } } ReplaceIllegalCodePointsTest.java000066400000000000000000000054551335270560400500460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.utils.NonExpandingParser; public class ReplaceIllegalCodePointsTest { @Test public void testForIllegalCodePoint() throws Exception { NonExpandingParser parser = new NonExpandingParser( false /*convertIllegalCodePoints*/, true /*warningsEnabled*/, true /*gatherRtd*/, false /*autoCorrect*/, true /*langConvTagsEnabled*/); WtNode article = parser.parseArticle("", "title"); WtNode attr = findAttribute(article); assertNotNull(attr); /* PrinterInterface printer = new TypedWtAstPrinter(); System.out.println(printToString(attr, printer)); */ assertEquals("\u007f", ((WtIllegalCodePoint) ((WtXmlAttribute) attr).getValue().get(0)).getCodePoint()); } @Test public void testForReplacedIllegalCodePoint() throws Exception { NonExpandingParser parser = new NonExpandingParser( true /*convertIllegalCodePoints*/, true /*warningsEnabled*/, true /*gatherRtd*/, false /*autoCorrect*/, true /*langConvTagsEnabled*/); WtNode article = parser.parseArticle("", "title"); WtNode attr = findAttribute(article); assertNotNull(attr); /* PrinterInterface printer = new TypedWtAstPrinter(); System.out.println(printToString(attr, printer)); */ assertEquals("\ufffd", ((WtText) ((WtXmlAttribute) attr).getValue().get(0)).getContent()); } private WtNode findAttribute(WtNode node) { if (node instanceof WtXmlAttribute) return node; for (WtNode child : node) { WtNode found = findAttribute(child); if (found != null) return found; } return null; } /* protected String printToString(Object ast, PrinterInterface printer) throws IOException { StringWriter writer = new StringWriter(); printer.print(ast, writer); return writer.toString(); } */ } TextUtilsTest.java000066400000000000000000000113041335270560400451440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.utils.AstTextUtils; import org.sweble.wikitext.parser.utils.AstTextUtils.PartialConversion; import org.sweble.wikitext.parser.utils.SimpleParserConfig; import org.sweble.wikitext.parser.utils.StringConversionException; public class TextUtilsTest { @Rule public ExpectedException thrown = ExpectedException.none(); private final ParserConfig config; private final AstTextUtils tu; private final WikitextNodeFactory nf; // ========================================================================= public TextUtilsTest() { config = new SimpleParserConfig(); tu = config.getAstTextUtils(); nf = config.getNodeFactory(); } // ========================================================================= @Test public void testJustOneTextNode() throws Exception { assertEquals("Hallo!", tu.astToText(nf.text("Hallo!"))); } @Test public void testTwoTextNodes() throws Exception { assertEquals("Hallo Welt!", tu.astToText(nf.list( nf.text("Hallo "), nf.text("Welt!")))); } @Test public void testTwoTextNodesAndEntityRef() throws Exception { assertEquals("Yes & No", tu.astToText(nf.list( nf.text("Yes "), nf.entityRef("amp", "&"), nf.text(" No")))); } @Test public void testTwoTextNodesAndUnresolvedEntityRef() throws Exception { thrown.expect(StringConversionException.class); tu.astToText(nf.list( nf.text("Yes "), nf.entityRef("unknown", null), nf.text(" No")), AstTextUtils.FAIL_ON_UNRESOLVED_ENTITY_REF); } @Test public void testIgnoresTransparentNodes() throws Exception { assertEquals("Yes & No", tu.astToText(nf.list( nf.text("Yes "), nf.ignored("Ignored"), nf.entityRef("amp", "&"), nf.comment("Ignored"), nf.text(" No")))); } @Test public void testFailsOnUnkonwnNodes() throws Exception { thrown.expect(StringConversionException.class); tu.astToText(nf.list( nf.text("Yes "), nf.url("http", "//example.com"), nf.text(" No"))); } // ========================================================================= @Test public void testPartialJustOneTextNode() throws Exception { PartialConversion result = tu.astToTextPartial(nf.text("Hallo!")); assertEquals("Hallo!", result.getText()); assertTrue(result.getTail().isEmpty()); } @Test public void testPartialTwoTextNodes() throws Exception { PartialConversion result = tu.astToTextPartial(nf.list( nf.text("Hallo "), nf.text("Welt!"))); assertEquals("Hallo Welt!", result.getText()); assertTrue(result.getTail().isEmpty()); } @Test public void testPartialTwoTextNodesAndEntityRef() throws Exception { PartialConversion result = tu.astToTextPartial(nf.list( nf.text("Yes "), nf.entityRef("amp", "&"), nf.text(" No"))); assertEquals("Yes & No", result.getText()); assertTrue(result.getTail().isEmpty()); } @Test public void testPartialTwoTextNodesAndUnresolvedEntityRef() throws Exception { WtNodeList ast = nf.list( nf.text("Yes "), nf.entityRef("unknown", null), nf.text(" No")); PartialConversion result = tu.astToTextPartial( ast, AstTextUtils.FAIL_ON_UNRESOLVED_ENTITY_REF); assertEquals("Yes ", result.getText()); assertEquals(2, result.getTail().size()); assertEquals(ast.get(1), result.getTail().get(0)); assertEquals(ast.get(2), result.getTail().get(1)); } @Test public void testPartialDoesNotFailOnUnkonwnNodes() throws Exception { WtNodeList ast = nf.list( nf.text("Yes "), nf.url("http", "//example.com"), nf.text(" No")); PartialConversion result = tu.astToTextPartial(ast); assertEquals("Yes ", result.getText()); assertEquals(2, result.getTail().size()); assertEquals(ast.get(1), result.getTail().get(0)); assertEquals(ast.get(2), result.getTail().get(1)); } } XPathTest.java000066400000000000000000000105431335270560400442270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.commons.io.IOUtils; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl; import org.junit.Assert; import org.junit.Test; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.utils.NonExpandingParser; import org.sweble.wikitext.parser.utils.WtAstPrinter; import de.fau.cs.osr.ptk.common.jxpath.AstNodePointerFactory; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.StringTools; import xtc.parser.ParseException; public class XPathTest { private static final String PATH = "/nopkg-xpath"; private static final boolean WARNINGS_ENABLED = false; private static final boolean GATHER_RTD = true; private static final boolean AUTO_CORRECT = false; // ========================================================================= @Test public void testFrance() throws IOException, ParseException { String title = "raw-France"; WtNode ast = parse(title); JXPathContext context = JXPathContext.newContext(ast); StringBuilder b = new StringBuilder(); doQuery(context, b, "/WtParagraph[3]"); doQuery(context, b, "(//WtSection[@level=3])[1]"); doQuery(context, b, "//WtTemplate[contains(name//WtText[@content],\"Infobox Country\")]//WtTemplateArgument[contains(name//WtText[@content],\"capital\")]/value"); String actual = FileTools.lineEndToUnix(b.toString()); String expected = null; try { expected = load(PATH + "/ast/" + title + ".ast"); } catch (IOException e) { } Assert.assertEquals(expected, actual); } // ========================================================================= @Test public void testGermany() throws IOException, ParseException { String title = "raw-Germany"; WtNode ast = parse(title); JXPathContext context = JXPathContext.newContext(ast); StringBuilder b = new StringBuilder(); doQuery(context, b, "//WtTemplate[contains(name//WtText[@content],\"Infobox country\")]//WtTemplateArgument[contains(name//WtText[@content],\"capital\")]/value"); String actual = FileTools.lineEndToUnix(b.toString()); String expected = null; try { expected = load(PATH + "/ast/" + title + ".ast"); } catch (IOException e) { } Assert.assertEquals(expected, actual); } // ========================================================================= private final NonExpandingParser parser; public XPathTest() { JXPathContextReferenceImpl.addNodePointerFactory( new AstNodePointerFactory()); parser = new NonExpandingParser(WARNINGS_ENABLED, GATHER_RTD, AUTO_CORRECT); } // ========================================================================= private WtNode parse(String title) throws IOException, ParseException { WtNode ast = parser.parseArticle( load(PATH + "/wikitext/" + title + ".wikitext"), title); return ast; } private String load(String path) throws IOException { InputStream in = getClass().getResourceAsStream(path); if (in == null) return null; return FileTools.lineEndToUnix( IOUtils.toString(in, "UTF-8")); } private void doQuery( JXPathContext context, StringBuilder b, final String query) { b.append(StringTools.strrep('-', 80)); b.append("\n "); b.append(query); b.append('\n'); b.append(StringTools.strrep('-', 80)); b.append('\n'); int j = 1; for (Iterator i = context.iterate(query); i.hasNext();) { if (j > 1) { b.append(StringTools.strrep('-', 80)); b.append('\n'); } b.append(WtAstPrinter.print((WtNode) i.next())); b.append('\n'); ++j; } b.append(StringTools.strrep('=', 80)); b.append('\n'); } } utils/000077500000000000000000000000001335270560400426355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parserTypedPrettyPrinter.java000066400000000000000000000022451335270560400473440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.IOException; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.PrinterInterface; public final class TypedPrettyPrinter implements PrinterInterface { @Override public String getPrintoutType() { return "wikitext"; } @Override public void print(Object ast, Writer out) throws IOException { WtPrettyPrinter pp = new WtPrettyPrinter(out); pp.setNewlineAtEof(true); pp.go((WtNode) ast); } } TypedRtDataPrinter.java000066400000000000000000000021551335270560400472340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.IOException; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.PrinterInterface; public final class TypedRtDataPrinter implements PrinterInterface { @Override public String getPrintoutType() { return "wikitext"; } @Override public void print(Object ast, Writer out) throws IOException { WtRtDataPrinter.print(out, (WtNode) ast); } } TypedWtAstPrinter.java000066400000000000000000000021451335270560400471160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/java/org/sweble/wikitext/parser/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sweble.wikitext.parser.utils; import java.io.IOException; import java.io.Writer; import org.sweble.wikitext.parser.nodes.WtNode; import de.fau.cs.osr.ptk.common.PrinterInterface; public final class TypedWtAstPrinter implements PrinterInterface { @Override public String getPrintoutType() { return "ast"; } @Override public void print(Object ast, Writer out) throws IOException { new WtAstPrinter(out).go((WtNode) ast); } } resources/000077500000000000000000000000001335270560400353525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/testnopkg-basic/000077500000000000000000000000001335270560400375475ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing.ast/000077500000000000000000000000001335270560400445165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basicblock-list-1.ast000066400000000000000000000017061335270560400474340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " Comment 1 " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [1] = WtXmlComment( {P} content = " Comment 2 " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Hallo" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Welt" ) ], [1] = "\n\n", [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Hallo" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Welt" ) ], [3] = "\n\n", [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ WtXmlComment(" Comment 1 ") + "*" "\n" ] [0] = " Hallo" ), [1] = WtListItem( {P} rtd = RTD[ WtXmlComment(" Comment 2 ") + "*" "" ] [0] = " Welt" ) ] ) block-list-2.ast000066400000000000000000000005051335270560400474310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = "Comment" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ WtXmlComment("Comment") + "*" "" ] [0] = " Hallo" ) ] ) block-list-3.ast000066400000000000000000000005121335270560400474300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\n* item1\n* item2\n" ) ) ] ) block-section.ast000066400000000000000000000057231335270560400477720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-basic/input.wikitext/block-section.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Hallo 1 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 1" ], [2] = "\n\n" ] ), [1] = WtSection( {P} level = 1 heading = WtHeading( {P} rtd = RTD[ "=" "=" ] [0] = " Hallo 2 " ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " a" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " b" ) ], [2] = "\n" ] ), [2] = WtSection( {P} level = 1 heading = WtHeading( {P} rtd = RTD[ "=" "=" ] [0] = " Hallo 3 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 3" ], [2] = "\n\n", [3] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Hallo 4 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 4" ], [2] = "\n", [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Hallo 5 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 5" ], [2] = "\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Hallo 6 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 6\n" ], [2] = "\n\n" ] ) ] ), [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Hallo 7 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 7" ], [2] = "\n", [3] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = " Hallo 8 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 8" ], [2] = "\n" ] ) ] ) ] ), [3] = WtSection( {P} level = 1 heading = WtHeading( {P} rtd = RTD[ "=" "=" ] [0] = " Hallo 9 " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Welt 9\n" ], [2] = "\n\n" ] ), [4] = WtSection( {P} level = 1 heading = WtHeading( {A} warnings = C[ Warning (normal): /nopkg-basic/input.wikitext/block-section.wikitext:26:1 - 14: "= Hallo 10 ==" : Odd number of closing equals. ] {P} rtd = RTD[ "=" "=" ] [0] = " Hallo 10 =" ), body = WtBody[ [0] = "\n" ] ), [5] = WtSection( {P} level = 1 heading = WtHeading( {A} warnings = C[ Warning (normal): /nopkg-basic/input.wikitext/block-section.wikitext:27:1 - 14: "== Hallo 11 =" : Odd number of opening equals. ] {P} rtd = RTD[ "=" "=" ] [0] = "= Hallo 11 " ), body = - ) ) block-semipre.ast000066400000000000000000000010131335270560400477560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " Comment " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtSemiPre[ [0] = " Line 1\n", [1] = WtXmlComment( {P} content = " Comment " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = " Line 2\n Line 3" ], [1] = "\n", [2] = WtParagraph[ [0] = "\tdiscontinued" ], [3] = "\n", [4] = WtSemiPre[ [0] = " Line 5\n Line 6" ] ) block-table-1.ast000066400000000000000000000011261335270560400475440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Header" ], [1] = "\n" ] ) ] ) ] ) ] ) ) block-table-2.ast000066400000000000000000000032521335270560400475470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "bar" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Header" ], [1] = "\n" ] ) ] ) ] ) ] ), [1] = "\n\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " class=\"foo\"" ], [1] = "\n" ] ) ] ) ] ) ] ) ) block-table-3.ast000066400000000000000000000014661335270560400475550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " class=\"foo\"" ], [1] = "\n" ] ) ] ) ] ) ] ) ) block-table-4.ast000066400000000000000000000014601335270560400475500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Header 1 " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Header 2 " ], [1] = "\n" ] ) ] ) ] ) ] ) ) block-table-5.ast000066400000000000000000000065371335270560400475630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = " Header 1 " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Header 2" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = " Cell 1.1 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 1.2" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = " Cell 2.1 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "x" ], value = - ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 2.2" ], [1] = "\n" ] ) ] ) ] ) ] ) ) block-table-6.ast000066400000000000000000000031471335270560400475560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "S" ], value = WtValue[] ) ], body = WtBody[ [0] = " A " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "S" ], value = WtValue[] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " B" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " X " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Y" ], [1] = "\n" ] ) ] ) ] ) ] ) ) funny-codepoints.ast000066400000000000000000000024011335270560400505300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [1] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [2] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [3] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "foo" ), [1] = " \n", [2] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [3] = "\ta\n", [4] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [5] = "\tb \n", [6] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [7] = "\tc \n", [8] = WtIllegalCodePoint( {P} codePoint = "\uF0D8" {P} rtd = RTD[ "\uF0D8" ] {P} type = PRIVATE_USE_CHARACTER ), [9] = "\td " ], [1] = "\n" ) img-link.ast000066400000000000000000000162701335270560400467440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test1" ], options = WtLinkOptions[] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test2" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ) ] ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test3" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test4" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [7] = "\n\n", [8] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test5" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = " " ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [9] = "\n\n", [10] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test6" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = URL target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ) ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test7" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Some Page" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test8" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [15] = "\n\n", [16] = WtParagraph[], [17] = WtImageLink( {P} border = true {P} format = FRAME {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = BOTTOM {P} width = -1 target = WtPageName[ [0] = "Image:Test9" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkOptionKeyword( {P} keyword = "frame" {P} rtd = RTD[ "|frame" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "bottom" {P} rtd = RTD[ "|bottom" ] ), [3] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [4] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [5] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [6] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ), [18] = "\n\n", [19] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 128 target = WtPageName[ [0] = "Image:Test10" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|128px" ] {P} width = 128 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [20] = "\n\n", [21] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 512 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "Image:Test11" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkOptionResize( {P} height = 512 {P} rtd = RTD[ "|x512px" ] {P} width = -1 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [22] = "\n\n", [23] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 512 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 128 target = WtPageName[ [0] = "Image:Test12" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Alt Text" ), [1] = WtLinkOptionResize( {P} height = 512 {P} rtd = RTD[ "|128x512px" ] {P} width = 128 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ] ) ], [24] = "\n" ) inline-external-link-1.ast000066400000000000000000000005001335270560400514110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = WtLinkTitle[ [0] = "Example" ] ) ] ) inline-external-link-2.ast000066400000000000000000000005321335270560400514170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = WtLinkTitle[ [0] = "[http://example2.com" ] ), [1] = "]" ] ) inline-external-link-3.ast000066400000000000000000000004501335270560400514170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" "" " \t \t]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = - ) ] ) inline-internal-link-1.ast000066400000000000000000000236401335270560400514150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ WtParagraph([ WtText( Properties: {N} content = "[[Link!" warnings = [ Warning (informative): /nopkg-basic/input.wikitext/inline-internal-link-1.wikitext:1:1 - 8: "[[Link!" : This looks like a Internal Link, however the finishing `]]' is missing. ] ) WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtText( Properties: {N} content = "[[File:Image.png|Title]" warnings = [ Warning (informative): /nopkg-basic/input.wikitext/inline-internal-link-1.wikitext:3:1 - 17: "[[File:Image.png" : This looks like a Internal Link, however the finishing `]]' is missing. ] ) WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtImageLink( Properties: {N} alt = WtLinkOptionAltText([ ]) {N} border = false {N} format = UNRESTRAINED {N} hAlign = NONE {N} height = -1 {N} linkPage = null {N} linkUrl = null {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = MIDDLE warnings = [ Warning (informative): /nopkg-basic/input.wikitext/inline-internal-link-1.wikitext:5:18 - 40: "1000000000000000000xpx" : Invalid size format. ] {N} width = -1 [ WtLinkOptionResize( Properties: {N} height = -1 {N} rtd = RTD[ "|1000000000000000000xpx" ] {N} width = -2 ) ] WtLinkTitle([ ]) ) WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtImageLink( Properties: {N} alt = WtLinkOptionAltText( Properties: {N} rtd = RTD[ "|alt=" "" ] [ WtText("Alternativer alternativer Text\n\t") ] ) {N} border = false {N} format = FRAME {N} hAlign = NONE {N} height = 15 {N} linkPage = null {N} linkUrl = WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = TOP {N} width = 15 [ WtLinkOptionKeyword( Properties: {N} keyword = "frame" {N} rtd = RTD[ "|frame\n\t" ] ) WtLinkOptionResize( Properties: {N} height = 20 {N} rtd = RTD[ "|10x20px\n\t" ] {N} width = 10 ) WtLinkOptionAltText( Properties: {N} rtd = RTD[ "|alt=" "" ] [ WtText("Alternativer Text\n\t") ] ) WtLinkOptionResize( Properties: {N} height = -1 {N} rtd = RTD[ "|15xpx\n\t" ] {N} width = 15 ) WtLinkOptionLinkTarget( Properties: {N} rtd = RTD[ "|link=" "\n\t" ] WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) ) WtLinkOptionResize( Properties: {N} height = 15 {N} rtd = RTD[ "|x15px\n\t" ] {N} width = -1 ) WtLinkOptionKeyword( Properties: {N} keyword = "top" {N} rtd = RTD[ "|top\n\t" ] ) WtLinkOptionAltText( Properties: {N} rtd = RTD[ "|alt=" "" ] [ WtText("Alternativer alternativer Text\n\t") ] ) ] WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("Title") ] ) ) WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtImageLink( Properties: {N} alt = WtLinkOptionAltText([ ]) {N} border = false {N} format = UNRESTRAINED {N} hAlign = NONE {N} height = -1 {N} linkPage = null {N} linkUrl = null {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = MIDDLE {N} width = -1 [ ] WtLinkTitle([ ]) ) WtNewline("\n") WtImageLink( Properties: {N} alt = WtLinkOptionAltText([ ]) {N} border = false {N} format = UNRESTRAINED {N} hAlign = NONE {N} height = -1 {N} linkPage = null {N} linkUrl = null {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = MIDDLE {N} width = -1 [ WtLinkOptionGarbage( Properties: {N} content = "invisible" {N} rtd = RTD[ "|invisible" ] ) ] WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("visible") ] ) ) WtNewline("\n") WtImageLink( Properties: {N} alt = WtLinkOptionAltText([ ]) {N} border = false {N} format = UNRESTRAINED {N} hAlign = NONE {N} height = -1 {N} linkPage = "Some Page Title" {N} linkUrl = null {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = MIDDLE {N} width = -1 [ WtLinkOptionLinkTarget( Properties: {N} rtd = RTD[ "|link=" "" ] WtLinkTarget("Some Page Title") ) ] WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("Title") ] ) ) WtNewline("\n") WtImageLink( Properties: {N} alt = WtLinkOptionAltText([ ]) {N} border = false {N} format = UNRESTRAINED {N} hAlign = NONE {N} height = -1 {N} linkPage = null {N} linkUrl = WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) {N} rtd = RTD[ "[[File:Image.png" "" "]]" ] {N} target = "File:Image.png" {N} upright = false {N} vAlign = MIDDLE {N} width = -1 [ WtLinkOptionLinkTarget( Properties: {N} rtd = RTD[ "|link=" "" ] WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) ) ] WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("Title") ] ) ) WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtInternalLink( Properties: {N} postfix = "" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("arg0") ] ) ) WtNewline("\n") WtInternalLink( Properties: {N} postfix = "" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("arg0|http://blub.com") ] ) ) WtNewline("\n") WtInternalLink( Properties: {N} postfix = "" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("arg0|[http://blub.com") ] ) ) WtText("]") WtNewline("\n") WtInternalLink( Properties: {N} postfix = "" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle( Properties: {N} rtd = RTD[ "|" "" ] [ WtText("arg0|[http://bl|ub.com") ] ) ) WtText("]") WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtInternalLink( Properties: {N} postfix = "" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle([ ]) ) WtNewline("\n") WtText("text ") WtInternalLink( Properties: {N} postfix = "" {N} prefix = "a" {N} rtd = RTD[ "a[[Hallo" "]]" ] {N} target = "Hallo" WtLinkTitle([ ]) ) WtText(" text") WtNewline("\n") WtText("text ") WtInternalLink( Properties: {N} postfix = "z" {N} prefix = "" {N} rtd = RTD[ "[[Hallo" "]]z" ] {N} target = "Hallo" WtLinkTitle([ ]) ) WtText(" text") WtNewline("\n") WtText("text ") WtInternalLink( Properties: {N} postfix = "z" {N} prefix = "a" {N} rtd = RTD[ "a[[Hallo" "]]z" ] {N} target = "Hallo" WtLinkTitle([ ]) ) WtText(" text") ]) ] ) inline-internal-link-2.ast000066400000000000000000000004511335270560400514110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] ) ) ] ) inline-internal-link-3.ast000066400000000000000000000010541335270560400514120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-internal-link-3.wikitext:1:1 - 8: "[[Link!" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [1] = "Link!" ], [1] = "\n", [2] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " SectionHeading " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "]]" ] ] ) ) inline-internal-link-4.ast000066400000000000000000000011251335270560400514120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-internal-link-4.wikitext:1:1 - 8: "[[Link1" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [1] = "Link1|Title1 ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Link2" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title2" ) ), [3] = " ]]" ] ) inline-mix.ast000066400000000000000000000026541335270560400473070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " comment " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) } {P} warnings = C[] [0] = "\n", [1] = WtSemiPre[ [0] = " ", [1] = WtSignature( {P} rtd = RTD[ "~~~" ] {P} tildeCount = 3 ), [2] = " ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = " ", [1] = WtSignature( {P} rtd = RTD[ "~~~~" ] {P} tildeCount = 4 ), [2] = " ", [3] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = " ", [1] = WtXmlComment( {P} content = " comment " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = " ", [3] = WtSignature( {P} rtd = RTD[ "~~~~~" ] {P} tildeCount = 5 ), [4] = " ", [5] = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), [6] = " ", [7] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = - ), [8] = " " ) ), [4] = " ", [5] = WtPageSwitch( {P} name = "NOTOC" {P} rtd = RTD[ "__NOTOC__" ] ), [6] = " ", [7] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [8] = " ignored " ], [2] = "\n" ) inline-plain-external-link-1.ast000066400000000000000000000003111335270560400525120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ) ] ) inline-plain-external-link-2.ast000066400000000000000000000010521335270560400525160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [1] = WtParagraph[ [0] = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ) ], [2] = "\n", [3] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "before ", [1] = WtUrl( {P} path = "mustermann@musterfirma.com" {P} protocol = "mail" {P} rtd = RTD[ "mail:mustermann@musterfirma.com" ] ), [2] = " after" ], [6] = "\n" ) inline-signature.ast000066400000000000000000000032561335270560400505120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "~" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/inline-signature.wikitext:2:2 - 4: "~~" : This looks like a Signature, however a signature consists of at least 3 tildes. ] {P} content = "~~" ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtSignature( {P} rtd = RTD[ "~~~" ] {P} tildeCount = 3 ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtSignature( {P} rtd = RTD[ "~~~~" ] {P} tildeCount = 4 ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtSignature( {P} rtd = RTD[ "~~~~~" ] {P} tildeCount = 5 ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtSignature( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-signature.wikitext:6:2 - 8: "~~~~~~" : Signatures consist only of 3 to 5 tildes. ] {P} rtd = RTD[ "~~~~~" ] {P} tildeCount = 5 ), [1] = "~" ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtSignature( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-signature.wikitext:7:2 - 9: "~~~~~~~" : Signatures consist only of 3 to 5 tildes. ] {P} rtd = RTD[ "~~~~~" ] {P} tildeCount = 5 ), [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/inline-signature.wikitext:7:7 - 9: "~~" : This looks like a Signature, however a signature consists of at least 3 tildes. ] {P} content = "~~" ) ) ] ) inline-xmlref.ast000066400000000000000000000034051335270560400500020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [1] = "\n", [2] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-xmlref.wikitext:2:1 - 2: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [3] = "amp\n", [4] = WtXmlEntityRef( {P} name = "myinvention" {P} resolved = null {P} rtd = RTD[ "&myinvention;" ] ), [5] = "\n", [6] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-xmlref.wikitext:4:1 - 2: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [7] = "myinvention\n", [8] = WtXmlCharRef( {P} codePoint = 10 {P} rtd = RTD[ " " ] ), [9] = "\n", [10] = WtXmlCharRef( {P} codePoint = 255 {P} rtd = RTD[ "ÿ" ] ), [11] = "\n", [12] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-xmlref.wikitext:7:1 - 2: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [13] = "#;\n", [14] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-xmlref.wikitext:8:1 - 2: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [15] = "#\n", [16] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/inline-xmlref.wikitext:9:1 - 2: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ) ] ) int-ext-link-1.ast000066400000000000000000000113031335270560400477060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e" {P} protocol = "http" {P} rtd = RTD[ "http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e" ] ), title = WtLinkTitle[ [0] = "SFB 873" ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foo http://heise.de Bar" ) ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foo [http://heise.de Boo] Bar" ) ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foo [http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/int-ext-link-1.wikitext:7:68 - 69: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = "l=_e FooBar] Bar" ) ) ], [7] = "\n\n", [8] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "image:foo" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = URL target = WtUrl( {P} path = "//heise.de?" {P} protocol = "http" {P} rtd = RTD[ "http://heise.de?" ] ) ), [1] = WtLinkOptionGarbage( {P} rtd = RTD[ "|" "" ] [0] = "SFB" ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Titel" ) ] ) ], [9] = "\n\n", [10] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "image:foo" ], options = WtLinkOptions[ [0] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foo ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e" {P} protocol = "http" {P} rtd = RTD[ "http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e" ] ), title = WtLinkTitle[ [0] = "SFB 873" ] ), [2] = " Bar" ) ] ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "image:x" ], options = WtLinkOptions[ [0] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "a", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//b|c" {P} protocol = "http" {P} rtd = RTD[ "http://b|c" ] ), title = WtLinkTitle[ [0] = "d" ] ), [2] = "e" ) ] ) ], [13] = "\n\n", [14] = WtParagraph[], [15] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Eurofighter 9803.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionGarbage( {P} rtd = RTD[ "|" "" ] [0] = "thumbtime=32" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eurofighter Typhoon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Eurofighter" ) ), [2] = " flight demonstration" ) ] ), [16] = "\n" ) int-ext-link-2.ast000066400000000000000000000014141335270560400477110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[], [1] = WtImageLink( {P} border = false {P} format = FRAME {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "image:x" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "frame" {P} rtd = RTD[ "|frame" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "a", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//b|c" {P} protocol = "http" {P} rtd = RTD[ "http://b|c" ] ), title = WtLinkTitle[ [0] = "d" ] ), [2] = "e" ) ] ) ) lct-content-1.ast000066400000000000000000000003071335270560400476170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[] ) ], [1] = "\n" ) lct-content-10.ast000066400000000000000000000005001335270560400476720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "-{" ], [1] = "\n", [2] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Section" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Body\n}-" ], [2] = "\n" ] ) ) lct-content-11.ast000066400000000000000000000006031335270560400476770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Section" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = "\nbody\n" ] ) ], [2] = "\n" ] ) ) lct-content-13.ast000066400000000000000000000006711335270560400477060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = WtLinkTitle[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = "X" ] ) ] ) ], [1] = "\n" ) lct-content-14.ast000066400000000000000000000003221335270560400477000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = "X" ] ) ], [1] = "\n" ) lct-content-15.ast000066400000000000000000000003251335270560400477040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = "A\nB" ] ) ], [1] = "\n" ) lct-content-16.ast000066400000000000000000000005271335270560400477110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), [1] = " " ] ) ], [1] = "\n" ) lct-content-2.ast000066400000000000000000000007021335270560400476170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Link" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title" ) ) ] ) ], [1] = "\n" ) lct-content-3.ast000066400000000000000000000004351335270560400476230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = WtSignature( {P} rtd = RTD[ "~~~~" ] {P} tildeCount = 4 ) ] ) ], [1] = "\n" ) lct-content-4.ast000066400000000000000000000015171335270560400476260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "" ] flags = -, body = WtBody[ [0] = "\n" ] ) ], [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtLctVarConv( flags = -, body = WtBody[ [0] = "Item1" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtLctVarConv( flags = -, body = WtBody[ [0] = "Item2" ] ) ) ], [2] = WtLctVarConv( {P} rtd = RTD[ "" "" "}-" ] flags = -, body = WtBody[ [0] = "\n" ] ), [3] = "\n" ) lct-content-5.ast000066400000000000000000000034311335270560400476240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "" ] flags = -, body = WtBody[ [0] = "\n" ] ) ], [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtLctVarConv( flags = -, body = WtBody[ [0] = "Cell1" ] ) ], [1] = WtLctVarConv( flags = -, body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtLctVarConv( flags = -, body = WtBody[ [0] = "Cell2" ] ) ], [1] = WtLctVarConv( flags = -, body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ) ] ), [2] = WtLctVarConv( {P} rtd = RTD[ "" "" "}-" ] flags = -, body = WtBody[ [0] = "\n" ] ), [3] = "\n" ) lct-content-6.ast000066400000000000000000000006761335270560400476350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "" ] flags = -, body = WtBody[ [0] = "\n" ] ) ], [1] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [2] = WtLctVarConv( {P} rtd = RTD[ "" "" "}-" ] flags = -, body = WtBody[ [0] = "\n" ] ), [3] = "\n" ) lct-content-7.ast000066400000000000000000000003501335270560400476230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "-{", [1] = WtUrl( {P} path = "//example.com}-" {P} protocol = "http" {P} rtd = RTD[ "http://example.com}-" ] ) ], [1] = "\n" ) lct-content-8.ast000066400000000000000000000004331335270560400476260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "bold" ) ] ) ], [1] = "\n" ) lct-content-9.ast000066400000000000000000000004431335270560400476300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = WtPageSwitch( {P} name = "NOTOC" {P} rtd = RTD[ "__NOTOC__" ] ) ] ) ], [1] = "\n" ) lct-pipe-1.ast000066400000000000000000000005711335270560400471050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[] {P} garbage = C[] {P} rtd = RTD[ "zh-hans;zh-hant" ] {P} variants = C[ "zh-hans", "zh-hant" ] ), body = WtBody[ [0] = "\u6587\u5B57" ] ) ], [1] = "\n" ) lct-rule-1.ast000066400000000000000000000007551335270560400471230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, body = WtBody[ [0] = "\u6587\u5B57" ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "R" ] {P} garbage = C[] {P} rtd = RTD[ "R" ] {P} variants = C[] ), body = WtBody[ [0] = "\u6587\u5B57" ] ) ], [3] = "\n" ) lct-rule-2.ast000066400000000000000000000031161335270560400471160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "" "}-" ] flags = -, rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-hans:" "" ] {P} search = "" {P} variant = " zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-hant:" "" ] {P} search = "" {P} variant = " zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-cn:" "" ] {P} search = "" {P} variant = " zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-tw:" "" ] {P} search = "" {P} variant = " zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-hk:" "" ] {P} search = "" {P} variant = " zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "; zh-sg:" "" ] {P} search = "" {P} variant = " zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ], [1] = "\n" ) lct-rule-3.ast000066400000000000000000000034041335270560400471170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "A" ] {P} garbage = C[] {P} rtd = RTD[ "A" ] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hans:" "" ] {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hant:" "" ] {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-cn:" "" ] {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-tw:" "" ] {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hk:" "" ] {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-sg:" "" ] {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ), [7] = WtLctRuleGarbage( {P} content = "" {P} rtd = RTD[ ";" ] ) ] ) ], [1] = "\n" ) lct-rule-4.ast000066400000000000000000000034041335270560400471200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "H" ] {P} garbage = C[] {P} rtd = RTD[ "H" ] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hans:" "" ] {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hant:" "" ] {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-cn:" "" ] {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-tw:" "" ] {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hk:" "" ] {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-sg:" "" ] {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ), [7] = WtLctRuleGarbage( {P} content = "" {P} rtd = RTD[ ";" ] ) ] ) ], [1] = "\n" ) lct-rule-5.ast000066400000000000000000000034041335270560400471210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "-" ] {P} garbage = C[] {P} rtd = RTD[ "-" ] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hans:" "" ] {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hant:" "" ] {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-cn:" "" ] {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-tw:" "" ] {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hk:" "" ] {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-sg:" "" ] {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ), [7] = WtLctRuleGarbage( {P} content = "" {P} rtd = RTD[ ";" ] ) ] ) ], [1] = "\n" ) lct-rule-6.ast000066400000000000000000000005141335270560400471210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "T" ] {P} garbage = C[] {P} rtd = RTD[ "T" ] {P} variants = C[] ), body = WtBody[ [0] = "\u6587\u5B57" ] ) ], [1] = "\n" ) lct-rule-7.ast000066400000000000000000000034041335270560400471230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "T" ] {P} garbage = C[] {P} rtd = RTD[ "T" ] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hans:" "" ] {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hant:" "" ] {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-cn:" "" ] {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-tw:" "" ] {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hk:" "" ] {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-sg:" "" ] {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ), [7] = WtLctRuleGarbage( {P} content = "" {P} rtd = RTD[ ";" ] ) ] ) ], [1] = "\n" ) lct-rule-8.ast000066400000000000000000000034041335270560400471240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctRuleConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "D" ] {P} garbage = C[] {P} rtd = RTD[ "D" ] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ "zh:" "" ] {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hans:" "" ] {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hant:" "" ] {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-cn:" "" ] {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-tw:" "" ] {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-hk:" "" ] {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} rtd = RTD[ ";zh-sg:" "" ] {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ), [7] = WtLctRuleGarbage( {P} content = "" {P} rtd = RTD[ ";" ] ) ] ) ], [1] = "\n" ) lct-rule-9.ast000066400000000000000000000005051335270560400471240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtLctVarConv( {P} rtd = RTD[ "-{" "|" "}-" ] flags = WtLctFlags( {P} flags = C[ "N" ] {P} garbage = C[] {P} rtd = RTD[ "N" ] {P} variants = C[] ), body = WtBody[ [0] = "zh-hk" ] ) ], [1] = "\n" ) lct-scope-1.ast000066400000000000000000000005421335270560400472570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "1-{2", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "link" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "3}-4" ) ), [2] = "5" ], [1] = "\n" ) lct-scope-2.ast000066400000000000000000000015021335270560400472550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "A-{Cell1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Cell2}-B" ], [1] = "\n" ] ) ] ) ] ) ] ), [1] = "\n" ) lct-scope-3.ast000066400000000000000000000005421335270560400472610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "1", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "link" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2-{3" ) ), [2] = "4}-5" ], [1] = "\n" ) nested-list.ast000066400000000000000000000011631335270560400474630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " considered ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "perfect use" ), [2] = " because the clinical trials measured efficacy during actual use of Depo-Provera", [3] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = " defined as being no longer than 14 or 15 weeks after an injection (i.e., no more than 1 or 2 weeks late for a next injection)" ) ) ) ], [1] = "\n" ) nesting-1.ast000066400000000000000000000011271335270560400470350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/nesting-1.wikitext:1:1 - 10: "[[Target1" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [1] = "Target1|Title1a ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Target2" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title2" ) ), [3] = " Title1b]]" ] ) nesting-10.ast000066400000000000000000000005371335270560400471210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\n* Item 1\n* Item 2 " ) ), [1] = " Wasuup?" ] ) nesting-11.ast000066400000000000000000000032621335270560400471200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("T|a\n|b") ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("T|a\n|b") ) ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " "\n>" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X" ] ), [2] = "Y" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "3" ], [1] = "\n" ] ) ] ) ] ) ] ) ) nesting-2.ast000066400000000000000000000005301335270560400470330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Target1" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Title1a [http://heise.de] Title1b" ) ) ] ) nesting-3.ast000066400000000000000000000014061335270560400470370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-basic/input.wikitext/nesting-3.wikitext:1:31: : 12.2.5.4.7 - R27 @ WtInternalLink., Warning: : : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = WtLinkTitle[ [0] = "title1a " ] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = - ), [2] = " title1b", [3] = WtXmlEndTag( {P} name = "#ext-link" {P} rtd = RTD[ "]" ] ) ] ) nesting-4.ast000066400000000000000000000005471335270560400470450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//example.com" {P} protocol = "http" {P} rtd = RTD[ "http://example.com" ] ), title = WtLinkTitle[ [0] = "title1a [http://inner.com" ] ), [1] = " title1b]" ] ) nesting-5.ast000066400000000000000000000013631335270560400470430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/nesting-5.wikitext:1:1 - 9: "[[target" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [1] = "target|" ], [1] = "\n", [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " item 1" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " item 2" ) ], [3] = "\n", [4] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = - ), [1] = "\n]]" ], [5] = "\n" ) nesting-6.ast000066400000000000000000000027371335270560400470520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "The list is nested inside a link and must not be recognized by the parser.\nThe post-processor, however, will extract the table (which contains the list)\nfrom the link title. After pretty-printing, the list will no longer be inside\nthe link title and will now be recognized -> BEWARE!" ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\n" ) ) ], [3] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "* item 1\n* item 2" ], [2] = "\n" ] ) ] ) ] ) ] ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "target" ), title = WtLinkTitle[ [0] = "\n" ] ), [5] = "\n" ) nesting-7.ast000066400000000000000000000015341335270560400470450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "text", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/nesting-7.wikitext:2:7 - 15: "[[target" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [2] = "target|text" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "text]]" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "==", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "text" {P} rtd = RTD[ "text[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "text\n" ) ), [2] = "==" ] ] ) ) nesting-8.ast000066400000000000000000000016461335270560400470520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "1", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "T" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "a\nb" ) ), [2] = "||2" ], [1] = "\n" ] ) ] ) ] ) ] ) ) nesting-9.ast000066400000000000000000000023571335270560400470530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "1", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-basic/input.wikitext/nesting-9.wikitext:2:3 - 6: "[[T" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [2] = "T|a" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "b]]" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "2" ], [1] = "\n" ] ) ] ) ] ) ] ) ) newlines-and-comments.ast000066400000000000000000000007251335270560400514420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " comment ... " {P} prefix = " " {P} rtd = RTD[ " \n" ] {P} suffix = " \n" ) } {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtXmlComment( {P} content = " comment ... " {P} prefix = " " {P} rtd = RTD[ " \n" ] {P} suffix = " \n" ), [1] = "\nHallo" ] ) newlines-and-paragraphs-01.ast000066400000000000000000000001431335270560400521550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ] ) newlines-and-paragraphs-02.ast000066400000000000000000000001601335270560400521550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "Hallo" ] ) newlines-and-paragraphs-03.ast000066400000000000000000000001621335270560400521600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "\nHallo" ] ) newlines-and-paragraphs-04.ast000066400000000000000000000001641335270560400521630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "\n\nHallo" ] ) newlines-and-paragraphs-05.ast000066400000000000000000000002271335270560400521640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "Hallo" ] ) newlines-and-paragraphs-06.ast000066400000000000000000000002311335270560400521600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "\nHallo" ] ) newlines-and-paragraphs-07.ast000066400000000000000000000002331335270560400521630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "\n\nHallo" ] ) newlines-and-paragraphs-08.ast000066400000000000000000000002351335270560400521660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "\n\n\nHallo" ] ) newlines-and-paragraphs-09.ast000066400000000000000000000011061335270560400521650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ) ) newlines-and-paragraphs-10.ast000066400000000000000000000011101335270560400521500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo" ], [1] = "\n\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ) ) newlines-and-paragraphs-11.ast000066400000000000000000000011121335270560400521530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo\n" ], [1] = "\n\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ) ) newlines-and-paragraphs-12.ast000066400000000000000000000011141335270560400521560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo\n\n" ], [1] = "\n\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ) ) p-3-newlines-s.ast000066400000000000000000000001601335270560400477050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "\n \n" ] ) p-3-newlines.ast000066400000000000000000000001571335270560400474530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "\n\n" ] ) p-bof-text.ast000066400000000000000000000001731335270560400472150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "text\ntext\ntext" ], [1] = "\n" ) p-empty.ast000066400000000000000000000000771335270560400466260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] ) p-hr-1.ast000066400000000000000000000011531335270560400462330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [1] = "\n\n", [2] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [3] = WtParagraph[ [0] = "text" ], [4] = "\n", [5] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [6] = "\n", [7] = WtParagraph[ [0] = "t" ], [8] = "\n", [9] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [10] = "\n\n", [11] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [12] = "\n", [13] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [14] = "\n\n", [15] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ) ) p-hr-2.ast000066400000000000000000000002731335270560400462360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [1] = "\n\n", [2] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ) ) p-hr-3.ast000066400000000000000000000001651335270560400462370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ) ) p-p-text.ast000066400000000000000000000002571335270560400467110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "text" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "text" ], [4] = "\n" ) p-text-1.ast000066400000000000000000000001631335270560400466060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSemiPre[ [0] = " text\n text \n text" ] ) p-text-2.ast000066400000000000000000000001421335270560400466040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "text" ] ) param-1.ast000066400000000000000000000040531335270560400464670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "param" ], default = -, garbage = WtTemplateArguments[] ), [1] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default value" ], garbage = WtTemplateArguments[] ), [2] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default values" ], garbage = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "garbage 1" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "garbage 2" ] ) ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "param" ], default = -, garbage = WtTemplateArguments[] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default value" ], garbage = WtTemplateArguments[] ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default values" ], garbage = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "garbage 1" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "garbage 2" ] ) ] ) ], [5] = "\n" ) pp-pre.ast000066400000000000000000000007021335270560400464310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tBlock\n") ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tBlock\n") ) ] ) pp-redirect-and-template-1.ast000066400000000000000000000037411335270560400521610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtRedirect( {P} rtd = RTD[ "#ReDiReCt[[" "|garbage]]" ] target = WtPageName[ [0] = "link" ] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtRedirect( {P} rtd = RTD[ "#ReDiReCt[[" "|garbage]]" ] target = WtPageName[ [0] = "link" ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) ] ) pp-redirect-and-template-2.ast000066400000000000000000000037401335270560400521610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT[[" "]]" ] target = WtPageName[ [0] = "link" ] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT[[" "]]" ] target = WtPageName[ [0] = "link" ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) ], [1] = "\n\n" ) pp-template.ast000066400000000000000000000033541335270560400474640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "arg0" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg1" ], value = WtValue[ [0] = "value1" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "arg2" ], value = WtValue[ [0] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "parameter2" ], default = -, garbage = WtTemplateArguments[] ) ] ) ] ) ] ) scope_builder-1.ast000066400000000000000000000045711335270560400502130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ WtNewline("\n") WtParagraph([ ]) WtXmlElement( Properties: {N} empty = false {N} name = "table" {N} rtd = RTD[ " ">" "
    " ] [ ] [ WtNewline("\n") WtNewline("\n") WtParagraph([ WtText("\ttext") WtNewline("\n") WtNewline("\n") ]) WtParagraph([ WtText("\t") ]) WtXmlElement( Properties: {N} empty = false {N} name = "tr" {N} rtd = RTD[ " ">" "" ] [ ] [ WtNewline("\n") WtText("\t\t") WtXmlElement( Properties: {N} empty = false {N} name = "td" {N} rtd = RTD[ " ">" "" ] [ ] [ WtText("Cell 1.1") ] ) WtNewline("\n") WtText("\t\t") WtXmlElement( Properties: {N} empty = false {N} name = "td" {N} rtd = RTD[ " ">" "" ] [ ] [ WtText("Cell 1.2") ] ) WtNewline("\n") WtText("\t") ] ) WtNewline("\n") WtNewline("\n") WtParagraph([ WtText("\t") ]) WtXmlElement( Properties: {N} empty = false {N} name = "tr" {N} rtd = RTD[ " ">" "" ] [ ] [ WtNewline("\n") WtText("\t\t") WtXmlElement( Properties: {N} empty = false {N} name = "td" {N} rtd = RTD[ " ">" "" ] [ ] [ WtText("Cell 2.1") ] ) WtNewline("\n") WtText("\t\t") WtXmlElement( Properties: {N} empty = false {N} name = "td" {N} rtd = RTD[ " ">" "" ] [ ] [ WtText("Cell 2.2") ] ) WtNewline("\n") WtText("\t") ] ) WtNewline("\n") WtNewline("\n") WtParagraph([ ]) ] ) WtNewline("\n") ] ) special-magicword.ast000066400000000000000000000040311335270560400506170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtPageSwitch( {P} name = "NOTOC" {P} rtd = RTD[ "__NOTOC__" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/special-magicword.wikitext:2:3 - 10: "__NOTOC" : This looks like a Page Switch, however the name of the page switch is missing or not recognized as name. ] {P} content = "__" ), [2] = "NOTOC_" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/special-magicword.wikitext:3:3 - 10: "__NOTOC" : This looks like a Page Switch, however the name of the page switch is missing or not recognized as name. ] {P} content = "__" ), [2] = "NOTOC" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtText( {A} warnings = C[ Warning (normal): /nopkg-basic/input.wikitext/special-magicword.wikitext:4:3 - 12: "__MAGIC__" : This looks like a Page Switch, however the specified page switch name is unknown. ] {P} content = "__MAGIC__" ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/special-magicword.wikitext:5:3 - 10: "__MAGIC" : This looks like a Page Switch, however the name of the page switch is missing or not recognized as name. ] {P} content = "__" ), [2] = "MAGIC_" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/special-magicword.wikitext:6:3 - 10: "__MAGIC" : This looks like a Page Switch, however the name of the page switch is missing or not recognized as name. ] {P} content = "__" ), [2] = "MAGIC" ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " __" ) ] ) tbody.ast000066400000000000000000000027731335270560400463610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "caption" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "caption" ] ), [2] = "\n ", [3] = WtXmlElement( {P} name = "caption" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "ignore this" ] ), [4] = "\n ", [5] = WtXmlElement( {P} name = "tbody" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "th" ] ), [2] = "\n ", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "td" ] ), [4] = "\n " ] ), [2] = "\n " ] ), [6] = "\n" ] ), [2] = "\n" ) ticks-1.ast000066400000000000000000000001611335270560400465000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo\nHallo\nHallo" ] ) ticks-2.ast000066400000000000000000000021201335270560400464760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "italic\nbold\nbold+italic" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "'hmmm\nhmm'\nMark's\nMark's" ], [3] = "\n\n", [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = "Item 1" ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Item 2" ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Item 3" ) ) ) ], [5] = "\n\n", [6] = WtSemiPre[ [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = "Pre 1" ), [2] = "\n ", [3] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Pre 2" ), [4] = "\n ", [5] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Pre 3" ) ) ], [7] = "\n" ) ticks-3.ast000066400000000000000000000004301335270560400465010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "x" ) ), [1] = WtBold( {P} rtd = RTD[ "" "'''" ] [0] = "y" ) ] ) tmpl-in-link-title-1.ast000066400000000000000000000012311335270560400510140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "TMPL" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-basic/input.wikitext/tmpl-in-link-title-1.wikitext:1:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "TMPL" ], args = WtTemplateArguments[] ), [2] = "|Title]]" ] ) url-delim-2.ast000066400000000000000000000003741335270560400472640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "X ", [1] = WtUrl( {P} path = "//www.example.com/u(gl)y" {P} protocol = "http" {P} rtd = RTD[ "http://www.example.com/u(gl)y" ] ), [2] = ": Z" ] ) url-delim.ast000066400000000000000000000003631335270560400471230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "X (Y ", [1] = WtUrl( {P} path = "//www.example.com" {P} protocol = "http" {P} rtd = RTD[ "http://www.example.com" ] ), [2] = "). Z " ] ) xml-attr-with-parser-entity-1.ast000066400000000000000000000071531335270560400527200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name 2" ], args = WtTemplateArguments[] ), [5] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name3" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "='" "'" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value" ] ) ], body = WtBody[] ), [2] = "\n", [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value" ] ) ], body = WtBody[] ), [4] = "\n", [5] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value" ] ) ], body = WtBody[] ), [6] = "\n\n", [7] = WtParagraph[], [8] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "='" "'" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name 2" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value 2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name3" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = "value3" ] ) ], body = WtBody[] ), [9] = "\n" ) xml-attr-with-parser-entity-2.ast000066400000000000000000000055561335270560400527260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ), [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name2" ], args = WtTemplateArguments[] ), [5] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value2" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value" ], args = WtTemplateArguments[] ) ] ) ], body = WtBody[] ), [2] = "\n\n", [3] = WtParagraph[], [4] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value" ], args = WtTemplateArguments[] ) ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "name2" ], args = WtTemplateArguments[] ) ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "value2" ], args = WtTemplateArguments[] ) ] ) ], body = WtBody[] ), [5] = "\n" ) xml-attr-with-parser-entity-3.ast000066400000000000000000000027651335270560400527260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value 2" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value" ], args = WtTemplateArguments[] ) ], body = WtBody[] ), [2] = "\n\n", [3] = WtParagraph[], [4] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ " {{" "" "}}" ] name = WtName[ [0] = "name and value 2" ], args = WtTemplateArguments[] ) ], body = WtBody[] ), [5] = "\n" ) input.wikitext/000077500000000000000000000000001335270560400425555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basicblock-list-1.wikitext000066400000000000000000000001221335270560400465430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext* Hallo * Welt * Hallo * Welt * Hallo * Weltblock-list-2.wikitext000066400000000000000000000000251335270560400465460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext* Halloblock-list-3.wikitext000066400000000000000000000000341335270560400465470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[target| * item1 * item2 ]]block-section.wikitext000066400000000000000000000003431335270560400471030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext=== Hallo 1 === Welt 1 = Hallo 2 = * a * b = Hallo 3 = Welt 3 == Hallo 4 == Welt 4 === Hallo 5 === Welt 5 === Hallo 6 === Welt 6 == Hallo 7 == Welt 7 ==== Hallo 8 ==== Welt 8 = Hallo 9 = Welt 9 = Hallo 10 == == Hallo 11 =block-semipre.wikitext000066400000000000000000000001051335270560400470770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext Line 1 Line 2 Line 3 discontinued Line 5 Line 6block-table-1.wikitext000066400000000000000000000000201335270560400466540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| ! Header |}block-table-2.wikitext000066400000000000000000000001171335270560400466640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| border="1" ! class="bar" | Header |} {| |- border="2" ! class="foo" |}block-table-3.wikitext000066400000000000000000000000441335270560400466640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| |- border="2" ! class="foo" |}block-table-4.wikitext000066400000000000000000000000431335270560400466640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| |- ! Header 1 !! Header 2 |}block-table-5.wikitext000066400000000000000000000001721335270560400466700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| x |- x ! x | Header 1 !! x | Header 2 |- x | x | Cell 1.1 || x | Cell 1.2 |- x | x | Cell 2.1 || x | Cell 2.2 |}block-table-6.wikitext000066400000000000000000000000501335270560400466640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| ! S="" | A || S="" | B |- | X || Y |}funny-codepoints.wikitext000066400000000000000000000000471335270560400476540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext'''foo'''  a  b  c  d img-link.wikitext000066400000000000000000000007411335270560400460600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Image:Test1]] [[Image:Test2|alt=Alt Text]] [[Image:Test3|alt=Alt Text|Title]] [[Image:Test4|link=|Title]] [[Image:Test5|link= |Title]] [[Image:Test6|link=http://example.com|Title]] [[Image:Test7|link=Some Page|Title]] [[Image:Test8|alt=Alt Text|upright|border|Title]] [[Image:Test9|alt=Alt Text|frame|bottom|right|upright|border|Title]] [[Image:Test10|alt=Alt Text|128px|Title]] [[Image:Test11|alt=Alt Text|x512px|Title]] [[Image:Test12|alt=Alt Text|128x512px|Title]] inline-external-link-1.wikitext000066400000000000000000000000341335270560400505330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com Example]inline-external-link-2.wikitext000066400000000000000000000000521335270560400505340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com [http://example2.com]]inline-external-link-3.wikitext000066400000000000000000000000301335270560400505310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com ]inline-internal-link-1.wikitext.disabled000066400000000000000000000011111335270560400522700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Link! [[File:Image.png|Title] [[File:Image.png|1000000000000000000xpx]] [[File:Image.png|frame |10x20px |alt=Alternativer Text |15xpx |link=http://example.com |x15px |top |alt=Alternativer alternativer Text |Title]] [[File:Image.png]] [[File:Image.png|invisible|visible]] [[File:Image.png|link=Some Page Title|Title]] [[File:Image.png|link=http://example.com|Title]] [[Hallo|arg0]] [[Hallo|arg0|http://blub.com]] [[Hallo|arg0|[http://blub.com]]] [[Hallo|arg0|[http://bl|ub.com]]] [[Hallo]] text a[[Hallo]] text text [[Hallo]]z text text a[[Hallo]]z textinline-internal-link-2.wikitext000066400000000000000000000000131335270560400505230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Target|]]inline-internal-link-3.wikitext000066400000000000000000000000371335270560400505320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Link! == SectionHeading == ]]inline-internal-link-4.wikitext000066400000000000000000000000421335270560400505270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Link1|Title1 [[Link2|Title2]] ]]inline-mix.wikitext000066400000000000000000000001601335270560400464150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext ~~~ '' ~~~~ ''' ~~~~~ http://example.com [http://example.com] ''''' __NOTOC__ & ignored inline-plain-external-link-1.wikitext000066400000000000000000000000221335270560400516310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitexthttp://example.cominline-plain-external-link-2.wikitext000066400000000000000000000001121335270560400516320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext----http://example.com ---- before mail:mustermann@musterfirma.com after inline-signature.wikitext000066400000000000000000000000511335270560400476200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext*~ *~~ *~~~ *~~~~ *~~~~~ *~~~~~~ *~~~~~~~inline-xmlref.wikitext000066400000000000000000000000731335270560400471200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext& & &myinvention; &myinvention ÿ &#; &# &int-ext-link-1.wikitext000066400000000000000000000010061335270560400470250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e SFB 873] [[Hallo|Foo http://heise.de Bar]] [[Hallo|Foo [http://heise.de Boo] Bar]] [[Hallo|Foo [http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e FooBar] Bar]] [[image:foo|link=http://heise.de?|SFB|Titel]] [[image:foo|Foo [http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e SFB 873] Bar]] [[image:x|a[http://b|c d]e]] [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] int-ext-link-2.wikitext000066400000000000000000000000421335270560400470250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[image:x|frame|a[http://b|c d]e]]lct-content-1.wikitext000066400000000000000000000000051335270560400467320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{}- lct-content-10.wikitext000066400000000000000000000000271335270560400470160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{ ==Section== Body }- lct-content-11.wikitext000066400000000000000000000000271335270560400470170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext==Section== -{ body }- lct-content-12.wikitext.disabled000066400000000000000000000000461335270560400505670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{B}- lct-content-13.wikitext000066400000000000000000000000331335270560400470160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com -{X}-] lct-content-14.wikitext000066400000000000000000000000061335270560400470170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{X}- lct-content-15.wikitext000066400000000000000000000000101335270560400470130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{A B}- lct-content-16.wikitext000066400000000000000000000000301335270560400470160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{http://example.com }- lct-content-2.wikitext000066400000000000000000000000231335270560400467330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{[[Link|Title]]}- lct-content-3.wikitext000066400000000000000000000000111335270560400467310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{~~~~}- lct-content-4.wikitext000066400000000000000000000000241335270560400467360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{ *Item1 *Item2 }- lct-content-5.wikitext000066400000000000000000000000351335270560400467410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{ {| |Cell1 |Cell2 |} }- lct-content-6.wikitext000066400000000000000000000000131335270560400467360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{ ---- }- lct-content-7.wikitext000066400000000000000000000000271335270560400467440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{http://example.com}- lct-content-8.wikitext000066400000000000000000000000171335270560400467440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{'''bold'''}- lct-content-9.wikitext000066400000000000000000000000161335270560400467440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{__NOTOC__}- lct-pipe-1.wikitext000066400000000000000000000000331335270560400462160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{zh-hans;zh-hant|文字}- lct-rule-1.wikitext000066400000000000000000000000311335270560400462260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{文字}- -{R|文字}- lct-rule-2.wikitext000066400000000000000000000001551335270560400462360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{zh:文字1; zh-hans:文字2; zh-hant:文字3; zh-cn:文字4; zh-tw:文字5; zh-hk:文字6; zh-sg:文字7}- lct-rule-3.wikitext000066400000000000000000000001521335270560400462340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{A|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7;}- lct-rule-4.wikitext000066400000000000000000000001521335270560400462350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{H|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7;}- lct-rule-5.wikitext000066400000000000000000000001521335270560400462360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{-|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7;}- lct-rule-6.wikitext000066400000000000000000000000151335270560400462350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{T|文字}- lct-rule-7.wikitext000066400000000000000000000001521335270560400462400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{T|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7;}- lct-rule-8.wikitext000066400000000000000000000001521335270560400462410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{D|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7;}- lct-rule-9.wikitext000066400000000000000000000000141335270560400462370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext-{N|zh-hk}- lct-scope-1.wikitext000066400000000000000000000000231335270560400463710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext1-{2[[link|3}-4]]5 lct-scope-2.wikitext000066400000000000000000000000351335270560400463750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| |A-{Cell1 |Cell2}-B |} lct-scope-3.wikitext000066400000000000000000000000231335270560400463730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext1[[link|2-{3]]4}-5 nested-list.wikitext000066400000000000000000000003561335270560400466060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext* considered ''perfect use'' because the clinical trials measured efficacy during actual use of Depo-Provera ** defined as being no longer than 14 or 15 weeks after an injection (i.e., no more than 1 or 2 weeks late for a next injection) nesting-1.wikitext000066400000000000000000000000561335270560400461550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Target1|Title1a [[Target2|Title2]] Title1b]]nesting-10.wikitext000066400000000000000000000000461335270560400462340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Target| * Item 1 * Item 2 ]] Wasuup?nesting-11.wikitext000066400000000000000000000000721335270560400462340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| border="1" |1
    T|a
    |b
    ||2XY||3 |}nesting-2.wikitext000066400000000000000000000000551335270560400461550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[Target1|Title1a [http://heise.de] Title1b]]nesting-3.wikitext000066400000000000000000000000571335270560400461600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com title1a [[target]] title1b]nesting-4.wikitext000066400000000000000000000000671335270560400461620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[http://example.com title1a [http://inner.com] title1b]nesting-5.wikitext000066400000000000000000000000521335270560400461550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[target| * item 1 * item 2 [[target]] ]] nesting-6.wikitext000066400000000000000000000005061335270560400461620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextThe list is nested inside a link and must not be recognized by the parser. The post-processor, however, will extract the table (which contains the list) from the link title. After pretty-printing, the list will no longer be inside the link title and will now be recognized -> BEWARE! [[target| {| | * item 1 * item 2 |} ]] nesting-7.wikitext000066400000000000000000000000671335270560400461650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext ==text[[target|text== text]] ==text[[target|text ]]==nesting-8.wikitext000066400000000000000000000000241335270560400461570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| |1[[T|a b]]||2 |}nesting-9.wikitext000066400000000000000000000000251335270560400461610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{| |1[[T|a |b]]||2 |}newlines-and-comments.wikitext000066400000000000000000000000461335270560400505560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallonewlines-and-paragraphs-01.wikitext000066400000000000000000000000051335270560400512720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallonewlines-and-paragraphs-02.wikitext000066400000000000000000000000061335270560400512740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext Hallonewlines-and-paragraphs-03.wikitext000066400000000000000000000000071335270560400512760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext Hallonewlines-and-paragraphs-04.wikitext000066400000000000000000000000101335270560400512710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext Hallonewlines-and-paragraphs-05.wikitext000066400000000000000000000000141335270560400512760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallonewlines-and-paragraphs-06.wikitext000066400000000000000000000000151335270560400513000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallonewlines-and-paragraphs-07.wikitext000066400000000000000000000000161335270560400513020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallonewlines-and-paragraphs-08.wikitext000066400000000000000000000000171335270560400513040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallonewlines-and-paragraphs-09.wikitext000066400000000000000000000000171335270560400513050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo {| | |}newlines-and-paragraphs-10.wikitext000066400000000000000000000000201335270560400512670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo {| | |}newlines-and-paragraphs-11.wikitext000066400000000000000000000000211335270560400512710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo {| | |}newlines-and-paragraphs-12.wikitext000066400000000000000000000000221335270560400512730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo {| | |}p-3-newlines-s.wikitext000066400000000000000000000000041335270560400470220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext p-3-newlines.wikitext000066400000000000000000000000031335270560400465610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext p-bof-text.wikitext000066400000000000000000000000171335270560400463320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitexttext text text p-empty.wikitext000066400000000000000000000000001335270560400457300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextp-hr-1.wikitext000066400000000000000000000000531335270560400453510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext---- ----text ---- t ---- ---- ---- ----p-hr-2.wikitext000066400000000000000000000000121335270560400453450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext---- ----p-hr-3.wikitext000066400000000000000000000000041335270560400453470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext----p-p-text.wikitext000066400000000000000000000000141335270560400460200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext text text p-text-1.wikitext000066400000000000000000000000251335270560400457230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext text text textp-text-2.wikitext000066400000000000000000000000041335270560400457210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitexttextparam-1.wikitext000066400000000000000000000001271335270560400456050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{{{param}}} {{{param|default value}}} {{{param|default values|garbage 1|garbage 2}}} pp-pre.wikitext000066400000000000000000000000231335270560400455450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext
    	Block
    
    pp-redirect-and-template-1.wikitext000066400000000000000000000001111335270560400512650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext#ReDiReCt[[link|garbage]] {{name|arg0|arg1=value1|arg2={{{parameter2}}}}}pp-redirect-and-template-2.wikitext000066400000000000000000000001031335270560400512670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext#REDIRECT[[link]] {{name|arg0|arg1=value1|arg2={{{parameter2}}}}} pp-template.wikitext000066400000000000000000000000571335270560400466010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext{{name|arg0|arg1=value1|arg2={{{parameter2}}}}}scope_builder-1.wikitext.disabled000066400000000000000000000000601335270560400510660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext italic
    still italic
    plain scope_builder-n.wikitext.disabled000066400000000000000000000002061335270560400511650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext text
    Cell 1.1 Cell 1.2
    Cell 2.1 Cell 2.2
    special-magicword.wikitext000066400000000000000000000001061335270560400477360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext* __NOTOC__ * __NOTOC_ * __NOTOC * __MAGIC__ * __MAGIC_ * __MAGIC * __tbody.wikitext000066400000000000000000000002331335270560400454660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext
    caption ignore this
    th td
    ticks-1.wikitext000066400000000000000000000000211335270560400456130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextHallo Hallo Halloticks-2.wikitext000066400000000000000000000001701335270560400456210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextitalic bold bold+italic 'hmmm hmm' Mark's Mark's * ''Item 1 * '''Item 2 * '''''Item 3 ''Pre 1 '''Pre 2 '''''Pre 3 ticks-3.wikitext000066400000000000000000000000141335270560400456170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext'''''x''y'''tmpl-in-link-title-1.wikitext000066400000000000000000000000221335270560400501310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext[[{{TMPL}}|Title]]url-delim-2.wikitext000066400000000000000000000000421335270560400463740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextX http://www.example.com/u(gl)y: Zurl-delim.wikitext000066400000000000000000000000401335270560400462330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitextX (Y http://www.example.com). Z xml-attr-with-parser-entity-1.wikitext000066400000000000000000000002311335270560400520260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext
    xml-attr-with-parser-entity-2.wikitext000066400000000000000000000001241335270560400520300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext
    xml-attr-with-parser-entity-3.wikitext000066400000000000000000000001241335270560400520310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/input.wikitext
    pretty-printed.ast/000077500000000000000000000000001335270560400433275ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basicblock-section.ast000066400000000000000000000027101335270560400465740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Hallo 1" ], body = WtBody[ [0] = "Welt 1" ] ), [1] = WtSection( {P} level = 1 heading = WtHeading[ [0] = "Hallo 2" ], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "a" ], [1] = WtListItem[ [0] = "b" ] ] ] ), [2] = WtSection( {P} level = 1 heading = WtHeading[ [0] = "Hallo 3" ], body = WtBody[ [0] = "Welt 3", [1] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Hallo 4" ], body = WtBody[ [0] = "Welt 4", [1] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Hallo 5" ], body = WtBody[ [0] = "Welt 5" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Hallo 6" ], body = WtBody[ [0] = "Welt 6" ] ) ] ), [2] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Hallo 7" ], body = WtBody[ [0] = "Welt 7", [1] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "Hallo 8" ], body = WtBody[ [0] = "Welt 8" ] ) ] ) ] ), [3] = WtSection( {P} level = 1 heading = WtHeading[ [0] = "Hallo 9" ], body = WtBody[ [0] = "Welt 9" ] ), [4] = WtSection( {P} level = 1 heading = WtHeading[ [0] = "Hallo 10 =" ], body = WtBody[] ), [5] = WtSection( {P} level = 1 heading = WtHeading[ [0] = "= Hallo 11" ], body = WtBody[] ) ) lct-content-5.ast000066400000000000000000000012361335270560400464360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctVarConv( flags = -, body = WtBody[] ), [1] = WtLctVarConv( flags = -, body = WtBody[] ), [2] = WtLctVarConv( flags = -, body = WtBody[] ), [3] = WtTable( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [4] = WtLctVarConv( flags = -, body = WtBody[] ) ) lct-rule-3.ast000066400000000000000000000024061335270560400457310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctRuleConv( flags = WtLctFlags( {P} flags = C[ "A" ] {P} garbage = C[] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ) lct-rule-4.ast000066400000000000000000000024061335270560400457320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctRuleConv( flags = WtLctFlags( {P} flags = C[ "H" ] {P} garbage = C[] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ) lct-rule-5.ast000066400000000000000000000024061335270560400457330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctRuleConv( flags = WtLctFlags( {P} flags = C[ "-" ] {P} garbage = C[] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ) lct-rule-7.ast000066400000000000000000000024061335270560400457350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctRuleConv( flags = WtLctFlags( {P} flags = C[ "T" ] {P} garbage = C[] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ) lct-rule-8.ast000066400000000000000000000024061335270560400457360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtLctRuleConv( flags = WtLctFlags( {P} flags = C[ "D" ] {P} garbage = C[] {P} variants = C[] ), rules = WtLctRules[ [0] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh" replace = WtLctRuleText[ [0] = "\u6587\u5B571" ] ), [1] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hans" replace = WtLctRuleText[ [0] = "\u6587\u5B572" ] ), [2] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hant" replace = WtLctRuleText[ [0] = "\u6587\u5B573" ] ), [3] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-cn" replace = WtLctRuleText[ [0] = "\u6587\u5B574" ] ), [4] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-tw" replace = WtLctRuleText[ [0] = "\u6587\u5B575" ] ), [5] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-hk" replace = WtLctRuleText[ [0] = "\u6587\u5B576" ] ), [6] = WtLctRule( {P} directConvert = true {P} search = "" {P} variant = "zh-sg" replace = WtLctRuleText[ [0] = "\u6587\u5B577" ] ) ] ) ) nesting-3.ast000066400000000000000000000000201335270560400456370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astIGNORE THIS TESTnesting-6.ast000066400000000000000000000021051335270560400456500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "The list is nested inside a link and must not be recognized by the parser.\nThe post-processor, however, will extract the table (which contains the list)\nfrom the link title. After pretty-printing, the list will no longer be inside\nthe link title and will now be recognized -> BEWARE!", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "target" ], title = WtLinkTitle[] ), [2] = WtTable( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "* item 1", [1] = WtUnorderedList[ [0] = WtListItem[ [0] = "item 2" ] ] ] ) ] ) ] ) ] ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "target" ], title = WtLinkTitle[] ) ) param-1.ast000066400000000000000000000010641335270560400452770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTemplateParameter( {P} precededByNewline = false name = WtName[ [0] = "param" ], default = -, garbage = WtTemplateArguments[] ), [1] = WtTemplateParameter( {P} precededByNewline = true name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default value" ], garbage = WtTemplateArguments[] ), [2] = WtTemplateParameter( {P} precededByNewline = true name = WtName[ [0] = "param" ], default = WtValue[ [0] = "default values" ], garbage = WtTemplateArguments[] ) ) ticks-3.ast000066400000000000000000000002151335270560400453130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtItalics[ [0] = WtBold[ [0] = "x'''" ] ], [1] = "y", [2] = WtBold[] ) pretty-printed.wikitext/000077500000000000000000000000001335270560400444105ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basicblock-list-1.wikitext000066400000000000000000000000601335270560400503770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext * Hallo * Welt * Hallo * Welt * Hallo * Welt block-list-2.wikitext000066400000000000000000000000111335270560400503740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext * Hallo block-list-3.wikitext000066400000000000000000000000351335270560400504030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[target| * item1 * item2 ]] block-section.wikitext000066400000000000000000000003621335270560400507370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext === Hallo 1 === Welt 1 = Hallo 2 = * a * b = Hallo 3 = Welt 3 == Hallo 4 == Welt 4 === Hallo 5 === Welt 5 === Hallo 6 === Welt 6 == Hallo 7 == Welt 7 ==== Hallo 8 ==== Welt 8 = Hallo 9 = Welt 9 = Hallo 10 == == Hallo 11 = block-semipre.wikitext000066400000000000000000000001101335270560400507260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext Line 1 Line 2 Line 3 discontinued Line 5 Line 6 block-table-1.wikitext000066400000000000000000000000221335270560400505110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| ! Header |} block-table-2.wikitext000066400000000000000000000001211335270560400505120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| border="1" ! class="bar" | Header |} {| |- border="2" ! class="foo" |} block-table-3.wikitext000066400000000000000000000000461335270560400505210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| |- border="2" ! class="foo" |} block-table-4.wikitext000066400000000000000000000000461335270560400505220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| |- ! Header 1 ! Header 2 |} block-table-5.wikitext000066400000000000000000000001771335270560400505300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| x |- x ! x | Header 1 ! x | Header 2 |- x | x | Cell 1.1 | x | Cell 1.2 |- x | x | Cell 2.1 | x | Cell 2.2 |} block-table-6.wikitext000066400000000000000000000000601335270560400505200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| ! S="" | A ! S="" | B |- | X | Y |} funny-codepoints.wikitext000066400000000000000000000000471335270560400515070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext'''foo'''  a  b  c  d img-link.wikitext000066400000000000000000000007411335270560400477130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Image:Test1]] [[Image:Test2|alt=Alt Text]] [[Image:Test3|alt=Alt Text|Title]] [[Image:Test4|link=|Title]] [[Image:Test5|link= |Title]] [[Image:Test6|link=http://example.com|Title]] [[Image:Test7|link=Some Page|Title]] [[Image:Test8|alt=Alt Text|upright|border|Title]] [[Image:Test9|alt=Alt Text|frame|bottom|right|upright|border|Title]] [[Image:Test10|alt=Alt Text|128px|Title]] [[Image:Test11|alt=Alt Text|x512px|Title]] [[Image:Test12|alt=Alt Text|128x512px|Title]] inline-external-link-1.wikitext000066400000000000000000000000351335270560400523670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://example.com Example] inline-external-link-2.wikitext000066400000000000000000000000531335270560400523700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://example.com [http://example2.com]] inline-external-link-3.wikitext000066400000000000000000000000251335270560400523700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://example.com] inline-internal-link-1.wikitext.disabled000066400000000000000000000011111335270560400541230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Link! [[File:Image.png|Title] [[File:Image.png|1000000000000000000xpx]] [[File:Image.png|frame |10x20px |alt=Alternativer Text |15xpx |link=http://example.com |x15px |top |alt=Alternativer alternativer Text |Title]] [[File:Image.png]] [[File:Image.png|invisible|visible]] [[File:Image.png|link=Some Page Title|Title]] [[File:Image.png|link=http://example.com|Title]] [[Hallo|arg0]] [[Hallo|arg0|http://blub.com]] [[Hallo|arg0|[http://blub.com]]] [[Hallo|arg0|[http://bl|ub.com]]] [[Hallo]] text a[[Hallo]] text text [[Hallo]]z text text a[[Hallo]]z textinline-internal-link-2.wikitext000066400000000000000000000000141335270560400523570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Target|]] inline-internal-link-3.wikitext000066400000000000000000000000421335270560400523610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Link! == SectionHeading == ]] inline-internal-link-4.wikitext000066400000000000000000000000431335270560400523630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Link1|Title1 [[Link2|Title2]] ]] inline-mix.wikitext000066400000000000000000000001571335270560400502560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ~~~ '' ~~~~ ''' ~~~~~ http://example.com [http://example.com] ''''' __NOTOC__ & ignored inline-plain-external-link-1.wikitext000066400000000000000000000000231335270560400534650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitexthttp://example.com inline-plain-external-link-2.wikitext000066400000000000000000000001161335270560400534710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ---- http://example.com ---- before mail:mustermann@musterfirma.com after inline-signature.wikitext000066400000000000000000000000531335270560400514550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext *~ *~~ *~~~ *~~~~ *~~~~~ *~~~~~~ *~~~~~~~ inline-xmlref.wikitext000066400000000000000000000000741335270560400507540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext& & &myinvention; &myinvention ÿ &#; &# & int-ext-link-1.wikitext000066400000000000000000000007651335270560400506730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e SFB 873] [[Hallo|Foo http://heise.de Bar]] [[Hallo|Foo [http://heise.de Boo] Bar]] [[Hallo|Foo [http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e FooBar] Bar]] [[image:foo|link=http://heise.de?|Titel]] [[image:foo|Foo [http://www.cos.uni-heidelberg.de/index.php/sfb873?|SFB&l=_e SFB 873] Bar]] [[image:x|a[http://b|c d]e]] [[File:Eurofighter 9803.ogg|thumb|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] int-ext-link-2.wikitext000066400000000000000000000000431335270560400506610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[image:x|frame|a[http://b|c d]e]] lct-content-1.wikitext000066400000000000000000000000051335270560400505650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{}- lct-content-10.wikitext000066400000000000000000000000311335270560400506440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{ ==Section== Body }- lct-content-11.wikitext000066400000000000000000000000311335270560400506450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ==Section== -{ body }- lct-content-13.wikitext000066400000000000000000000000331335270560400506510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://example.com -{X}-] lct-content-14.wikitext000066400000000000000000000000061335270560400506520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{X}- lct-content-15.wikitext000066400000000000000000000000101335270560400506460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{A B}- lct-content-16.wikitext000066400000000000000000000000301335270560400506510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{http://example.com }- lct-content-2.wikitext000066400000000000000000000000231335270560400505660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{[[Link|Title]]}- lct-content-3.wikitext000066400000000000000000000000111335270560400505640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{~~~~}- lct-content-4.wikitext000066400000000000000000000000441335270560400505730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{ }- *-{Item1}- *-{Item2}- -{ }- lct-content-5.wikitext000066400000000000000000000000731335270560400505760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{ }- {| |-{Cell1}- -{ }- |-{Cell2}- -{ }- |} -{ }- lct-content-6.wikitext000066400000000000000000000000231335270560400505720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{ }- ---- -{ }- lct-content-7.wikitext000066400000000000000000000000271335270560400505770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{http://example.com}- lct-content-8.wikitext000066400000000000000000000000171335270560400505770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{'''bold'''}- lct-content-9.wikitext000066400000000000000000000000161335270560400505770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{__NOTOC__}- lct-pipe-1.wikitext000066400000000000000000000000331335270560400500510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{zh-hans;zh-hant|文字}- lct-rule-1.wikitext000066400000000000000000000000311335270560400500610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{文字}- -{R|文字}- lct-rule-2.wikitext000066400000000000000000000001551335270560400500710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{zh:文字1; zh-hans:文字2; zh-hant:文字3; zh-cn:文字4; zh-tw:文字5; zh-hk:文字6; zh-sg:文字7}- lct-rule-3.wikitext000066400000000000000000000001511335270560400500660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{A|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7}- lct-rule-4.wikitext000066400000000000000000000001511335270560400500670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{H|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7}- lct-rule-5.wikitext000066400000000000000000000001511335270560400500700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{-|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7}- lct-rule-6.wikitext000066400000000000000000000000151335270560400500700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{T|文字}- lct-rule-7.wikitext000066400000000000000000000001511335270560400500720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{T|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7}- lct-rule-8.wikitext000066400000000000000000000001511335270560400500730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{D|zh:文字1;zh-hans:文字2;zh-hant:文字3;zh-cn:文字4;zh-tw:文字5;zh-hk:文字6;zh-sg:文字7}- lct-rule-9.wikitext000066400000000000000000000000141335270560400500720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext-{N|zh-hk}- lct-scope-1.wikitext000066400000000000000000000000231335270560400502240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext1-{2[[link|3}-4]]5 lct-scope-2.wikitext000066400000000000000000000000361335270560400502310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| |A-{Cell1 |Cell2}-B |} lct-scope-3.wikitext000066400000000000000000000000231335270560400502260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext1[[link|2-{3]]4}-5 nested-list.wikitext000066400000000000000000000003571335270560400504420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext * considered ''perfect use'' because the clinical trials measured efficacy during actual use of Depo-Provera ** defined as being no longer than 14 or 15 weeks after an injection (i.e., no more than 1 or 2 weeks late for a next injection) nesting-1.wikitext000066400000000000000000000000571335270560400500110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Target1|Title1a [[Target2|Title2]] Title1b]] nesting-10.wikitext000066400000000000000000000000471335270560400500700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Target| * Item 1 * Item 2 ]] Wasuup? nesting-11.wikitext000066400000000000000000000000771335270560400500740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| border="1" |1
    T|a
    |b
    |2XY |3 |} nesting-2.wikitext000066400000000000000000000000561335270560400500110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[Target1|Title1a [http://heise.de] Title1b]] nesting-3.wikitext000066400000000000000000000000201335270560400500010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextIGNORE THIS TESTnesting-4.wikitext000066400000000000000000000000701335270560400500070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[http://example.com title1a [http://inner.com] title1b] nesting-5.wikitext000066400000000000000000000000541335270560400500120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[target| * item 1 * item 2 [[target]] ]] nesting-6.wikitext000066400000000000000000000005241335270560400500150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextThe list is nested inside a link and must not be recognized by the parser. The post-processor, however, will extract the table (which contains the list) from the link title. After pretty-printing, the list will no longer be inside the link title and will now be recognized -> BEWARE! [[target| ]] {| |* item 1 * item 2 |} [[target| ]] nesting-7.wikitext000066400000000000000000000000711335270560400500130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ==text[[target|text== text]] ==text[[target|text ]]== nesting-8.wikitext000066400000000000000000000000301335270560400500070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| |1[[T|a b]]||2 |} nesting-9.wikitext000066400000000000000000000000331335270560400500130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext {| |1[[T|a |b]] |2 |} newlines-and-comments.wikitext000066400000000000000000000000461335270560400524110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo newlines-and-paragraphs-01.wikitext000066400000000000000000000000061335270560400531260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo newlines-and-paragraphs-02.wikitext000066400000000000000000000000061335270560400531270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo newlines-and-paragraphs-03.wikitext000066400000000000000000000000061335270560400531300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo newlines-and-paragraphs-04.wikitext000066400000000000000000000000061335270560400531310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo newlines-and-paragraphs-05.wikitext000066400000000000000000000000151335270560400531320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo newlines-and-paragraphs-06.wikitext000066400000000000000000000000151335270560400531330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo newlines-and-paragraphs-07.wikitext000066400000000000000000000000151335270560400531340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo newlines-and-paragraphs-08.wikitext000066400000000000000000000000151335270560400531350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo newlines-and-paragraphs-09.wikitext000066400000000000000000000000211335270560400531330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo {| | |} newlines-and-paragraphs-10.wikitext000066400000000000000000000000211335270560400531230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo {| | |} newlines-and-paragraphs-11.wikitext000066400000000000000000000000211335270560400531240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo {| | |} newlines-and-paragraphs-12.wikitext000066400000000000000000000000211335270560400531250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo {| | |} p-3-newlines-s.wikitext000066400000000000000000000000021335270560400506530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext p-3-newlines.wikitext000066400000000000000000000000001335270560400504110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextp-bof-text.wikitext000066400000000000000000000000171335270560400501650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitexttext text text p-empty.wikitext000066400000000000000000000000001335270560400475630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextp-hr-1.wikitext000066400000000000000000000000631335270560400472050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ---- ---- text ---- t ---- ---- ---- ---- p-hr-2.wikitext000066400000000000000000000000141335270560400472020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ---- ---- p-hr-3.wikitext000066400000000000000000000000061335270560400472040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext ---- p-p-text.wikitext000066400000000000000000000000131335270560400476520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitexttext text p-text-1.wikitext000066400000000000000000000000261335270560400475570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext text text text p-text-2.wikitext000066400000000000000000000000051335270560400475550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitexttext param-1.wikitext000066400000000000000000000001031335270560400474320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext{{{param}}} {{{param|default value}}} {{{param|default values}}} pp-pre.wikitext000066400000000000000000000000241335270560400474010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext
    	Block
    
    pp-redirect-and-template-1.wikitext000066400000000000000000000001021335270560400531200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext#REDIRECT[[link]] {{name|arg0|arg1=value1|arg2={{{parameter2}}}}} pp-redirect-and-template-2.wikitext000066400000000000000000000001021335270560400531210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext#REDIRECT[[link]] {{name|arg0|arg1=value1|arg2={{{parameter2}}}}} pp-template.wikitext000066400000000000000000000000601335270560400504260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext{{name|arg0|arg1=value1|arg2={{{parameter2}}}}} scope_builder-1.wikitext.disabled000066400000000000000000000000601335270560400527210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext italic
    still italic
    plain scope_builder-n.wikitext.disabled000066400000000000000000000002061335270560400530200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext text
    Cell 1.1 Cell 1.2
    Cell 2.1 Cell 2.2
    special-magicword.wikitext000066400000000000000000000001101335270560400515640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext * __NOTOC__ * __NOTOC_ * __NOTOC * __MAGIC__ * __MAGIC_ * __MAGIC * __ tbody.wikitext000066400000000000000000000002331335270560400473210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext
    caption ignore this
    th td
    ticks-1.wikitext000066400000000000000000000000221335270560400474470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextHallo Hallo Hallo ticks-2.wikitext000066400000000000000000000002141335270560400474530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextitalic bold bold+italic 'hmmm hmm' Mark's Mark's * ''Item 1'' * '''Item 2''' * '''''Item 3''''' ''Pre 1'' '''Pre 2''' '''''Pre 3''''' ticks-3.wikitext000066400000000000000000000000231335270560400474520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext'''''x''''''''y''' tmpl-in-link-title-1.wikitext000066400000000000000000000000231335270560400517650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext[[{{TMPL}}|Title]] url-delim-2.wikitext000066400000000000000000000000431335270560400502300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextX http://www.example.com/u(gl)y: Z url-delim.wikitext000066400000000000000000000000411335270560400500670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitextX (Y http://www.example.com). Z xml-attr-with-parser-entity-1.wikitext000066400000000000000000000002351335270560400536650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext
    xml-attr-with-parser-entity-2.wikitext000066400000000000000000000001241335270560400536630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext
    xml-attr-with-parser-entity-3.wikitext000066400000000000000000000001241335270560400536640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/pretty-printed.wikitext
    printed-from-rtd.wikitext/000077500000000000000000000000001335270560400446135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basicparam-1.wikitext000066400000000000000000000001271335270560400476430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-basic/printed-from-rtd.wikitext{{{param}}} {{{param|default value}}} {{{param|default values|garbage 1|garbage 2}}} nopkg-complex/000077500000000000000000000000001335270560400401355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing.ast/000077500000000000000000000000001335270560400451045ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complexNOTICE000066400000000000000000000003631335270560400460120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astThe reference ASTs in this directory are derived from articles that were originally taken from the English Wikipedia. See the corresponding wikitext/ directory for detailed information about the origin of each article and license information. exp-Help%3ATable.ast000066400000000000000000020421111335270560400505010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|-\n! Header 1\n! Header 2\n! Header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3\n|-\n| row 3, cell 1\n| row 3, cell 2\n| row 3, cell 3\n|}\n") ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [4] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [6] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [8] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [10] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [12] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [13] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [14] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [15] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [16] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [17] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [18] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [19] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [20] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [21] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [22] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [23] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|format modifier (not displayed)") ), [24] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("These all ") ), [25] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(including the pipes)") ), [26] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("go into ") ), [27] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("the first cell") ), [28] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [29] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [30] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [31] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| Cell 1 (no modifier \u2014 not aligned)") ), [32] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [33] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| align=\"right\" | Cell 2 (right aligned)") ), [34] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [35] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [36] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [37] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [38] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [39] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [40] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [41] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [42] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [43] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [44] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [45] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [46] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [47] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [48] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [49] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [50] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A\n| B\n|-\n| C\n| D\n|}\n") ), [51] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A || B\n|-\n| C || D\n|}\n") ), [52] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow: auto;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"text-align: center; width: 200px; height: 200px;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | \u00D7 \n! scope=\"col\" | 1 \n! scope=\"col\" | 2 \n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ), [53] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{|\n| style=\"background: red; color: white\" | abc\n| def\n| bgcolor=\"red\" | ghi \n| jkl\n|}\n") ), [54] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: yellow; color: green\"\n|-\n| abc || def || ghi\n|- style=\"background: red; color: white\"\n| jkl || mno || pqr\n|-\n| stu || style=\"background: silver\" | vwx || yz\n|}\n") ), [55] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"width: 75%; height: 200px\" border=\"1\"\n|-\n| abc || def || ghi\n|- style=\"height: 100px;\"\n| jkl || style=\"width: 200px;\" | mno || pqr\n|-\n| stu || vwx || yz\n|}\n") ), [56] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n! scope=\"col\" width=\"50\" | Name\n! scope=\"col\" width=\"225\" | Effect\n! scope=\"col\" width=\"225\" | Games Found In\n|-\n| Pok\u00E9 Ball || Regular Pok\u00E9 Ball || All Versions\n|-\n| Great Ball || Better than a Pok\u00E9 Ball || All Versions\n|}\n") ), [57] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n|-\n| width=\"100pt\" | This column is 100 points wide\n| width=\"200pt\" | This column is 200 points wide\n| width=\"300pt\" | This column is 300 points wide\n|-\n| blah || blih || bluh\n|}\n") ), [58] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- border=\"0\"\n| [[File:StarIconBronze.png|120px]]\n| [[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| [[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n| Bronze star || Gold star || Green star\n|}\n") ), [59] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- align=\"center\"\n| style=\"border: 1px solid blue;\"|\n[[File:StarIconBronze.png|120px]]\n| style=\"border: 1px solid #777777;\"|\n[[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| style=\"border: 1px solid #22AA55;\"|\n[[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n|Bronze star || Gold star || Green star\n|}\n") ), [60] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\" width=\"400\"\n|- valign=\"top\"\n! scope=\"row\" width=\"10%\" | Row heading\n| width=\"70%\" | A longer piece of text. Lorem ipsum...\n| width=\"20%\" | short text\n|- valign=\"top\"\n! scope=\"row\" | Row heading\n| Excepteur sint occaecat...\n| short text\n|}\n") ), [61] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\" align=\"center\"\n|+ '''An example table'''\n|-\n! style=\"background: #efefef;\" | First header\n! colspan=\"2\" style=\"background: #ffdead;\" | Second header\n|-\n| upper left\n| &nbsp;\n| rowspan=\"2\" style=\"border-bottom: 3px solid grey;\" valign=\"top\" |\nright side\n|-\n| style=\"border-bottom: 3px solid grey;\" | lower left\n| style=\"border-bottom: 3px solid grey;\" | lower middle\n|-\n| colspan=\"3\" align=\"center\" |\n{| border=\"0\"\n|+ ''A table in a table''\n|-\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n|-\n| align=\"center\" colspan=\"2\" style=\"border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;\" |\nTwo Wikipedia logos\n|}\n|}\n") ), [62] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\nThis paragraph is before the table. Lorem ipsum dolor sit\namet, consectetur adipisicing elit, sed do eiusmod...\n\n{| style=\"float: right;\" border=\"1\"\n| Col 1, row 1\n| rowspan=\"2\" | Col 2, row 1 (and 2)\n| Col 3, row 1\n|-\n| Col 1, row 2\n| Col 3, row 2\n|}\n\nNote the floating-table to the right.\n\nThis paragraph is after the table. The text in column 2\nwill span both rows due to format specifier \"rowspan=2\" so there\nis no coding for \"Col 2\" in the 2nd row, just: Col 1 & Col 3.\n") ), [63] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;\"\n|- style=\"font-size: 86%;\"\n| valign=\"top\" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating).\n|}\n") ), [64] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [65] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [66] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [68] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [69] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [70] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [71] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [72] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [73] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [74] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [75] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [76] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [77] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [78] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\"\n|-\n| Column 1 || Column 2 || Column 3\n|-\n| rowspan=\"2\" | A\n| colspan=\"2\" style=\"text-align: center;\" | B\n|-\n| C \n| D\n|-\n| E\n| rowspan=\"2\" colspan=\"2\" style=\"text-align: center;\" | F\n|-\n| G \n|-\n| colspan=\"3\" style=\"text-align: center;\" | H\n|}\n") ), [79] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| style=\"margin: 1em auto 1em auto;\"") ), [80] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"margin: 1em auto 1em auto;\"\n|+ '''Cells left-aligned, table centered'''\n! scope=\"col\" | Duis \n! scope=\"col\" | aute \n! scope=\"col\" | irure\n|-\n| dolor || in reprehenderit || in voluptate velit\n|-\n| esse cillum dolore || eu fugiat nulla || pariatur.\n|}\n") ), [81] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"color:white\"\n|-\n| bgcolor=\"red\"|cell1 || width=\"300\" bgcolor=\"blue\"|cell2\n| bgcolor=\"green\"|cell3\n|}\n") ), [82] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("* This is a test table here
    HELLO WORLD
    followed by this text afterward.") ), [83] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.") ), [84] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"0\" cellspacing=\"0\"\n| align=\"right\" | 432 || .1\n|-\n| align=\"right\" | 43 || .21\n|-\n| align=\"right\" | 4 || .321\n|}\n") ), [85] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"4\" cellspacing=\"2\"\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 432 || width=\"50%\" | .1\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 43 || width=\"50%\" | .21\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\" | 4 || width=\"50%\" | .321\n|}\n|}\n") ), [86] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| cellpadding=\"2\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ), [87] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ), [88] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"font-style:italic; font-size:120%; border: 3px dashed red;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ), [89] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("''text''") ), [90] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable collapsible collapsed\"\n! Header\n|-\n| Content which starts hidden\n|-\n| more hidden content\n|}\n") ), [91] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|+ Sortable table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ), [92] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable collapsible\" border=\"1\"\n|+ Sortable and collapsible table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ), [93] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|-\n! scope=\"col\" | a\n! scope=\"col\" | b\n! scope=\"col\" | a/b\n{{help:table/example row template| 50|200}}\n{{help:table/example row template| 8| 11}}\n{{help:table/example row template|1000| 81}}\n|}\n") ), [94] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" border=\"1\"\n\t\n\t{{ #if:1|{{!}}-\n\t\t! scope=\"row\" {{!}} row one, column one\n\t\t\n\t\t{{!}}row one, column two}}\n\t\n\t{{ #if: |{{!}}-\n\t\t! scope=\"row\" {{!}} row two, column one\n\t\t{{!}}row two, column two}}\n\t\n\t|-\n\t\t! scope=\"row\" {{!}} row three, column one\n\t\t| row three, column two\n|}\n") ), [95] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [96] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [97] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [98] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [99] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("
    ") ), [100] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n|}") ), [101] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("caption") ), [102] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+ caption") ), [103] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [104] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [105] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("cell1cell2\ncell3") ), [106] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| cell1 || cell2\n| cell3") ), [107] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("column heading") ), [108] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("row heading") ), [109] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"col\" | column heading") ), [110] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"row\" | row heading") ), [111] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n \n \n \n \n \n \n \n \n
    12
    34
    ") ), [112] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n| 1 || 2\n|-\n| 3 || 4\n|}") ), [113] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|") ), [114] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| ''params''\n |}\n") ), [115] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("!") ), [116] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow:auto;" ] ) ], body = WtTagExtensionBody("\n{| summary=\"Artistic renderings of Germania became more triumphant and monumental.\"\n| [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834\u201336]]\n| [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]\n| [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871\u201383]]\n|}\n") ), [117] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]\n| [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]\n| [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]\n| [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]\n| [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]\n|}\n") ), [118] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n\n! style=\"width:3em;\" | [[File:wpvg_vg_project.svg|link=xxxx]]\n\n") ), [119] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[File:wpvg_hd_date_page.svg|link=]]") ), [120] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|265px]]\n |[[File:Worms Wappen 2005-05-27.jpg|235px]]\n |-\n |Nibelungen Bridge to Worms
    across the [[Rhine]]\n |Worms and its sister cities\n |}") ), [121] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[[") ), [122] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|130px]]\n |[[File:Worms Wappen 2005-05-27.jpg|125px]]\n |[[File:Liberty-statue-with-manhattan.jpg|125px]]\n |[[File:New-York-Jan2005.jpg|125px]]\n |-\n |Nibelungen Bridge to Worms\n |Worms and its sister cities\n |Statue of Liberty\n |New York City\n |}") ), [123] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x95px]]\n |[[File:New-York-Jan2005.jpg|199x95px]]\n |[[File:Gold star on blue.gif|199x95px]]\n |[[File:Worms 01.jpg|100x95px]]\n |-\n |Statue of Liberty\n |New York City\n |Star on blue\n |Bridge to Worms\n |}") ), [124] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |[[File:New-York-Jan2005.jpg|199x70px]]\n |[[File:Gold star on deep red.gif|199x70px]]\n |[[File:Worms 01.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |}") ), [125] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(\"
    [[File:..]]
    \")") ), [126] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]]\n |
    [[File:Utrecht 003.jpg|299x125px]]
    \n |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp;\n |-\n |Dom tower from Brigittenstraat\n |Cloister garth of the Utrecht Dom Church\n |&nbsp;&nbsp;View from bell tower\n |}") ), [127] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n | style=\"font-size: 87%;\" | View from bell tower\n") ), [128] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [129] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:visualizer|visualizer]]" ], args = WtTemplateArguments[] ), [130] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:metavisualizer|metavisualizer]]" ], args = WtTemplateArguments[] ), [131] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:Listtable|Listtable]]" ], args = WtTemplateArguments[] ) } {P} warnings = C[ Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:3:2: : 12.2.5.4.13 R02 @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:26:86: : 12.2.5.4.7 - R20 (1) @ WtXmlEndTag., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1021:9: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1022:9: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1265:135: : 12.2.4 Element should not be an empty tag! @ WtXmlEmptyTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1263:27: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1286:29: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1290:36: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1294:49: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1297:15: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1318:21: : 12.2.5.4.7 - R20 (2) @ WtBody. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "dablink" ] ) ], body = WtBody[ [0] = "For a basic introduction, see ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Wikitable" ], title = - ), [2] = ". For style considerations, see ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (tables)" ], title = - ), [4] = "." ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0.3em; float:right; margin-left:15px; margin-bottom:8px; border:1px solid #A3B1BF; background:#f5faff; text-align:center; font-size:95%; line-height:1.5em;;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {A} repair = true {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cee0f2; padding:0.3em; font-size:1.1em;" ] ) ], body = WtBody[ [0] = "Wiki markup" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = "\n", [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Cheatsheet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Basic markup" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Wiki markup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Text, links, and talk pages" ) ), [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Visual file markup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Visual files" ) ), [5] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Sound file markup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sound files" ) ), [7] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Table" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tables" ) ), [9] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Template" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Template editing" ) ), [11] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:HTML in wikitext" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Using HTML" ) ) ] ) ] ) ] ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "A ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "wikitable" ), [2] = " is an arrangement of columns and rows used to organize and position data. Tables are useful for this purpose and there are many different styles and tricks that can be used to customise each. This page gives you information about syntax to build wikitables in Wikipedia." ], [6] = "\n\n", [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Using the toolbar " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = FRAME {P} hAlign = CENTER {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Advanced toolbar of vector skin.png" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "frame" {P} rtd = RTD[ "|frame" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "center" {P} rtd = RTD[ "|center" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vector toolbar - default" ) ] ), [3] = "\n", [4] = WtImageLink( {P} border = false {P} format = FRAME {P} hAlign = CENTER {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Toolbar2.PNG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "frame" {P} rtd = RTD[ "|frame" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "center" {P} rtd = RTD[ "|center" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Monobook toolbar" ) ] ), [5] = "\n\n", [6] = WtParagraph[ [0] = "To automatically insert a table, click ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Vector toolbar insert table button.png" ], options = WtLinkOptions[] ), [2] = " or ", [3] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Button insert table.png" ], options = WtLinkOptions[] ), [4] = " (Insert a table) on the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Edit toolbar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "edit toolbar" ) ), [6] = ". If \"Insert a table\" is not on the toolbar follow ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mw:Customizing edit toolbar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "these directions" ) ), [8] = " to add it." ], [7] = "\n\n", [8] = WtParagraph[ [0] = "The following text is inserted when ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Insert a table" ), [2] = " is clicked:\n", [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|-\n! Header 1\n! Header 2\n! Header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3\n|-\n| row 3, cell 1\n| row 3, cell 2\n| row 3, cell 3\n|}\n") ) ], [9] = "\n", [10] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Header 1" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Header 2" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Header 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 1, cell 1" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 1, cell 2" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " row 1, cell 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 2, cell 1" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 2, cell 2" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " row 2, cell 3" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 3, cell 1" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " row 3, cell 2" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " row 3, cell 3" ], [1] = "\n" ] ) ] ) ] ) ] ), [11] = "\n", [12] = WtParagraph[ [0] = "The sample text (\"Header 1\" or \"row 1, cell 1\") is to be replaced with actual data.", [1] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ) ], [13] = "\n\n" ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Pipe syntax tutorial " ), body = WtBody[ [0] = "\n\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin-left: 3em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 1 " ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 2 " ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 2 " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading A" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell B" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell C" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n\n", [3] = WtParagraph[ [0] = "Although HTML table syntax also works, special ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "wikicode" ], title = - ), [2] = " can be used as a shortcut to create a table. The pipe (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:vertical bar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "vertical bar" ) ), [4] = ") codes function exactly the same as ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:HTML table" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HTML table" ) ), [6] = " markup, so a knowledge of HTML table code will help in understanding pipe code. The shortcuts are as follows:" ], [4] = "\n", [5] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " The entire table is encased with curly brackets and a vertical bar character (a pipe). So use ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "{|" ) ] ), [2] = " to begin a table, and ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|}" ) ] ), [4] = " to end it. Each one needs to be on its own line:" ) ], [6] = "\n", [7] = WtSemiPre[ [0] = " ", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ) ) ] ), [2] = "\n ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "table code goes here" ), [4] = "\n ", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ) ] ) ], [8] = "\n", [9] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " An optional ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "table caption" ), [2] = " is included with a line starting with a vertical bar and plus sign \"", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|+" ) ] ), [4] = "\" and the caption after it:" ) ], [10] = "\n", [11] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [1] = " ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "caption" ) ) ] ), [4] = "\n ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "table code goes here" ), [6] = "\n ", [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [12] = "\n", [13] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " To start a new ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "table ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "row" ], title = - ) ), [2] = ", type a vertical bar and a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:hyphen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "hyphen" ) ), [4] = " on its own line: \"", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|-" ) ] ), [6] = "\". The codes for the cells in that row will start on the next line." ) ], [14] = "\n", [15] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [4] = " The table's caption\n ", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ) ] ), [6] = "\n ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "row code goes here" ), [8] = "\n ", [9] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ) ] ), [10] = "\n ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "row code goes here" ), [12] = "\n ", [13] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [16] = "\n", [17] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Type the codes for each ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "table ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:cell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "cell" ) ) ), [2] = " in the next row, starting with a bar:" ) ], [18] = "\n", [19] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [4] = " The table's caption\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [6] = "\n ", [7] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [8] = " ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "cell codes go here" ), [10] = "\n ", [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [12] = "\n ", [13] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [14] = " ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "cells in the next row go here" ), [16] = "\n ", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [18] = " ", [19] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "more cells in the same row here" ), [20] = "\n ", [21] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [20] = "\n", [21] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Cells can be separated with either a new line and new bar, or by a double bar \"", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "||" ), [2] = "\" on the same line. Both produce the same output:" ) ], [22] = "\n", [23] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [4] = " The table's caption\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [6] = "\n ", [7] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|Cell 1 || Cell 2 || Cell 3" ) ] ), [8] = "\n ", [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [10] = "\n ", [11] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|Cell A" ) ] ), [12] = "\n ", [13] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|Cell B" ) ] ), [14] = "\n ", [15] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|Cell C" ) ] ), [16] = "\n ", [17] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [24] = "\n", [25] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " If you use single bars, then what might appear to be the first cell is in fact a format modifier applied to the cell, and the rest of your \"cells\" will be merged into one:" ) ], [26] = "\n", [27] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = "\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|format modifier (not displayed)") ), [6] = " ", [7] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [8] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("These all ") ), [9] = " ", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(including the pipes)") ), [12] = " ", [13] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [14] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("go into ") ), [15] = " ", [16] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|" ) ] ), [17] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("the first cell") ), [18] = "\n ", [19] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [28] = "\n", [29] = WtParagraph[ [0] = "which is probably not what you want:" ], [30] = "\n", [31] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "format" ], value = - ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "modifier" ], value = - ), [2] = WtXmlAttributeGarbage[ [0] = " (not displayed)" ] ], body = WtBody[ [0] = WtParagraph[ [0] = "These all |(including the pipes)|go into |the first cell" ], [1] = "\n" ] ) ] ) ] ) ] ), [32] = "\n", [33] = WtParagraph[ [0] = "However, the format modifier is useful:" ], [34] = "\n", [35] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = "\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| Cell 1 (no modifier \u2014 not aligned)") ), [6] = "\n ", [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [8] = "\n ", [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| align=\"right\" | Cell 2 (right aligned)") ), [10] = "\n ", [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [36] = "\n\n", [37] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 1 (no modifier", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "\u2014 not aligned)" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 2 (right aligned)" ], [1] = "\n" ] ) ] ) ] ) ] ), [38] = "\n\n", [39] = WtParagraph[ [0] = "Just remember: no more than 2 single pipes on a line!" ], [40] = "\n\n", [41] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " a row of ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "column headings" ), [2] = " is identified by using \"! scope=\"col\" |\" instead of \"|\", and using \"!! scope=\"col\" |\" instead of \"||\". Header cells typically render differently from regular cells, depending on the browser. They are often rendered in a bold font and centered." ) ], [42] = "\n", [43] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [4] = " The table's caption\n ", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "! scope=\"col\" | Column heading 1" ), [1] = " \n ", [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "! scope=\"col\" | Column heading 2" ), [3] = " \n ", [4] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "! scope=\"col\" | Column heading 3" ) ] ), [6] = "\n ", [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [8] = "\n | Cell 1 || Cell 2 || Cell 3\n ", [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [10] = "\n | Cell A\n | Cell B\n | Cell C\n ", [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [44] = "\n", [45] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " the first cell of a row is identified as a ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "row heading" ), [2] = " by starting the line with \"! scope=\"row\" |\" instead of \"|\", and starting subsequent data cells on a new line." ) ], [46] = "\n", [47] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = "\n ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [4] = " The table's caption\n ! scope=\"col\" | Column heading 1 \n ! scope=\"col\" | Column heading 2 \n ! scope=\"col\" | Column heading 3\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [6] = "\n ", [7] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "! scope=\"row\" | Row heading 1" ) ] ), [8] = "\n | Cell 2 || Cell 3\n ", [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [10] = "\n ", [11] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "! scope=\"row\" | Row heading A" ) ] ), [12] = "\n | Cell B\n | Cell C\n ", [13] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [48] = "\n", [49] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Optional ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "parameters" ), [2] = " can modify the behavior of cells, rows, or the entire table. For instance, a border could be added to the table:" ) ], [50] = "\n", [51] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = " ", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "border=\"1\"" ) ] ), [4] = "\n ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [6] = " The table's caption\n ! scope=\"col\" | Column heading 1 \n ! scope=\"col\" | Column heading 2 \n ! scope=\"col\" | Column heading 3\n ", [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [8] = "\n ! scope=\"row\" | Row heading 1\n | Cell 2 || Cell 3\n ", [9] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [10] = "\n ! scope=\"row\" | Row heading A\n | Cell B\n | Cell C\n ", [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [52] = "\n", [53] = WtParagraph[ [0] = "The final table would display like this:\n" ], [54] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " The table's caption" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 1 " ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 2 " ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Column heading 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Cell 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading A" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell B" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cell C" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [55] = "\nThe table parameters and cell parameters are the same as in ", [56] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:HTML" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HTML" ) ), [57] = ", see ", [58] = WtUrl( {P} path = "//www.w3.org/TR/html401/struct/tables.html#edef-TABLE" {P} protocol = "http" {P} rtd = RTD[ "http://www.w3.org/TR/html401/struct/tables.html#edef-TABLE" ] ), [59] = " and ", [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:Table (HTML)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Table (HTML)" ) ), [61] = ". However, the ", [62] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "thead" ] ), [63] = ", ", [64] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tbody" ] ), [65] = ", ", [66] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tfoot" ] ), [67] = ", ", [68] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "colgroup" ] ), [69] = ", and ", [70] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "col" ] ), [71] = " elements are currently not ", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:HTML in wikitext#Permitted HTML" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "supported in MediaWiki" ) ), [73] = ".\n\n", [74] = WtParagraph[ [0] = "A table can be useful even if none of the cells have content. For example, the background colors of cells can be changed with cell parameters, making the table into a diagram, like ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "meta:Template talk:Square 8x8 pentomino example" ], title = - ), [2] = ". An \"image\" in the form of a table is much more convenient to edit than an uploaded image." ], [75] = "\n\n", [76] = WtParagraph[ [0] = "Each row must have the same number of cells as the other rows, so that the number of columns in the table remains consistent. For empty cells, use the non-breaking space ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [1] = "nbsp;" ] ), [2] = " as content to ensure that the cells are displayed. To show a visible pipe in a cell, use ", [3] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [1] = "nowiki>|", [2] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [3] = "/nowiki>" ] ), [4] = " or ", [5] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [1] = "#124;" ] ), [6] = "." ], [77] = "\n\n", [78] = WtParagraph[ [0] = "With colspan and rowspan cells can span several columns or rows, see the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Table#M\u00E9lange" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "M\u00E9lange" ) ), [2] = " example below. However, this has the disadvantage that ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "help:sorting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sorting" ) ), [4] = " does not work properly anymore." ], [79] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Examples " ), body = WtBody[ [0] = "\n\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Simple example " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Both of these generate the same output. Choose a style based on the number of cells in each row and the total text inside each cell." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A\n| B\n|-\n| C\n| D\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A || B\n|-\n| C || D\n|}\n") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "As it appears in a browser (note that there are no borders):\n" ], [8] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " B" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " C" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " D" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [9] = "\n\n" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Multiplication table " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Here is the wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow: auto;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"text-align: center; width: 200px; height: 200px;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | \u00D7 \n! scope=\"col\" | 1 \n! scope=\"col\" | 2 \n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "As it appears in a browser (see ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:User style" ], title = - ) ), [2] = "):" ], [4] = "\n\n", [5] = WtParagraph[], [6] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; width: 200px; height: 200px;" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Multiplication table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " \u00D7 " ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1 " ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2 " ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 6" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 9" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 4" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 12" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 5" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 5 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 10 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 15" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [7] = "\n\n" ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Color; scope of parameters " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Two ways of specifying ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Colours" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "color" ) ), [2] = " of text and background for a single cell are as follows. The first form is preferred because the second form uses deprecated HTML:" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{|\n| style=\"background: red; color: white\" | abc\n| def\n| bgcolor=\"red\" | ghi \n| jkl\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [6] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red; color: white" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " abc" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " def" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: white;" ] ) ], body = WtBody[ [0] = " ghi " ] ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " jkl" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [7] = "\n\n", [8] = WtParagraph[ [0] = "Like other parameters, colors can also be specified for a whole row or the whole table; parameters for a row override the value for the table, and those for a cell override those for a row. (Note that there is no easy way to specify a color for a whole column\u2014each cell in the column must be individually specified. Tools can make it easier.):" ], [9] = "\n\n", [10] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: yellow; color: green\"\n|-\n| abc || def || ghi\n|- style=\"background: red; color: white\"\n| jkl || mno || pqr\n|-\n| stu || style=\"background: silver\" | vwx || yz\n|}\n") ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [13] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: yellow; color: green" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " abc " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " def " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ghi" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red; color: white" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " jkl " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " mno " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " pqr" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " stu " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: silver" ] ) ], body = WtBody[ [0] = " vwx " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " yz" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [14] = "\n\n", [15] = WtParagraph[ [0] = "To make the table blend in with the background, use ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: none;\"" ] ), [2] = " or ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: transparent;\"" ] ), [4] = ". (Warning: ", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: inherit;\"" ] ), [6] = ", does not work with some browsers, including IE6!)" ], [16] = "\n\n", [17] = WtParagraph[ [0] = "To force a cell to match one of the default colors of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:User style" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"wikitable\"" ] ), [1] = " template" ) ), [2] = ", use ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: #f2f2f2\"" ] ), [4] = " for the darker header, and ", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: #f9f9f9\"" ] ), [6] = " for the lighter body." ], [18] = "\n\n", [19] = WtParagraph[ [0] = "See : ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:style" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " style" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:background" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "background" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:list of colors" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "list of colors" ) ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:web colors" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "web colors" ) ) ], [20] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Width, height " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The width and height of the whole table can be specified, as well as the height of a row. To specify the width of a column one can specify the width of an arbitrary cell in it. If the width is not specified for all columns, and/or the height is not specified for all rows, then there is some ambiguity, and the result depends on the browser." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"width: 75%; height: 200px\" border=\"1\"\n|-\n| abc || def || ghi\n|- style=\"height: 100px;\"\n| jkl || style=\"width: 200px;\" | mno || pqr\n|-\n| stu || vwx || yz\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [6] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:75%; height:200px" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " abc " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " def " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ghi" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height: 100px;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " jkl " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 200px;" ] ) ], body = WtBody[ [0] = " mno " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " pqr" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " stu " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " vwx " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " yz" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [7] = "\n\n", [8] = WtParagraph[ [0] = "Note that ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"" ] ), [2] = "inline CSS", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"" ] ), [4] = " has no effect with some browsers. If compatibility is important, equivalent older constructs like ", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "width=\"75%\"" ] ), [6] = " should work on more browsers." ], [9] = "\n\n", [10] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = " Setting column widths " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "To force column widths to specific requirements, rather than accepting the width of the widest text element in a column's cells, follow this example. Note that ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "word wrap" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "wrap-around of text" ) ), [2] = " is forced." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n! scope=\"col\" width=\"50\" | Name\n! scope=\"col\" width=\"225\" | Effect\n! scope=\"col\" width=\"225\" | Games Found In\n|-\n| Pok\u00E9 Ball || Regular Pok\u00E9 Ball || All Versions\n|-\n| Great Ball || Better than a Pok\u00E9 Ball || All Versions\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[], [6] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid black; padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "50" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Name" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Effect" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Games Found In" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pok\u00E9 Ball " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Regular Pok\u00E9 Ball " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " All Versions" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Great Ball " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Better than a Pok\u00E9 Ball " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " All Versions" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [7] = "\n\n", [8] = WtParagraph[ [0] = "To set column widths in a table without headers, specify the width in the first cell for each column, like this:" ], [9] = "\n\n", [10] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n|-\n| width=\"100pt\" | This column is 100 points wide\n| width=\"200pt\" | This column is 200 points wide\n| width=\"300pt\" | This column is 300 points wide\n|-\n| blah || blih || bluh\n|}\n") ) ], [11] = "\n\n", [12] = WtParagraph[], [13] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid black; padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100pt;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " This column is 100 points wide" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 200pt;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " This column is 200 points wide" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 300pt;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " This column is 300 points wide" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " blah " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " blih " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " bluh" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [14] = "\n\n", [15] = WtParagraph[ [0] = "One application of setting the widths is aligning columns of consecutive tables:" ], [16] = "\n\n", [17] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 350px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Country" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Capital" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " The Netherlands " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Amsterdam" ], [1] = "\n" ] ) ] ) ] ) ] ), [18] = "\n\n", [19] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 350px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Country" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Capital" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " France " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Paris" ], [1] = "\n" ] ) ] ) ] ) ] ), [20] = "\n\n", [21] = WtSection( {P} level = 5 heading = WtHeading( {P} rtd = RTD[ "=====" "=====" ] [0] = "Nowrap" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "In a table that spans the entire width of a page, cells narrower than the widest cell tend to wrap. To keep an entire column from wrapping, use ", [1] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=white-space:nowrap" ] ), [2] = " in a non-header cell on the longest/widest cell to affect the entire column." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Before:" ], [4] = "\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "\"class=wikitable sortable\"" ], [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Episode" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Date" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Summary" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "\"The Journey Begins\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "January 1, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lorem ipsum" ], title = - ), [1] = " dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "\"When Episodes Attack\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "January 8, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "\"So Long\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "January 15, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n", [7] = WtParagraph[ [0] = "After:" ], [8] = "\n", [9] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "\"class=wikitable sortable\"" ], [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Episode" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Date" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Summary" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "\"The Journey Begins\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "January 1, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=" "" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "\"When Episodes Attack\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "January 8, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "\"So Long\"" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=" "" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "January 15, 2010" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ], [1] = "\n" ] ) ] ) ] ) ] ), [10] = "\n\n" ] ) ] ) ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Setting borders " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Table borders default to a complex shaded double-line (the default in HTML); however, those borders can be set to a thin solid line by using a style-parameter (style=\"border: 1px solid darkgray\"), as in the following (", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Note: if you intend to use the 'cellpadding' or 'cellspacing' options along with a border, you MUST use this format" ), [2] = "):" ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- border=\"0\"\n| [[File:StarIconBronze.png|120px]]\n| [[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| [[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n| Bronze star || Gold star || Green star\n|}\n") ), [1] = "\nNote the bottom-row texts are centered by 'align=\"center\"' while star-images were not centered." ], [4] = "\n\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid darkgrey; margin-left: 4em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 140px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Left" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 150px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Middle" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Right" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconBronze.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGold.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Caption when mouse-over image" ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGreen.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Green stellar icon" ) ] ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Bronze star " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Gold star " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Green star" ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n", [7] = WtParagraph[ [0] = "As long as the \"Image:\" specs omit the parameter \"thumb|\" they will not show the caption lines in the table (only during mouse-over). The border color \"darkgray\" matches typical tables or infoboxes in articles; however, it could be any color name (such as style=\"border: 1px solid darkgreen;\") or use a hex-color (such as: #DDCCBB)." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "A column format-specifier (enclosed in \"|...|\") can have a style-parameter to set borders on each cell, as follows:" ], [10] = "\n\n", [11] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- align=\"center\"\n| style=\"border: 1px solid blue;\"|\n[[File:StarIconBronze.png|120px]]\n| style=\"border: 1px solid #777777;\"|\n[[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| style=\"border: 1px solid #22AA55;\"|\n[[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n|Bronze star || Gold star || Green star\n|}\n") ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = "Note only the image cells, here, have individual borders, not the text." ], [14] = "\n", [15] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid darkgrey; margin-left:4em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:140px;" ] ) ], body = WtBody[ [0] = "Left " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:150px;" ] ) ], body = WtBody[ [0] = "Middle " ] ), [2] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:130px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Right" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid blue;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconBronze.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ) ] ) ], [2] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid #777;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGold.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Caption when mouse-over image" ) ] ) ], [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid #2a5;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGreen.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|120px" ] {P} width = 120 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Green stellar icon" ) ] ) ], [2] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Bronze star " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Gold star " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Green star" ], [1] = "\n" ] ) ] ) ] ) ] ), [16] = "\n", [17] = WtParagraph[ [0] = "The lower hex-colors (such as: #616161) are closer to black. Typically, all borders in a table would be one specific color." ], [18] = "\n\n" ] ), [6] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Vertical alignment " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "By default data in tables is vertically centrally aligned, which results in odd-looking layouts like this:" ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:400px; margin-left:6em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:10%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:70%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:20%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "short text" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #13a;" ] ) ], body = WtBody[ [0] = "Imagine someone scrolling down the page, seeing the tops of \"empty\" columns, and wondering why they're empty. Use \"", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "valign=top" ), [2] = "\" to align text at the top of columns." ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " short text" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "To fix this, apply the valign=\"top\" attribute to the rows (unfortunately it seems to be necessary to apply this individually to every single row). For example:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\" width=\"400\"\n|- valign=\"top\"\n! scope=\"row\" width=\"10%\" | Row heading\n| width=\"70%\" | A longer piece of text. Lorem ipsum...\n| width=\"20%\" | short text\n|- valign=\"top\"\n! scope=\"row\" | Row heading\n| Excepteur sint occaecat...\n| short text\n|}\n") ) ], [6] = "\n\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 400px; margin-left: 6em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 10%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 70%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 20%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " short text" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row heading" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #14a;" ] ) ], body = WtBody[ [0] = "Imagine someone scrolling down the page, seeing the tops of \"empty\" columns, and wondering why they're empty. Use \"", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "valign=top" ), [2] = "\" to align text at the top of columns." ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " short text" ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n\n" ] ), [7] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Positioning " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "You can position the table itself, the contents of a row, and the contents of a cell, but not with a single parameter for all the contents of the table. See ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Template talk:Table demo" ], title = - ), [2] = ". Prior to April 2009, using \"float\" to position a table was discouraged; however, it no longer always breaks page rendering at large font sizes. See a floated image, below, under \"", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "#Floating images in the center" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Floating images in the center" ) ), [4] = "\"." ], [2] = "\n\n" ] ), [8] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " M\u00E9lange " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Note: This example is not ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (accessibility)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "accessible" ) ), [2] = ", and should be avoided as much as possible. For example, nested tables (tables inside tables) should be separated into distinct tables when possible." ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Here's a more advanced example, showing some more options available for making up tables. Note however that with colspan and rowspan ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "help:sorting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sorting" ) ), [2] = " does not work properly anymore." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "You can play with these settings in your own table to see what effect they have. Not all of these techniques may be appropriate in all cases; just because you can add colored backgrounds, for example, doesn't mean it's always a good idea. Try to keep the markup in your tables relatively simple -- remember, other people are going to be editing the article too! This example should give you an idea of what is possible, though." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "The wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\" align=\"center\"\n|+ '''An example table'''\n|-\n! style=\"background: #efefef;\" | First header\n! colspan=\"2\" style=\"background: #ffdead;\" | Second header\n|-\n| upper left\n| &nbsp;\n| rowspan=\"2\" style=\"border-bottom: 3px solid grey;\" valign=\"top\" |\nright side\n|-\n| style=\"border-bottom: 3px solid grey;\" | lower left\n| style=\"border-bottom: 3px solid grey;\" | lower middle\n|-\n| colspan=\"3\" align=\"center\" |\n{| border=\"0\"\n|+ ''A table in a table''\n|-\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n|-\n| align=\"center\" colspan=\"2\" style=\"border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;\" |\nTwo Wikipedia logos\n|}\n|}\n") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [10] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "An example table" ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #efefef;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " First header" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ffdead;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Second header" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " upper left" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray; vertical-align: top;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "right side" ], [2] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " lower left" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " lower middle" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "A table in a table" ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Wiki.png" ], options = WtLinkOptions[] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 150px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Wiki.png" ], options = WtLinkOptions[] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Two Wikipedia logos" ], [2] = "\n" ] ) ] ) ] ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [11] = "\n\n" ] ), [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Floating table " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The wiki markup coding:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\nThis paragraph is before the table. Lorem ipsum dolor sit\namet, consectetur adipisicing elit, sed do eiusmod...\n\n{| style=\"float: right;\" border=\"1\"\n| Col 1, row 1\n| rowspan=\"2\" | Col 2, row 1 (and 2)\n| Col 3, row 1\n|-\n| Col 1, row 2\n| Col 3, row 2\n|}\n\nNote the floating-table to the right.\n\nThis paragraph is after the table. The text in column 2\nwill span both rows due to format specifier \"rowspan=2\" so there\nis no coding for \"Col 2\" in the 2nd row, just: Col 1 & Col 3.\n") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [4] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "This paragraph is before the table. Lorem ipsum dolor sit\namet, consectetur adipisicing elit, sed do eiusmod..." ], [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Col 1, row 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Col 2, row 1 (and 2)" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Col 3, row 1" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Col 1, row 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Col 3, row 2" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n", [5] = WtParagraph[ [0] = "Note the floating-table to the right." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "This paragraph is after the table. The text in column 2\nwill span both rows due to format specifier \"rowspan=2\" so there\nis no coding for \"Col 2\" in the 2nd row, just: Col 1 ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:518:54 - 55: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " Col 3.\n" ] ] ), [5] = "\n\n" ] ), [10] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Floating images in the center " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "A table can be used to wrap an image, so that the table can float towards the center of the page (such as using: style=\"float: right;\"). However, the table margins, border and font-size must be precisely set to match a typical image display. The Image-spec parameter \"thumb|\" (although auto-thumbnailing to user-preference width) forces a wide left-margin that squeezes the nearby text, so the parameter \"center|\" can be added to suppress the left-margin padding. However, \"center\" sometimes shoves the caption to a 2nd line (under a centered box \"", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:522:549 - 550: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [2] = "]\"), so \"thumb|\" could be omitted and just hard-code the image size, adding a gray (#BBB) border. Using precise parameters to match other images, a floating-image table can be coded as follows:\n", [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;\"\n|- style=\"font-size: 86%;\"\n| valign=\"top\" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating).\n|}\n") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The text inside the floating-table is sized by style=\"font-size: 86%;\". That floating-image table floats a typical image-box, but allows adjusting the left-hand margin of the image (see temple-example floating below)." ], [4] = "\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 90px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Infobox A" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " This sample infobox shows how the floating image-box aligns toward the center." ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 86%;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 180 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|180px" ] {P} width = 180 ) ] ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "Temple of ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bel (mythology)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bel" ) ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = " (floating)." ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n", [9] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; clear:right; border: 1px solid black;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "This table shows the implicit margins of Images using \"right\"." ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [10] = "\n", [11] = WtParagraph[ [0] = "The caption-text can be omitted, or remove the parameter \"thumb|\" so the caption is hidden until \"mouse-over display\". Unfortunately the parameter \"thumb|\" (used for displaying the caption) also controls the auto-thumbnailing to re-size images by user-preferences size. In April 2009, it was not possible to have auto-thumbnail sizing while also concealing the caption: parameter \"thumb|\" triggers both actions and forces the caption to display." ], [12] = "\n\n", [13] = WtParagraph[ [0] = "An image set with parameter \"left|\" will gain a wide right-side margin (opposite margin of parameter \"right|\"), so floating toward the left would require an image set as \"center|\" inside a table with style=\"float:left; margin:0.46em 0.2em\"." ], [14] = "\n\n", [15] = WtParagraph[ [0] = "Recall that, outside an image-table, the parameter \"right|\" causes an image to align (either) above or below an infobox, but would not float alongside the infobox." ], [16] = "\n\n", [17] = WtParagraph[ [0] = "Note the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "order of precedence" ), [2] = ": first come infoboxes or images using \"right|\", then come the floating-tables, and lastly, any text will wrap that can still fit. If the first text-word is too long, no text will fit to complete the left-hand side, so beware creating a \"ragged left margin\" when not enough space remains for text to fit alongside floating-tables." ], [18] = "\n\n", [19] = WtParagraph[ [0] = "If multiple single image-tables are stacked, they will float to align across the page, depending on page-width. The text will be squeezed to allow as many floating-tables as can fit, as auto-aligned, then wrap whatever text (can still fit) at the left-hand side." ], [20] = "\n", [21] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|105px" ] {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "...by float: right" ], [1] = "\n" ] ) ] ) ] ) ] ), [22] = "\n", [23] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|105px" ] {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = " ...images wrap..." ], [1] = "\n" ] ) ] ) ] ) ] ), [24] = "\n", [25] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|105px" ] {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "All these..." ], [1] = "\n" ] ) ] ) ] ) ] ), [26] = "\n\n", [27] = WtParagraph[ [0] = "That auto-aligning feature can be used to create a \"floating-gallery\" of images: a set of 20 floating-tables will wrap (backward, right-to-left) as if each table were a word of text to wrap across and down the page. To wrap in the typical direction (wrapping left-to-right) define all those floating-tables, instead, as left-side tables using the top parameter style=\"float:left; margin:0.46em 0.2em\". Multiple floating-images empower more flexible typesetting of images around the text." ], [28] = "\n\n" ] ), [11] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Nested tables " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Note: because they cause ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual_of_Style_(accessibility)#Tables" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "accessibility issues" ) ), [2] = ", nested tables should be avoided whenever possible." ) ], [2] = "\n \n", [3] = WtParagraph[ [0] = "Seven different (blue) tables are shown nested inside the cells of a table. Automatically the two tables |A| and |B|B| are vertically aligned instead of the usual side by side of text characters in a cell. \"float\" is used to fix each of tables |C| and |D| to their own position within one cell of the table. This may be used for charts and schemes. ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Nested tables must start on a new line." ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ) ], [6] = "\n", [7] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "

    " ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px dashed #2f6fab; background: #f9f9f9; padding: 1em" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [2] = " border=\"1\"", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = "\n| ", [5] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [6] = "alpha;", [7] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [8] = "\n| style=\"text-align: center;\"| cell2", [9] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [10] = "\n", [11] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = " border=\"2\" style=\"background: #ABCDEF;\"" ), [2] = " ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = "\n", [10] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| NESTED" ), [11] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [12] = "\n", [13] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "|-" ), [14] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [15] = "\n", [16] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| TABLE" ), [17] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [18] = "\n", [19] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n" ] ), [12] = "\n| style=\"vertical-align:bottom;\"| the original table again", [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n| style=\"width:100px;\" |", [15] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [16] = "\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = " border=\"2\" style=\"background: #ABCDEF;\"" ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "\n", [4] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| A" ), [5] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [6] = "\n", [7] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = "\n", [10] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = " border=\"2\" style=\"background: #ABCDEF;\"" ), [11] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [12] = "\n", [13] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| B || B" ), [14] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [15] = "\n", [16] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ), [17] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [18] = "\n" ] ), [18] = "\n| style=\"width:50px;\" |", [19] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [20] = "\n", [21] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = " border=\"2\" style=\"background: #ABCDEF; float:left;\"" ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "\n", [4] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| C" ), [5] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [6] = "\n", [7] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = "\n", [10] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = " border=\"2\" style=\"background: #ABCDEF; float: right;\"" ), [11] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [12] = "\n", [13] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "| D" ), [14] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [15] = "\n", [16] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ), [17] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [18] = "\n" ] ), [22] = "\n", [23] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ), [24] = "\n" ] ) ] ), [8] = "\n\n", [9] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [1] = ":" ], [10] = "\n", [11] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " \u03B1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " cell2" ], [1] = "\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " NESTED" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " TABLE" ], [1] = "\n" ] ) ] ) ] ) ] ), [3] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: bottom;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " the original table again" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " B " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " B" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF; float:left;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " C" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF; float: right;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " D" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n" ] ) ] ) ] ) ] ), [12] = "\n\n" ] ), [12] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Combined use of COLSPAN and ROWSPAN " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ), [1] = "\n", [2] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\"\n|-\n| Column 1 || Column 2 || Column 3\n|-\n| rowspan=\"2\" | A\n| colspan=\"2\" style=\"text-align: center;\" | B\n|-\n| C \n| D\n|-\n| E\n| rowspan=\"2\" colspan=\"2\" style=\"text-align: center;\" | F\n|-\n| G \n|-\n| colspan=\"3\" style=\"text-align: center;\" | H\n|}\n") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [1] = ":" ], [4] = "\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "5" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Column 1 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Column 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Column 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " A" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " B" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " C " ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " D" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " E" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " F" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " G " ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " H" ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n", [7] = WtParagraph[ [0] = "Note that using ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "rowspan=\"2\"" ] ), [2] = " for cell ", [3] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "G" ), [4] = " combined with ", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "rowspan=\"3\"" ] ), [6] = " for cell ", [7] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "F" ), [8] = " to get another row below ", [9] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "G" ), [10] = " and ", [11] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "F" ), [12] = " won't work, because all (implicit) cells would be empty.\nLikewise complete columns are not displayed if all their cells are empty. Borders between non-empty and empty cells might be also not displayed (depending on the browser), use ", [13] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [1] = "nbsp;" ] ), [14] = " to fill an empty cell with dummy content." ], [8] = "\n\n" ] ), [13] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Centering tables " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Centered tables can be achieved, but they will not \"float\"; that is to say, no text will appear to either side. The trick is ", [1] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| style=\"margin: 1em auto 1em auto;\"") ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ), [1] = "\n", [2] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"margin: 1em auto 1em auto;\"\n|+ '''Cells left-aligned, table centered'''\n! scope=\"col\" | Duis \n! scope=\"col\" | aute \n! scope=\"col\" | irure\n|-\n| dolor || in reprehenderit || in voluptate velit\n|-\n| esse cillum dolore || eu fugiat nulla || pariatur.\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [1] = ":" ], [6] = "\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em auto 1em auto;" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Cells left-aligned, table centered" ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Duis " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " aute " ] ), [2] = WtTableHeader( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " irure" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " dolor " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " in reprehenderit " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " in voluptate velit" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " esse cillum dolore " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " eu fugiat nulla " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " pariatur." ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n\n" ] ), [14] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Setting parameters " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "At the start of a cell, add your parameter followed by a single pipe. For example ", [1] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "width=\"300\"|" ] ), [2] = " will set that cell to a width of 300 pixels. To set more than one parameter, leave a space between each one, as follows:" ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"color:white\"\n|-\n| bgcolor=\"red\"|cell1 || width=\"300\" bgcolor=\"blue\"|cell2\n| bgcolor=\"green\"|cell3\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "As it appears in a browser:" ], [6] = "\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:white" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:red;" ] ) ], body = WtBody[ [0] = "cell1 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:300px; background:blue;" ] ) ], body = WtBody[ [0] = "cell2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:green;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "cell3" ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n\n" ] ), [15] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Tiny tables within a text line " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "For years in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "HTML" ], title = - ), [2] = ", a table has always forced an implicit line-wrap (or ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "line-break" ), [4] = "), so to keep a table within a line, the work-around is to put all text into a table, then embed a table-within-a-table, using the outer table to force the whole line to stay together. Consider the following examples:" ], [2] = "\n\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " Wikicode (", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "showing table forces line-break" ), [2] = "):", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("* This is a test table here
    HELLO WORLD
    followed by this text afterward.") ) ) ) ), [1] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Result:", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef[ [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "::*" "\n" ] [0] = " This is a test table here ", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid black" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "HELLO WORLD" ] ) ] ) ] ) ] ), [2] = " followed by this text afterward." ) ] ] ) ), [2] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " Wikicode (", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "table-within-table" ), [2] = "):", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.") ) ) ) ), [3] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Result:", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef[ [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "::*" "" ] [0] = " ", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #fafeff;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "This is a test table here" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:11px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid black; font-size:60%" ] ) ], body = WtBody[ [0] = "HELLO WORLD" ] ) ] ) ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "followed by this text afterward." ] ) ] ) ] ) ] ), [2] = " This line is more text after the outer table." ) ] ] ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = "Use style=\"font-size:60%\" to shrink the text within the box. However, the small text could be replaced with small images (aligned inside the inner table). The outer table is for one line only, so to make a 2nd line appear even, the exact length of line 1 must be pre-determined, to match the length of other lines." ], [6] = "\n\n" ] ), [16] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Decimal point alignment " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "A method to get columns of numbers aligned at the decimal point is as follows:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"0\" cellspacing=\"0\"\n| align=\"right\" | 432 || .1\n|-\n| align=\"right\" | 43 || .21\n|-\n| align=\"right\" | 4 || .321\n|}\n") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [4] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border: 1px solid darkgrey;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = " 432 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " .1" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = " 43 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " .21" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = " 4 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " .321" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [5] = "\n\n", [6] = WtParagraph[ [0] = "If the column of numbers appears in a table with cell padding or cell spacing, you can still align the decimal points without an unsightly gap in the middle. Embed a table in each number's cell and specify its column widths. Make the embedded tables' column widths the same for each cell in the column. (If decimal points are still misaligned using this method, the main table's column may be too narrow. Add a parameter to increase the column's width.)\nThe wiki markup code:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"4\" cellspacing=\"2\"\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 432 || width=\"50%\" | .1\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 43 || width=\"50%\" | .21\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\" | 4 || width=\"50%\" | .321\n|}\n|}\n") ) ], [7] = "\n\n", [8] = WtParagraph[ [0] = "As it appears in a browser:\n" ], [9] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border: 1px solid darkgrey;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = " 432 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " .1" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = " 43 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " .21" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = " 4 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " .321" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [10] = "\n\n", [11] = WtParagraph[ [0] = "In the case of preformatted text, you can dispense with the table feature entirely and simply start the lines with a space, and put spaces to position the numbers:" ], [12] = "\n\n", [13] = WtSemiPre[ [0] = " 432.1\n 43.21\n 4.321" ], [14] = "\n\n", [15] = WtParagraph[ [0] = "However, there should be a good reason to use pre-formatted text in an article." ], [16] = "\n\n" ] ) ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Style classes " ), body = WtBody[ [0] = "\n\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "See also ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:User style" ], title = - ), [2] = "." ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "In the first line of table code, after the \"{|\", instead of specifying a style directly, you can also specify a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:Cascading Style Sheets" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CSS" ) ), [2] = " class. The style for this class can be specified in various ways:" ], [4] = "\n", [5] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " in the software itself, per skin (for example the class ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "#Sorting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sortable" ) ), [2] = ")" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " collectively for all users of one wiki in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MediaWiki:Common.css" ], title = - ), [2] = " (for example, on this and some other projects there is or was the class wikitable, later moved to ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup" {P} protocol = "http" {P} rtd = RTD[ "http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup" ] ), title = WtLinkTitle[ [0] = "shared.css" ] ), [4] = ")" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " separately per skin in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MediaWiki:Monobook.css" ], title = - ), [2] = " etc." ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " individually on one wiki in a user subpage" ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " individually, but jointly for tables of the class concerned on all web pages, on the local computer of the user." ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Instead of remembering table parameters, you just include an appropriate style class after the ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{|" ] ), [2] = ". This helps keep table formatting consistent, and can allow a single change to the class to fix a problem or enhance the look of all the tables that are using it at once. For instance, this:" ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:46%;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border:0 solid rgb(153, 153, 153); padding:1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| cellpadding=\"2\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ), [2] = "\n" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " " ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:48%;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border:0 solid rgb(153, 153, 153); padding:1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Multiplication table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " \u00D7" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 6" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 9" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 4" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 12" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 5" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 5 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 10 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 15" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "becomes this:" ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:46%;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ), [2] = "\n" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " " ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:48%;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Multiplication table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " \u00D7" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 6" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 9" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 4" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 12" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 5" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 5 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 10 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 15" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ) ] ) ] ) ] ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = "simply by replacing inline CSS for the table by ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"wikitable\"" ] ), [2] = ". This is because the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "wikitable" ), [4] = " class in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MediaWiki:Common.css" ], title = - ), [6] = " contains a number of ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "table.wikitable" ), [8] = " ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:CSS" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CSS" ) ), [10] = " style rules. These are all applied at once when you mark a table with the class. You can then add additional style rules if desired. These override the class's rules, allowing you to use the class style as a base and build up on it:" ], [13] = "\n\n", [14] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ) ], [15] = "\n", [16] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"font-style:italic; font-size:120%; border: 3px dashed red;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ), [17] = "\n\n", [18] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [1] = ":" ], [19] = "\n", [20] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-style:italic; font-size:120%; border: 3px dashed red;" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Multiplication table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " \u00D7" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 6" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 9" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 4" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 12" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 5" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 5 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 10 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 15" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [21] = "\n\n", [22] = WtParagraph[ [0] = "Notice that the table retains the gray background of the wikitable class, and the headers are still bold and centered. But now the text formatting has been overridden by the local ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "style" ), [2] = " statement; all of the text in the table has been made italic and 120% normal size, and the wikitable border has been replaced by the red dashed border." ], [23] = "\n\n", [24] = WtParagraph[ [0] = "Of course this works only for browsers supporting inline CSS, if it's important use XHTML markup like ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [1] = "big", [2] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ) ] ), [2] = " instead of \"font-size:120%\", or Wiki markup like ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("''text''") ) ] ), [4] = " instead of \"font-style:italic\"." ], [25] = "\n\n", [26] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Collapsible tables " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Classes can also be used to collapse tables, so they are hidden by default. Use the style 'collapsible' to enable collapsing behaviour. By default, a collapsible table will begin expanded. To change this, include the additional class 'collapsed' or 'autocollapse' (i.e. only collapse if 3 other collapsible tables are present). You must include a header row, where the 'hide' option will be displayed. Example:" ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable collapsible collapsed\"\n! Header\n|-\n| Content which starts hidden\n|-\n| more hidden content\n|}\n") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Gives:" ], [6] = "\n\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable collapsible collapsed" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Header" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Content which starts hidden" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " more hidden content" ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n\n" ] ) ] ), [11] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Sorting " ), body = WtBody[ [0] = "\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Further information ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "meta:Help:Sorting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Help:Sorting" ) ) ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Tables can be made sortable by adding ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"sortable\"" ] ), [2] = "; for details see ", [3] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Sorting" ], title = - ) ), [4] = ". Since this can be very useful, it is wise to keep the possibilities and limitations of this feature in mind when designing a table. For example:" ], [4] = "\n\n", [5] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Do not divide a table into sections by subheaders spanning several rows. Instead, an extra column can be made showing the content of these headers on each row, in a short form." ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Do not have elements spanning several columns; instead, again, repeat the content on each row, in a short form." ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " In a column of numbers, do not put text such as \"ca.\" in front of a number-it will sort like zero. Do not put text after the number, and do not put a range of numbers (it does not affect the sorting position for numeric sorting mode, and in the case of a range, the first number determines the position, but if, possibly after sorting this or another column, the element is at the top, it will induce alphabetic sorting mode). Instead, put these texts in a separate column. Alternatively, for the greatest flexibility, alphabetic sorting mode with hidden sortkeys can be used." ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "A long form of abbreviated content can be put as legend outside the table." ], [8] = "\n\n", [9] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ) ], [10] = "\n", [11] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|+ Sortable table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ) ] ), [12] = "\n\n", [13] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [1] = ":" ], [14] = "\n", [15] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Sortable table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Alphabetic" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Numeric" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Date" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "unsortable" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Unsortable" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 20 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2008-11-24 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " This" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2004-03-01 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " column" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " a " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1979-07-23 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " cannot" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1492-12-08 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " be" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " e " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 0 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1601-08-13 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " sorted." ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [16] = "\n\n", [17] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Sorting and collapsing" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "It is possible to collapse a sortable table. To do so, you need to use the code \n", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible\"" ] ), [2] = ". Taking the above table and making it collapsable gives you this:" ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wiki markup" ) ], [4] = "\n", [5] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable collapsible\" border=\"1\"\n|+ Sortable and collapsible table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ) ] ), [6] = "\n\n", [7] = WtParagraph[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "As it appears in a browser" ), [2] = ":" ], [8] = "\n", [9] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable collapsible" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Sortable and collapsible table" ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Alphabetic" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Numeric" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Date" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "unsortable" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Unsortable" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 20 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2008-11-24 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " This" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2004-03-01 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " column" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " a " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1979-07-23 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " cannot" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1492-12-08 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " be" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " e " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 0 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1601-08-13 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " sorted." ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[] ] ), [10] = "\n\n", [11] = WtParagraph[ [0] = "If you want the table to default to collapsed state, use the code ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible collapsed\"" ] ), [2] = " in place of ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible\"" ] ) ], [12] = "\n\n" ] ) ] ), [12] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Row template " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Regardless of whether wikitable format or HTML is used, the wikitext of the rows within a table, and sometimes even within a collection of tables, has much in common, e.g.:" ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " the basic code for a table row" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " code for color, alignment, and sorting mode" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " fixed texts such as units" ), [3] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " special formats for sorting" ) ], [4] = "\n", [5] = WtParagraph[ [0] = "In that case it can be useful to create a template that produces the syntax for a table row, with the data as parameters. This can have many advantages:" ], [6] = "\n", [7] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " easily changing the order of columns, or removing a column" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " easily adding a new column if many elements of the new column are left blank (if the column is inserted and the existing fields are unnamed, use a named parameter for the new field to avoid adding blank parameter values to many template calls)" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " computing fields from other fields, e.g. population density from population and area" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " duplicating content and providing span tags with \"display:none\" for the purpose of having one format for ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Sorting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sorting" ) ), [2] = " and another for display" ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " easy specification of a format for a whole column, such as color and alignment" ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Example:" ], [10] = "\n\n", [11] = WtParagraph[ [0] = "Using ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:help:table/example row template" ], title = - ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:help talk:table/example row template" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Special:Whatlinkshere/help:table/example row template" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "backlinks" ) ), [6] = ", ", [7] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit" ] ), title = WtLinkTitle[ [0] = "edit" ] ), [8] = ")\n", [9] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|-\n! scope=\"col\" | a\n! scope=\"col\" | b\n! scope=\"col\" | a/b\n{{help:table/example row template| 50|200}}\n{{help:table/example row template| 8| 11}}\n{{help:table/example row template|1000| 81}}\n|}\n") ), [10] = "\ngives:" ], [12] = "\n", [13] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " a" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " b" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " a/b" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 50" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "200" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "0.25" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 11" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "0.72727272727273" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1000" ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 81" ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "12.345679012346" ], [1] = "\n" ] ) ] ) ] ) ] ), [14] = "\n\n" ] ), [13] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Conditional table row " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "For a conditional row in a table, we can have:\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" border=\"1\"\n\t\n\t{{ #if:1|{{!}}-\n\t\t! scope=\"row\" {{!}} row one, column one\n\t\t\n\t\t{{!}}row one, column two}}\n\t\n\t{{ #if: |{{!}}-\n\t\t! scope=\"row\" {{!}} row two, column one\n\t\t{{!}}row two, column two}}\n\t\n\t|-\n\t\t! scope=\"row\" {{!}} row three, column one\n\t\t| row three, column two\n|}\n") ), [2] = "\nWhich gives the following table: (note how the second row is missing)" ], [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " row one, column one" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "row one, column two" ], [1] = "\n \n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " row three, column one" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " row three, column two" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ), [14] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Other table syntax " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Other types of ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "table" ), [2] = " syntax that MediaWiki supports:" ], [2] = "\n", [3] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "XHTML" ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "HTML ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:992:7 - 8: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " wiki-", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [4] = " syntax (", [5] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Do not use" ), [6] = ")" ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "All three are supported by MediaWiki and create (currently) valid HTML output, but the pipe syntax is the simplest. Also, HTML ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:994:128 - 129: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " wiki-", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [4] = " syntax (i.e., unclosed ", [5] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [6] = " and ", [7] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [8] = " tags) will not necessarily remain browser-supported in the future, especially on handheld internet-accessible devices." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "See also ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:HTML element#Tables" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HTML element#Tables" ) ), [2] = ". Note however that the ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "thead" ] ), [4] = ", ", [5] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tbody" ] ), [6] = ", ", [7] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tfoot" ] ), [8] = ", ", [9] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "colgroup" ] ), [10] = ", and ", [11] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "col" ] ), [12] = " elements are currently not ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:HTML in wikitext#Permitted HTML" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "supported in MediaWiki" ) ), [14] = "." ], [8] = "\n\n", [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Comparison of table syntax " ), body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " \n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " XHTML" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Wiki-pipe" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Table" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("
    ") ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n|}") ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Caption" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("caption") ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+ caption") ) ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Row" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Data cell" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("cell1cell2\ncell3") ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| cell1 || cell2\n| cell3") ) ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Header cell" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("column heading") ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("row heading") ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"col\" | column heading") ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"row\" | row heading") ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Sample table" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "3" ] ) ], body = WtBody[ [0] = "\n ", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [2] = "\n ", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [4] = "\n " ] ), [1] = "\n ", [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = "\n ", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [4] = "\n " ] ), [3] = "\n" ] ) ] ), [3] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n \n \n \n \n \n \n \n \n
    12
    34
    ") ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n| 1 || 2\n|-\n| 3 || 4\n|}") ) ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: top;" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Pros" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Can preview or debug with any XHTML editor" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Can be indented for easier reading" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Well-known" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Insensitive to newlines" ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " No characters like \"|\" which can collide with template and parser function syntax" ) ], [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Easy to write" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Easy to read" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Takes little space" ), [3] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Can be learned quickly" ) ], [2] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: top;" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Cons" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Tedious" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Takes a lot of space" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Difficult to read quickly" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Accidentally putting \"tr\" for \"td\" can cause confusion for hours." ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Indented code might not match nesting." ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " In rare cases, newlines can break cells, causing severe confusion since newlines usually are ok." ) ], [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Unfamiliar syntax" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Rigid structure" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Cannot be indented" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Text (as in HTML tags) may be easier for some people to read than series of pipes, plus signs, dashes, etc." ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Requires using ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:!" ], title = - ), [2] = " to pass a \"|\" in a parameter." ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Sensitive to newlines; see ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Newlines and spaces" ], title = - ), [2] = "." ) ], [2] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = " \n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " XHTML" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Wiki-pipe" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n", [3] = WtParagraph[ [0] = "See also ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:For#Tables" ], title = - ), [2] = "." ], [4] = "\n\n" ] ) ] ), [15] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Pipe syntax in terms of the HTML produced " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The pipe syntax, developed by ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:User: Magnus Manske" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " Magnus Manske" ) ), [2] = ", substitutes pipes (", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|") ), [4] = ") for HTML. There is an ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.uni-bonn.de/~manfear/html2wiki-tables.php" {P} protocol = "http" {P} rtd = RTD[ "http://www.uni-bonn.de/~manfear/html2wiki-tables.php" ] ), title = WtLinkTitle[ [0] = "on-line script" ] ), [6] = " which converts html tables to pipe syntax tables." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The pipes must start at the beginning of a new line, except when separating parameters from content or when using ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "||" ] ), [2] = " to separate cells on a single line. The parameters are optional." ], [4] = "\n\n", [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Tables " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "A ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:Table (HTML)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "table" ) ), [2] = " is defined by\n", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| ''params''\n |}\n") ), [4] = "\nwhich generates \"", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [6] = "table ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [8] = ">", [9] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [10] = "/table>\"." ], [2] = "\n\n" ] ), [6] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Rows " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "For each table, an HTML ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "tr", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = " tag will be generated for the first row. To start a new row, use:" ], [2] = "\n", [3] = WtSemiPre[ [0] = " |-" ], [4] = "\n", [5] = WtParagraph[ [0] = "which generates another \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "tr", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = "\"." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Parameters can be added like this:" ], [8] = "\n", [9] = WtSemiPre[ [0] = " |- ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ) ], [10] = "\n", [11] = WtParagraph[ [0] = "which generates \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "tr ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [4] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [5] = "\"." ], [12] = "\n\n", [13] = WtParagraph[ [0] = "Note:" ], [14] = "\n", [15] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "tr", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = " tags will be automatically opened at the first ", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [6] = "td", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [8] = " equivalent" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "tr", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = " tags will be automatically closed at ", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [6] = "tr", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [8] = " and ", [9] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [10] = "/table", [11] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [12] = " equivalents" ) ], [16] = "\n\n" ] ), [7] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Cells " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Cells are generated either like this:" ], [2] = "\n", [3] = WtSemiPre[ [0] = " |cell1\n |cell2\n |cell3" ], [4] = "\n", [5] = WtParagraph[ [0] = "or like this:" ], [6] = "\n", [7] = WtSemiPre[ [0] = " |cell1||cell2||cell3" ], [8] = "\n", [9] = WtParagraph[ [0] = "which both generate \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "td", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = "cell1", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [6] = "/td", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [8] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [9] = "td", [10] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [11] = "cell2", [12] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [13] = "/td", [14] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [15] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [16] = "td", [17] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [18] = "cell3", [19] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [20] = "/td", [21] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [22] = "\". The \"||\" equals \"newline\" + \"|\"." ], [10] = "\n\n", [11] = WtParagraph[ [0] = "Parameters in cells can be used like this:" ], [12] = "\n", [13] = WtSemiPre[ [0] = " |", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [2] = "|cell1||", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [4] = "|cell2||", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [6] = "|cell3" ], [14] = "\n", [15] = WtParagraph[ [0] = "which will result in" ], [16] = "\n", [17] = WtSemiPre[ [0] = " ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "td ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [4] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [5] = "cell1", [6] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [7] = "/td", [8] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [9] = "\n ", [10] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [11] = "td ", [12] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [13] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [14] = "cell2", [15] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [16] = "/td", [17] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [18] = "\n ", [19] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [20] = "td ", [21] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [22] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [23] = "cell3", [24] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [25] = "/td", [26] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ) ], [18] = "\n\n" ] ), [8] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Headers " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Produces a TH, functioning the same way as TD, but with different style. \"!\" is used instead of the opening \"|\". \"!!\" can be used instead of \"||\". Parameters still use \"|\", though. Example:" ], [2] = "\n", [3] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("!") ), [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [3] = "|cell1" ], [4] = "\n\n" ] ), [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Table Caption" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Captions" ) ), [2] = " " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "A ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "caption", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = " tag is created by" ], [2] = "\n", [3] = WtSemiPre[ [0] = " |+ Caption" ], [4] = "\n", [5] = WtParagraph[ [0] = "which generates the HTML \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "caption", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [4] = "Caption", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [6] = "/caption", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [8] = "\"." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "You can also use parameters:" ], [8] = "\n", [9] = WtSemiPre[ [0] = " |+ ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [2] = "|Caption" ], [10] = "\n", [11] = WtParagraph[ [0] = "which will generate \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "caption ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "params" ), [4] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [5] = "Caption", [6] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [7] = "/caption", [8] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" {P} rtd = RTD[ ">" ] ), [9] = "\"." ], [12] = "\n\n" ] ), [10] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Summaries " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "A summary is produced by adding a summary attribute after the start of the table. It can be used by ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "screen reader" ], title = - ), [2] = " to give visually impaired readers the overall gist of the table, without having to listen to the entire table. For example:\n", [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow:auto;" ] ) ], body = WtTagExtensionBody("\n{| summary=\"Artistic renderings of Germania became more triumphant and monumental.\"\n| [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834\u201336]]\n| [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]\n| [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871\u201383]]\n|}\n") ), [4] = "\nproduces:" ], [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "summary" ], value = WtValue[ [0] = "Artistic renderings of Germania became more triumphant and monumental." ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Philipp Veit 008.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Robed woman, seated, with sword on her lap" ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Philipp Veit, ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Germania" ), [2] = ", 1834\u201336" ) ] ), [2] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Image Germania (painting).jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Robed woman, standing, holding a sword" ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Philipp Veit, ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Germania" ), [2] = ", 1848" ) ] ), [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Niederwald memorial 2.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another" ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johannes Schilling, ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Germania" ), [2] = ", 1871\u201383" ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ) ] ), [16] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Square monitors " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "To format for a square monitor or window, use a tape measure. Determine the height of your rectangular screen. Using that figure measure under the screen to determine the width your monitor\u2019s screen would be if it were square. Mark that location using ink or tape under the screen. Drag the side of your browser\u2019s window to that location so the window is square based on accurate measurements. Square monitors and reading windows are not able to contain tables and galleries made for rectangular and wide screens. When a table or gallery is wider than the monitor, it makes every line of text wider than the screen as well. The px amounts of the following gallery were determined after measuring the window to make sure it was square:" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Type this:" ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]\n| [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]\n| [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]\n| [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]\n| [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]\n|}\n") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "For this:" ], [8] = "\n", [9] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Some_window_blinds.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} rtd = RTD[ "|192x155px" ] {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Various window shades" ) ] ), [2] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 170 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Vert-blinds-2145-rs.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 170 {P} rtd = RTD[ "|192x170px" ] {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vertical blinds" ) ] ), [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Gardine.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} rtd = RTD[ "|192x155px" ] {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "This is not a blind" ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [10] = "\n\n", [11] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Vorhang.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} rtd = RTD[ "|192x155px" ] {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Solid shade" ) ] ), [2] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 55 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 328 target = WtPageName[ [0] = "File:Jalousie-1.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 55 {P} rtd = RTD[ "|328x55px" ] {P} width = 328 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Horizonal blinds" ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [12] = "\n\n", [13] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 205 target = WtPageName[ [0] = "File:Some window blinds.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|205px" ] {P} width = 205 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shade, shutters; vertical ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1162:76 - 77: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " horizontal blinds." ) ] ), [2] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 388 target = WtPageName[ [0] = "File:Miniblinds detail of mechanism.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|388px" ] {P} width = 388 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Detail of turning rod (blind stick) attachment on miniblinds" ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [14] = "\n\n" ] ), [17] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Vertically oriented column headers " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Sometimes it is desirable (such as in a table predominantly made of numbers) to rotate text such that it proceeds from top to bottom or bottom to top instead of from left to right or right to left. Currently, browser support for this type of styling as a component of HTML or CSS is sporadic (Internet Explorer is one of the few browsers that supports this in cascading stylesheets, albeit in a non-standard way). An alternative solution that works in most if not all browsers is to use images in place of the text. For instance, the following table uses SVG images instead of text to produce the rotated column headings:" ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: bottom;" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_hd_date_page.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ) ] ) ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_project.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games" ] ) ] ) ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_talk.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia talk:WikiProject Video games" ] ) ] ) ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_portal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Portal:Video games" ] ) ] ) ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_article_guidelines.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Article guidelines" ] ) ] ) ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_templates.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Templates" ] ) ] ) ], [1] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_sources.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Sources" ] ) ] ) ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_assessment.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Assessment" ] ) ] ) ], [1] = "\n" ] ), [8] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_cleanup.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Cleanup" ] ) ] ) ], [1] = "\n" ] ), [9] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_requests.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Requests" ] ) ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 05/08" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4266 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 7828 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 7282 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1105 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 224 " ] ), [6] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 161 " ] ), [7] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 916 " ] ), [8] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 506 " ] ), [9] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 231" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 04/08" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4127 " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6190 " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6487 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1139 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 241 " ] ), [6] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 205 " ] ), [7] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1165 " ] ), [8] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 478 " ] ), [9] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 301" ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Normally, one problem with this approach is that readers are directed to different pages when they click on the images. To eliminate this problem\u2014or to direct readers to a ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "different" ), [2] = " page\u2014you can use the ", [3] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "link" ] ), [4] = " parameter. A column-header can be coded as follows:" ], [6] = "\n\n", [7] = WtParagraph[ [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n\n! style=\"width:3em;\" | [[File:wpvg_vg_project.svg|link=xxxx]]\n\n") ), [1] = "\nThe image will wikilink to article \"xxxx\"." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "By setting the link to an empty string (e.g. ", [1] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[File:wpvg_hd_date_page.svg|link=]]") ) ] ), [2] = "), no navigation will occur when visitors click on an image. Note that it might also be a good idea to color the image text blue if you are using the images as links. Also, SVG is the preferred image format in this case because it can be re-scaled to any size without producing artifacts." ], [10] = "\n\n" ] ), [18] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Wikitable as image gallery " ), body = WtBody[ [0] = "\n\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "This section is local to Wikipedia (hard-coded here now)." ) ) ], [2] = "\n", [3] = WtParagraph[ [0] = "A wikitable can be used to display side-by-side images, in the manner of an image gallery (formatted by \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "gallery>\"), but with larger images and less vacant area around photos." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "A simple framed gallery can be formatted using class=\"wikitable\" to generate the minimal thin-lines around images/photos within the table:" ], [6] = "\n\n", [7] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|265px]]\n |[[File:Worms Wappen 2005-05-27.jpg|235px]]\n |-\n |Nibelungen Bridge to Worms
    across the [[Rhine]]\n |Worms and its sister cities\n |}") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Note the result below (with thin-lined cells):" ], [10] = "\n", [11] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 265 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|265px" ] {P} width = 265 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 235 target = WtPageName[ [0] = "File:Worms Wappen 2005-05-27.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|235px" ] {P} width = 235 ) ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Nibelungen Bridge to Worms", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "across the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Worms and its sister cities" ], [1] = "\n" ] ) ] ) ] ) ] ), [12] = "\n", [13] = WtParagraph[ [0] = "Another issue about the standard \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "gallery>\" tag, in 2007-2008, was that it put 4 images per line, overrunning the right margin of a wiki article displayed in portrait-style width (like 800x600), unless the gallery had only 3 images. However, a wikitable uses typical image-links with sizes, such as ", [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[[") ), [4] = "Image:XXX.jpg|130px]]\" so 4 images could be displayed on a wikitable line within a 600px width (for 800x600 resolution screens)." ], [14] = "\n\n", [15] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|130px]]\n |[[File:Worms Wappen 2005-05-27.jpg|125px]]\n |[[File:Liberty-statue-with-manhattan.jpg|125px]]\n |[[File:New-York-Jan2005.jpg|125px]]\n |-\n |Nibelungen Bridge to Worms\n |Worms and its sister cities\n |Statue of Liberty\n |New York City\n |}") ) ], [16] = "\n\n", [17] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 130 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|130px" ] {P} width = 130 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 125 target = WtPageName[ [0] = "File:Worms Wappen 2005-05-27.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|125px" ] {P} width = 125 ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 125 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|125px" ] {P} width = 125 ) ] ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 115 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|115px" ] {P} width = 115 ) ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Nibelungen Bridge to Worms" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Worms and its sister cities" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Statue of Liberty" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "New York City" ], [1] = "\n" ] ) ] ) ] ) ] ), [18] = "\n", [19] = WtParagraph[ [0] = "Another advantage about wikitable images, compared to \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "gallery>\" formatting, is the ability to \"square\" each image when similar heights are needed, so consider putting 2-number image sizes (such as \"199x95px\"), where the 2nd number limits height:" ], [20] = "\n\n", [21] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x95px]]\n |[[File:New-York-Jan2005.jpg|199x95px]]\n |[[File:Gold star on blue.gif|199x95px]]\n |[[File:Worms 01.jpg|100x95px]]\n |-\n |Statue of Liberty\n |New York City\n |Star on blue\n |Bridge to Worms\n |}") ) ], [22] = "\n\n", [23] = WtParagraph[ [0] = "Note the 3 images sized \"199x95px\" appear identical height, of 95px (4th image purposely smaller). The \"95px\" forces height, while \"199x\" fits the various widths (could even be \"999x\"):" ], [24] = "\n", [25] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} rtd = RTD[ "|199x95px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} rtd = RTD[ "|199x95px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} rtd = RTD[ "|199x95px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 100 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} rtd = RTD[ "|100x95px" ] {P} width = 100 ) ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Statue of Liberty" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "New York City" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Star on blue" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Bridge to Worms" ], [1] = "\n" ] ) ] ) ] ) ] ), [26] = "\n", [27] = WtParagraph[ [0] = "Therefore, the use of size \"199x95px\" (or \"999x95px\") produces the auto-height-sizing beyond the \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "gallery>\" tag, and with the option to set taller thumbnails (\"199x105px\"), or even to have some images purposely smaller than other images of \"95px\" height. A very short height (\"70px\") allows many more images across the table:" ], [28] = "\n\n", [29] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |[[File:New-York-Jan2005.jpg|199x70px]]\n |[[File:Gold star on deep red.gif|199x70px]]\n |[[File:Worms 01.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |}") ) ], [30] = "\n", [31] = WtParagraph[ [0] = "The above wikitable-coding produces the result below, of 6 columns:" ], [32] = "\n", [33] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on deep red.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} rtd = RTD[ "|199x70px" ] {P} width = 199 ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [34] = "\n\n", [35] = WtParagraph[ [0] = "Once images have been placed in a wikitable, control of formatting can be adjusted when more images are added." ], [36] = "\n\n", [37] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Shifting/centering " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Images within a wikitable can be shifted by inserting non-breaking spaces (\"", [1] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [2] = "nbsp;\") before or after the image-link (\"", [3] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [4] = "nbsp;", [5] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1265:133 - 134: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [6] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1265:141 - 142: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [1] = "Image:]]\"). However, auto-centering simply requires use of center-tags to be placed around an image-link for centering in a cell ", [2] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(\"
    [[File:..]]
    \")") ), [3] = "." ] ) ], [2] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "In the example below, note how Col2 uses ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "center>, but Col3 uses \"", [3] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [4] = "nbsp;\":" ], [2] = "\n", [3] = WtSemiPre[ [0] = " ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]]\n |
    [[File:Utrecht 003.jpg|299x125px]]
    \n |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp;\n |-\n |Dom tower from Brigittenstraat\n |Cloister garth of the Utrecht Dom Church\n |&nbsp;&nbsp;View from bell tower\n |}") ) ], [4] = "\n", [5] = WtParagraph[ [0] = "The above coding generates the table below: note the middle garden image is centered (but not the left image), and the right image has 2 spaces before \" ", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "View...\":" ], [6] = "\n", [7] = WtTable( {P} rtd = RTD[ "{|" " \n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Domtoren vanaf Brigittenstraat.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} rtd = RTD[ "|299x125px" ] {P} width = 299 ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Utrecht 003.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} rtd = RTD[ "|299x125px" ] {P} width = 299 ) ] ) ] ), [2] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Uitzicht vanaf de Domtoren.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} rtd = RTD[ "|299x125px" ] {P} width = 299 ) ] ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Dom tower from Brigittenstraat" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Cloister garth of the Utrecht Dom Church" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "View from bell tower" ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [8] = "\n", [9] = WtParagraph[ [0] = "Also note that the tag \"", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "small>\" made a smaller text-size caption. However, fonts also can be sized by percent (style=\"font-size: 87%;\"), where the actual percent-size as displayed depends on the various sizes allowed for a particular font.\n", [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n | style=\"font-size: 87%;\" | View from bell tower\n") ), [4] = "\nThe column attribute, above, uses \"style=\" to set the font-size for the caption, following the 2nd vertical-bar \"|\"." ], [10] = "\n\n", [11] = WtParagraph[ [0] = "A font-size: 65% is very small, while style=\"font-size: 87%;\" is a mid-size font, larger than the tag ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "small" ), [2] = "." ], [12] = "\n\n" ] ) ] ), [38] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Speed/transfer rates " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Actual transfer/display speeds depend on individual files. In 2007 to March 2009 some serious flaws existed in the thumbnailing process when combined with the gallery-display, making thumbnails sometimes larger than the originals. For this reason some users explicitly used tables instead of the gallery tag. However, these issues are fixed as of March 2009." ], [2] = "\n\n" ] ) ] ) ] ), [19] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Generate a chart with a table " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "meta:Visualizer for Wikimedia projects" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "meta:Visualizer for Wikimedia projects" ) ) ] ), [3] = "\nUsing ", [4] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:visualizer|visualizer]]" ], args = WtTemplateArguments[] ), [5] = " or another template that uses ", [6] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:metavisualizer|metavisualizer]]" ], args = WtTemplateArguments[] ), [7] = ".\n\n" ] ) ] ), [20] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Converting spreadsheet to wikitable format " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "To convert from spreadsheets such as Gnumeric, MS Excel or OpenOffice.org Calc, you can use the ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//excel2wiki.net/wikipedia.php" {P} protocol = "http" {P} rtd = RTD[ "http://excel2wiki.net/wikipedia.php" ] ), title = WtLinkTitle[ [0] = "Copy ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/exp-Help%3ATable.wikitext:1295:139 - 140: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " Paste Excel-to-Wiki" ] ), [2] = " converter or you can save your spreadsheets as ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ".csv" ], title = - ), [4] = " and use the ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//toolserver.org/~al/data2mwGenerators/csv2wikitable.php" {P} protocol = "http" {P} rtd = RTD[ "http://toolserver.org/~al/data2mwGenerators/csv2wikitable.php" ] ), title = WtLinkTitle[ [0] = "csv2wikitable" ] ), [6] = " converter." ], [2] = "\n\n" ] ) ] ), [21] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " See also " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Help:Wikitable" ], title = - ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (tables)" ], title = - ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:How to make a table in Wikipedia" ], title = - ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mw:Table" ], title = - ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mw:Simplified table syntax" ], title = - ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Wiki markup tables" ], title = - ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Table background colors" ], title = - ) ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Dcljr/Tables" ], title = - ) ), [8] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:Table (HTML)" ], title = - ) ), [9] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Help:Template#A parameter value containing a pipe character" ], title = - ) ), [10] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:Category:Table and column templates" ], title = - ) ), [11] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Examples:", [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:Chess diagram" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chess board" ) ) ), [1] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:Goban" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Go board" ) ) ), [2] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Monopoly (game)#Board" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Monopoly board" ) ) ), [3] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "m:Template talk:Square 8x8 pentomino example" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Square 8x8 pentomino example" ) ) ) ) ), [12] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "commons:Commons:Convert tables and charts to wiki code" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commons:Convert tables and charts to wiki code" ) ) ), [13] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "commons:Commons:Chart and graph resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commons:Chart and graph resources" ) ) ), [14] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Cleanup template ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "[[Template:Listtable|Listtable]]" ], args = WtTemplateArguments[] ), [2] = " and its category ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":Category:Articles requiring tables" ], title = - ) ) ], [2] = "\n\n" ] ) ] ), [22] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " External links " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion" ], title = - ), [2] = " published in German-Wikipediaproject (English instructions included)" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.cnic.org/html2mediawiki.html" {P} protocol = "http" {P} rtd = RTD[ "http://www.cnic.org/html2mediawiki.html" ] ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at cnic.org" ] ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//area23.brightbyte.de/csv2wp.php" {P} protocol = "http" {P} rtd = RTD[ "http://area23.brightbyte.de/csv2wp.php" ] ), title = WtLinkTitle[ [0] = "csv2wp" ] ), [2] = " - converts ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "w:comma-separated values" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "comma-separated values" ) ), [4] = " (CSV) format to pipe syntax. You may use this to import tables from Excel etc. (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":de:Benutzer:Duesentrieb/csv2wp (en)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "more information" ) ), [6] = ")" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.uni-bonn.de/~manfear/html2wiki-tables.php" {P} protocol = "http" {P} rtd = RTD[ "http://www.uni-bonn.de/~manfear/html2wiki-tables.php" ] ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at uni-bonn.de" ] ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//diberri.dyndns.org/html2wiki.html" {P} protocol = "http" {P} rtd = RTD[ "http://diberri.dyndns.org/html2wiki.html" ] ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at diberri.dyndns.org" ] ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//pywikipediabot.sourceforge.net/" {P} protocol = "http" {P} rtd = RTD[ "http://pywikipediabot.sourceforge.net/" ] ), title = WtLinkTitle[ [0] = "pywikipediabot" ] ), [2] = " (can convert HTML tables to wiki)" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//search.cpan.org/~diberri/" {P} protocol = "http" {P} rtd = RTD[ "http://search.cpan.org/~diberri/" ] ), title = WtLinkTitle[ [0] = "HTML-WikiConverter" ] ), [2] = " Various versions and languages" ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikibooks.org/wiki/Editing_Wikitext/Tables" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikibooks.org/wiki/Editing_Wikitext/Tables" ] ), title = WtLinkTitle[ [0] = "Making Wiki Tables" ] ), [2] = " with good examples" ), [8] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use" ] ), title = WtLinkTitle[ [0] = "Wiki and HTML Tables Ready to Use" ] ), [2] = ": A selection of tables and their Wiki/HTML code" ), [9] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.w3.org/TR/css3-color/" {P} protocol = "http" {P} rtd = RTD[ "http://www.w3.org/TR/css3-color/" ] ), title = WtLinkTitle[ [0] = "Table of CSS color names and HEX codes" ] ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Wikipedia how-to" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Wikipedia text help" ], title = - ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ar:\u0645\u0633\u0627\u0639\u062F\u0629:\u062C\u062F\u0648\u0644" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bg:\u0423\u0438\u043A\u0438\u043F\u0435\u0434\u0438\u044F:\u0422\u0430\u0431\u043B\u0438\u0446\u0438" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ca:Ajuda:Taula" ], title = - ), [5] = "\n", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cs:N\u00E1pov\u011Bda:Tabulky" ], title = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:Hilfe:Tabellen" ], title = - ), [9] = "\n", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "dsb:Pomoc:Tabela" ], title = - ), [11] = "\n", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "es:Ayuda:Tablas" ], title = - ), [13] = "\n", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eo:Helpo:Vikitabeloj" ], title = - ), [15] = "\n", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fa:\u0631\u0627\u0647\u0646\u0645\u0627:\u062C\u062F\u0648\u0644\u200C\u0647\u0627" ], title = - ), [17] = "\n", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:Aide:Les tableaux pour les novices" ], title = - ), [19] = "\n", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hsb:Pomoc:Tabela" ], title = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hu:Wikip\u00E9dia:T\u00E1bl\u00E1zatok" ], title = - ), [23] = "\n", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "id:Bantuan:Tabel" ], title = - ), [25] = "\n", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "it:Aiuto:Tabelle" ], title = - ), [27] = "\n", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ja:Help:\u8868\u306E\u4F5C\u308A\u65B9" ], title = - ), [29] = "\n", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ka:\u10D3\u10D0\u10EE\u10DB\u10D0\u10E0\u10D4\u10D1\u10D0:\u10EA\u10EE\u10E0\u10D8\u10DA\u10D8\u10E1 \u10E8\u10D4\u10E5\u10DB\u10DC\u10D0" ], title = - ), [31] = "\n", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "km:\u1787\u17C6\u1793\u17BD\u1799:\u178F\u17B6\u179A\u17B6\u1784" ], title = - ), [33] = "\n", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ko:\uC704\uD0A4\uBC31\uACFC:\uD45C" ], title = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lb:H\u00EBllef:Tabellen" ], title = - ), [37] = "\n", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lt:Pagalba:Lentel\u0117" ], title = - ), [39] = "\n", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ml:\u0D38\u0D39\u0D3E\u0D2F\u0D02:\u0D2A\u0D1F\u0D4D\u0D1F\u0D3F\u0D15" ], title = - ), [41] = "\n", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mn:\u0422\u0443\u0441\u043B\u0430\u043C\u0436:\u0425\u04AF\u0441\u043D\u044D\u0433\u0442 \u044F\u0430\u0436 \u0445\u0438\u0439\u0445 \u0432\u044D?" ], title = - ), [43] = "\n", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:Help:Gebruik van tabellen" ], title = - ), [45] = "\n", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "no:Hjelp:Tabeller" ], title = - ), [47] = "\n", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pl:Pomoc:Tabele" ], title = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pt:Ajuda:Guia de edi\u00E7\u00E3o/Usar tabelas" ], title = - ), [51] = "\n", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ro:Ajutor:Tabele" ], title = - ), [53] = "\n", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "qu:Yanapa:Tawla" ], title = - ), [55] = "\n", [56] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sq:Ndihm\u00EB:Tabela" ], title = - ), [57] = "\n", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "simple:Help:Tables" ], title = - ), [59] = "\n", [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sk:Pomoc:Tabu\u013Eky" ], title = - ), [61] = "\n", [62] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sr:\u041F\u043E\u043C\u043E\u045B:\u0422\u0430\u0431\u0435\u043B\u0430" ], title = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Ohje:Taulukot" ], title = - ), [65] = "\n", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tt:\u042F\u0440\u0434\u04D9\u043C:T\u00FC\u015F\u00E4w" ], title = - ), [67] = "\n", [68] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "th:\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49:\u0E15\u0E32\u0E23\u0E32\u0E07" ], title = - ), [69] = "\n", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "uk:\u0414\u043E\u0432\u0456\u0434\u043A\u0430:\u0422\u0430\u0431\u043B\u0438\u0446\u0456" ], title = - ), [71] = "\n", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vi:Tr\u1EE3 gi\u00FAp:T\u1EA1o b\u1EA3ng" ], title = - ), [73] = "\n", [74] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zh:Help:\u8868\u683C" ], title = - ) ], [6] = "\n\n" ] ) ] ) ) exp-Saxby+Chambliss.ast000066400000000000000000026446751335270560400514260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ), [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ), [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ), [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ), [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ), [8] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ), [10] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ), [15] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [18] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ), [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [20] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [22] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ), [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [26] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ), [29] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [30] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ), [31] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ), [32] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [33] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ), [34] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [35] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ), [36] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ), [38] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [39] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ), [40] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ), [41] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [42] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ), [43] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ), [44] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ), [45] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [46] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [47] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [48] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ), [49] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [50] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [51] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) } {P} warnings = C[ Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1015:187: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1030:142: : 12.2.5.4.7 - R52 (1) @ WtXmlEndTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1032:135: : 12.2.5.4.7 - R52 (1) @ WtXmlEndTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1037:145: : 12.2.5.4.7 - R52 (1) @ WtXmlEndTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:164: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:284: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:403: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:596: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:708: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:881: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1033: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1185: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1289: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1419: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1582: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1763: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1882: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:1997: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:2139: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:2304: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:2457: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:2581: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1052:2720: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:158: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:282: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:401: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:565: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:674: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:844: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:993: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1140: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1242: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1369: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1534: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1709: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1830: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:1943: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:2088: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:2249: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:2382: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:2525: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1054:2681: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1060:72: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1063:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1066:61: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1069:70: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1072:69: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1075:71: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1078:79: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1081:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1084:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1087:72: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1090:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1093:65: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1096:64: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1100:65: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1103:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1106:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1109:64: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1112:69: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1115:71: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1118:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1121:72: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1124:74: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1127:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1137:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1140:70: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1143:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1146:69: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1149:71: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1152:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1155:79: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1158:65: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1161:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1164:69: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1167:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1174:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1177:79: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1180:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1183:66: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1186:67: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1189:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1192:80: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1195:72: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1198:68: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1201:73: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1204:69: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:1207:95: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag. ] [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox vcard" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 22em; font-size: 90%; text-align: left" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "n" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; font-size: 125%; font-weight: bold" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = "Clarence Saxby Chambliss Jr" ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ] ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n", [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "from ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ) ] ), [3] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n", [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:lavender;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Incumbent" ], title = - ) ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Assumed", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2003", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = "Serving", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "with", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n" ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n", [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = "Member of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "from ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [5] = "'s ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "8th" ) ), [7] = " district\n" ] ), [3] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office" ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 1995", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "January 3, 2003" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ) ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " " ], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender;" ] ) ], body = WtBody[ [0] = "Chairman of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Committee on Agriculture, Nutrition and Forestry" ) ) ] ), [3] = "\n" ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n", [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office" ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2005", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "January 3, 2007" ], [1] = "\n" ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ], [1] = "\n" ] ) ] ), [15] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ], [1] = "\n" ] ) ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [17] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [18] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [19] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [20] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [21] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [22] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [23] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [24] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [25] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [26] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ), [27] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [28] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "\n" ] ) ] ), [29] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Born" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " November 10, 1943", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display:none" ] ) ], body = WtBody[ [0] = " (", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "bday" ] ) ], body = WtBody[ [0] = "1943-11-10" ] ), [2] = ")" ] ), [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint" ] ) ], body = WtBody[ [0] = " (age", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "67)" ] ), [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warrenton" ) ), [5] = ", ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ) ], [1] = "\n" ] ) ] ), [30] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Political", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "party" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ) ], [1] = "\n" ] ) ] ), [31] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Spouse(s)" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Julianne Chambliss" ], [1] = "\n" ] ) ] ), [32] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Residence" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "label" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ) ], [1] = "\n" ] ) ] ), [33] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alma mater" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alma", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "mater" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "University of Tennessee College of Law" ) ) ], [1] = "\n" ] ) ] ), [34] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Occupation" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Lawyer" ], [1] = "\n" ] ) ] ), [35] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Religion" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopal Church in the United States of America" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Episcopalian" ) ) ], [1] = "\n" ] ) ] ), [36] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n", [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Website" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "www.Saxby.org" ] ) ], [1] = "\n" ] ) ] ), [37] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] ) ] ) ] ), [2] = "\n\n", [3] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Clarence Saxby Chambliss" ), [1] = " (born November 10, 1943) is the senior ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [3] = " from ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [5] = ". He is a member of the ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Republican Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Party" ) ), [7] = ". In the 110th Congress, Chambliss serves as the ranking Republican member of the ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = - ), [9] = ", chairing the committee during the 109th Congress (2005-2007)." ], [4] = "\n\n", [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Early life, education, and family" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Chambliss, the son of an ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopalian" ], title = - ), [2] = " minister,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [4] = " was born in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = - ), [6] = ". He graduated from ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C.E. Byrd High School" ], title = - ), [8] = " in ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Shreveport" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [12] = ", in 1961. He attended ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana Tech University" ], title = - ), [14] = " from 1961-1962 and earned a ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bachelor's degree" ], title = - ), [16] = " in Business Administration from the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [18] = " in 1966, working his way through college at a bakery in ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Athens, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Athens" ) ), [20] = ".", [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [22] = " He received his ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Juris Doctor" ], title = - ), [24] = " from the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = - ), [26] = " College of Law in 1968. He is a member of the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sigma Chi" ], title = - ), [28] = " Fraternity." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "During the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vietnam War" ], title = - ), [2] = ", Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "football" ], title = - ), [4] = " injury.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ) ], [4] = "\n\t \n", [5] = WtParagraph[ [0] = "Chambliss is a member of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. John's Episcopal Church (Moultrie, Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "St. John's Episcopal Church" ) ), [2] = " in ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ), [4] = ". He married Julianne Frohbert in 1966 and they have two children and two grandchildren." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Chambliss's son Bo is a registered lobbyist for the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chicago Mercantile Exchange" ], title = - ), [2] = " and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [4] = ", of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ) ], [8] = "\n\n" ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "House of Representatives, 1995-2003" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Chambliss was elected to the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House of Representatives" ], title = - ), [2] = " in 1994 as one of the new ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conservatism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "conservative" ) ), [4] = " Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Newt Gingrich" ], title = - ), [6] = ", was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Revolution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Class of '94" ) ), [8] = "." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Chambliss was elected from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Macon, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Macon" ) ), [2] = "-based 8th District, after six-term incumbent ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [4] = " retired. He was elected with 63% of the vote\u2014an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "During his four terms in the House, Chambliss served on the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives Permanent Select Committee on Intelligence" ], title = - ), [2] = " and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Less than a month after the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "September 11 attacks" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "September 11, 2001, terrorist attacks" ) ), [2] = ", the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valdosta, Georgia" ], title = - ), [2] = ", where he said that homeland security would be improved by turning the sheriff loose to \"arrest every ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Muslim" ], title = - ), [4] = " that crosses the state line.\" Chambliss apologized for the remarks.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = "In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Abramoff" ], title = - ), [2] = ".", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ) ], [12] = "\n\n" ] ), [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Senate, 2003-present" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Committee assignments" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Agriculture, Nutrition, and Forestry" ) ) ), [1] = " (Ranking Member)", [2] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = "As Ranking Member of the full committee, Sen. Chambliss may serve as an ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "ex officio" ), [2] = " member of all subcommittees." ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Armed Services" ) ) ), [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Airland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Airland" ) ) ), [1] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Personnel" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Personnel" ) ) ), [2] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Readiness and Management Support" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Readiness and Management Support" ) ) ) ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Rules and Administration" ) ) ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Select Committee on Intelligence" ) ) ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Commission on Security and Cooperation in Europe" ], title = - ) ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture" ) ), [2] = ") after serving in the Senate for just two years.", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:All articles with unsourced statements" ], title = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Articles with unsourced statements from December 2008" ], title = - ), [5] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "Template-Fact" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "This claim needs references to reliable sources", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = " from December 2008" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 91 {P} rtd = RTD[ "[" ] ), [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Citation needed" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "citation needed" ) ) ] ), [2] = WtXmlCharRef( {P} codePoint = 93 {P} rtd = RTD[ "]" ] ) ] ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as \"staggering.\" ", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ) ], [6] = "\n\n" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Caucus memberships" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Fire Services Caucus" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Sportsmen Foundation" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Juvenile Diabetes Caucus" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "National Guard Caucus" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Rural Health Caucus" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Senate Caucus on Military Depots, Arsenals and Ammunition Plants" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Co-Chair, Senate Reserve Caucus" ), [7] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Steering Committee" ) ], [2] = "\n\n" ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Elections" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2002 race" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2002" ) ) ] ), [3] = "\nChambliss ran for the Senate in 2002, facing freshman ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [5] = " incumbent ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [7] = ". Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 1st congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1st district" ) ), [9] = ", represented by fellow Republican ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [11] = ".\n\n", [12] = WtParagraph[ [0] = "Chambliss focused on the issue of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "national defense" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "homeland security" ], title = - ), [4] = " during his campaign, and released an ad that included ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Osama bin Laden" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saddam Hussein" ], title = - ), [8] = ", highlighting Cleland's record on the issues of war and terrorism.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [2] = " of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [4] = " said of one ad, \"", [5] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/exp-Saxby+Chambliss.wikitext:786:380 - 381: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [6] = "I]t's worse than disgraceful, it's reprehensible;\" Senator ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Hagel" ], title = - ), [8] = " of ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nebraska" ], title = - ), [10] = " said the ads were \"beyond offensive to me.\"", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [12] = " On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [14] = "\n", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ) ], [15] = "\n\n", [16] = WtParagraph[ [0] = "Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent." ], [17] = "\n\n" ] ), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2008 race" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ) ] ), [3] = "\n", [4] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikinews-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " Wikinews has related news:\n", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":wikinews:Republican Senator from Georgia wins run-off election" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Senator from Georgia wins run-off election" ) ) ) ), [2] = " " ] ), [4] = "\n\n" ] ), [1] = "\n\n" ] ) ] ), [5] = "\nOn November 4, 2008, Chambliss received 49.8% of the vote, while ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [7] = " challenger ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ), [9] = " received 46.8% and ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Libertarian Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ), [11] = " ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allen Buckley" ], title = - ), [13] = " received 3.4% of the vote.", [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [15] = "\n\n", [16] = WtParagraph[ [0] = "Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008." ], [17] = "\n\n", [18] = WtParagraph[ [0] = "Chambliss defeated Martin 57.5% to 42.5% in the runoff election.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ) ], [19] = "\n\n" ] ), [3] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Imperial Sugar" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imperial Sugar" ], title = - ), [2] = " that claims that Imperial \"wrongfully\" failed to remove hazards that caused the disaster of a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Savannah, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Savannah" ) ), [4] = "-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of \"harassing\"", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [6] = " a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: \"I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families.\" Savannah attorney Mark Tate, \"an active backer of Democratic candidates,\" insisted that \"there is nothing political\" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed \"legislative immunity.\"", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ) ], [2] = "\n\n" ] ) ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Political positions" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Voting Record" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Chambliss's voting record is typically that of voting in line with conservative issues.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [3] = " He is the primary sponsor in the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [5] = " of the tax-reform proposal ", [6] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FairTax" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Fair Tax Act" ) ) ), [7] = " (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation\u2014such as the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Food, Conservation, and Energy Act of 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2007 Farm Bill" ) ), [2] = ", the bi-partisan immigration reform (led by ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ted Kennedy" ], title = - ), [6] = ") in 2007", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [8] = " and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Emergency Economic Stabilization Act of 2008" ], title = - ), [10] = ",", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [12] = ". He is also the Republican leader of the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gang of 10" ], title = - ), [14] = ", a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States." ], [4] = "\n\n" ] ), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Interest groups ratings" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "On abortion issues, the ratings given Chambliss as of 2007 by ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nrlc" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "National Right to Life Committee" ) ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NARAL" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NARAL Pro-Choice America" ) ), [4] = " identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "On ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Second Amendment to the United States Constitution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2nd Amendment" ) ), [2] = " issues, in 2008, the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Rifle Association" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NRA" ) ), [4] = " gave Chambliss an \"A+\" rating and the NRA also endorsed him.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "On agricultural issues, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Farm Bureau" ], title = - ), [2] = " gave Chambliss its \"Friend of the Farm Bureau\" award throughout his service in the U.S. Senate.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [2] = " and the group ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Americans for Tax Reform" ], title = - ), [4] = " gave him a 100% rating.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "On civil liberties and civil rights issues, in 2007, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Civil Liberties Union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Civil Liberties Union (ACLU)" ) ), [2] = " gave him a 17% rating,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NAACP" ], title = - ), [6] = " gave him a 27% rating.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = "On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a \"real reformer\",", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [2] = " while the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Education Association" ], title = - ), [4] = " gave him an \"F\" in 2007.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = "On organized labor issues, in 2007 the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "AFL-CIO" ], title = - ), [2] = " gave Chambliss a 11% rating,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "International Foodservice Distributors Association" ], title = - ), [6] = " gave him an 85% rating.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ) ], [14] = "\n\n", [15] = WtParagraph[ [0] = "On environmental issues, in 2003 the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "LCV" ], title = - ), [2] = " gave Chambliss a 0% rating.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ) ], [16] = "\n\n" ] ) ] ) ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Electoral history" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "boilerplate seealso" ] ) ], body = WtBody[ [0] = "See also: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ) ] ), [3] = "\n", [4] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [2] = ": Results 1994\u20132000", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Year" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Democrat" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Republican" ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [8] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [9] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1994" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1994" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Craig Mathis" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53,408" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "37%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "89,591" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "63%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1996" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1996" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Jim Wiggins" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "84,506" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "47%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "93,619" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1998" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1998" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Ronald L. Cain" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53,079" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "38%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "87,993" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "62%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 2000" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2000" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Marshall (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Marshall" ) ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "79,051" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "41%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "113,380" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "59%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ), [5] = "\n\n", [6] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ "|+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia Senator (Class II)" ) ), [2] = ": 2002 results", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Year" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Democrat" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Republican" ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [8] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [9] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [10] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "3rd Party" ], [1] = "\n" ] ), [11] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Party" ], [1] = "\n" ] ), [12] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [13] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [14] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Senate election, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2002" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "932,422" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "46%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ] ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1,071,352" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [10] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Claude \"Sandy\" Thomas" ], [1] = "\n" ] ), [11] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Libertarian Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ) ], [1] = "\n" ] ), [12] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "27,830" ], [1] = "\n" ] ), [13] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1%" ], [1] = "\n" ] ), [14] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ), [7] = "\n", [8] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2008 Georgia U.S. Senator general election runoff", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ) ], [1] = "\n\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Party" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 17em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Candidate" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "%" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "\u00B1%" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Saxby Chambliss (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "incumbent" ], title = - ), [2] = ")" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1,226,528" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 57.5%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 907,916" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 42.5%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n" ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Majority" ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 318,612" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 14.9%" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n" ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Voter turnout" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Turnout" ) ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2,134,444" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n" ] ) ] ) ] ), [9] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Commons-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " Wikimedia Commons has media related to: ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":commons:Category:Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ) ) ), [2] = " " ] ), [4] = "\n\n" ] ), [1] = "\n\n" ] ) ] ), [3] = "\n", [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "Chambliss for US Senate" ] ), [1] = ", ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "official campaign site" ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.youtube.com/saxbychambliss08" {P} protocol = "http" {P} rtd = RTD[ "http://www.youtube.com/saxbychambliss08" ] ), title = WtLinkTitle[ [0] = "Chambliss For Senate YouTube Channel" ] ), [1] = ", official YouTube Channel" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.facebook.com/enjoythego" {P} protocol = "http" {P} rtd = RTD[ "http://www.facebook.com/enjoythego" ] ), title = WtLinkTitle[ [0] = "Saxby Chambliss Facebook Page" ] ), [1] = ", Facebook Page" ) ], [5] = "\n", [6] = WtParagraph[], [7] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikiquote-logo-en.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikiquote" ], title = - ), [2] = " has a collection of quotations related to: ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":q:Special:Search/Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ) ) ), [4] = " " ] ), [4] = "\n\n" ] ), [1] = "\n\n" ] ) ] ), [8] = "\n", [9] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//chambliss.senate.gov/" {P} protocol = "http" {P} rtd = RTD[ "http://chambliss.senate.gov/" ] ), title = WtLinkTitle[ [0] = "United States Senator Saxby Chambliss" ] ), [1] = ", ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "official U.S. Senate site" ) ) ], [10] = "\n\n", [11] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" {P} protocol = "http" {P} rtd = RTD[ "http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = " at the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Biographical Directory of the United States Congress" ], title = - ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//projects.washingtonpost.com/congress/members/c000286" {P} protocol = "http" {P} rtd = RTD[ "http://projects.washingtonpost.com/congress/members/c000286" ] ), title = WtLinkTitle[ [0] = "Voting record" ] ), [2] = " maintained by ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Washington Post" ], title = - ) ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/bio.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/bio.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = ", ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/voting_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/voting_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "voting record" ] ), [4] = ", and ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "interest group ratings" ] ), [6] = " at ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Project Vote Smart" ], title = - ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.ontheissues.org/Senate/Saxby_Chambliss.htm" {P} protocol = "http" {P} rtd = RTD[ "http://www.ontheissues.org/Senate/Saxby_Chambliss.htm" ] ), title = WtLinkTitle[ [0] = "Issue positions and quotes" ] ), [2] = " at On The Issues" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.opensecrets.org/politicians/summary.php?CID=N00002685" {P} protocol = "http" {P} rtd = RTD[ "http://www.opensecrets.org/politicians/summary.php?CID=N00002685" ] ), title = WtLinkTitle[ [0] = "Financial information" ] ), [2] = " at ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Center for Responsive Politics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OpenSecrets.org" ) ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" {P} protocol = "http" {P} rtd = RTD[ "http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" ] ), title = WtLinkTitle[ [0] = "Campaign finance reports and data" ] ), [2] = " at the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Election Commission" ], title = - ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.sourcewatch.org/index.php?title=Saxby_Chambliss" {P} protocol = "http" {P} rtd = RTD[ "http://www.sourcewatch.org/index.php?title=Saxby_Chambliss" ] ), title = WtLinkTitle[ [0] = "SourceWatch Congresspedia \u2014 Saxby Chambliss" ] ), [1] = " profile" ) ], [12] = "\n\n", [13] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable succession-box" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em auto; font-size:95%;clear:both;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = - ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" " \n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Member", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "of", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "the", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [7] = " ", [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = "from ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "1995 \u2013 2003 " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ) ] ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" " \n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia " ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " United States Senator (Class 2) from Georgia" ) ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2003 ", [3] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [4] = " present ", [5] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Served alongside: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Incumbent" ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccccff;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Political offices" ], [1] = "\n\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" " \n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ) ] ) ] ) ], [1] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Chairman of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [2] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2005 \u2013 2007 " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ) ] ) ] ) ], [1] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccffcc;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States order of precedence" ], title = - ) ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" " \n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Jersey" ], title = - ) ] ) ] ) ], [1] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators by seniority" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators by seniority" ) ) ) ), [1] = WtBold( {P} rtd = RTD[ "" "'''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "61st " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Carolina" ], title = - ) ] ) ] ) ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [14] = "\n", [15] = WtParagraph[], [16] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators from Georgia" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 2" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Few" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Few" ) ), [2] = " \u2022 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [4] = " \u2022 ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Walton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walton" ) ), [6] = " \u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Josiah Tattnall (Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tattnall" ) ), [8] = " \u2022 ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abraham Baldwin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baldwin" ) ), [10] = " \u2022 ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Jones (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jones" ) ), [12] = " \u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William H. Crawford" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crawford" ) ), [14] = " \u2022 ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Bellinger Bulloch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bulloch" ) ), [16] = " \u2022 ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Wyatt Bibb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bibb" ) ), [18] = " \u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [20] = " \u2022 ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [22] = " \u2022 ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Freeman Walker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walker" ) ), [24] = " \u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicholas Ware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ware" ) ), [26] = " \u2022 ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Cobb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cobb" ) ), [28] = " \u2022 ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oliver H. Prince" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Prince" ) ), [30] = " \u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [32] = " \u2022 ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Pendleton King" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "King" ) ), [34] = " \u2022 ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wilson Lumpkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lumpkin" ) ), [36] = " \u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [38] = " \u2022 ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert M. Charlton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Charlton" ) ), [40] = " \u2022 ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Toombs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toombs" ) ), [42] = " \u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Homer V. M. Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "H. Miller" ) ), [44] = " \u2022 ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas M. Norwood" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Norwood" ) ), [46] = " \u2022 ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Benjamin Harvey Hill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "B. Hill" ) ), [48] = " \u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Middleton P. Barrow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrow" ) ), [50] = " \u2022 ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred H. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A. Colquitt" ) ), [52] = " \u2022 ", [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Walsh (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walsh" ) ), [54] = " \u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustus Octavius Bacon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bacon" ) ), [56] = " \u2022 ", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Stanley West" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West" ) ), [58] = " \u2022 ", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Hardwick" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hardwick" ) ), [60] = " \u2022 ", [61] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William J. Harris" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harris" ) ), [62] = " \u2022 ", [63] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John S. Cohen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cohen" ) ), [64] = " \u2022 ", [65] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Russell, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Russell" ) ), [66] = " \u2022 ", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David H. Gambrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gambrell" ) ), [68] = " \u2022 ", [69] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sam Nunn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nunn" ) ), [70] = " \u2022 ", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cleland" ) ), [72] = " \u2022 ", [73] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:0%;padding:0px 0px 0px 2px;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "3" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 80 target = WtPageName[ [0] = "Image:Senate Seal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|80px" ] {P} width = 80 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate" ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 3" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Gunn (senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gunn" ) ), [2] = " \u2022 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [4] = " \u2022 ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Milledge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Milledge" ) ), [6] = " \u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Tait" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tait" ) ), [8] = " \u2022 ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Elliott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Elliott" ) ), [10] = " \u2022 ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [12] = " \u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [14] = " \u2022 ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Cuthbert" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cuthbert" ) ), [16] = " \u2022 ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter T. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "W. Colquitt" ) ), [18] = " \u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herschel Vespasian Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johnson" ) ), [20] = " \u2022 ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Crosby Dawson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Dawson" ) ), [22] = " \u2022 ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Iverson, Sr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iverson" ) ), [24] = " \u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joshua Hill (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "J. Hill" ) ), [26] = " \u2022 ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [28] = " \u2022 ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph E. Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Brown" ) ), [30] = " \u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [32] = " \u2022 ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexander S. Clay" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Clay" ) ), [34] = " \u2022 ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph M. Terrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Terrell" ) ), [36] = " \u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M. Hoke Smith" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Smith" ) ), [38] = " \u2022 ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas E. Watson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Watson" ) ), [40] = " \u2022 ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rebecca Latimer Felton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Felton" ) ), [42] = " \u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter F. George" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "George" ) ), [44] = " \u2022 ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herman Talmadge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talmadge" ) ), [46] = " \u2022 ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mack Mattingly" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mattingly" ) ), [48] = " \u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyche Fowler" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Fowler" ) ), [50] = " \u2022 ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Coverdell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coverdell" ) ), [52] = " \u2022 ", [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Z. Miller" ) ), [54] = " \u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [17] = "\n", [18] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia's current delegation" ) ), [1] = " to the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "112th United States Congress" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Congress" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senators" ) ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ), [2] = " (R), ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [4] = " (R)" ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Representatives" ) ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [2] = " (R), ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sanford Bishop" ], title = - ), [4] = " (D), ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lynn Westmoreland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lynn", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Westmoreland" ) ), [6] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [7] = "(R), ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hank Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hank", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Johnson" ) ), [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "(D), ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Lewis (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Lewis" ) ), [12] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [13] = "(D), ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Price (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Price" ) ), [15] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [16] = "(R), ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Woodall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rob", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Woodall" ) ), [18] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [19] = "(R), ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austin Scott (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austin", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [21] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [22] = "(R), ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Graves (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Graves" ) ), [24] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [25] = "(R), ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Broun" ], title = - ), [27] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [28] = "(R), ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phil Gingrey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Phil", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Gingrey" ) ), [30] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [31] = "(R), ", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrow (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Barrow" ) ), [33] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [34] = "(D), ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Scott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "David", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [36] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [37] = "(D)" ] ) ] ) ] ), [5] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [6] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = "Other states' delegations" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alabama" ) ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "\u2022 ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alaska" ) ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "\u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arizona" ) ), [8] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [9] = "\u2022 ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arkansas" ) ), [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "\u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "California" ) ), [14] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [15] = "\u2022 ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Colorado" ) ), [17] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [18] = "\u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Connecticut" ) ), [20] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [21] = "\u2022 ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Delaware" ) ), [23] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [24] = "\u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Florida" ) ), [26] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [27] = "\u2022 ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [29] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [30] = "\u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hawaii" ) ), [32] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [33] = "\u2022 ", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Idaho" ) ), [35] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [36] = "\u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Illinois" ) ), [38] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [39] = "\u2022 ", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indiana" ) ), [41] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [42] = "\u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iowa" ) ), [44] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [45] = "\u2022 ", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kansas" ) ), [47] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [48] = "\u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kentucky" ) ), [50] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [51] = "\u2022 ", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Louisiana" ) ), [53] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [54] = "\u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maine" ) ), [56] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [57] = "\u2022 ", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maryland" ) ), [59] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [60] = "\u2022 ", [61] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Massachusetts" ) ), [62] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [63] = "\u2022 ", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Michigan" ) ), [65] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [66] = "\u2022 ", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Minnesota" ) ), [68] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [69] = "\u2022 ", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mississippi" ) ), [71] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [72] = "\u2022 ", [73] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Missouri" ) ), [74] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [75] = "\u2022 ", [76] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Montana" ) ), [77] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [78] = "\u2022 ", [79] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nebraska" ) ), [80] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [81] = "\u2022 ", [82] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nevada" ) ), [83] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [84] = "\u2022 ", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Hampshire" ) ), [86] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [87] = "\u2022 ", [88] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Jersey" ) ), [89] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [90] = "\u2022 ", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Mexico" ) ), [92] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [93] = "\u2022 ", [94] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New York" ) ), [95] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [96] = "\u2022 ", [97] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Carolina" ) ), [98] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [99] = "\u2022 ", [100] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Dakota" ) ), [101] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [102] = "\u2022 ", [103] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ohio" ) ), [104] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [105] = "\u2022 ", [106] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oklahoma" ) ), [107] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [108] = "\u2022 ", [109] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oregon" ) ), [110] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [111] = "\u2022 ", [112] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pennsylvania" ) ), [113] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [114] = "\u2022 ", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rhode Island" ) ), [116] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [117] = "\u2022 ", [118] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Carolina" ) ), [119] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [120] = "\u2022 ", [121] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Dakota" ) ), [122] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [123] = "\u2022 ", [124] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tennessee" ) ), [125] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [126] = "\u2022 ", [127] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Texas" ) ), [128] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [129] = "\u2022 ", [130] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Utah" ) ), [131] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [132] = "\u2022 ", [133] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vermont" ) ), [134] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [135] = "\u2022 ", [136] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Virginia" ) ), [137] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [138] = "\u2022 ", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [140] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [141] = "\u2022 ", [142] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West Virginia" ) ), [143] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [144] = "\u2022 ", [145] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wisconsin" ) ), [146] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [147] = "\u2022 ", [148] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyoming" ) ), [149] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [150] = "\u2022 ", [151] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Non", [1] = WtXmlCharRef( {P} codePoint = 8209 {P} rtd = RTD[ "‑" ] ), [2] = "voting:" ) ] ), [152] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [153] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of Delegates to the United States House of Representatives from American Samoa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Samoa" ) ), [154] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [155] = "\u2022 ", [156] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the District of Columbia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "District of Columbia" ) ), [157] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [158] = "\u2022 ", [159] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guam's At-large congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Guam" ) ), [160] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [161] = "\u2022 ", [162] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the Northern Mariana Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Northern Mariana Islands" ) ), [163] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [164] = "\u2022 ", [165] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Resident Commissioner of Puerto Rico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Puerto Rico" ) ), [166] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [167] = "\u2022 ", [168] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the United States Virgin Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S. Virgin Islands" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [19] = "\n", [20] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = "Chairpersons and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ranking member" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ranking Members" ) ), [2] = " of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional committee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "committees" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:100%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight:bold;" ] ) ], body = WtBody[ [0] = "Chairpersons (Democratic)" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;font-weight:bold;" ] ) ], body = WtBody[ [0] = "Ranking Members (Republican)" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = - ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [4] = ") ", [5] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [6] = " ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = - ) ), [10] = " (", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [12] = ") ", [13] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [14] = " ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ) ), [16] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [17] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = - ) ), [18] = " (", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [20] = ") ", [21] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [22] = " ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ) ), [24] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [25] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tim Johnson" ) ) ), [26] = " (", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Dakota" ], title = - ), [28] = ") ", [29] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [30] = " ", [31] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ) ), [32] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [33] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = - ) ), [34] = " (", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Dakota" ], title = - ), [36] = ") ", [37] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [38] = " ", [39] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ) ), [40] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [41] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = - ) ), [42] = " (", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Virginia" ], title = - ), [44] = ") ", [45] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [46] = " ", [47] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ) ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = - ) ), [50] = " (", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Mexico" ], title = - ), [52] = ") ", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [54] = " ", [55] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ) ), [56] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [57] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ), [58] = " (", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [60] = ") ", [61] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [62] = " ", [63] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ) ), [64] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [65] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = - ) ), [66] = " (", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Montana" ], title = - ), [68] = ") ", [69] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [70] = " ", [71] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ) ), [72] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [73] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = - ) ), [74] = " (", [75] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Massachusetts" ], title = - ), [76] = ") ", [77] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [78] = " ", [79] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ) ), [80] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [81] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ), [82] = " (", [83] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [84] = ") ", [85] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [86] = " ", [87] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ) ), [88] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [89] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = - ) ), [90] = " (", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Connecticut" ], title = - ), [92] = ") ", [93] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [94] = " ", [95] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ) ), [96] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [97] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = - ) ), [98] = " (", [99] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [100] = ") ", [101] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [102] = " ", [103] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ) ), [104] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = - ) ), [106] = " (", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vermont" ], title = - ), [108] = ") ", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [110] = " ", [111] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ) ), [112] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [113] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = - ) ), [114] = " (", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New York" ], title = - ), [116] = ") ", [117] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [118] = " ", [119] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ) ), [120] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [121] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = - ) ), [122] = " (", [123] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [124] = ") ", [125] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [126] = " ", [127] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ) ), [128] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [129] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = - ) ), [130] = " (", [131] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Washington (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [132] = ") ", [133] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [134] = " ", [135] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ) ), [136] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [137] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ), [138] = " (", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [140] = ") ", [141] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [142] = " ", [143] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [1] = " (Select)" ), [144] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [145] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = - ) ), [146] = " (", [147] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [148] = ") ", [149] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [150] = " ", [151] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [1] = " (Select)" ), [152] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [153] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = - ) ), [154] = " (", [155] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wisconsin" ], title = - ), [156] = ") ", [157] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [158] = " ", [159] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [1] = " (Special)" ), [160] = "\n" ] ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = - ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kansas" ], title = - ), [4] = ") ", [5] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [6] = " ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ), [10] = " (", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ), [12] = ") ", [13] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [14] = " ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ) ), [16] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [17] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ) ), [18] = " (", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [20] = ") ", [21] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [22] = " ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ) ), [24] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [25] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = - ) ), [26] = " (", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [28] = ") ", [29] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [30] = " ", [31] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ) ), [32] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [33] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = - ) ), [34] = " (", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [36] = ") ", [37] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [38] = " ", [39] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ) ), [40] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [41] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = - ) ), [42] = " (", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Texas" ], title = - ), [44] = ") ", [45] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [46] = " ", [47] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ) ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = - ) ), [50] = " (", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alaska" ], title = - ), [52] = ") ", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [54] = " ", [55] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ) ), [56] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [57] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = - ) ), [58] = " (", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oklahoma" ], title = - ), [60] = ") ", [61] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [62] = " ", [63] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ) ), [64] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [65] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = - ) ), [66] = " (", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Utah" ], title = - ), [68] = ") ", [69] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [70] = " ", [71] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ) ), [72] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [73] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = - ) ), [74] = " (", [75] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Indiana" ], title = - ), [76] = ") ", [77] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [78] = " ", [79] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ) ), [80] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [81] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = - ) ), [82] = " (", [83] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [84] = ") ", [85] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [86] = " ", [87] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ) ), [88] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [89] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = - ) ), [90] = " (", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [92] = ") ", [93] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [94] = " ", [95] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ) ), [96] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [97] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = - ) ), [98] = " (", [99] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [100] = ") ", [101] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [102] = " ", [103] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ) ), [104] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = - ) ), [106] = " (", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [108] = ") ", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [110] = " ", [111] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ) ), [112] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [113] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = - ) ), [114] = " (", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [116] = ") ", [117] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [118] = " ", [119] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ) ), [120] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [121] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = - ) ), [122] = " (", [123] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [124] = ") ", [125] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [126] = " ", [127] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ) ), [128] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [129] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = - ) ), [130] = " (", [131] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ), [132] = ") ", [133] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [134] = " ", [135] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ) ), [136] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [137] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ), [138] = " (", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [140] = ") ", [141] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [142] = " ", [143] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [1] = " (Select)" ), [144] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [145] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ) ), [146] = " (", [147] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [148] = ") ", [149] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [150] = " ", [151] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [1] = " (Select)" ), [152] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [153] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = - ) ), [154] = " (", [155] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [156] = ") ", [157] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [158] = " ", [159] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [1] = " (Special)" ), [160] = "\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [21] = "\n", [22] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Current members of the United States Senate" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:auto;margin-left:auto;margin-right:auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:5em;" ] ) ], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AL" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shelby" ) ), [1] = " (R)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sessions" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AK" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murkowski" ) ), [1] = " (R)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Begich" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Begich" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AZ" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCain" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Kyl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kyl" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AR" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Pryor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pryor" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Boozman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boozman" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CA" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Feinstein" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boxer" ) ), [1] = " (D)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CO" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "M. Udall" ) ), [1] = " (D)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michael Bennet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bennet" ) ), [1] = " (D)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CT" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lieberman" ) ), [1] = " (I)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Blumenthal" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blumenthal" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DE" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Carper" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Carper" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chris Coons" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coons" ) ), [1] = " (D)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "FL" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bill Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "C.W. Nelson" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marco Rubio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rubio" ) ), [1] = " (R)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "GA" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ), [1] = " (R)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ), [1] = " (R)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HI" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inouye" ) ), [1] = " (D)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Akaka" ) ), [1] = " (D)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ID" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Crapo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crapo" ) ), [1] = " (R)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Risch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Risch" ) ), [1] = " (R)" ] ), [83] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [84] = "\n", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IL" ) ), [86] = ":\n", [87] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dick Durbin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Durbin" ) ), [1] = " (D)" ] ), [88] = ",\n", [89] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Kirk" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kirk" ) ), [1] = " (R)" ] ), [90] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [91] = "\n" ] ) ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IN" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lugar" ) ), [1] = " (R)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dan Coats" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coats" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IA" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grassley" ) ), [1] = " (R)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harkin" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KS" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roberts" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jerry Moran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Moran" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KY" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mitch McConnell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McConnell" ) ), [1] = " (R)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rand Paul" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "LA" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Landrieu" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Vitter" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vitter" ) ), [1] = " (R)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ME" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Snowe" ) ), [1] = " (R)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Collins" ) ), [1] = " (R)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MD" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Mikulski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mikulski" ) ), [1] = " (D)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Cardin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cardin" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MA" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kerry" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scott Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.P. Brown" ) ), [1] = " (R)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MI" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Levin" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stabenow" ) ), [1] = " (D)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MN" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amy Klobuchar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Klobuchar" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Al Franken" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Franken" ) ), [1] = " (D)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MS" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cochran" ) ), [1] = " (R)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roger Wicker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wicker" ) ), [1] = " (R)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MO" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claire McCaskill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCaskill" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roy Blunt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blunt" ) ), [1] = " (R)" ] ), [83] = "\n" ] ) ] ), [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MT" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baucus" ) ), [1] = " (D)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Tester" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tester" ) ), [1] = " (D)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NE" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "E.B. Nelson" ) ), [1] = " (D)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Johanns" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johanns" ) ), [1] = " (R)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NV" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Harry Reid" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reid" ) ), [1] = " (D)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Ensign" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ensign" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NH" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeanne Shaheen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shaheen" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kelly Ayotte" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ayotte" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NJ" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lautenberg" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Menendez" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Menendez" ) ), [1] = " (D)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NM" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bingaman" ) ), [1] = " (D)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Udall" ) ), [1] = " (D)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NY" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Schumer" ) ), [1] = " (D)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kirsten Gillibrand" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gillibrand" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NC" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Burr" ) ), [1] = " (R)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Hagan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hagan" ) ), [1] = " (D)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ND" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Conrad" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Hoeven" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hoeven" ) ), [1] = " (R)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OH" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sherrod Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.C. Brown" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Portman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Portman" ) ), [1] = " (R)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OK" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inhofe" ) ), [1] = " (R)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Coburn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coburn" ) ), [1] = " (R)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OR" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Wyden" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyden" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Merkley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Merkley" ) ), [1] = " (D)" ] ), [83] = "\n" ] ) ] ), [4] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "PA" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Casey, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Casey" ) ), [1] = " (D)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Toomey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toomey" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "RI" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Reed (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reed" ) ), [1] = " (D)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sheldon Whitehouse" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Whitehouse" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SC" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Graham" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim DeMint" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DeMint" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SD" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Johnson" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Thune" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Thune" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TN" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alexander" ) ), [1] = " (R)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Corker" ) ), [1] = " (R)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TX" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hutchison" ) ), [1] = " (R)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Cornyn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cornyn" ) ), [1] = " (R)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "UT" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hatch" ) ), [1] = " (R)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Lee (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lee" ) ), [1] = " (R)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VT" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Leahy" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernie Sanders" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sanders" ) ), [1] = " (I)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VA" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Webb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Webb" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Warner" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warner" ) ), [1] = " (D)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WA" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murray" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maria Cantwell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cantwell" ) ), [1] = " (D)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WV" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rockefeller" ) ), [1] = " (D)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Manchin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Manchin" ) ), [1] = " (D)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WI" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kohl" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Johnson (Wisconsin politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R. Johnson" ) ), [1] = " (R)" ] ), [83] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [84] = "\n", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WY" ) ), [86] = ":\n", [87] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Enzi" ) ), [1] = " (R)" ] ), [88] = ",\n", [89] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrasso" ) ), [1] = " (R)" ] ), [90] = "\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic (51)" ) ) ] ), [1] = " \u2022 ", [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican (47)" ) ) ] ), [3] = " \u2022 ", [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Independent (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Independent (2)" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [23] = "\n\n" ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "References" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "reflist references-column-count references-column-count-2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; list-style-type: decimal;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "references" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "group" ], value = WtValue[] ) ], body = WtBody[] ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:1943 births" ], title = - ), [2] = "\n", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:20th-century American Episcopalians" ], title = - ), [4] = "\n", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:21st-century American Episcopalians" ], title = - ), [6] = "\n", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) lawyers" ], title = - ), [8] = "\n", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Living people" ], title = - ), [10] = "\n", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Members of the United States House of Representatives from Georgia (U.S. state)" ], title = - ), [12] = "\n", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Warren County, North Carolina" ], title = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:United States Senators from Georgia (U.S. state)" ], title = - ), [16] = "\n", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Georgia alumni" ], title = - ), [18] = "\n", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Tennessee alumni" ], title = - ), [20] = "\n", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:C. E. Byrd High School alumni" ], title = - ), [22] = "\n", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Shreveport, Louisiana" ], title = - ), [24] = "\n", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) Republicans" ], title = - ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:Saxby Chambliss" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:Saxby Chambliss" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ga:Saxby Chambliss" ], title = - ), [5] = "\n", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "it:Saxby Chambliss" ], title = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:Saxby Chambliss" ], title = - ), [9] = "\n", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "no:Saxby Chambliss" ], title = - ), [11] = "\n", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pl:Saxby Chambliss" ], title = - ), [13] = "\n", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Saxby Chambliss" ], title = - ), [15] = "\n", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sv:Saxby Chambliss" ], title = - ) ], [7] = "\n" ] ) ) raw-ASDF.ast000066400000000000000000000114461335270560400471270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "disambig" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "asdf" ), [1] = " or ", [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "ASDF" ), [3] = " may refer to " ], [1] = "\n", [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama State Defense Force" ], title = - ), [2] = ", a military entity" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alaska State Defense Force" ], title = - ), [2] = ", a military entity" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Another System Definition Facility" ], title = - ), [2] = ", the most commonly used build system for Common Lisp" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Association of Synchronous Data Formats" ], title = - ), [2] = ", an organization that advances the use of synchronous data transmission technology" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Average Squared Difference Function, a mapping used in ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "pitch detection algorithm" ], title = - ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " asdf, the first four letters in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "home row" ], title = - ), [2] = " on a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "QWERTY" ], title = - ), [4] = " keyboard" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " asdf movie, a series of ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "viral video" ], title = - ) ), [7] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Asdf.com is a random chat board where the point is to not always stay on topic." ) ], [3] = "\n", [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " See also " ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hoverboard ASDF" ], title = - ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Japan Air Self-Defense Force" ], title = - ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "QWERTY" ], title = - ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Initialisms" ], title = - ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "disambig" ], args = WtTemplateArguments[] ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:ASDF" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:ASDF" ], title = - ) ], [6] = "\n" ] ) ) raw-Germany.ast000066400000000000000000033763711335270560400500320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Dablink" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]]." ] ) ] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Use dmy dates" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "date" ], value = WtValue[ [0] = "January 2011" ] ) ] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "pp-semi-protected" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "small" ], value = WtValue[ [0] = "yes" ] ) ] ), [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "pp-move-indef" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Featured article" ], args = WtTemplateArguments[] ), [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox country\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "native_name" ], value = WtValue[ [0] = "", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''Bundesrepublik Deutschland''" ] ) ] ), [2] = "\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "conventional_long_name" ], value = WtValue[ [0] = "Federal Republic of Germany\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "common_name" ], value = WtValue[ [0] = "Germany\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "national_anthem" ], value = WtValue[ [0] = "
    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Deutschlandlied|Das Lied der Deutschen]]''" ] ) ] ), [2] = "\n" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_flag" ], value = WtValue[ [0] = "Flag of Germany.svg\n" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_coat" ], value = WtValue[ [0] = "Coat of Arms of Germany.svg\n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_map" ], value = WtValue[ [0] = "EU-Germany.svg\n" ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "map_caption" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "map_caption" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "location_color" ], value = WtValue[ [0] = "dark green" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "region" ], value = WtValue[ [0] = "Europe" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "region_color" ], value = WtValue[ [0] = "dark grey" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "subregion" ], value = WtValue[ [0] = "the [[European Union]]" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "subregion_color" ], value = WtValue[ [0] = "green" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "legend" ], value = WtValue[ [0] = "EU-Germany.svg" ] ) ] ), [1] = "\n" ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "official_languages" ], value = WtValue[ [0] = "[[German language|German]] ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ) ] ), [2] = "\n" ] ), [9] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "demonym" ], value = WtValue[ [0] = "German\n" ] ), [10] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "capital" ], value = WtValue[ [0] = "[[Berlin]]\n" ] ), [11] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latd" ], value = WtValue[ [0] = "52" ] ), [12] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latm" ], value = WtValue[ [0] = "31" ] ), [13] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latNS" ], value = WtValue[ [0] = "N" ] ), [14] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longd" ], value = WtValue[ [0] = "13" ] ), [15] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longm" ], value = WtValue[ [0] = "23" ] ), [16] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longEW" ], value = WtValue[ [0] = "E\n" ] ), [17] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "largest_city" ], value = WtValue[ [0] = "capital\n" ] ), [18] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "government_type" ], value = WtValue[ [0] = "[[Federal republic|Federal]] [[parliamentary republic]]\n" ] ), [19] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title1" ], value = WtValue[ [0] = "[[President of Germany|President (Head of State)]]\n" ] ), [20] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name1" ], value = WtValue[ [0] = "[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [21] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title2" ], value = WtValue[ [0] = "[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]]\n" ] ), [22] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name2" ], value = WtValue[ [0] = "[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [23] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title3" ], value = WtValue[ [0] = "[[President of the Bundestag]]\n" ] ), [24] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name3" ], value = WtValue[ [0] = "[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [25] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title4" ], value = WtValue[ [0] = "[[President of the Bundesrat]]\n" ] ), [26] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name4" ], value = WtValue[ [0] = "[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]])\n" ] ), [27] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "sovereignty_type" ], value = WtValue[ [0] = "[[Kingdom of Germany|Formation]]\n" ] ), [28] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "sovereignty_note" ], value = WtValue[ [0] = "\n" ] ), [29] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event1" ], value = WtValue[ [0] = "[[Holy Roman Empire]]\n" ] ), [30] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date1" ], value = WtValue[ [0] = "2 February 962\n" ] ), [31] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event2" ], value = WtValue[ [0] = "[[Unification of Germany|Unification]]\n" ] ), [32] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date2" ], value = WtValue[ [0] = "18 January 1871\n" ] ), [33] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event3" ], value = WtValue[ [0] = "[[History of Germany|Federal Republic]]\n" ] ), [34] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date3" ], value = WtValue[ [0] = "23 May 1949\n" ] ), [35] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event4" ], value = WtValue[ [0] = "[[German reunification|Reunification]]\n" ] ), [36] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date4" ], value = WtValue[ [0] = "3 October 1990\n" ] ), [37] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "accessionEUdate" ], value = WtValue[ [0] = "25 March 1957\n" ] ), [38] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EUseats" ], value = WtValue[ [0] = "99\n" ] ), [39] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_km2" ], value = WtValue[ [0] = "357,021\n" ] ), [40] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_sq_mi" ], value = WtValue[ [0] = "137,847 ", [1] = WtXmlComment( {P} content = "Do not remove per [[WP:MOSNUM]]" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = "\n" ] ), [41] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_rank" ], value = WtValue[ [0] = "63rd\n" ] ), [42] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_magnitude" ], value = WtValue[ [0] = "1 E11\n" ] ), [43] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "percent_water" ], value = WtValue[ [0] = "2.416\n" ] ), [44] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate " ], value = WtValue[ [0] = " 81,757,600\n" ] ), [45] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_year " ], value = WtValue[ [0] = " 2010\n" ] ), [46] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_rank " ], value = WtValue[ [0] = " 15th\n" ] ), [47] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_census " ], value = WtValue[ [0] = "\n" ] ), [48] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_census_year " ], value = WtValue[ [0] = "\n" ] ), [49] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_year " ], value = WtValue[ [0] = " Jan. 1, 2010\n" ] ), [50] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_rank " ], value = WtValue[ [0] = " 15th\n" ] ), [51] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_km2 " ], value = WtValue[ [0] = " 229\n" ] ), [52] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_sq_mi " ], value = WtValue[ [0] = " 593 ", [1] = WtXmlComment( {P} content = "Do not remove per [[WP:MOSNUM]]" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = "\n" ] ), [53] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_rank " ], value = WtValue[ [0] = " 55th\n" ] ), [54] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_year " ], value = WtValue[ [0] = " 2010\n" ] ), [55] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP " ], value = WtValue[ [0] = " $2.932 trillion", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = WtTagExtensionBody("{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}}") ), [2] = "\n" ] ), [56] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_rank" ], value = WtValue[ [0] = "\n" ] ), [57] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_per_capita" ], value = WtValue[ [0] = "$35,930", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [58] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_per_capita_rank" ], value = WtValue[ [0] = "\n" ] ), [59] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal" ], value = WtValue[ [0] = "$3.305 trillion", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [60] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_rank" ], value = WtValue[ [0] = "\n" ] ), [61] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_year" ], value = WtValue[ [0] = "2010\n" ] ), [62] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_per_capita" ], value = WtValue[ [0] = "$40,511", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [63] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_per_capita_rank" ], value = WtValue[ [0] = "\n" ] ), [64] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_year" ], value = WtValue[ [0] = "2010\n" ] ), [65] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "increase" ], args = WtTemplateArguments[] ), [1] = " 0.885", [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "UNDP" ] ) ], body = WtTagExtensionBody("{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}}") ), [3] = "\n" ] ), [66] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_rank" ], value = WtValue[ [0] = "10th\n" ] ), [67] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_category" ], value = WtValue[ [0] = "very high\n" ] ), [68] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini" ], value = WtValue[ [0] = "27 ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Update after" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2011" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "04" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "reason" ], value = WtValue[ [0] = "Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ " ] ) ] ), [2] = "\n" ] ), [69] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini_year" ], value = WtValue[ [0] = "2006\n" ] ), [70] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini_category" ], value = WtValue[ [0] = "low\n" ] ), [71] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "currency" ], value = WtValue[ [0] = "[[Euro]] ([[Euro sign|\u20AC]])", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2" ] ) ] ), [2] = "(2002 \u2013 present)\n" ] ), [72] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "currency_code" ], value = WtValue[ [0] = "EUR\n" ] ), [73] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "time_zone" ], value = WtValue[ [0] = "CET\n" ] ), [74] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "utc_offset" ], value = WtValue[ [0] = "+1\n" ] ), [75] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "time_zone_DST" ], value = WtValue[ [0] = "CEST\n" ] ), [76] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "utc_offset_DST" ], value = WtValue[ [0] = "+2\n" ] ), [77] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "drives_on" ], value = WtValue[ [0] = "right\n" ] ), [78] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "cctld" ], value = WtValue[ [0] = " [[.de]] ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3" ] ) ] ), [2] = "\n" ] ), [79] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "calling_code" ], value = WtValue[ [0] = "[[Telephone numbers in Germany|49]]\n" ] ), [80] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_alpha2" ], value = WtValue[ [0] = "DE\n" ] ), [81] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_alpha3" ], value = WtValue[ [0] = "DEU\n" ] ), [82] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_numeric" ], value = WtValue[ [0] = "?\n" ] ), [83] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "alt_sport_code" ], value = WtValue[ [0] = "GER\n" ] ), [84] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "vehicle_code" ], value = WtValue[ [0] = "D\n" ] ), [85] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "aircraft_code" ], value = WtValue[ [0] = "D\n" ] ), [86] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote1" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ) ] ), [1] = " Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]].\n" ] ), [87] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote2" ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2" ] ) ] ), [2] = " Before 2002: [[Deutsche Mark]] (DEM).\n" ] ), [88] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote3" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3" ] ) ] ), [1] = " Also [[.eu]], shared with other [[European Union]] member states.\n" ] ) ] ), [6] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "IPAc-en" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "En-uk-Germany.ogg" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u02C8" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "d\u0292" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u025Cr" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u0259n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "i" ] ) ] ), [7] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang-de" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Bundesrepublik Deutschland" ] ) ] ), [8] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "IPA-de" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u02C8b\u028And\u0259s\u0281epu\u02CCbli\u02D0k \u02C8d\u0254\u028Ft\u0283lant" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "pron" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "De-Bundesrepublik_Deutschland.ogg" ] ) ] ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Duden6" ] ) ], body = WtTagExtensionBody("{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachew\u00F6rterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}") ), [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "group" ], value = WtValue[ [0] = "note" ] ) ], body = WtTagExtensionBody("The country's long name in its [[Languages of Germany|regional languages]] include:\n*{{lang-dsb|Nimska zw\u011Bzkowa republika}};\n*{{lang-hsb|N\u011Bmska zwjazkowa republika}};\n*{{lang-da|Forbundsrepublikken Tyskland}};\n*{{lang-nds| Bundsrepubliek D\u00FC\u00FCtschland}};\n*{{lang-rmy|I Federalni Republika Jermaniya}};\n*[[Frisian language|Frisian]]: B\u00FBnsrepublyk D\u00FAtsl\u00E2n;\n*[[Palatinate German]]: Bundesrepublik vun Daitschlond") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "population" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}}") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}}") ), [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}") ), [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "euroc" ] ) ], body = WtTagExtensionBody("{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}") ), [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }}") ), [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }}") ), [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}}") ), [18] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }}") ), [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008.") ), [20] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany" ] ) ] ), [21] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Names of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of country name etymologies" ] ) ] ), [22] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book|last = St\u00FCmpel|first = Gustav|title = Name und Nationalit\u00E4t der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}}") ), [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}") ), [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}") ), [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}}") ), [26] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germanic peoples" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germania" ] ) ] ), [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Claster" ] ) ], body = WtTagExtensionBody("{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300\u20131400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }}") ), [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Cambridge ancient history" ] ) ], body = WtTagExtensionBody("{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193\u2013337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}}") ), [29] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Migration Period" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Franks" ] ) ] ), [30] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Holy Roman Empire" ] ) ] ), [31] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "See also" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Medieval demography" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Ostsiedlung" ] ) ] ), [32] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315\u20131317) and the Black Death (1346\u20131351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }}") ), [33] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]].") ), [34] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }}") ), [35] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "concise h" ] ) ], body = WtTagExtensionBody("{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }}") ), [36] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German Confederation" ] ) ] ), [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815\u20131866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006.") ), [38] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German Empire" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "World War I" ] ) ] ), [39] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Kleindeutsche L\u00F6sung|''Kleindeutschland'']]" ] ) ] ), [40] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Gr\u00FCnderzeit]]''" ] ) ] ), [41] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }}") ), [42] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "lee h" ] ) ], body = WtTagExtensionBody("{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890\u20131945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}}") ), [43] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Weimar Republic" ] ) ] ), [44] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Dolchsto\u00DFlegende]]''" ] ) ] ), [45] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Council communism|R\u00E4terepublik]]''" ] ) ] ), [46] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Nazi Germany" ] ) ] ), [47] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Erm\u00E4chtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. M\u00E4rz 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.") ), [48] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsf\u00E4higkeit Deutschlands herbeif\u00FChren. . . .Bereits im Februar 1933 erkl\u00E4rte Hitler, dass alle \u00F6ffentlichen Ma\u00DFnahmen zur Arbeitsbeschaffung zugleich der \"Wehrhaftmachung\" zu dienen h\u00E4tten und den Interessen des Staates untergeordnet seien. . . .}}") ), [49] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Steinberg, Heinz G\u00FCnter. ''Die Bev\u00F6lkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem \u00DCberblick \u00FCber die Entwicklung von 1945 bis 1990.'' Bonn 1991.") ), [50] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45\u201352.") ), [51] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }}") ), [52] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]\". Professor Richard Overy. BBC History.") ), [53] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Clear" ], args = WtTemplateArguments[] ), [54] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany (1945\u20131990)" ] ) ] ), [55] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409\u2013412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31\u201332 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}") ), [56] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "provisional" ] ) ], body = WtTagExtensionBody("{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}}") ), [57] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Wirtschaftswunder]]''" ] ) ] ), [58] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Grundgesetz]]''" ] ) ] ), [59] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }}") ), [60] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Ostpolitik]]''" ] ) ] ), [61] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany since 1990" ] ) ] ), [62] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "euroc" ] ) ], body = - ), [63] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.") ), [64] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006.") ), [65] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ARM" ] ) ], body = WtTagExtensionBody("Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006.") ), [66] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Geography of Germany" ] ) ] ), [67] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "357021" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [68] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "349223" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [69] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "7798" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [70] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2962" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "ft" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "disp" ], value = WtValue[ [0] = "s" ] ) ] ), [71] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3.54" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "ft" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "disp" ], value = WtValue[ [0] = "s" ] ) ] ), [72] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = WtTagExtensionBody("{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}}") ), [73] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "States of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of administrative divisions of Germany" ] ) ] ), [74] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "German Federal States" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "options" ], value = WtValue[ [0] = "float:left; font-size:90%; border:3px; max-width:480px; width:50%;" ] ) ] ), [75] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Sylt Rotes Kliff.jpg\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 177\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]]\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Coastal dunes\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Th\u00FCringerwald.JPG\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 210\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " [[Thuringian Forest]]s during wintertime\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Thuringian Forest\n\n" ] ) ] ), [76] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "30" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u00B0C" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u00B0F" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "lk" ], value = WtValue[ [0] = "on" ] ) ] ), [77] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08.") ), [78] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 202\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Hintersee.jpg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods.\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Alpine terrain\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 180\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Cervus elaphus 11.jpg\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " [[Red Deer|Deer]] are widespread species to be found in the wild.\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Red Deer\n" ] ) ] ), [79] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000.") ), [80] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008.") ), [81] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008.") ), [82] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009.") ), [83] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 200\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Aquila chrysaetos Flickr.jpg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]].\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Eagle\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 185\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " HeideblueteTiefental.JPG\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " The [[L\u00FCneburg Heath Nature Reserve]] in [[Lower Saxony]]\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " L\u00FCneburg Heath\n" ] ) ] ), [84] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004.") ), [85] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}}") ), [86] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007.") ), [87] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008.") ), [88] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Politics of Germany" ] ) ] ), [89] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Art 79" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}}") ), [90] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006.") ), [91] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Judiciary of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Law enforcement in Germany" ] ) ] ), [92] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007.") ), [93] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html \u00A7 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009.") ), [94] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Foreign relations of Germany" ] ) ] ), [95] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010.") ), [96] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006.") ), [97] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007.") ), [98] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and D\u00E9tente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American d\u00E9tente and German ostpolitik, 1969\u20131972\".") ), [99] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006.") ), [100] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006.") ), [101] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006.") ), [102] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "econ_factsheet_may2006" ] ) ], body = WtTagExtensionBody("{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006.") ), [103] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}}") ), [104] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006.") ), [105] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008.") ), [106] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD") ), [107] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Bundeswehr" ] ) ] ), [108] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = - ), [109] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz f\u00FCr die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}}") ), [110] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "As of" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2009" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "11" ] ) ] ), [111] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Bundeswehr1" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen \u2013 Die St\u00E4rke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}}") ), [112] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "clearleft" ], args = WtTemplateArguments[] ), [113] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Economy of Germany" ] ) ] ), [114] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}") ), [115] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}}") ), [116] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}}") ), [117] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"German Economy Experiences Record Growth in 2010\" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011]") ), [118] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010.") ), [119] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = - ), [120] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006.") ), [121] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "FR" ] ) ], body = WtTagExtensionBody("Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006.") ), [122] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}}") ), [123] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}}") ), [124] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}}") ), [125] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007.") ), [126] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010.") ), [127] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.") ), [128] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Transport in Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Rail transport in Germany" ] ) ] ), [129] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "adac" ] ) ], body = WtTagExtensionBody("{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}}") ), [130] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Gesch\u00E4ftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009.") ), [131] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Energy in Germany" ] ) ] ), [132] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007.") ), [133] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German inventors and discoverers" ] ) ] ), [134] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.") ), [135] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}}") ), [136] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}") ), [137] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007.") ), [138] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007.") ), [139] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08.") ), [140] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Science and technology in Germany" ] ) ] ), [141] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany \u2013 A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006.") ), [142] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009.") ), [143] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.") ), [144] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("National Science Nobel Prize shares 1901\u20132009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[J\u00FCrgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1]") ), [145] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0.") ), [146] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901\u20132003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007.") ), [147] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007.") ), [148] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Demographics of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germans" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Social issues in Germany" ] ) ] ), [149] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "population" ] ) ], body = - ), [150] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen L\u00E4ndern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}}") ), [151] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}}") ), [152] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder \u00E4lter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    \nMore details on the methodology, detailed tables broken down by age and sex, etc. are provided at \n{{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bev\u00F6lkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}") ), [153] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007.") ), [154] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]\".") ), [155] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }}") ), [156] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "As of" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008" ] ) ] ), [157] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bev\u00F6lkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}}") ), [158] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population.") ), [159] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigra\u00E7\u00E3o Alem\u00E3 no Brasil] Deutsche Welle. Retrieved 19 November 2009.") ), [160] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating \"single-ancestry\".") ), [161] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.migrationinformation.org/Feature/display.cfm?ID=201 \"Fewer Ethnic Germans Immigrating to Ancestral Homeland\"]. ''Migration Information Source.'' February 2004") ), [162] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "See also" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Metropolitan Regions in Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of cities in Germany" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of cities in Germany with more than 100,000 inhabitants" ] ) ] ), [163] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "cite web " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Mitglieder des Deutschen St\u00E4dtetages " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "publisher" ], value = WtValue[ [0] = "Deutschen St\u00E4dtetag " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "date" ], value = WtValue[ [0] = "31 December 2009 " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "accessdate" ], value = WtValue[ [0] = "18 February 2011 " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "url" ], value = WtValue[ [0] = "http://www.staedtetag.de/10/staedte/nach_einwohner/index.html " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "language" ], value = WtValue[ [0] = "German" ] ) ] ), [164] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Languages of Germany" ] ) ] ), [165] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Eurobarometer Languages" ] ) ], body = - ), [166] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Many tongues, one family" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}}") ), [167] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " left\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 170\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " De-Faust - Der Trag\u00F6die erster Teil-Prolog und Auf dem Theater-wikisource.ogg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " Spoken German in [[Goethe's Faust]]\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Goethe\u00B4s German\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 100\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Faust spricht mit dem Erdgeist, Margret Hofheinz-D\u00F6ring, \u00D6l, 1969 (WV-Nr.4385).jpg\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " \n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Faust\n" ] ) ] ), [168] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "natgeo2006" ] ) ], body = WtTagExtensionBody("{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257\u2013270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}}") ), [169] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Eurobarometer Languages" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}") ), [170] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Religion in Germany" ] ) ] ), [171] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}}") ), [172] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ekd" ] ) ], body = WtTagExtensionBody("{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}}") ), [173] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09.") ), [174] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.1" ] ) ], body = - ), [175] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar box\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Religion in Germany (2008)\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "titlebar" ], value = WtValue[ [0] = "#ddd\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "float" ], value = WtValue[ [0] = "left\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "bars" ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Irreligion|No Religion]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Yellow" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "34.1" ] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Roman Catholicism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Orange" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "30.0" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Protestantism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "MediumAquamarine" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "29.9" ] ) ] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Islam]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "#f99" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "4.0" ] ) ] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Eastern Orthodox Church|Orthodox Christianity]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "DarkGray" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1.6" ] ) ] ), [10] = "\n", [11] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Judaism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Blue" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0.2" ] ) ] ), [12] = "\n", [13] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Buddhism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Black" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0.2" ] ) ] ), [14] = "\n" ] ) ] ), [176] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009.") ), [177] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.1" ] ) ], body = WtTagExtensionBody("{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt f\u00FCr Migration und Fl\u00FCchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] betr\u00E4gt der Anteil der Muslime an der Gesamtbev\u00F6lkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangeh\u00F6rige,rund 55 Prozent haben eine ausl\u00E4ndische Staatsangeh\u00F6rigkeit. }}") ), [178] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.2" ] ) ], body = WtTagExtensionBody("{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt f\u00FCr Migration und Fl\u00FCchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen betr\u00E4gt 74 Prozent }}\n* 74.1% [[Sunni Islam|Sunni]]\n* 12.7% [[Alevi]]te\n* 7.1% [[Shia Islam|Schiite]]\n* 1.7% [[Ahmadiyya|Ahmadi]]\n* 0.3% [[Ibadi]]\n* 0.1% [[Sufism|Sufi]]/mystic\n* 4.0% other\n") ), [179] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ekd" ] ) ], body = - ), [180] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006.") ), [181] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006.") ), [182] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [[Die Zeit]] 12/07, page 13") ), [183] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "EUROBAROMETER" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}}") ), [184] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Education in Germany" ] ) ] ), [185] = WtXmlComment( {P} content = "Kulturhoheit" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [186] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ED" ] ) ], body = WtTagExtensionBody("{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006.") ), [187] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated.") ), [188] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ED" ] ) ], body = - ), [189] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ARWU" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}}") ), [190] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006.") ), [191] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Health in Germany" ] ) ] ), [192] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "WHOSIS" ] ) ], body = WtTagExtensionBody("[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010.") ), [193] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "DW1" ] ) ], body = WtTagExtensionBody("{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}") ), [194] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BBC1" ] ) ], body = WtTagExtensionBody("{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}}") ), [195] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Culture of Germany" ] ) ] ), [196] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}") ), [197] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010.") ), [198] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Sp\u00E4tzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006.") ), [199] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008.") ), [200] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010.") ), [201] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8") ), [202] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German literature" ] ) ] ), [203] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "nobel" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}}") ), [204] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German philosophy" ] ) ] ), [205] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Searle, John. (1987). ''The Blackwell Companion to Philosophy'', \"Introduction\". Wiley-Blackwell.") ), [206] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Cinema of Germany" ] ) ] ), [207] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}}") ), [208] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007.") ), [209] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007.") ), [210] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007.") ), [211] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.''") ), [212] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Music of Germany" ] ) ] ), [213] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006.") ), [214] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007.") ), [215] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany \u2013 Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010.") ), [216] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Sport in Germany" ] ) ] ), [217] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = WtTagExtensionBody("{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}}") ), [218] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = - ), [219] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = - ), [220] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }}") ), [221] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}}") ), [222] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}}") ), [223] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German cuisine" ] ) ] ), [224] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}}") ), [225] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}}") ), [226] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November.") ), [227] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November.") ), [228] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November.") ), [229] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November.") ), [230] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November.") ), [231] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November.") ), [232] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010.") ), [233] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007.") ), [234] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "gayscity" ] ) ], body = WtTagExtensionBody("{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}") ), [235] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Update after" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2011" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "09" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "reason" ], value = WtValue[ [0] = "elections in Berlin" ] ) ] ), [236] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }}") ), [237] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007.") ), [238] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }}") ), [239] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}") ), [240] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010.") ), [241] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }}") ), [242] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "-" ], args = WtTemplateArguments[] ), [243] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Portal box" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "European Union" ] ) ] ), [244] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " Articles Related to Germany\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Germany topics" ], args = WtTemplateArguments[] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "States of Germany " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "titlestyle" ], value = WtValue[ [0] = "background:#ddf;" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " Geographic locale\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Geographic location\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Northwest " ], value = WtValue[ [0] = " ''[[North Sea]]''
    ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "The Netherlands" ] ) ] ), [2] = "\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " North " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Denmark" ] ) ] ), [2] = "\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Northeast " ], value = WtValue[ [0] = " ''[[Baltic Sea]]''\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " West " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Belgium" ] ) ] ), [2] = "
    ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Luxembourg" ] ) ] ), [4] = "\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Centre " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flagicon" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ), [2] = " [[Outline of Germany|Germany]]\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " East " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Poland" ] ) ] ), [2] = "
    ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Czech Republic" ] ) ] ), [4] = "\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Southwest " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "France" ] ) ] ), [2] = "\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " South " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Switzerland" ] ) ] ), [2] = " \u2022 ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Austria" ] ) ] ), [4] = "\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Southeast " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Austria" ] ) ] ), [2] = "\n" ] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Sovereign states of Europe" ], args = WtTemplateArguments[] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Countries bordering the Baltic Sea" ], args = WtTemplateArguments[] ), [6] = "\n" ] ) ] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " International membership\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "EU members" ], args = WtTemplateArguments[] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "North Atlantic Treaty Organisation (NATO)" ], args = WtTemplateArguments[] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Organisation for Economic Co-operation and Development" ], args = WtTemplateArguments[] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "G8 nations" ], args = WtTemplateArguments[] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "G20" ], args = WtTemplateArguments[] ), [10] = "\n", [11] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WTO members" ], args = WtTemplateArguments[] ), [12] = "\n", [13] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Council of Europe" ], args = WtTemplateArguments[] ), [14] = "\n", [15] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "OSCE" ], args = WtTemplateArguments[] ), [16] = "\n" ] ) ] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "National personifications" ], args = WtTemplateArguments[] ), [10] = "\n" ] ) ] ), [245] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "group" ], value = WtValue[ [0] = "note" ] ) ] ), [246] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "colwidth" ], value = WtValue[ [0] = "30em" ] ) ] ), [247] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Spoken Wikipedia-2" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008-06-24" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany (Spoken Article) Part 1.ogg" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany (Spoken Article) Part 2.ogg" ] ) ] ), [248] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Sister project links" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ), [249] = WtXmlComment( {P} content = "\nWikipedia is not a link list nor a Web directory. If your link points to a site that does not cover many subjects about Germany, it's most likely in the wrong place here and you should go and search for a more specific article.\n" {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [250] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "CIA World Factbook link" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "gm" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ), [251] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "dmoz" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Regional/Europe/Germany" ] ) ] ), [252] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Wikiatlas" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ), [253] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "en icon" ], args = WtTemplateArguments[] ), [254] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "osmrelation-inline" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "51477" ] ) ] ), [255] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "da" ] ) ] ), [256] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ) ] ), [257] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "eo" ] ) ] ), [258] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "es" ] ) ] ), [259] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "lt" ] ) ] ), [260] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "zh" ] ) ] ), [261] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "af" ] ) ] ), [262] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "gv" ] ) ] ), [263] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "hr" ] ) ] ), [264] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "lv" ] ) ] ), [265] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "mr" ] ) ] ), [266] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "nah" ] ) ] ), [267] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "pt" ] ) ] ), [268] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sq" ] ) ] ), [269] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "tr" ] ) ] ), [270] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "yi" ] ) ] ) } {P} warnings = C[ Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:410:109: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:410:217: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:410:270: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:418:88: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:418:118: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:419:74: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:419:109: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag., Warning: /nopkg-complex/input.wikitext/raw-Germany.wikitext:419:177: : 12.2.4 Element should be an empty tag! @ WtXmlStartTag. ] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Dablink" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]]." ] ) ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Use dmy dates" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "date" ], value = WtValue[ [0] = "January 2011" ] ) ] ), [3] = "\n", [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "pp-semi-protected" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "small" ], value = WtValue[ [0] = "yes" ] ) ] ), [5] = "\n", [6] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "pp-move-indef" ], args = WtTemplateArguments[] ), [7] = "\n", [8] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Featured article" ], args = WtTemplateArguments[] ), [9] = "\n", [10] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox country\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "native_name" ], value = WtValue[ [0] = "", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''Bundesrepublik Deutschland''" ] ) ] ), [2] = "\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "conventional_long_name" ], value = WtValue[ [0] = "Federal Republic of Germany\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "common_name" ], value = WtValue[ [0] = "Germany\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "national_anthem" ], value = WtValue[ [0] = "
    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Deutschlandlied|Das Lied der Deutschen]]''" ] ) ] ), [2] = "\n" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_flag" ], value = WtValue[ [0] = "Flag of Germany.svg\n" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_coat" ], value = WtValue[ [0] = "Coat of Arms of Germany.svg\n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "image_map" ], value = WtValue[ [0] = "EU-Germany.svg\n" ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "map_caption" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "map_caption" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "location_color" ], value = WtValue[ [0] = "dark green" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "region" ], value = WtValue[ [0] = "Europe" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "region_color" ], value = WtValue[ [0] = "dark grey" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "subregion" ], value = WtValue[ [0] = "the [[European Union]]" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "subregion_color" ], value = WtValue[ [0] = "green" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "legend" ], value = WtValue[ [0] = "EU-Germany.svg" ] ) ] ), [1] = "\n" ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "official_languages" ], value = WtValue[ [0] = "[[German language|German]] ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ) ] ), [2] = "\n" ] ), [9] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "demonym" ], value = WtValue[ [0] = "German\n" ] ), [10] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "capital" ], value = WtValue[ [0] = "[[Berlin]]\n" ] ), [11] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latd" ], value = WtValue[ [0] = "52" ] ), [12] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latm" ], value = WtValue[ [0] = "31" ] ), [13] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "latNS" ], value = WtValue[ [0] = "N" ] ), [14] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longd" ], value = WtValue[ [0] = "13" ] ), [15] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longm" ], value = WtValue[ [0] = "23" ] ), [16] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "longEW" ], value = WtValue[ [0] = "E\n" ] ), [17] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "largest_city" ], value = WtValue[ [0] = "capital\n" ] ), [18] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "government_type" ], value = WtValue[ [0] = "[[Federal republic|Federal]] [[parliamentary republic]]\n" ] ), [19] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title1" ], value = WtValue[ [0] = "[[President of Germany|President (Head of State)]]\n" ] ), [20] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name1" ], value = WtValue[ [0] = "[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [21] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title2" ], value = WtValue[ [0] = "[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]]\n" ] ), [22] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name2" ], value = WtValue[ [0] = "[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [23] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title3" ], value = WtValue[ [0] = "[[President of the Bundestag]]\n" ] ), [24] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name3" ], value = WtValue[ [0] = "[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]])\n" ] ), [25] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_title4" ], value = WtValue[ [0] = "[[President of the Bundesrat]]\n" ] ), [26] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "leader_name4" ], value = WtValue[ [0] = "[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]])\n" ] ), [27] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "sovereignty_type" ], value = WtValue[ [0] = "[[Kingdom of Germany|Formation]]\n" ] ), [28] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "sovereignty_note" ], value = WtValue[ [0] = "\n" ] ), [29] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event1" ], value = WtValue[ [0] = "[[Holy Roman Empire]]\n" ] ), [30] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date1" ], value = WtValue[ [0] = "2 February 962\n" ] ), [31] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event2" ], value = WtValue[ [0] = "[[Unification of Germany|Unification]]\n" ] ), [32] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date2" ], value = WtValue[ [0] = "18 January 1871\n" ] ), [33] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event3" ], value = WtValue[ [0] = "[[History of Germany|Federal Republic]]\n" ] ), [34] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date3" ], value = WtValue[ [0] = "23 May 1949\n" ] ), [35] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_event4" ], value = WtValue[ [0] = "[[German reunification|Reunification]]\n" ] ), [36] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "established_date4" ], value = WtValue[ [0] = "3 October 1990\n" ] ), [37] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "accessionEUdate" ], value = WtValue[ [0] = "25 March 1957\n" ] ), [38] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EUseats" ], value = WtValue[ [0] = "99\n" ] ), [39] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_km2" ], value = WtValue[ [0] = "357,021\n" ] ), [40] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_sq_mi" ], value = WtValue[ [0] = "137,847 ", [1] = WtXmlComment( {P} content = "Do not remove per [[WP:MOSNUM]]" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = "\n" ] ), [41] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_rank" ], value = WtValue[ [0] = "63rd\n" ] ), [42] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "area_magnitude" ], value = WtValue[ [0] = "1 E11\n" ] ), [43] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "percent_water" ], value = WtValue[ [0] = "2.416\n" ] ), [44] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate " ], value = WtValue[ [0] = " 81,757,600\n" ] ), [45] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_year " ], value = WtValue[ [0] = " 2010\n" ] ), [46] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_rank " ], value = WtValue[ [0] = " 15th\n" ] ), [47] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_census " ], value = WtValue[ [0] = "\n" ] ), [48] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_census_year " ], value = WtValue[ [0] = "\n" ] ), [49] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_year " ], value = WtValue[ [0] = " Jan. 1, 2010\n" ] ), [50] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_estimate_rank " ], value = WtValue[ [0] = " 15th\n" ] ), [51] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_km2 " ], value = WtValue[ [0] = " 229\n" ] ), [52] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_sq_mi " ], value = WtValue[ [0] = " 593 ", [1] = WtXmlComment( {P} content = "Do not remove per [[WP:MOSNUM]]" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = "\n" ] ), [53] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "population_density_rank " ], value = WtValue[ [0] = " 55th\n" ] ), [54] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_year " ], value = WtValue[ [0] = " 2010\n" ] ), [55] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP " ], value = WtValue[ [0] = " $2.932 trillion", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = WtTagExtensionBody("{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}}") ), [2] = "\n" ] ), [56] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_rank" ], value = WtValue[ [0] = "\n" ] ), [57] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_per_capita" ], value = WtValue[ [0] = "$35,930", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [58] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_PPP_per_capita_rank" ], value = WtValue[ [0] = "\n" ] ), [59] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal" ], value = WtValue[ [0] = "$3.305 trillion", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [60] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_rank" ], value = WtValue[ [0] = "\n" ] ), [61] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_year" ], value = WtValue[ [0] = "2010\n" ] ), [62] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_per_capita" ], value = WtValue[ [0] = "$40,511", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "IMF" ] ) ], body = - ), [2] = "\n" ] ), [63] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "GDP_nominal_per_capita_rank" ], value = WtValue[ [0] = "\n" ] ), [64] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_year" ], value = WtValue[ [0] = "2010\n" ] ), [65] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "increase" ], args = WtTemplateArguments[] ), [1] = " 0.885", [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "UNDP" ] ) ], body = WtTagExtensionBody("{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}}") ), [3] = "\n" ] ), [66] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_rank" ], value = WtValue[ [0] = "10th\n" ] ), [67] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "HDI_category" ], value = WtValue[ [0] = "very high\n" ] ), [68] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini" ], value = WtValue[ [0] = "27 ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Update after" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2011" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "04" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "reason" ], value = WtValue[ [0] = "Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ " ] ) ] ), [2] = "\n" ] ), [69] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini_year" ], value = WtValue[ [0] = "2006\n" ] ), [70] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Gini_category" ], value = WtValue[ [0] = "low\n" ] ), [71] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "currency" ], value = WtValue[ [0] = "[[Euro]] ([[Euro sign|\u20AC]])", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2" ] ) ] ), [2] = "(2002 \u2013 present)\n" ] ), [72] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "currency_code" ], value = WtValue[ [0] = "EUR\n" ] ), [73] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "time_zone" ], value = WtValue[ [0] = "CET\n" ] ), [74] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "utc_offset" ], value = WtValue[ [0] = "+1\n" ] ), [75] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "time_zone_DST" ], value = WtValue[ [0] = "CEST\n" ] ), [76] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "utc_offset_DST" ], value = WtValue[ [0] = "+2\n" ] ), [77] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "drives_on" ], value = WtValue[ [0] = "right\n" ] ), [78] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "cctld" ], value = WtValue[ [0] = " [[.de]] ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Ref" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3" ] ) ] ), [2] = "\n" ] ), [79] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "calling_code" ], value = WtValue[ [0] = "[[Telephone numbers in Germany|49]]\n" ] ), [80] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_alpha2" ], value = WtValue[ [0] = "DE\n" ] ), [81] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_alpha3" ], value = WtValue[ [0] = "DEU\n" ] ), [82] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ISO_3166-1_numeric" ], value = WtValue[ [0] = "?\n" ] ), [83] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "alt_sport_code" ], value = WtValue[ [0] = "GER\n" ] ), [84] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "vehicle_code" ], value = WtValue[ [0] = "D\n" ] ), [85] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "aircraft_code" ], value = WtValue[ [0] = "D\n" ] ), [86] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote1" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ) ] ), [1] = " Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]].\n" ] ), [87] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote2" ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2" ] ) ] ), [2] = " Before 2002: [[Deutsche Mark]] (DEM).\n" ] ), [88] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "footnote3" ], value = WtValue[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "note" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3" ] ) ] ), [1] = " Also [[.eu]], shared with other [[European Union]] member states.\n" ] ) ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Germany" ), [1] = " (", [2] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "IPAc-en" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "En-uk-Germany.ogg" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u02C8" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "d\u0292" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u025Cr" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u0259n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "i" ] ) ] ), [3] = "), officially the ", [4] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Federal Republic of Germany" ), [5] = " (", [6] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang-de" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Bundesrepublik Deutschland" ] ) ] ), [7] = ", ", [8] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "IPA-de" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u02C8b\u028And\u0259s\u0281epu\u02CCbli\u02D0k \u02C8d\u0254\u028Ft\u0283lant" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "pron" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "De-Bundesrepublik_Deutschland.ogg" ] ) ] ), [9] = "),", [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Duden6" ] ) ], body = WtTagExtensionBody("{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachew\u00F6rterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "group" ], value = WtValue[ [0] = "note" ] ) ], body = WtTagExtensionBody("The country's long name in its [[Languages of Germany|regional languages]] include:\n*{{lang-dsb|Nimska zw\u011Bzkowa republika}};\n*{{lang-hsb|N\u011Bmska zwjazkowa republika}};\n*{{lang-da|Forbundsrepublikken Tyskland}};\n*{{lang-nds| Bundsrepubliek D\u00FC\u00FCtschland}};\n*{{lang-rmy|I Federalni Republika Jermaniya}};\n*[[Frisian language|Frisian]]: B\u00FBnsrepublyk D\u00FAtsl\u00E2n;\n*[[Palatinate German]]: Bundesrepublik vun Daitschlond") ), [12] = " is a country in ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Western Europe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Western" ) ), [14] = " and ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Central Europe" ], title = - ), [16] = ". It is bordered to the north by the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Sea" ], title = - ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Denmark" ], title = - ), [20] = ", and the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Baltic Sea" ], title = - ), [22] = "; to the east by ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Poland" ], title = - ), [24] = " and the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Czech Republic" ], title = - ), [26] = "; to the south by ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austria" ], title = - ), [28] = " and ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Switzerland" ], title = - ), [30] = "; and to the west by ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "France" ], title = - ), [32] = ", ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Luxembourg" ], title = - ), [34] = ", ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Belgium" ], title = - ), [36] = ", and the ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Netherlands" ], title = - ), [38] = ". The territory of Germany covers an area of 357,021", [39] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [40] = "km", [41] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [42] = " and is influenced by a ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "temperate climate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "temperate seasonal climate" ) ), [44] = ". With 81.8", [45] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [46] = "million inhabitants, it is the most populous member state of the ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Union" ], title = - ), [48] = ",", [49] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "population" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}}") ), [50] = " and home to the ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by immigrant population" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "third-largest number of international migrants" ) ), [52] = " worldwide.", [53] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}}") ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = "A region named ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germania" ], title = - ), [2] = ", inhabited by several ", [3] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "Germanic people" ], title = - ), [4] = ", was ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germania (book)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "documented" ) ), [6] = " before AD", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "100. Beginning in the 10th century, German territories formed a central part of the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Holy Roman Empire" ], title = - ), [10] = ", which lasted until 1806. During the 16th century, northern German regions became the centre of the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Protestant Reformation" ], title = - ), [12] = " while southern and western parts remained dominated by ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Catholic" ], title = - ), [14] = " denominations. As a modern ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nation-state" ], title = - ), [16] = ", the country was first ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Unification of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "unified" ) ), [18] = " in 1871, with the inception of the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Empire" ], title = - ), [20] = ". After the proclamation of the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Weimar Republic" ], title = - ), [22] = " in 1918 the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Third Reich" ], title = - ), [24] = " followed in 1933. The period was marked by a dictatorship and the initiation of ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War II" ], title = - ), [26] = ". After 1945, Germany was divided by ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allied Occupation Zones in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "allied occupation" ) ), [28] = ", and evolved into two states, ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Germany" ], title = - ), [30] = " and ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Germany" ], title = - ), [32] = ". In 1990 Germany was ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German reunification" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "reunified" ) ), [34] = ". West Germany was a founding member of the ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Communities" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "European Community" ) ), [36] = " in 1957, which became the EU in 1993. It is part of the ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Schengen Area" ], title = - ), [38] = " and since 1999 a member the ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eurozone" ], title = - ), [40] = ".", [41] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}") ), [42] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "euroc" ] ) ], body = WtTagExtensionBody("{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}") ), [43] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }}") ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = "Germany is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "federal" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "parliamentary republic" ], title = - ), [4] = " of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "States of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sixteen states" ) ), [6] = ". The capital and largest city is ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin" ], title = - ), [8] = ". Germany is a member of the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United Nations" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NATO" ], title = - ), [12] = ", the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G8" ], title = - ), [14] = ", the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G-20 major economies" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "G20" ) ), [16] = ", the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "OECD" ], title = - ), [18] = " and assumed a nonpermanent seat on the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UN Security Council" ], title = - ), [20] = " for the 2011\u201312 term. It is a ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Great power#Aftermath of the Cold War" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "major power" ) ), [22] = " with the world's ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (nominal)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fourth largest economy" ) ), [24] = " by nominal ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "GDP" ], title = - ), [26] = " and the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (PPP)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fifth largest" ) ), [28] = " by ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "purchasing power parity" ], title = - ), [30] = ". It is the ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by exports" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "second largest exporter" ) ), [32] = " and ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by imports" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "third largest importer" ) ), [34] = " of goods. In absolute terms, Germany allocates the third biggest annual ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "development aid" ], title = - ), [36] = " budget in the world,", [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }}") ), [38] = " while its ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by military expenditures" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "military expenditure ranked seventh" ) ), [40] = ".", [41] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}}") ), [42] = " The country has developed a ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by Human Development Index" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "very high standard of living" ) ), [44] = " and a comprehensive system of ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "social security" ], title = - ), [46] = ". It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.", [47] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }}") ), [48] = " Germany is recognised as a scientific and technological leader in several fields.", [49] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008.") ) ], [7] = "\n\n", [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "History" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany" ] ) ] ) ], [2] = "\n\n", [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Etymology" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Names of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of country name etymologies" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "The English word \"Germany\" derives from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Greek language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Greek" ) ), [2] = " ", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book|last = St\u00FCmpel|first = Gustav|title = Name und Nationalit\u00E4t der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}}") ), [4] = " term ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germania" ], title = - ), [6] = ". The name \"Germania\" came into use after ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julius Caesar" ], title = - ), [8] = " adopted it from a ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gaulish language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gallic" ) ), [10] = " term for the peoples east of the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [12] = " that could possibly have meant \"neighbour\", or \"men of forests\", or even \"men with spears\".", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}") ), [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}") ), [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}}") ) ], [4] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Germanic tribes 750 BC\u2013260" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germanic peoples" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germania" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Germanic tribes (750BC-1AD).png" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Expansion of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germanic peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germanic tribes" ) ), [2] = " 750 BC \u2013 AD", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "1" ) ] ), [4] = "\nThe ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ethnogenesis" ], title = - ), [6] = " of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germanic peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germanic tribes" ) ), [8] = " is assumed to have occurred during the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nordic Bronze Age" ], title = - ), [10] = ", or at the latest during the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pre-Roman Iron Age" ], title = - ), [12] = ". From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century", [13] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [14] = "BC, coming into contact with the ", [15] = WtInternalLink( {P} postfix = "ic" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]ic" ] target = WtPageName[ [0] = "Celt" ], title = - ), [16] = " tribes of ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gaul" ], title = - ), [18] = " as well as ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iranian peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iranian" ) ), [20] = ", ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Balts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baltic" ) ), [22] = ", and ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Slavic peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Slavic" ) ), [24] = " tribes in ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eastern Europe" ], title = - ), [26] = ". Little is known about early Germanic history, except through their recorded interactions with the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Empire" ], title = - ), [28] = ", etymological research and archaeological finds.", [29] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Claster" ] ) ], body = WtTagExtensionBody("{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300\u20131400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }}") ), [30] = "\n\n", [31] = WtParagraph[ [0] = "Under ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustus" ], title = - ), [2] = ", the Roman General ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Publius Quinctilius Varus" ], title = - ), [4] = " began to invade Germania (a term used by the Romans to define a territory running roughly from the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [6] = " to the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ural Mountains" ], title = - ), [8] = "), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD", [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "9, three ", [11] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "Roman legion" ], title = - ), [12] = " led by Varus were defeated by the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cheruscan" ], title = - ), [14] = " leader ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arminius" ], title = - ), [16] = " in the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Battle of the Teutoburg Forest" ], title = - ), [18] = ". Modern Germany, as far as the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [20] = " and the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Danube" ], title = - ), [22] = ", thus remained outside the Roman Empire. By AD", [23] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [24] = "100, the time of ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tacitus" ], title = - ), [26] = "' ", [27] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germania (book)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germania" ) ) ), [28] = ", Germanic tribes settled along the Rhine and the Danube (the ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Limes Germanicus" ], title = - ), [30] = ") , occupying most of the area of modern Germany; Austria, southern ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavaria" ], title = - ), [32] = " and the western ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhineland" ], title = - ), [34] = ", however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alamanni" ], title = - ), [36] = ", ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franks" ], title = - ), [38] = ", ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chatti" ], title = - ), [40] = ", ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxons" ], title = - ), [42] = ", ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frisians" ], title = - ), [44] = ", ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sicambri" ], title = - ), [46] = ", and ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thuringii" ], title = - ), [48] = ". Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.", [49] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Cambridge ancient history" ] ) ], body = WtTagExtensionBody("{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193\u2013337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}}") ) ], [32] = "\n\n" ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Migration Period and Frankish Empire 260-800" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Migration Period" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Franks" ] ) ] ), [1] = "\nAfter the invasion of the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Huns" ], title = - ), [3] = " 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franks" ], title = - ), [5] = " and ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alamanni" ], title = - ), [7] = " in the West, the ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxons" ], title = - ), [9] = " in the North, the ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavarians" ], title = - ), [11] = " in the South and the ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thuringians" ], title = - ), [13] = " in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated (", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ostsiedlung" ], title = - ), [15] = "). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankish Empire" ], title = - ), [17] = " associated with todays Germany were in the eastern part of the empire, which had been known since the ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Merovingian" ], title = - ), [19] = " period as ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austrasia" ], title = - ), [21] = ". A certain self-rule of Austrasia appeared the first time in 614 as King ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Clotaire II" ], title = - ), [23] = " had to sign the ", [24] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Edictum Chlotharii" ), [25] = ", in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mayor of the Palace" ], title = - ), [27] = "." ], [2] = "\n\n" ] ), [6] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Holy Roman Empire 962\u20131806" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Holy Roman Empire" ] ) ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "See also" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Medieval demography" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Ostsiedlung" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Weltliche Schatzkammer Wien (169)pano.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imperial Crown of the Holy Roman Empire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Imperial Crown" ) ), [2] = " of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Holy Roman Empire" ], title = - ), [4] = ", created around AD", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "1000" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "On 25 December 800, ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charlemagne" ], title = - ), [2] = " founded the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carolingian Empire" ], title = - ), [4] = ", which was ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty of Verdun" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "divided in 843" ) ), [6] = ". The medieval empire resulted from the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Francia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "eastern portion" ) ), [8] = " of this division and existed in varying forms from 962 until 1806. Its territory stretched from the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eider River" ], title = - ), [10] = " in the north to the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mediterranean Sea" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mediterranean" ) ), [12] = " coast in the south. Often referred to as the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Holy Roman Empire" ], title = - ), [14] = " (or the Old Empire), it was officially called the ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Sacrum Romanum Imperium Nationis Germanic\u00E6" ), [16] = " (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory." ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 150 target = WtPageName[ [0] = "File:Martin Luther by Lucas Cranach der \u00C4ltere.jpeg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|150px" ] {P} width = 150 ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Martin Luther" ], title = - ), [1] = " initiated the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Protestant Reformation" ], title = - ), [3] = "." ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "Under the reign of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ottonian" ], title = - ), [2] = " emperors (919\u20131024), the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stem duchy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "duchies" ) ), [4] = " of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Duchy of Lorraine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lorraine" ) ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Duchy of Saxony" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxony" ) ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franconia" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Swabia" ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thuringia" ], title = - ), [14] = ", and ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavaria" ], title = - ), [16] = " were consolidated, and the German king was crowned ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Holy Roman Emperor" ], title = - ), [18] = " of these regions in 962. Under the reign of the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Salian" ], title = - ), [20] = " emperors (1024\u20131125), the Holy Roman Empire absorbed northern Italy and ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Burgundy (region)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Burgundy" ) ), [22] = ", although the emperors lost power through the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Investiture Controversy" ], title = - ), [24] = ". Under the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Hohenstaufen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hohenstaufen" ) ), [26] = " emperors (1138\u20131254), the German princes increased their influence further south and east into territories inhabited by ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Slavic peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Slavs" ) ), [28] = ", preceding ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "History of German settlement in Eastern Europe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German settlement" ) ), [30] = " in these areas and further east ", [31] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "(", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ostsiedlung" ], title = - ), [2] = ")" ), [32] = ". Northern German towns grew prosperous as members of the ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hanseatic League" ], title = - ), [34] = ". Starting with the ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Great Famine of 1315\u20131317" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Great Famine" ) ), [36] = " in 1315, then the ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Black Death" ], title = - ), [38] = " of 1348\u201350, the population of Germany plummeted.", [39] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315\u20131317) and the Black Death (1346\u20131351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }}") ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = "The edict of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Golden Bull of 1356" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Golden Bull" ) ), [2] = " in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven ", [3] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "prince-elector" ], title = - ), [4] = " who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Habsburg" ], title = - ), [6] = " dynasty of ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Archduchy of Austria" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austria" ) ), [8] = "." ], [13] = "\n\n", [14] = WtParagraph[ [0] = "The monk ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Martin Luther" ], title = - ), [2] = " publicised his ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The 95 Theses" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "95 Theses" ) ), [4] = " in 1517, challenging practices of the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Catholic Church" ], title = - ), [6] = ", initiating the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Protestant Reformation" ], title = - ), [8] = ". A separate ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lutheranism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lutheran" ) ), [10] = " church became the official religion in many German states after 1530. Religious conflict led to the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thirty Years' War" ], title = - ), [12] = " (1618\u20131648), which devastated German lands.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]].") ), [14] = " The population of the German states was reduced by about 30%.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }}") ), [16] = " The ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Peace of Westphalia" ], title = - ), [18] = " (1648) ended religious warfare among the German states, but the empire was ", [19] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "de facto" ), [20] = " divided into numerous independent principalities. From 1740 onwards, the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German dualism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "dualism" ) ), [22] = " between the Austrian ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Habsburg Monarchy" ], title = - ), [24] = " and the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kingdom of Prussia" ], title = - ), [26] = " dominated German history. In 1806, the ", [27] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Imperium" ), [28] = " was overrun and dissolved as a result of the ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Napoleonic Wars" ], title = - ), [30] = ".", [31] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "concise h" ] ) ], body = WtTagExtensionBody("{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }}") ) ], [15] = "\n\n" ] ), [7] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Restoration and revolution 1814\u20131871" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German Confederation" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Nationalversammlung.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt parliament" ], title = - ), [1] = " in 1848" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Following the fall of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Napoleon I of France" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Napoleon Bonaparte" ) ), [2] = ", the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Congress of Vienna" ], title = - ), [4] = " convened in 1814 and founded the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Confederation" ], title = - ), [6] = " (Deutscher Bund), a loose league of ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of German Confederation member states" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "39 sovereign states" ) ), [8] = ". Disagreement with ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Restoration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "restoration" ) ), [10] = " politics partly led to the rise of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liberalism in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "liberal" ) ), [12] = " movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Klemens Wenzel von Metternich" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Metternich" ) ), [14] = ". The ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zollverein" ], title = - ) ), [16] = ", a tariff union, profoundly furthered economic unity in the German states. During this era many ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germans" ], title = - ), [18] = " had been stirred by the ideals of the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French Revolution" ], title = - ), [20] = ", and ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nationalism" ], title = - ), [22] = " became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Flag of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "national colours" ) ), [24] = ".", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815\u20131866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006.") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "In the light of a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Revolutions of 1848" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "series of revolutionary movements in Europe" ) ), [2] = ", which successfully established a republic ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Revolutions of 1848 in France" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "in France" ) ), [4] = ", intellectuals and commoners started the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Revolutions of 1848 in the German states" ], title = - ), [6] = ". The monarchs initially yielded to the revolutionaries' liberal demands. King ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frederick William IV of Prussia" ], title = - ), [8] = " was offered the title of ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Emperor" ], title = - ), [10] = ", but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William I, German Emperor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "William I" ) ), [12] = " of ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Prussia" ], title = - ), [14] = " and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otto von Bismarck" ], title = - ), [16] = " the new ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Prime Minister of Prussia" ], title = - ), [18] = ". Bismarck successfully waged ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Second War of Schleswig" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "war on Denmark" ) ), [20] = " in 1864. Prussian victory in the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austro-Prussian War" ], title = - ), [22] = " of 1866 enabled him to create the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North German Federation" ], title = - ), [24] = " (Norddeutscher Bund) and to exclude ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austrian Empire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austria" ) ), [26] = ", formerly the leading German state, from the affairs of the remaining German states." ], [8] = "\n\n" ] ), [8] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "German Empire 1871\u20131918" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German Empire" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "World War I" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Wernerprokla.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foundation of modern Germany in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Versailles" ], title = - ), [2] = ", France, 1871. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otto von Bismarck" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bismarck" ) ), [4] = " is at the centre in a white uniform." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "The state known as ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Germany" ), [2] = " was ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "political union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "unified" ) ), [4] = " as a modern nation-state in 1871, when the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Empire" ], title = - ), [6] = " was forged, with the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kingdom of Prussia" ], title = - ), [8] = " as its largest constituent.\nAfter the French defeat in the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franco-Prussian War" ], title = - ), [10] = ", the German Empire was proclaimed in ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Palace of Versailles" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Versailles" ) ), [12] = " on 18 January 1871. The ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Hohenzollern" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hohenzollern" ) ), [14] = " dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria (", [15] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Kleindeutsche L\u00F6sung|''Kleindeutschland'']]" ] ) ] ), [16] = ", or \"Lesser Germany\"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of former German colonies" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "several colonies" ) ), [18] = " outside Europe." ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Map-DR-Prussia.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Imperial Germany (1871\u20131918), with the dominant ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kingdom of Prussia" ], title = - ), [2] = " in blue" ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "In the ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Gr\u00FCnderzeit]]''" ] ) ] ), [2] = " period following the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "unification of Germany" ], title = - ), [4] = ", Emperor ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William I, German Emperor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "William I's" ) ), [6] = " foreign policy secured Germany's position as a great nation by forging alliances, isolating ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French Third Republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "France" ) ), [8] = " by diplomatic means, and avoiding war. Under ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William II, German Emperor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "William II" ) ), [10] = ", however, Germany, ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Imperialism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "like other European powers" ) ), [12] = ", took an ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "imperialism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "imperialistic" ) ), [14] = " course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Entente Cordiale" ], title = - ), [16] = " with Great Britain and securing ties with the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Russian Empire" ], title = - ), [18] = ". Aside from its contacts with ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austria-Hungary" ], title = - ), [20] = ", Germany became increasingly isolated." ], [11] = "\n\n", [12] = WtParagraph[ [0] = "Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Conference" ], title = - ), [2] = " divided Africa between the European powers. Germany owned several pieces of land in Africa including ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German East Africa" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German South-West Africa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South-West Africa" ) ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Togoland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Togo" ) ), [8] = ", and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cameroon" ], title = - ), [10] = ". The ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scramble for Africa" ], title = - ), [12] = " caused tension between the ", [13] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "great power" ], title = - ), [14] = " that may have contributed to the conditions that led to ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War I" ], title = - ), [16] = "." ], [13] = "\n\n", [14] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Assassination in Sarajevo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "assassination" ) ), [2] = " of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Archduke Franz Ferdinand of Austria" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austria's crown prince" ) ), [4] = " on 28 June 1914 triggered ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War I" ], title = - ), [6] = ". Germany, as part of the unsuccessful ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Central Powers" ], title = - ), [8] = ", suffered defeat against the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allies of World War I" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Allied Powers" ) ), [10] = " in ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War I casualties" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "one of the bloodiest" ) ), [12] = " conflicts of all time. An estimated two million German soldiers died in World War I.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }}") ), [14] = " The ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Revolution" ], title = - ), [16] = " broke out in November 1918, and Emperor William II and all German ruling princes ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "abdication" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "abdicated" ) ), [18] = ". An ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armistice with Germany (Compi\u00E8gne)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "armistice" ) ), [20] = " putting an end to the war was signed on 11 November, and Germany was forced to sign the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty of Versailles" ], title = - ), [22] = " in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nazism" ], title = - ), [24] = " in the country.", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "lee h" ] ) ], body = WtTagExtensionBody("{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890\u20131945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}}") ) ], [15] = "\n\n" ] ), [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Weimar Republic 1919\u20131933" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Weimar Republic" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Ausrufung Republik Scheidemann.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philipp Scheidemann" ], title = - ), [1] = " proclaiming the German Republic in 1918. The ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Weimar Republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Weimar" ) ), [3] = " era was dominated by political unrest." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "At the beginning of the German Revolution, Germany was declared a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "republic" ], title = - ), [2] = " and the monarchy collapsed. However, the struggle for power continued, with radical-left communists ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavarian Socialist Republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "seizing power in Bavaria" ) ), [4] = ", but failing to take control of all of Germany. The revolution came to an end in August 1919, when the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Weimar Republic" ], title = - ), [6] = " was formally established. The ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Weimar Constitution" ], title = - ), [8] = " came into effect with its signing by ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "President of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "President" ) ), [10] = " ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Ebert" ], title = - ), [12] = " on 11 August 1919." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Suffering from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Great Depression" ], title = - ), [2] = ", the harsh peace conditions dictated by the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty of Versailles" ], title = - ), [4] = ", and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the \"Establishment Parties\" in their ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "parliamentary democracy" ], title = - ), [6] = ". This was exacerbated by a widespread right-wing (", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "monarchism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "monarchist" ) ), [8] = ", ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "V\u00F6lkisch movement" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "v\u00F6lkisch" ) ) ), [10] = ", and Nazi) ", [11] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Dolchsto\u00DFlegende]]''" ] ) ] ), [12] = ", which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "communism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "communists" ) ), [14] = ", such as the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Spartacist League" ], title = - ), [16] = ", had wanted a revolution to abolish \"", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "capitalism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "capitalist rule" ) ), [18] = "\" in favour of a ", [19] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Council communism|R\u00E4terepublik]]''" ] ) ] ), [20] = ", and were also targeted." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Discontentment with the new Weimar government helped fuel the growth of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communist Party of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German Communist Party" ) ), [2] = ". Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party\u2014the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nazi Party" ], title = - ), [4] = ". By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul von Hindenburg" ], title = - ), [6] = " made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Adolf Hitler" ], title = - ), [8] = " as ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chancellor of Germany (German Reich)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chancellor of Germany" ) ), [10] = ", honouring Hitler's request." ], [10] = "\n\n" ] ), [10] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Third Reich 1933\u20131945" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Nazi Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Adolf Hitler" ], title = - ), [1] = ", chancellor of the ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nazi Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gro\u00DFdeutsches Reich" ) ) ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "On 27 February 1933 the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Reichstag fire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reichstag" ) ), [2] = " building went up in flames, and a consequent ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Reichstag Fire Decree" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "emergency decree" ) ), [4] = " abrogated basic citizens' rights. An ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Enabling Act" ], title = - ), [6] = " passed in parliament gave Hitler unrestricted legislative power. Only the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Social Democratic Party of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Social Democratic Party" ) ), [8] = " voted against it, while ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "KPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Communist" ) ), [10] = " ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Member of Parliament" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MPs" ) ), [12] = " had already been imprisoned.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Erm\u00E4chtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. M\u00E4rz 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.") ), [14] = " Using his powers to crush any actual or potential resistance, Hitler established a centralised ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "totalitarian state" ], title = - ), [16] = " within months. Industry was revitalised with a focus on military rearmament.", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsf\u00E4higkeit Deutschlands herbeif\u00FChren. . . .Bereits im Februar 1933 erkl\u00E4rte Hitler, dass alle \u00F6ffentlichen Ma\u00DFnahmen zur Arbeitsbeschaffung zugleich der \"Wehrhaftmachung\" zu dienen h\u00E4tten und den Interessen des Staates untergeordnet seien. . . .}}") ), [18] = " In 1935, Germany reacquired control of the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saar (League of Nations)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saar" ) ), [20] = " and in 1936 military control of the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhineland" ], title = - ), [22] = ", both of which had been lost in the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty of Versailles" ], title = - ), [24] = "." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Leading to ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War II" ], title = - ), [2] = " and roughly in parallel with military rearmament, German foreign policy became more aggressive and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lebensraum" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "expansionistic" ) ), [4] = ". In 1938 and 1939, ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Anschluss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austria" ) ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German occupation of Czechoslovakia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Czechoslovakia" ) ), [8] = " were brought under control and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "invasion of Poland" ], title = - ), [10] = " prepared through the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Molotov\u2013Ribbentrop pact" ], title = - ), [12] = " and ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Operation Himmler" ], title = - ), [14] = ". On 1 September 1939 the German ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wehrmacht" ], title = - ), [16] = " launched a ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "blitzkrieg" ], title = - ), [18] = " on ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Second Polish Republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Poland" ) ), [20] = ", which was swiftly occupied by Germany and by the Soviet ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Red Army" ], title = - ), [22] = ". The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Axis powers" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "allies" ) ), [24] = " quickly gained control of much of ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Occupied Europe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "continental Europe" ) ), [26] = " while the plan to ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Operation Sea Lion" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "occupy the United Kingdom" ) ), [28] = " failed." ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Potsdamer Platz 1945.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berlin in ruins after ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War II" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Potsdamer Platz" ], title = - ), [4] = " 1945" ) ] ), [11] = "On 22 June 1941, Germany broke the ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Molotov\u2013Ribbentrop pact" ], title = - ), [13] = " and ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Operation Barbarossa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "invaded the Soviet Union" ) ), [15] = ". The same year, ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Empire of Japan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Japan" ) ), [17] = " ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Attack on Pearl Harbor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "attacked" ) ), [19] = " the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Battle of Stalingrad" ], title = - ), [21] = " marked a major turning point in the war. Subsequently, the German army started to retreat on the ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eastern Front (World War II)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Eastern front" ) ), [23] = ". In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. ", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Normandy Landings" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "D-Day" ) ), [25] = " marked another major turning point in the war, opening up a ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Western Front (World War II)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Western front" ) ), [27] = "; the Allied forces landed on the beaches of ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Normandy" ], title = - ), [29] = " and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, ", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Victory in Europe Day" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "the German armed forces surrendered" ) ), [31] = " after the ", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Red Army" ], title = - ), [33] = " occupied Berlin. Approximately seven million German soldiers and civilians \u2013 including ", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ethnic Germans" ], title = - ), [35] = " from Eastern Europe \u2013 died during World War II.", [36] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Steinberg, Heinz G\u00FCnter. ''Die Bev\u00F6lkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem \u00DCberblick \u00FCber die Entwicklung von 1945 bis 1990.'' Bonn 1991.") ), [37] = "\n\n", [38] = WtParagraph[ [0] = "In what later became known as ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Holocaust" ], title = - ), [2] = ", the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jews" ], title = - ), [4] = " and a sizable number of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Porajmos" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gypsies" ) ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jehovah's Witnesses" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Generalplan Ost" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Poles and other Slavs" ) ), [10] = ", including ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nazi crimes against Soviet POWs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Soviet POWs" ) ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Action T4" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "people with mental and/or physical disabilities" ) ), [14] = ", homosexuals, and members of the political opposition.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45\u201352.") ), [16] = " World War II and the Nazi genocide were responsible for more than 40", [17] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [18] = "million dead in Europe.", [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }}") ), [20] = " The ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nuremberg trials" ], title = - ), [22] = " of ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nazi war criminals" ], title = - ), [24] = " were held after World War II.", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]\". Professor Richard Overy. BBC History.") ), [26] = "\n", [27] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Clear" ], args = WtTemplateArguments[] ) ], [39] = "\n\n" ] ), [11] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Division and reunification 1945\u20131990" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany (1945\u20131990)" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Map-Germany-1945.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Post-WWII ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allied Occupation Zones in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "occupation zones" ) ), [2] = " of Germany, in its 1937 borders, with territories east of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oder-Neisse line" ], title = - ), [4] = " shown as annexed by Poland and the Soviet Union, plus the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saar (protectorate)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saar protectorate" ) ), [6] = " and divided Berlin. ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Germany" ], title = - ), [8] = " was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "The war resulted in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World War II casualties" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "death of over seven million German soldiers and civilians" ) ), [2] = "; ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oder-Neisse line" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "large territorial losses" ) ), [4] = "; ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Expulsion of Germans after World War II" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "the expulsion of about 15", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million Germans" ) ), [6] = " from ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Former eastern territories of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "the eastern areas of Germany" ) ), [8] = " and other countries; ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rape during the occupation of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "mass rape of German women" ) ), [10] = ";", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409\u2013412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31\u201332 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}") ), [12] = " and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allies of World War II" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Allies" ) ), [14] = " into four military occupation zones." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Republic of Germany" ) ) ), [2] = " (", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundesrepublik Deutschland" ), [4] = "); on 7 October 1949, the Soviet Zone became the ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German Democratic Republic" ) ) ), [6] = " (", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Deutsche Demokratische Republik" ), [8] = ", or DDR). They were, mainly outside Germany, informally known as \"West Germany\" and \"East Germany\", and the two parts of Berlin as \"", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Berlin" ], title = - ), [10] = "\" and \"", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Berlin" ], title = - ), [12] = "\". East Germany selected East Berlin as its capital, while West Germany chose ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonn" ], title = - ), [14] = ". However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "status quo" ), [16] = " that was to be overcome one day.", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "provisional" ] ) ], body = WtTagExtensionBody("{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}}") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "West Germany, established as a federal parliamentary republic with a \"", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "social market economy" ], title = - ), [2] = "\", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s (", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Wirtschaftswunder]]''" ] ) ] ), [4] = "). West Germany joined ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NATO" ], title = - ), [6] = " in 1955 and was a founding member of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Economic Community" ], title = - ), [8] = " in 1957. On 1 January 1957, following a plebiscite, ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saarland" ], title = - ), [10] = " became part of West Germany by virtue of article 23 ", [11] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Grundgesetz]]''" ] ) ] ), [12] = ", having been occupied by France since 1947." ], [10] = "\n\n", [11] = WtParagraph[], [12] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Thefalloftheberlinwall1989.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Wall" ], title = - ), [2] = " in front of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brandenburg Gate" ], title = - ), [4] = " shortly after its opening in 1989" ) ] ), [13] = "\n\n", [14] = WtParagraph[ [0] = "East Germany was an ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eastern bloc" ], title = - ), [2] = " state under political and military control by the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "USSR" ], title = - ), [4] = " via the latter's occupation forces and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warsaw Pact" ], title = - ), [6] = ". While claiming to be a democracy, political power was solely executed by leading members (", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Politburo" ], title = - ) ), [8] = ") of the communist-controlled ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Socialist Unity Party of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SED (", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Socialist Unity Party of Germany" ), [2] = ")" ) ), [10] = ". Their power was ensured by the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stasi" ], title = - ), [12] = ", a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "command economy" ], title = - ), [14] = " was set up; later, the GDR became a ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Comecon" ], title = - ), [16] = " state. While ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communist propaganda" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "East German propaganda" ) ), [18] = " was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.", [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }}") ), [20] = " The ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Wall" ], title = - ), [22] = ", built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cold War" ], title = - ), [24] = "." ], [15] = "\n\n", [16] = WtParagraph[ [0] = "Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Willy Brandt" ], title = - ), [2] = "'s ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "lang" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "''[[Ostpolitik]]''" ] ) ] ), [4] = ", which included the ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "de facto" ), [6] = " acceptance of Germany's territorial losses in World War II." ], [17] = "\n\n", [18] = WtParagraph[ [0] = "In summer 1989, Hungary decided (2 May) to dismantle the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iron Curtain" ], title = - ), [2] = " and open the borders (23 August), causing an exodus of thousands of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Germans" ], title = - ), [4] = " (11 September) to West Germany via Hungary.\nThis had devastating effects on the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "GDR" ], title = - ), [6] = ", with ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Monday demonstrations in East Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "mass demonstrations" ) ), [8] = ". The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Die Wende" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Wende" ), [1] = " reform process" ) ), [10] = " in East Germany, which finally concluded with the ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty on the Final Settlement with Respect to Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Two Plus Four Treaty" ) ) ), [12] = " a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sovereignty" ], title = - ), [14] = ". This permitted ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German reunification" ], title = - ), [16] = " on 3 October 1990, with the accession of the five re-established states in the former GDR (", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New states of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "new states" ) ), [18] = " or \"neue L\u00E4nder\")." ], [19] = "\n\n" ] ), [12] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Berlin Republic and the EU 1990\u2013present" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "History of Germany since 1990" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Euro banknotes.png" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " A new currency, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Euro" ], title = - ), [2] = ", began circulating on 1 January 2002.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "euroc" ] ) ], body = - ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundesstadt" ), [2] = " (federal city) retaining some federal ministries.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.") ), [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006.") ), [5] = " The relocation of the government was completed in 1999." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Since reunification, Germany has taken a more active role in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Union" ], title = - ), [2] = " and NATO. Germany sent a peacekeeping force to secure stability in the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "1999 NATO bombing in Yugoslavia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Balkans" ) ), [4] = " and sent a force of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundeswehr" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German troops" ) ), [6] = " to ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afghanistan" ], title = - ), [8] = " as part of a NATO effort to provide ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "War in Afghanistan (2001\u2013present)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "security in that country" ) ), [10] = " after the ousting of the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Taliban" ], title = - ), [12] = ".", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ARM" ] ) ], body = WtTagExtensionBody("Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006.") ), [14] = " These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "In 2005, ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Angela Merkel" ], title = - ), [2] = " was elected the first female Chancellor of Germany. From 2005 to 2009, she led a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "grand coalition (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "grand coalition" ) ), [4] = " supported by her own parliamentary group (consisting of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Democratic Union (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CDU" ) ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Social Union of Bavaria" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CSU" ) ), [8] = ") and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Social Democratic Party of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Social Democratic Party (SPD)" ) ), [10] = ". Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Free Democratic Party (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Free Democratic Party (FDP)" ) ), [12] = "." ], [10] = "\n\n" ] ) ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Geography" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Geography of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Deutschland topo.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Topographic map" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany is located in the Central Europe, the territory covers ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "357021" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [2] = ", consisting of ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "349223" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [4] = " of land and ", [5] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "7798" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "km2" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sqmi" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "abbr" ], value = WtValue[ [0] = "on" ] ) ] ), [6] = " of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "47th parallel north" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "47\u00B0" ) ), [8] = " and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "55th parallel north" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "55\u00B0 N" ) ), [10] = " (the tip of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sylt" ], title = - ), [12] = " is just north of 55\u00B0), and longitudes ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "5th meridian east" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "5\u00B0" ) ), [14] = " and ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "16th meridian east" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "16\u00B0 E" ) ), [16] = "." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Elevation ranges from the mountains of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alps" ], title = - ), [2] = " (highest point: the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zugspitze" ], title = - ), [4] = " at ", [5] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2962" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "ft" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "disp" ], value = WtValue[ [0] = "s" ] ) ] ), [6] = ") in the south to the shores of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Sea" ], title = - ), [8] = " (Nordsee) in the north-west and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Baltic Sea" ], title = - ), [10] = " (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wilstermarsch" ], title = - ), [12] = " at ", [13] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "3.54" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "m" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "ft" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "disp" ], value = WtValue[ [0] = "s" ] ) ] ), [14] = " below sea level), traversed by some of Europe's major rivers such as the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Danube" ], title = - ), [18] = " and ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Elbe" ], title = - ), [20] = ".", [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = WtTagExtensionBody("{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}}") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Luxembourg" ], title = - ), [2] = " in the south-west and Belgium and the Netherlands in the north-west." ], [10] = "\n\n", [11] = WtParagraph[ [0] = "The most significant natural resources are iron ore, coal, ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "potash" ], title = - ), [2] = ", timber, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lignite" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "uranium" ], title = - ), [6] = ", copper, natural gas, ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "salt" ], title = - ), [8] = ", nickel, ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "arable land" ], title = - ), [10] = " and water." ], [12] = "\n\n", [13] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Administrative divisions" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "States of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of administrative divisions of Germany" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Germany comprises ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "States of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "16 states" ) ), [2] = " (", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundesl\u00E4nder" ), [4] = "), which are further subdivided into 439 ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Districts of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "districts" ) ), [6] = " (", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Kreise" ), [8] = ") and cities (", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "kreisfreie St\u00E4dte" ), [10] = ")." ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "German Federal States" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "options" ], value = WtValue[ [0] = "float:left; font-size:90%; border:3px; max-width:480px; width:50%;" ] ) ] ) ], [6] = "\n", [7] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "2px" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "sortable wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; font-size:90%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:100%; text-align:right;" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:140px;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "States of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "State" ) ), [2] = " " ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:85px;" ] ) ], body = WtBody[ [0] = " Capital " ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:85px;" ] ) ], body = WtBody[ [0] = " Area (km\u00B2)" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:85px;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Population" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Baden-W\u00FCrttemberg" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stuttgart" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "35,752" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "10,717,000" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavaria" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "70,549" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "12,444,000" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Berlin " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Berlin " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "892" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "3,400,000" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brandenburg" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Potsdam" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "29,477" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2,568,000" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bremen (state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bremen" ) ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bremen" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "404" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "663,000" ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "755" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1,735,000" ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hesse" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wiesbaden" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "21,115" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "6,098,000" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mecklenburg-Vorpommern" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Schwerin" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "23,174" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1,720,000" ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lower Saxony" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hanover" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "47,618" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "8,001,000" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Rhine-Westphalia" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "34,043" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "18,075,000" ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhineland-Palatinate" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mainz" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "19,847" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "4,061,000" ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saarland" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saarbr\u00FCcken" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "2,569" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1,056,000" ], [1] = "\n" ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxony" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dresden" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "18,416" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "4,296,000" ], [1] = "\n" ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxony-Anhalt" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Magdeburg" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "20,445" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2,494,000" ], [1] = "\n" ] ) ] ), [15] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Schleswig-Holstein" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kiel" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "15,763" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2,829,000" ], [1] = "\n" ] ) ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thuringia" ], title = - ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Erfurt" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = "16,172" ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2,355,000" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n" ] ) ] ) ] ) ] ), [8] = "\n\n" ] ), [14] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Climate" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Sylt Rotes Kliff.jpg\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 177\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]]\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Coastal dunes\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Th\u00FCringerwald.JPG\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 210\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " [[Thuringian Forest]]s during wintertime\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Thuringian Forest\n\n" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Most of Germany has a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "temperate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "temperate seasonal climate" ) ), [2] = " in which humid westerly winds predominate. The climate is moderated by the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Atlantic Current" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Atlantic Drift" ) ), [4] = ", which is the northern extension of the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gulf Stream" ], title = - ), [6] = ". This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "oceanic climate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "oceanic" ) ), [8] = "; ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Precipitation (meteorology)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "rainfall" ) ), [10] = " occurs year round with a maximum during summer." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Winters are mild and summers tend to be cool, though temperatures can exceed ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "convert" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "30" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u00B0C" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "\u00B0F" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "lk" ], value = WtValue[ [0] = "on" ] ) ] ), [2] = " for prolonged periods. In the east, the climate is more ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "continental climate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "continental" ) ), [4] = "; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08.") ) ], [8] = "\n\n" ] ), [15] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Biodiversity" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 202\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Hintersee.jpg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods.\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Alpine terrain\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 180\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Cervus elaphus 11.jpg\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " [[Red Deer|Deer]] are widespread species to be found in the wild.\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Red Deer\n" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phytogeography" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Phytogeographically" ) ), [1] = ", Germany is shared between the Atlantic European and Central European provinces of the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Circumboreal Region" ], title = - ), [3] = " within the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boreal Kingdom" ], title = - ), [5] = ". The territory of Germany can be subdivided into two ", [6] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "ecoregion" ], title = - ), [7] = ": European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.", [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000.") ), [9] = " The majority of Germany is covered by either ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "arable land" ], title = - ), [11] = " (33%) or ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "forestry" ], title = - ), [13] = " and ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "woodland" ], title = - ), [15] = " (31%). Only 15% is covered by permanent pastures." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of national parks of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "national parks in Germany" ) ), [2] = " include the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wadden Sea National Parks" ], title = - ), [4] = ", the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jasmund National Park" ], title = - ), [6] = ", the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vorpommern Lagoon Area National Park" ], title = - ), [8] = ", the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M\u00FCritz National Park" ], title = - ), [10] = ", the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lower Oder Valley National Park" ], title = - ), [12] = ", the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Harz National Park" ], title = - ), [14] = ", the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxon Switzerland National Park" ], title = - ), [16] = " and the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavarian Forest National Park" ], title = - ), [18] = "." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Germany is known for its many ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "zoological garden" ], title = - ), [2] = ", wildlife parks, aquaria, and bird parks.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008.") ), [4] = " More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008.") ), [6] = " The ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Zoological Garden" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Zoologischer Garten Berlin" ) ), [8] = " is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009.") ) ], [10] = "\n\n" ] ), [16] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Environment" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " right\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 200\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " Aquila chrysaetos Flickr.jpg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]].\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Eagle\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 185\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " HeideblueteTiefental.JPG\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " The [[L\u00FCneburg Heath Nature Reserve]] in [[Lower Saxony]]\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " L\u00FCneburg Heath\n" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Germany is known for its environmental consciousness.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004.") ), [2] = " Most Germans consider ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "anthropogenic" ], title = - ), [4] = " causes to be a significant factor in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "global warming" ], title = - ), [6] = ".", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}}") ), [8] = " The state is committed to the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kyoto protocol" ], title = - ), [10] = " and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007.") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008.") ), [2] = " For example, since 1964, air pollution in Germany has been regulated by strict \"", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "TA Luft" ], title = - ), [4] = "\" legislation. Nevertheless Germany's ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by carbon dioxide emissions per capita" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "carbon dioxide emissions per capita" ) ), [6] = " are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schr\u00F6der announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions." ], [8] = "\n\n" ] ) ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Politics" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Politics of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 230 target = WtPageName[ [0] = "File:Politisches System des Bundes und der L\u00E4nder in Deutschland.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|230px" ] {P} width = 230 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The political system of Germany is written down in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Basic Law for the Federal Republic of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Basic Law (Grundgesetz)" ) ), [2] = ". " ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "federal republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "federal" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "parliamentary democratic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "parliamentary" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "representative democracy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "representative democratic" ) ), [6] = " republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Basic Law for the Federal Republic of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Grundgesetz" ) ) ), [8] = " (Basic Law). By calling the document ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Grundgesetz" ), [10] = ", rather than ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Verfassung" ), [12] = " (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Amendments to the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Grundgesetz" ), [2] = " generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Art 79" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}}") ), [4] = " Despite the initial intention, the ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Grundgesetz" ), [6] = " remained in effect after the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German reunification" ], title = - ), [8] = " in 1990, with only minor amendments." ], [8] = "\n\n", [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Government" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Christian Wulff 2008-04-17.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Wulff" ], title = - ), [1] = " has been the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "President of Germany" ], title = - ), [3] = " since June 2010. The head of state holds primarily representative powers." ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = "The President, ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Wulff" ], title = - ), [2] = ", is the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "head of state" ], title = - ), [4] = " and invested primarily with representative responsibilities and powers. He is elected by the ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundesversammlung (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bundesversammlung" ) ) ), [6] = " (federal convention), an institution consisting of the members of the ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [8] = " and an equal number of state delegates." ], [5] = "\n\n", [6] = WtParagraph[ [0] = "The second highest official in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German order of precedence" ], title = - ), [2] = " is the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestagspr\u00E4sident" ), [4] = " (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "President of the Bundestag" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "President of the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ) ) ), [6] = "), who is elected by the ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [8] = " and responsible for overseeing the daily sessions of the body." ], [7] = "\n\n", [8] = WtParagraph[ [0] = "The third-highest official and the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "head of government" ], title = - ), [2] = " is the Chancellor, who is appointed by the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundespr\u00E4sident" ), [4] = " after being elected by the ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [6] = ". The Chancellor can be removed by a ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "constructive vote of no confidence" ], title = - ), [8] = " by the ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [10] = ", where constructive implies that the ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [12] = " simultaneously has to elect a successor." ], [9] = "\n\n", [10] = WtParagraph[], [11] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 290 target = WtPageName[ [0] = "File:Reichstag building Berlin view from west before sunset.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|290px" ] {P} width = 290 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Reichstag (building)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reichstag" ) ), [2] = " in Berlin is the site of the German parliament (Bundestag)" ) ] ), [12] = "\n\n", [13] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chancellor of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chancellor" ) ), [2] = "\u2014currently ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Angela Merkel" ], title = - ), [4] = "\u2014is the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "head of government" ], title = - ), [6] = " and exercises ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "executive (government)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "executive power" ) ), [8] = ", similar to the role of a Prime Minister in other ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "parliamentary system" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "parliamentary democracies" ) ), [10] = ". Federal ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "legislative power" ], title = - ), [12] = " is vested in the parliament consisting of the ", [13] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundestag" ], title = - ) ), [14] = " (Federal Diet) and ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundesrat of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bundesrat" ) ) ), [16] = " (Federal Council), which together form a unique type of legislative body. The ", [17] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [18] = " is elected through ", [19] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "direct election" ], title = - ), [20] = ", by ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "proportional representation" ], title = - ), [22] = " (", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mixed member proportional representation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "mixed-member" ) ), [24] = "). The members of the ", [25] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundesrat" ), [26] = " represent the governments of the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "States of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "sixteen federated states" ) ), [28] = " and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time." ], [14] = "\n\n", [15] = WtParagraph[ [0] = "Since 1949, the party system has been dominated by the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Democratic Union (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Christian Democratic Union" ) ), [2] = " and the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Social Democratic Party of Germany" ], title = - ), [4] = " with all chancellors hitherto being member of either party. However, the smaller liberal ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Free Democratic Party (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Free Democratic Party" ) ), [6] = " (which has had members in the ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundestag" ), [8] = " since 1949) and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alliance '90/The Greens" ], title = - ), [10] = " (which has controlled seats in parliament since 1983) have also played important roles,", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006.") ), [12] = " as they are regularly the smaller partner of a ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "coalition government" ], title = - ), [14] = "." ], [16] = "\n\n" ] ), [10] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Law" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Judiciary of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Law enforcement in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Karlsruhe bundesverfassungsgericht.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Constitutional Court of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Constitutional Court" ) ), [2] = " (Bundesverfassungsgericht) in ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Karlsruhe" ], title = - ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Judiciary of Germany" ], title = - ), [2] = " is independent of the executive and the legislative branches. Germany has a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "civil law (legal system)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "civil or statute law system" ) ), [4] = " that is based on ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman law" ], title = - ), [6] = " with some references to ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germanic law" ], title = - ), [8] = ". The ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Constitutional Court of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bundesverfassungsgericht" ) ) ), [10] = " (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "judicial review" ], title = - ), [12] = ".", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007.") ), [14] = " It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Basic Law for the Federal Republic of Germany" ], title = - ), [16] = " (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Germany's supreme court system, called ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Oberste Gerichtsh\u00F6fe des Bundes" ), [2] = ", is specialised. For civil and criminal cases, the highest court of appeal is the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Court of Justice of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Court of Justice" ) ), [4] = ", located in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Karlsruhe" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leipzig" ], title = - ), [8] = ". The courtroom style is ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "inquisitorial system" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "inquisitorial" ) ), [10] = ". Other Federal Courts are the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Labor Court of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Labour Court" ) ), [12] = " in ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Erfurt" ], title = - ), [14] = ", the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundessozialgericht" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Social Court" ) ), [16] = " in ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassel" ], title = - ), [18] = ", the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Finance Court of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Finance Court" ) ), [20] = " in ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [22] = " and the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Administrative Court of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Federal Administrative Court" ) ), [24] = " in Leipzig." ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 150 target = WtPageName[ [0] = "File:HH Polizeihauptmeister MZ.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|150px" ] {P} width = 150 ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Landespolizei" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "state police" ) ), [2] = " officer in ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ) ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Criminal law" ], title = - ), [1] = " and ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "private law" ], title = - ), [3] = " are codified on the national level in the ", [4] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Strafgesetzbuch" ], title = - ) ), [5] = " and the ", [6] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "B\u00FCrgerliches Gesetzbuch" ], title = - ) ), [7] = " respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.", [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html \u00A7 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009.") ), [9] = " To achieve the latter, a convicted criminal can be put in preventive detention (", [10] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Sicherungsverwahrung" ), [11] = ") in addition to the regular sentence if he is considered to be a threat to the general public. The ", [12] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "V\u00F6lkerstrafgesetzbuch" ], title = - ) ), [13] = " regulates the consequences of ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "crimes against humanity" ], title = - ), [15] = ", ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "genocide" ], title = - ), [17] = " and ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "war crimes" ], title = - ), [19] = ". It gives German courts ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "universal jurisdiction" ], title = - ), [21] = " if prosecution by a court of the country where the crime was committed, or by an international court, is not possible." ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself." ], [15] = "\n\n", [16] = WtParagraph[ [0] = "Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundesrat of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bundesrat" ) ) ), [2] = " is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "e" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]e" ] target = WtPageName[ [0] = "Amtsgericht" ], title = - ) ), [4] = ", ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Landgerichte" ), [6] = " and ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Oberlandesgerichte" ), [8] = " are state courts of ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "general jurisdiction" ], title = - ), [10] = ". They are competent whether the action is based on federal or state law." ], [17] = "\n\n", [18] = WtParagraph[ [0] = "Many of the fundamental matters of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "administrative law" ], title = - ), [2] = " remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Verwaltungsverfahrensgesetz" ), [4] = " (Administrative Proceedings Act) covering important points of administrative law. The ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Oberverwaltungsgerichte" ), [6] = " are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible." ], [19] = "\n\n" ] ), [11] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Foreign relations" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Foreign relations of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:33rdG8Leaders.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chancellor ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Angela Merkel" ], title = - ), [2] = ", the head of government, hosting the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G8" ], title = - ), [4] = " summit in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heiligendamm" ], title = - ), [6] = "." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010.") ), [2] = " As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF)." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Germany has played a leading role in the European Union since its inception and has maintained a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franco-German cooperation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "strong alliance with France" ) ), [2] = " since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Democratic Union (Germany)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Christian Democrat" ) ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Helmut Kohl" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Socialist Party (France)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Socialist" ) ), [8] = " ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Mitterrand" ], title = - ), [10] = ". Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006.") ), [12] = " For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007.") ) ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Rometreaty.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germany is a founding member of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Economic Community" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "EEC" ) ), [2] = " in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics." ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = "During the Cold War, Germany's partition by the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iron Curtain" ], title = - ), [2] = " made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "d\u00E9tente" ], title = - ) ), [4] = " of the 1970s.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and D\u00E9tente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American d\u00E9tente and German ostpolitik, 1969\u20131972\".") ), [6] = " In 1999, Chancellor ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gerhard Schr\u00F6der" ], title = - ), [8] = "'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kosovo War" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NATO war against Yugoslavia" ) ), [10] = " and by sending German troops into combat for the first time since World War II.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006.") ) ], [13] = "\n\n", [14] = WtParagraph[], [15] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Defense ministers of NATO 2000.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West Germany became a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NATO" ], title = - ), [2] = " member in 1955. (Defence ministers in 2000)" ) ] ), [16] = "\n\n", [17] = WtParagraph[ [0] = "The governments of Germany and the United States are close political allies.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006.") ), [2] = " The 1948 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marshall Plan" ], title = - ), [4] = " and strong cultural ties have crafted a strong bond between the two countries, although Schr\u00F6der's very vocal opposition to the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iraq War" ], title = - ), [6] = " suggested the end of ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atlanticism" ], title = - ), [8] = " and a relative cooling of German-American relations.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006.") ), [10] = " The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "econ_factsheet_may2006" ] ) ], body = WtTagExtensionBody("{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006.") ), [12] = " Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}}") ), [14] = " and the status of ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ramstein Air Base" ], title = - ), [16] = " (near ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kaiserslautern" ], title = - ), [18] = ") as the largest U.S. military community outside the U.S.", [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006.") ) ], [18] = "\n\n", [19] = WtParagraph[ [0] = "The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008.") ), [2] = " It is the world's third biggest aid donor after the United States and France.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD") ), [4] = " Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either." ], [20] = "\n\n" ] ), [12] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Military" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Bundeswehr" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Fregatte Mecklenburg-Vorpommern F218.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Mecklenburg-Vorpommern" ), [2] = " participated in a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United Nations Interim Force in Lebanon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "UNIFIL II" ) ), [4] = " operation off the coast of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lebanon" ], title = - ), [6] = "." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany's military, the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bundeswehr" ], title = - ) ), [2] = ", is a military force with ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Army" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Heer" ) ) ), [4] = " (Army), ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Navy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Marine" ) ) ), [6] = " (Navy), ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Luftwaffe" ], title = - ) ), [8] = " (Air Force), ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Central Medical Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Zentraler Sanit\u00E4tsdienst" ) ) ), [10] = " (Central Medical Services) and ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Streitkr\u00E4ftebasis" ], title = - ) ), [12] = " (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ", [13] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zivildienst" ], title = - ) ), [14] = " (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Volunteer fire department" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fire department" ) ), [16] = ", the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Red Cross" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Red Cross" ) ), [18] = " or the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Technisches Hilfswerk" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "THW" ) ), [20] = ". In 2005, military spending was an estimated 1.5% of the country's GDP.", [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = - ), [22] = " In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bundeswehr" ), [24] = ".", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz f\u00FCr die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}}") ) ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Eurofighter 9803.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionGarbage( {P} rtd = RTD[ "|" "" ] [0] = "thumbtime=32" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eurofighter Typhoon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Eurofighter" ) ), [2] = " flight demonstration" ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "The Bundeswehr employs 200,500 professional soldiers, 55,000 18\u201325", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad." ], [11] = "\n\n", [12] = WtParagraph[ [0] = "Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far." ], [13] = "\n\n", [14] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "As of" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2009" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "11" ] ) ] ), [1] = ", the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kosovo" ], title = - ), [3] = ", 4,520 German troops in the NATO-led ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "International Security Assistance Force" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ISAF" ) ), [5] = " force in ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afghanistan" ], title = - ), [7] = " and ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Uzbekistan" ], title = - ), [9] = ", and 450 troops with ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UNIFIL" ], title = - ), [11] = " in ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lebanon" ], title = - ), [13] = ".", [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Bundeswehr1" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen \u2013 Die St\u00E4rke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}}") ), [15] = "\n", [16] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "clearleft" ], args = WtTemplateArguments[] ) ], [15] = "\n\n" ] ) ] ), [11] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Economy" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Economy of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:S-Klasse W221.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}") ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany has a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "social market economy" ], title = - ), [2] = " characterised by a highly qualified ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "labour force" ], title = - ), [4] = ", a developed ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "infrastructure" ], title = - ), [6] = ", a large ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "capital stock" ], title = - ), [8] = ", a low level of corruption,", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}}") ), [10] = " and a high level of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "innovation" ], title = - ), [12] = ".", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}}") ), [14] = " It has the largest national economy in Europe, the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (nominal)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fourth largest by nominal GDP" ) ), [16] = " in the world, and ranked ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (PPP)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fifth by GDP (PPP)" ) ), [18] = " in 2009. The ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tertiary sector of industry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "service sector" ) ), [20] = " contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009.", [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"German Economy Experiences Record Growth in 2010\" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011]") ) ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Eurozone.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germany is part of a monetary union, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eurozone" ], title = - ), [2] = " (dark blue), and of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Internal Market (European Union)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "EU single market" ) ), [4] = ". " ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "Since the age of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "industrialisation" ], title = - ), [2] = ", the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by exports" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "second largest exporter" ) ), [4] = " and third largest importer of goods while generating a ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "trade surplus" ], title = - ), [6] = " of $189.7", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "billion.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010.") ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = "Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "CIA" ] ) ], body = - ), [2] = " Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006.") ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "single market" ], title = - ), [2] = " legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Central Bank" ], title = - ), [4] = " in Frankfurt." ], [15] = "\n\n", [16] = WtParagraph[ [0] = "Two decades after ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German reunification" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "standard of living" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "standards of living" ) ), [4] = " and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "FR" ] ) ], body = WtTagExtensionBody("Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006.") ), [6] = " The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "billion.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}}") ) ], [17] = "\n\n", [18] = WtParagraph[ [0] = "The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Late 2000s recession in Europe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "European recession" ) ), [2] = " cycle.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}}") ), [4] = " In January 2009 the German government under Angela Merkel approved a \u20AC50", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "billion ($70", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}}") ) ], [19] = "\n\n", [20] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Corporations" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Siemens Palais.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Seat of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Siemens" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Siemens AG" ) ), [2] = " in Munich. The city is the headquarter of 7 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fortune Global 500" ], title = - ), [4] = " companies." ) ] ), [3] = "\n", [4] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt am Main" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frankfurt" ) ), [1] = " is a financial ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "global city" ], title = - ), [3] = ", seat of the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Central Bank" ], title = - ), [5] = ", and an international aviation hub." ) ] ), [5] = "\n\n", [6] = WtParagraph[ [0] = "Of the world's 500 largest stock market listed companies measured by ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "revenue" ], title = - ), [2] = " in 2010, the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fortune Global 500" ], title = - ), [4] = ", 37 are headquartered in Germany. 30 Germany based companies are included in the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "DAX" ], title = - ), [6] = ", the German stock market index, trading on the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt Stock Exchange" ], title = - ), [8] = "." ], [7] = "\n\n", [8] = WtParagraph[ [0] = "Well known global brands are ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mercedes-Benz" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BMW" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Adidas" ], title = - ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Audi" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Porsche" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Volkswagen" ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "DHL Express" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DHL" ) ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "T-Mobile" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lufthansa" ], title = - ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "SAP AG" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SAP" ) ), [20] = ", and ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nivea" ], title = - ), [22] = ".", [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007.") ) ], [9] = "\n\n", [10] = WtParagraph[ [0] = "Germany is recognised for its highly specialised ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "small and medium enterprises" ], title = - ), [2] = ". Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hidden Champions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "hidden champions" ) ), [4] = ".", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010.") ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = "The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007:" ], [13] = "\n", [14] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#efefef;" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = " Rank", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.") ) ] ), [1] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = " Name" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = " Headquarters" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = " Revenue", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "(Mil.", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "\u20AC) " ] ), [4] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = " Profit", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "(Mil.", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "\u20AC) " ] ), [5] = WtTableHeader( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Employees", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "(World)" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Volkswagen AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wolfsburg" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 108,897 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4,120 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 329,305" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daimler AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stuttgart" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 99,399 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3,985 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 272,382" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Siemens AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [2] = "/Berlin " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 72,488 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3,806 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 398,200" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "E.ON" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "E.ON AG" ) ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 68,731 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 7,204 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 87,815" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 5. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Metro AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 64,337 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 825 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 242,378" ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 6. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deutsche Post AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonn" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 63,512 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 1,389 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 475,100" ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 7. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deutsche Telekom AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonn" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 62,516 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 569 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 241,426" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 8. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BASF" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "BASF SE" ) ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ludwigshafen am Rhein" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ludwigshafen" ) ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 57,951 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 4,065 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 95,175" ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 9. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BMW AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [2] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 56,018 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 3,126 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 107,539" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 10. " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ThyssenKrupp AG" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Essen" ], title = - ), [2] = "/", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Duisburg" ], title = - ), [4] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 51,723 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " 2,102 " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 191,350" ], [1] = "\n" ] ) ] ) ] ) ] ), [15] = "\n\n" ] ), [21] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Transport" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Transport in Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Rail transport in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:ICE 3M KRM.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ICE 3" ], title = - ), [2] = " train" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Autobahn" ], title = - ), [2] = ") network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "adac" ] ) ], body = WtTagExtensionBody("{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}}") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Germany has established a polycentric network of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "high-speed rail" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "high-speed trains" ) ), [2] = ". The ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "InterCityExpress" ], title = - ), [4] = " or ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "ICE" ), [6] = " is the most advanced service category of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deutsche Bahn" ], title = - ), [8] = " and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160", [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "km/h and 300", [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Gesch\u00E4ftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009.") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "The largest German airports are the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt International Airport" ], title = - ), [2] = " and the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich International Airport" ], title = - ), [4] = ", both are global hubs of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lufthansa" ], title = - ), [6] = ". Other major airports are ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tegel Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berlin Tegel" ) ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sch\u00F6nefeld Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berlin Sch\u00F6nefeld" ) ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf International Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "D\u00FCsseldorf" ) ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hamburg" ) ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne Bonn Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cologne-Bonn" ) ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leipzig/Halle Airport" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Leipzig/Halle" ) ), [18] = " and in the future ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Brandenburg International Airport" ], title = - ), [20] = "." ], [10] = "\n\n" ] ), [22] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Energy" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Energy in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Windgermany.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The largest ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "solar power" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wind power in the European Union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "second-largest wind power" ) ), [4] = " capacity in the world is installed in Germany." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "renewable energy" ], title = - ), [2] = " sources, such as solar, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "wind power" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "wind" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "biomass" ], title = - ), [6] = ", hydroelectric, and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "geothermal power" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "geothermal" ) ), [8] = " energy. As a result of energy-saving measures, ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Efficient energy use" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "energy efficiency" ) ), [10] = " has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "In 2000, the government and the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nuclear power in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German nuclear power industry" ) ), [2] = " agreed to phase out all ", [3] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "nuclear power plant" ], title = - ), [4] = " by 2021.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007.") ), [6] = " Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020." ], [8] = "\n\n" ] ), [23] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Technology" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German inventors and discoverers" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:F\u00E4chertextur.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liquid crystal" ], title = - ), [1] = " visualised by a polarising microscope. Germany is a pioneer research center for ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nanotechnology" ], title = - ), [3] = " and ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "material engineering" ], title = - ), [5] = ".", [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.") ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany has been the home of many famous inventors and ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "engineer" ], title = - ), [2] = ", such as ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johannes Gutenberg" ], title = - ), [4] = ", who is credited with the invention of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "movable type" ], title = - ), [6] = " ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "printing" ], title = - ), [8] = " in Europe; ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hans Geiger" ], title = - ), [10] = ", the creator of the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Geiger counter" ], title = - ), [12] = "; and ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Konrad Zuse" ], title = - ), [14] = ", who built the first fully automatic digital computer.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}}") ), [16] = " German inventors, engineers and industrialists such as ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Count" ], title = - ), [18] = " ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ferdinand von Zeppelin" ], title = - ), [20] = ", ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otto Lilienthal" ], title = - ), [22] = ", ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gottlieb Daimler" ], title = - ), [24] = ", ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rudolf Diesel" ], title = - ), [26] = ", ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hugo Junkers" ], title = - ), [28] = " and ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Karl Benz" ], title = - ), [30] = " helped shape modern automotive and air transportation technology.", [31] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}") ), [32] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007.") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Aerospace engineering" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aerospace engineer" ) ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wernher von Braun" ], title = - ), [3] = " developed the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "V-2 rocket" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "first space rocket" ) ), [5] = " and later on was a prominent member of ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NASA" ], title = - ), [7] = " and developed the ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saturn V" ], title = - ), [9] = " Moon rocket, which paved the way for the success of the US ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Apollo program" ], title = - ), [11] = ". ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heinrich Rudolf Hertz" ], title = - ), [13] = "'s work in the domain of ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "electromagnetic radiation" ], title = - ), [15] = " was pivotal to the development of modern telecommunication.", [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007.") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Siemens" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Bosch GmbH" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bosch" ) ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BASF" ], title = - ), [6] = ", with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world\u2019s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08.") ) ], [10] = "\n\n" ] ), [24] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Science" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Science and technology in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Einstein 1921 by F Schmutzer.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albert Einstein" ], title = - ) ) ] ), [4] = "\nGermany's achievements in sciences have been significant and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "research and development" ], title = - ), [6] = " efforts form an integral part of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Economy of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "country's economy" ) ), [8] = ". Germany has been the home of some of the most prominent researchers in various scientific fields.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany \u2013 A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006.") ), [10] = "\n\n", [11] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel Prize" ], title = - ), [2] = " has been awarded to ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel laureates by country" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "103 German laureates" ) ), [4] = ".", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009.") ), [6] = " For most of the 20th century, ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Evolution of Nobel Prizes by country" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German laureates had more awards" ) ), [8] = " than those of any other nation, especially in the sciences (i.e., ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel Prize in Physics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "physics" ) ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel Prize in Chemistry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "chemistry" ) ), [12] = ", and ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel Prize in Physiology or Medicine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "physiology or medicine" ) ), [14] = ").", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.") ), [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("National Science Nobel Prize shares 1901\u20132009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[J\u00FCrgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1]") ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = "The work of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albert Einstein" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Planck" ], title = - ), [4] = " was crucial to the foundation of modern ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "physics" ], title = - ), [6] = ", which ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Werner Heisenberg" ], title = - ), [8] = " and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Born" ], title = - ), [10] = " developed further.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0.") ), [12] = " They were preceded by physicists such as ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hermann von Helmholtz" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph von Fraunhofer" ], title = - ), [16] = ", and ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Gabriel Fahrenheit" ], title = - ), [18] = ". ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wilhelm Conrad R\u00F6ntgen" ], title = - ), [20] = " discovered ", [21] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "X-ray" ], title = - ), [22] = ", which are called ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "R\u00F6ntgenstrahlen" ), [24] = " (R\u00F6ntgen-rays) in German and many other languages. This accomplishment made him the first winner of the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nobel Prize in Physics" ], title = - ), [26] = " in 1901.", [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901\u20132003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007.") ), [28] = " Numerous significant ", [29] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "mathematician" ], title = - ), [30] = " were born in Germany, including ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Friedrich Gauss" ], title = - ), [32] = ", ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Hilbert" ], title = - ), [34] = ", ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernhard Riemann" ], title = - ), [36] = ", ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gottfried Leibniz" ], title = - ), [38] = ", ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Karl Weierstrass" ], title = - ), [40] = " and ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hermann Weyl" ], title = - ), [42] = "." ], [14] = "\n\n", [15] = WtParagraph[ [0] = "Important research institutions in Germany are the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Planck Society" ], title = - ), [2] = ", the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Helmholtz Association of German Research Centres" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Helmholtz Association" ) ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fraunhofer Society" ], title = - ), [6] = ". They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gottfried Wilhelm Leibniz Prize" ], title = - ), [8] = " is granted to ten scientists and academics every year. With a maximum of \u20AC2.5", [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "million per award it is one of highest endowed research prizes in the world.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007.") ) ], [16] = "\n\n" ] ) ] ), [12] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Demographics" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Bev\u00F6lkerungsdichte.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Population density in German states (left) and communities (right)" ) ] ), [3] = "\n", [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Demographics of Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germans" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Social issues in Germany" ] ) ] ), [5] = "\n\n", [6] = WtParagraph[ [0] = "With estimated 81.8", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million inhabitants in January 2010,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "population" ] ) ], body = - ), [4] = " Germany is the most populous country in the European Union and ranks as the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by population" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "15th largest country" ) ), [6] = " in the world in terms of population. Its ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of sovereign states and dependent territories by population density" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "population density" ) ), [8] = " stands at 229.4 inhabitants per square kilometre." ], [7] = "\n\n", [8] = WtParagraph[ [0] = "The overall ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by life expectancy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "life expectancy in Germany" ) ), [2] = " at birth is 79.9 years. The ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Total fertility rate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "fertility rate" ) ), [4] = " of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of sovereign states and dependent territories by fertility rate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "lowest in the world" ) ), [6] = ".", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen L\u00E4ndern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}}") ), [8] = " ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Death rates" ], title = - ), [10] = " are continuously exceeding low-level ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "birth rates" ], title = - ), [12] = ".", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}}") ) ], [9] = "\n\n", [10] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Statistical Office of Germany" ], title = - ), [2] = " forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder \u00E4lter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    \nMore details on the methodology, detailed tables broken down by age and sex, etc. are provided at \n{{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bev\u00F6lkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}") ) ], [11] = "\n", [12] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Pyramide Allemagne.PNG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germany's ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "population pyramid" ], title = - ), [2] = " in 2005" ) ] ), [13] = "\n\n", [14] = WtParagraph[ [0] = "Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class." ], [15] = "\n\n", [16] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germans" ], title = - ), [1] = " make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ethnic German" ], title = - ), [3] = " repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Statistical Office of Germany" ], title = - ), [5] = " that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad." ], [17] = "\n\n", [18] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Migration" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Population of German territories 1800 - 2000.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Population of German territories 1800\u20132000 and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "immigrant" ], title = - ), [2] = " population from 1975\u20132000" ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United Nations Population Fund" ], title = - ), [2] = " lists Germany as host to the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by immigrant population" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "third-highest number of international migrants worldwide" ) ), [4] = ", about 5% or 10", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million of all 191", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "million migrants.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007.") ), [10] = " As a consequence of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Immigration to Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "restrictions" ) ), [12] = " to Germany's formerly rather unrestricted laws on ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "right of asylum" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "asylum" ) ), [14] = " and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]\".") ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = "In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }}") ), [2] = " ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "As of" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008" ] ) ] ), [4] = ", the largest national group of people with a migrant background was from Turkey (2.5", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million), followed by Italy (776,000) and Poland (687,000).", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bev\u00F6lkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}}") ) ], [7] = "\n\n", [8] = WtParagraph[ [0] = "Large numbers of people with full or significant German ancestry are found in the\nUnited States (50", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million),", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population.") ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brazil" ], title = - ), [6] = " (5", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = "million)", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigra\u00E7\u00E3o Alem\u00E3 no Brasil] Deutsche Welle. Retrieved 19 November 2009.") ), [10] = " and Canada (3", [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "million).", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating \"single-ancestry\".") ), [14] = " About 3", [15] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [16] = "million \"Aussiedler\"\u2014ethnic Germans, mainly from Eastern Europe and the former Soviet Union\u2014have resettled in Germany since 1987.", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.migrationinformation.org/Feature/display.cfm?ID=201 \"Fewer Ethnic Germans Immigrating to Ancestral Homeland\"]. ''Migration Information Source.'' February 2004") ) ], [9] = "\n\n" ] ), [19] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Urbanisation" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "See also" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Metropolitan Regions in Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of cities in Germany" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "List of cities in Germany with more than 100,000 inhabitants" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Germany has a number of large cities; the most populous are: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt" ], title = - ), [10] = ", and ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stuttgart" ], title = - ), [12] = ". The largest ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "conurbation" ], title = - ), [14] = " is the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine-Ruhr" ], title = - ), [16] = " region (12", [17] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [18] = "million), including ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf" ], title = - ), [20] = " (the capital of ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Rhine-Westphalia" ], title = - ), [22] = "), ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne" ], title = - ), [24] = ", ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Essen" ], title = - ), [26] = ", ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dortmund" ], title = - ), [28] = ", ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Duisburg" ], title = - ), [30] = ", and ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bochum" ], title = - ), [32] = "." ], [4] = "\n\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "97%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid darkgray; background: #f9f9f9" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ "" "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "9" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0.3em 0; font-size:120%;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Largest cities of Germany" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "11" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:Cityscapeberlin2006.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berlin" ) ] ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin" ], title = - ), [4] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [5] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hamburg" ) ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:M\u00FCnchen Panorama.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Munich" ) ] ), [10] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Munich (M\u00FCnchen)" ) ) ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Rank" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " City" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Population" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "11" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "50" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Rank" ], [1] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " City" ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right; background:#f5f5f5;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Population" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "11" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:K\u00F6ln Panorama.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cologne" ) ] ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cologne (K\u00F6ln)" ) ), [4] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [5] = "\n", [6] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:Hauptwache Frankfurt am Main.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frankfurt am Main" ) ] ), [7] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt am Main" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frankfurt" ) ), [9] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [10] = WtImageLink( {P} border = true {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 160 target = WtPageName[ [0] = "File:Stg-schlossplatz-kunstmuseum.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "border" {P} rtd = RTD[ "|border" ] ), [1] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|160px" ] {P} width = 160 ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stuttgart" ) ] ), [11] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stuttgart" ], title = - ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 1 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 3,442,675" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 11 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hannover" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 520,966" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 2 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburg" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1,774,224" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 12 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leipzig" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 518,862" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 3 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1,330,440" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 13 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dresden" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 517,052" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 4 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 998,105" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 14 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nuremberg" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 503,673" ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 5 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt am Main" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frankfurt" ) ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 671,927" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 15 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Duisburg" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 491,931" ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 6 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stuttgart" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 601,646" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 16 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bochum" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 376,319" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 7 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "D\u00FCsseldorf" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 586,217" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 17 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wuppertal" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 351,050" ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 8 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dortmund" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 581,308" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 18 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bielefeld" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 323,084" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 9 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Essen" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 576,259" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 19 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonn" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 319,841" ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 10 " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bremen" ], title = - ), [2] = " " ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 547,685" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#f0f0f0;" ] ) ], body = WtBody[ [0] = " 20 " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mannheim" ], title = - ), [2] = " " ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 311,969" ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "9" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Source: ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "cite web " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Mitglieder des Deutschen St\u00E4dtetages " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "publisher" ], value = WtValue[ [0] = "Deutschen St\u00E4dtetag " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "date" ], value = WtValue[ [0] = "31 December 2009 " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "accessdate" ], value = WtValue[ [0] = "18 February 2011 " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "url" ], value = WtValue[ [0] = "http://www.staedtetag.de/10/staedte/nach_einwohner/index.html " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "language" ], value = WtValue[ [0] = "German" ] ) ] ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n" ] ), [20] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Languages" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Languages of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Knowledge German EU map.png" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Knowledge of German in European countries" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "German is the official and predominant spoken language in Germany.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Eurobarometer Languages" ] ) ], body = - ), [2] = " It is one of 23 official languages in the European Union, and one of the three ", [3] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "working language" ], title = - ), [4] = " of the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Commission" ], title = - ), [6] = ", along with English and French. Recognised native minority languages in Germany are Danish, ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sorbian languages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sorbian" ) ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Romany language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Romany" ) ), [10] = ", and ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frisian languages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frisian" ) ), [12] = ". They are officially protected by the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ECRML" ], title = - ), [14] = ". The most used immigrant languages are ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Turkish language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Turkish" ) ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kurdish language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kurdish" ) ), [18] = ", Polish, the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Balkan languages" ], title = - ), [20] = ", and Russian." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Standard German is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Germanic languages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West Germanic language" ) ), [2] = " and is closely related to and classified alongside English, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dutch language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Dutch" ) ), [4] = ", and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frisian languages" ], title = - ), [6] = ". To a lesser extent, it is also related to the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Germanic languages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "East" ) ), [8] = " (extinct) and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Germanic languages" ], title = - ), [10] = ". Most German vocabulary is derived from the Germanic branch of the Indo-European language family.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Many tongues, one family" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}}") ), [12] = " Significant minorities of words are derived from ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Latin" ], title = - ), [14] = " and Greek, with a smaller amount from French and most recently English (known as ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Denglisch" ], title = - ), [16] = "). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Umlaut (diacritic)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Umlauts" ) ), [18] = ", namely \u00E4, \u00F6, and \u00FC, as well as the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eszett" ], title = - ), [20] = " or ", [21] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "scharfes S" ), [22] = " (", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "sharp s" ), [24] = ") which is written \"\u00DF\".\n", [25] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "multiple image\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " align " ], value = WtValue[ [0] = " left\n\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width2 " ], value = WtValue[ [0] = " 170\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image2 " ], value = WtValue[ [0] = " De-Faust - Der Trag\u00F6die erster Teil-Prolog und Auf dem Theater-wikisource.ogg\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption2 " ], value = WtValue[ [0] = " Spoken German in [[Goethe's Faust]]\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt2 " ], value = WtValue[ [0] = " Goethe\u00B4s German\n\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " width1 " ], value = WtValue[ [0] = " 100\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " image1 " ], value = WtValue[ [0] = " Faust spricht mit dem Erdgeist, Margret Hofheinz-D\u00F6ring, \u00D6l, 1969 (WV-Nr.4385).jpg\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " caption1 " ], value = WtValue[ [0] = " \n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " alt1 " ], value = WtValue[ [0] = " Faust\n" ] ) ] ), [26] = "\nGerman ", [27] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "dialect" ], title = - ), [28] = " are distinguished from ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "variety (linguistics)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "varieties" ) ), [30] = " of ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "standard German" ], title = - ), [32] = ". German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lexicon" ], title = - ), [34] = ", ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "phonology" ], title = - ), [36] = ", and ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "syntax" ], title = - ), [38] = "." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Around the world, German has approximately 100", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "First language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "native speakers" ) ), [4] = " and also about 80", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million non-native speakers.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "natgeo2006" ] ) ], body = WtTagExtensionBody("{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257\u2013270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}}") ), [8] = " German is the main language of about 90", [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Eurobarometer Languages" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}") ) ], [10] = "\n\n" ] ), [21] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Religion" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Religion in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Colognecathedralatnight.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cologne Cathedral" ], title = - ), [2] = " at the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [4] = " river is a ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UNESCO World Heritage Site" ], title = - ), [6] = "." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "According to organisational reporting based on projections in 2008 about 34.1% Germans have ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "irreligion" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "no registered religious denomination" ) ), [2] = ". According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}}") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Christianity is the largest religion in Germany, with around 49.4", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million adherents (62.8%) in 2008", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ekd" ] ) ], body = WtTagExtensionBody("{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}}") ), [4] = " of which 24.5", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million are ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Protestantism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Protestants" ) ), [8] = " (29.9%) belonging to the EKD and 24.9", [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09.") ), [12] = " The second largest religion is ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Islam in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Islam" ) ), [14] = " with an estimated 3.8 to 4.3", [15] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [16] = "million adherents (4.6 to 5.2%)", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.1" ] ) ], body = - ), [18] = " followed by ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buddhism" ], title = - ), [20] = " and Judaism, both with around 200,000 adherents (0.3%). ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hinduism" ], title = - ), [22] = " has some 90,000 adherents (0.1%) and ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sikhism" ], title = - ), [24] = " 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents.\n", [25] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar box\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Religion in Germany (2008)\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "titlebar" ], value = WtValue[ [0] = "#ddd\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "float" ], value = WtValue[ [0] = "left\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "bars" ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Irreligion|No Religion]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Yellow" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "34.1" ] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Roman Catholicism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Orange" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "30.0" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Protestantism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "MediumAquamarine" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "29.9" ] ) ] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Islam]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "#f99" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "4.0" ] ) ] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Eastern Orthodox Church|Orthodox Christianity]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "DarkGray" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "1.6" ] ) ] ), [10] = "\n", [11] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Judaism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Blue" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0.2" ] ) ] ), [12] = "\n", [13] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "bar percent" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[Buddhism]]" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Black" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "0.2" ] ) ] ), [14] = "\n" ] ) ] ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Protestantism is concentrated in the north and east and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Catholicism in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roman Catholicism" ) ), [2] = " is concentrated in the south and west. Pope ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Benedict XVI" ], title = - ), [4] = ", was born in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavaria" ], title = - ), [6] = ". ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "irreligion" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Non-religious" ) ), [8] = " people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Democratic Republic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "East Germany" ) ), [10] = " and major metropolitan areas.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009.") ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = "Of the roughly 4", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million Muslims, most are ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sunni Islam" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sunnis" ) ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alevites" ], title = - ), [6] = " from ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Turkey" ], title = - ), [8] = ", but there are a small number of ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Shia Islam" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shi'ites" ) ), [10] = " and other denominations.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.1" ] ) ], body = WtTagExtensionBody("{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt f\u00FCr Migration und Fl\u00FCchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] betr\u00E4gt der Anteil der Muslime an der Gesamtbev\u00F6lkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangeh\u00F6rige,rund 55 Prozent haben eine ausl\u00E4ndische Staatsangeh\u00F6rigkeit. }}") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "MLD 2.2" ] ) ], body = WtTagExtensionBody("{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt f\u00FCr Migration und Fl\u00FCchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen betr\u00E4gt 74 Prozent }}\n* 74.1% [[Sunni Islam|Sunni]]\n* 12.7% [[Alevi]]te\n* 7.1% [[Shia Islam|Schiite]]\n* 1.7% [[Ahmadiyya|Ahmadi]]\n* 0.3% [[Ibadi]]\n* 0.1% [[Sufism|Sufi]]/mystic\n* 4.0% other\n") ), [13] = " 1.6% of the country's overall population declare themselves ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orthodox Christians" ], title = - ), [15] = ", ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Serbs" ], title = - ), [17] = " and ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Greeks" ], title = - ), [19] = " being the most numerous.", [20] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ekd" ] ) ], body = - ), [21] = " Germany has Europe's third-largest ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "History of the Jews in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jewish population" ) ), [23] = " (after France and the United Kingdom).", [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006.") ), [25] = " In 2004, twice as many Jews from former ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Soviet Union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Soviet" ) ), [27] = " republics settled in Germany as in ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Israel" ], title = - ), [29] = ", bringing the total Jewish population to more than 200,000, compared to 30,000 prior to ", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German reunification" ], title = - ), [31] = ". Large cities with significant Jewish populations include Berlin, ", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt" ], title = - ), [33] = " and ", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [35] = ".", [36] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006.") ), [37] = " Around 250,000 active ", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buddhism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Buddhists" ) ), [39] = " live in Germany; 50% of them are Asian immigrants.", [40] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{de icon}} [[Die Zeit]] 12/07, page 13") ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = "According to the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eurobarometer" ], title = - ), [2] = " poll 2005, 47% of German citizens agreed with the statement \"I believe there is a God\", whereas 25% agreed with \"I believe there is some sort of spirit or life force\" and 25% said \"I do not believe there is any sort of spirit, god, or life force\".", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "EUROBAROMETER" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}}") ) ], [14] = "\n\n" ] ), [22] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Education" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Education in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Kindergartenfrankfurt.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kindergarten in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hessen" ], title = - ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Responsibility for educational oversight in Germany lies primarily with the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "States of Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "federated states" ) ), [2] = " individually, whilst the federal government only has a minor role.", [3] = WtXmlComment( {P} content = "Kulturhoheit" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [4] = " Optional ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kindergarten" ], title = - ), [6] = " education is provided for all children between three and six years old, after which school attendance is ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "compulsory education" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "compulsory" ) ), [8] = " for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ED" ] ) ], body = WtTagExtensionBody("{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006.") ), [10] = " In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ", [11] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gymnasium (school)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gymnasium" ) ) ), [12] = " enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ", [13] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Realschule" ], title = - ) ), [14] = " has a broader range of emphasis for intermediate students and lasts six years; the ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hauptschule" ], title = - ) ), [16] = " prepares pupils for vocational education." ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Heidelberg Universit\u00E4tsbibliothek 2003.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Heidelberg" ], title = - ), [2] = " was established in 1386." ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "Since the 1960s, a reform movement attempted to unify secondary education in a ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Gesamtschule" ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "comprehensive school" ], title = - ), [4] = "). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German L\u00E4nder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Programme for International Student Assessment" ], title = - ), [6] = " (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated.") ), [8] = " having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system." ], [11] = "\n\n", [12] = WtParagraph[ [0] = "A special system of apprenticeship called ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Duale Ausbildung" ), [2] = " (\"dual education\") allows pupils in ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vocational training" ], title = - ), [4] = " to learn in a company as well as in a state-run vocational school.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ED" ] ) ], body = - ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "To enter a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of universities in Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "university in Germany" ) ), [2] = ", high school students are generally required to take the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abitur" ], title = - ) ), [4] = " examination, which is similar to ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Advanced Level (UK)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A-levels in the UK" ) ), [6] = " and typically done at the age of 18 or 19. However, students possessing a diploma from a ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vocational school" ], title = - ), [8] = " may also apply for ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "matriculation" ], title = - ), [10] = " in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Academic Ranking of World Universities" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ARWU" ) ), [12] = " ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "ARWU" ] ) ], body = WtTagExtensionBody("{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}}") ), [14] = " Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from \u20AC50\u2013500 per semester for each student.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006.") ) ], [15] = "\n\n" ] ), [23] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Health" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Health in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:UniKlinik (Freiburg) 4.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Department of Surgery in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University Medical Center Freiburg" ], title = - ) ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany has the world's oldest ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "universal health care" ], title = - ), [2] = " system, with origins dating back to ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otto von Bismarck" ], title = - ), [4] = "'s ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otto von Bismarck#Bismarck's social legislation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Social legislation" ) ), [6] = " in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World Health Organization" ], title = - ), [8] = ", Germany's ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "health care system" ], title = - ), [10] = " was 77% government-funded and 23% privately funded as of 2004.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "WHOSIS" ] ) ], body = WtTagExtensionBody("[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010.") ), [12] = " In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Germany ranked 20th in the world in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "life expectancy" ], title = - ), [2] = " with ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by life expectancy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "76,5 years for men and 82,1 years for woman" ) ), [4] = ". It had a very low ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "infant mortality rate" ], title = - ), [6] = " (4.3 per 1,000 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Live birth (human)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "live births" ) ), [8] = "), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3)." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "In 2002 the top diagnosis for male patients released from the hospital was ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "heart disease" ], title = - ), [2] = ", followed by ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alcoholism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "alcohol-related disorders" ) ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hernias" ], title = - ), [6] = ". For women, the top diagnoses related to ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pregnancies" ], title = - ), [8] = ", breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "HIV/AIDS" ], title = - ), [10] = ". According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "DW1" ] ) ], body = WtTagExtensionBody("{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BBC1" ] ) ], body = WtTagExtensionBody("{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}}") ) ], [10] = "\n\n" ] ) ] ), [13] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Culture" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Culture of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Beethoven.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ludwig van Beethoven" ], title = - ), [1] = " (1770\u20131827), composer" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "German culture began long before the rise of Germany as a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nation-state" ], title = - ), [2] = " and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "secularism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "secular" ) ), [4] = ". As a result, German artistic achievements have to be seen in a larger framework of European ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "high culture" ], title = - ), [6] = ", Western ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "popculture" ], title = - ), [8] = ", and globally connected ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "subculture" ], title = - ), [10] = ".", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010.") ), [13] = " Historically Germany has been called ", [14] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Das Land der Dichter und Denker" ), [15] = " (the land of poets and thinkers).", [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Sp\u00E4tzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006.") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million German museum visits every year; annually, 20", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "million go to theatres and operas; while 3.6", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million listen to the great symphonic orchestras.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008.") ) ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Berlin night.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berlin is a centre of arts, nightlife, music, architecture and festivals" ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = "The UNESCO inscribed 33 properties in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Table of World Heritage Sites by country" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germany on the World Heritage List" ) ), [2] = ".", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010.") ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hans Holbein the Younger" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Matthias Gr\u00FCnewald" ], title = - ), [4] = ", and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albrecht D\u00FCrer" ], title = - ), [6] = " were important artists of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Renaissance" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Caspar David Friedrich" ], title = - ), [10] = " of ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Romanticism" ], title = - ), [12] = ", and ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Ernst" ], title = - ), [14] = " of ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Surrealism" ], title = - ), [16] = ". Architectural contributions from Germany include the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carolingian architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Carolingian" ) ), [18] = " and ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ottonian architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ottonian styles" ) ), [20] = ", which were important precursors of ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Romanesque architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Romanesque" ) ), [22] = ". The region later became the site of significant works in styles such as ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gothic architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gothic" ) ), [24] = ", ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Renaissance architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Renaissance" ) ), [26] = " and ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Baroque architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baroque" ) ), [28] = ". Germany was particularly important in the early ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "modern architecture" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "modern movement" ) ), [30] = ", especially through the ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bauhaus" ], title = - ), [32] = " movement founded by ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter Gropius" ], title = - ), [34] = ". ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ludwig Mies van der Rohe" ], title = - ), [36] = ", also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass fa\u00E7ade skyscraper was his idea.", [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8") ) ], [15] = "\n\n", [16] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Literature" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German literature" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "German literature can be traced back to the Middle Ages and the works of writers such as ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walther von der Vogelweide" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wolfram von Eschenbach" ], title = - ), [4] = ". Various German authors and poets have won great renown, including ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johann Wolfgang von Goethe" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Schiller" ], title = - ), [8] = ". The collections of folk tales published by the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brothers Grimm" ], title = - ), [10] = " popularised ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German folklore" ], title = - ), [12] = " on an international level.\nInfluential authors of the 20th century include ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas Mann" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bertolt Brecht" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hermann Hesse" ], title = - ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heinrich B\u00F6ll" ], title = - ), [20] = ", and ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G\u00FCnter Grass" ], title = - ), [22] = ".", [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "nobel" ] ) ], body = WtTagExtensionBody("{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}}") ) ], [4] = "\n\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right; margin-right:50px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johann Wolfgang von Goethe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johann Wolfgang v. Goethe" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(1749\u20131832)" ] ) ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Schiller" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(1759\u20131805)" ] ) ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brothers Grimm" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(1785\u20131863)" ] ) ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas Mann" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(1875\u20131955)" ] ) ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hermann Hesse" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(1877\u20131962)" ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 190 target = WtPageName[ [0] = "File:Johann Heinrich Wilhelm Tischbein 007.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|190px" ] {P} width = 190 ) ] ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 129 target = WtPageName[ [0] = "File:Gerhard von K\u00FCgelgen 001.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|129px" ] {P} width = 129 ) ] ) ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 125 target = WtPageName[ [0] = "File:Grimm1.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|125px" ] {P} width = 125 ) ] ) ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 106 target = WtPageName[ [0] = "File:Thomas Mann 1929.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|106px" ] {P} width = 106 ) ] ), [2] = " " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "left" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Hermann Hesse 1927 Photo Gret Widmann.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n" ] ), [17] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Philosophy" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German philosophy" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Immanuel Kant (painted portrait).jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Immanuel Kant" ], title = - ), [1] = " (1724\u20131804)" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Western philosophy" ], title = - ), [2] = " since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world." ], [6] = "\n\n", [7] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gottfried Leibniz" ], title = - ), [1] = "'s contributions to ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rationalism" ], title = - ), [3] = "; the establishment of classical ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German idealism" ], title = - ), [5] = " by ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Immanuel Kant" ], title = - ), [7] = ", ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johann Gottlieb Fichte" ], title = - ), [9] = ", ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georg Wilhelm Friedrich Hegel" ], title = - ), [11] = " and ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Wilhelm Joseph Schelling" ], title = - ), [13] = "; ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthur Schopenhauer" ], title = - ), [15] = "'s composition of metaphysical pessimism; ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Karl Marx" ], title = - ), [17] = "'s and ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Engels" ], title = - ), [19] = "' formulation of ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "communist theory" ], title = - ), [21] = "; ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Nietzsche" ], title = - ), [23] = "'s development of ", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "perspectivism" ], title = - ), [25] = "; ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gottlob Frege" ], title = - ), [27] = "'s contributions to the dawn of ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "analytic philosophy" ], title = - ), [29] = "; ", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Martin Heidegger" ], title = - ), [31] = "'s works on Being; and the development of the ", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt school" ], title = - ), [33] = " by ", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Horkheimer" ], title = - ), [35] = ", ", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theodor Adorno" ], title = - ), [37] = ", ", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herbert Marcuse" ], title = - ), [39] = " and ", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J\u00FCrgen Habermas" ], title = - ), [41] = " have been particularly influential." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Searle, John. (1987). ''The Blackwell Companion to Philosophy'', \"Introduction\". Wiley-Blackwell.") ) ], [10] = "\n\n" ] ), [18] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Cinema" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Cinema of Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Derblaueengel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marlene Dietrich" ], title = - ), [1] = " in ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Blue Angel" ], title = - ) ), [3] = " in 1930, Germany's first major film with sound" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "German cinema dates back to the very early years of the medium with the work of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Skladanowsky" ], title = - ), [2] = ". It was particularly influential during the years of the Weimar Republic with ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German expressionism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German expressionists" ) ), [4] = " such as ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Wiene" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Friedrich Wilhelm Murnau" ], title = - ), [8] = ". Austrian-based director ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fritz Lang" ], title = - ), [10] = ", who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Metropolis (film)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Metropolis" ) ), [12] = " (1927) is referred to as the birth of modern Science Fiction movies." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "In 1930 Austrian-American ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Josef von Sternberg" ], title = - ), [2] = " directed ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Blue Angel" ], title = - ) ), [4] = ", which was the first major German ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sound film" ], title = - ), [6] = " and it brought world fame to actress ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marlene Dietrich" ], title = - ), [8] = ".", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}}") ), [10] = " Impressionist documentary ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin: Symphony of a Great City" ], title = - ), [12] = ", directed by ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter Ruttmann" ], title = - ), [14] = ", is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leni Riefenstahl" ], title = - ), [16] = " still introduced new aesthetics to film.", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007.") ) ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Berlinale2007.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Berlinale Palast during the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Film Festival" ], title = - ), [2] = " in February 2007" ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = "During the 1970s and 80s, ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New German Cinema" ], title = - ), [2] = " directors such as ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Volker Schl\u00F6ndorff" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Werner Herzog" ], title = - ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wim Wenders" ], title = - ), [8] = ", and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rainer Werner Fassbinder" ], title = - ), [10] = " put West German cinema back on the international stage with their often provocative films.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007.") ), [12] = "\nMore recently, films such as ", [13] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Good Bye Lenin!" ], title = - ) ), [14] = " (2003), ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Head-On" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gegen die Wand (Head-on)" ) ) ), [16] = " (2004), ", [17] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Der Untergang" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Der Untergang (Downfall)" ) ) ), [18] = " (2004), and ", [19] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Der Baader Meinhof Komplex" ], title = - ) ), [20] = " (2008) have enjoyed international success." ], [13] = "\n\n", [14] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Academy Award for Best Foreign Language Film" ], title = - ), [2] = " went to the German production ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Tin Drum (film)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Die Blechtrommel (The Tin Drum)" ) ) ), [4] = " in 1979, to ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nowhere in Africa" ], title = - ) ), [6] = " in 2002, and to ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Lives of Others" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Das Leben der Anderen (The Lives of Others)" ) ) ), [8] = " in 2007.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007.") ), [10] = " Among the most famous German actors are Marlene Dietrich, ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Klaus Kinski" ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hanna Schygulla" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armin Mueller-Stahl" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J\u00FCrgen Prochnow" ], title = - ), [18] = ", and ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas Kretschmann" ], title = - ), [20] = "." ], [15] = "\n\n", [16] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berlin Film Festival" ], title = - ), [2] = ", held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.''") ), [4] = " The annual ", [5] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "European Film Award" ], title = - ), [6] = " ceremony is held every second year in the city of Berlin, where the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "European Film Academy" ], title = - ), [8] = " (EFA) is located. The ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Babelsberg Studios" ], title = - ), [10] = " in Potsdam are the oldest large-scale film studios in the world and a centre for international film production." ], [17] = "\n\n" ] ), [19] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Music" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Music of Germany" ] ) ] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Germany claims some of the world's most renowned classical music composers, including ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ludwig van Beethoven" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johann Sebastian Bach" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johannes Brahms" ], title = - ), [6] = ", and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Wagner" ], title = - ), [8] = ". As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kraftwerk" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boney M." ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nico" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nina Hagen" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scorpions (band)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Scorpions" ) ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Toten Hosen" ], title = - ), [20] = ", ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tokio Hotel" ], title = - ), [22] = ", ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rammstein" ], title = - ), [24] = " and ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul van Dyk" ], title = - ), [26] = ".", [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006.") ) ], [4] = "\n\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:right; margin-right:50px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J.S.Bach" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Toccata and Fugue in D minor, BWV 565" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toccata und Fuge" ) ) ] ) ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ludwig van Beethoven" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "L.v. Beethoven" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Symphony No. 5 (Beethoven)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Symphonie 5 c-moll" ) ) ] ) ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Wagner" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R. Wagner" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Die Walk\u00FCre" ], title = - ) ] ) ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kraftwerk" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Computer World" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Computerwelt Pt. 2" ) ) ] ) ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Modern Talking" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brother Louie (Modern Talking song)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Brother Louie" ) ) ] ) ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ "!" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rammstein" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ohne dich" ], title = - ) ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:#dcdcdc;" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Toccata et Fugue BWV565.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ), [2] = " " ] ), [1] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:#d3d3d3;" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ) ] ), [2] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:silver;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Wagner - die walkure fantasie.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ), [1] = " " ] ), [3] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:darkGrey;" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Kraftwerk - computerwelt - computerwelt 2.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ), [2] = " " ] ), [4] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:gray;" ] ) ], body = WtBody[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Brother Louie MT.ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ) ] ), [5] = WtTableCell( {P} rtd = RTD[ "||" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left; background:dimGrey;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 110 target = WtPageName[ [0] = "File:Rammstein - Ohne dich (sample).ogg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|110px" ] {P} width = 110 ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n" ] ), [20] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Media" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:FrankfurterBuchmesse2008.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt Book Fair" ], title = - ), [2] = " in 2008" ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = "Germany's television market is the largest in Europe, with some 34", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million TV households.\nThe many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ZDF" ], title = - ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ARD (broadcaster)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ARD" ) ), [6] = " offer a range of digital-only channels.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007.") ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = "Germany is home to some of the world's largest media conglomerates, including ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bertelsmann" ], title = - ), [2] = ", the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Axel Springer AG" ], title = - ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ProSiebenSat.1 Media" ], title = - ), [6] = "." ], [7] = "\n\n", [8] = WtParagraph[ [0] = "The German-speaking book publishers produce about 700", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People\u2019s Republic of China.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany \u2013 Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010.") ), [4] = " The ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frankfurt Book Fair" ], title = - ), [6] = " is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years." ], [9] = "\n\n", [10] = WtParagraph[ [0] = "The country's news is provided for English speakers e.g. by news magazine ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Der Spiegel" ], title = - ), [2] = " and state broadcaster ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deutsche Welle" ], title = - ), [4] = "." ], [11] = "\n\n" ] ), [21] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Sports" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Sport in Germany" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = 140 target = WtPageName[ [0] = "File:Michael Schumacher 2010 Malaysia.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|140px" ] {P} width = 140 ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michael Schumacher" ], title = - ), [1] = " has won seven ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Formula One" ], title = - ), [3] = " championships." ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = WtTagExtensionBody("{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}}") ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Association football" ], title = - ), [4] = " is the most popular sport. With more than 6.3", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "million official members, the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "German Football Association" ], title = - ), [8] = " (", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Deutscher Fu\u00DFball-Bund" ), [10] = ") is the largest sports organisation of its kind worldwide.", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = - ), [12] = " The ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fu\u00DFball-Bundesliga" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bundesliga" ) ), [14] = " attracts the second highest ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of attendance figures at domestic professional sports leagues" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "average attendance" ) ), [16] = " of any professional sports league in the world. The ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germany national football team" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "German national football team" ) ), [18] = " won the ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FIFA World Cup" ], title = - ), [20] = " in 1954, 1974 and 1990 and the ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UEFA European Football Championship" ], title = - ), [22] = " in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FIFA World Cup 1974" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1974" ) ), [24] = " and ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FIFA World Cup 2006" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2006" ) ), [26] = " and the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UEFA European Football Championship" ], title = - ), [28] = " in ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "UEFA Euro 1988" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1988" ) ), [30] = ". Among the most successful and renowned footballers are\n", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franz Beckenbauer" ], title = - ), [32] = ", ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gerd M\u00FCller" ], title = - ), [34] = ", ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J\u00FCrgen Klinsmann" ], title = - ), [36] = ", ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lothar Matth\u00E4us" ], title = - ), [38] = ", and ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oliver Kahn" ], title = - ), [40] = ". Other popular spectator sports include ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "team handball" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "handball" ) ), [42] = ", volleyball, basketball, ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ice hockey" ], title = - ), [44] = ", and tennis.", [45] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sports" ] ) ], body = - ) ], [6] = "\n\n", [7] = WtParagraph[], [8] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:AllianzArenaSunset.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allianz Arena" ], title = - ), [2] = " is host to the football club ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bayern Munich" ], title = - ), [4] = " and was a venue for the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "2006 FIFA World Cup" ], title = - ), [6] = "." ) ] ), [9] = "\n\n", [10] = WtParagraph[ [0] = "Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Formula One" ], title = - ), [2] = " driver in history, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michael Schumacher" ], title = - ), [4] = ", has set many significant motor sport records during his career, having won more ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of Formula One World Drivers' Champions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Formula One World Drivers' Championships" ) ), [6] = " and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }}") ), [8] = " Constructors like ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BMW" ], title = - ), [10] = " and ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mercedes-Benz" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mercedes" ) ), [12] = " are among the leading manufacturers in motor sport. Additionally, ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Porsche" ], title = - ), [14] = " has won the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "24 Hours of Le Mans" ], title = - ), [16] = ", a prestigious annual endurance race held in France, 16 times, and ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Audi" ], title = - ), [18] = " has won it 9 times. The ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deutsche Tourenwagen Masters" ], title = - ), [20] = " is a popular series in Germany." ], [11] = "\n\n", [12] = WtParagraph[ [0] = "Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "all-time Olympic Games medal count" ], title = - ), [2] = ", combining East and West German medals. In the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "2008 Summer Olympics" ], title = - ), [4] = ", Germany finished fifth in the medal count,", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}}") ), [6] = " while in the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "2006 Winter Olympics" ], title = - ), [8] = " they finished first.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}}") ), [10] = "\nGermany has hosted the Summer Olympic Games twice, in Berlin in ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "1936 Summer Olympics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1936" ) ), [12] = " and in ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Munich" ], title = - ), [14] = " in ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "1972 Summer Olympics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1972" ) ), [16] = ". The Winter Olympic Games took place in Germany once in ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "1936 Winter Olympics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1936" ) ), [18] = " when they were staged in the ", [19] = WtInternalLink( {P} postfix = "n" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]n" ] target = WtPageName[ [0] = "Bavaria" ], title = - ), [20] = " twin towns of ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Garmisch" ], title = - ), [22] = " and ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Partenkirchen" ], title = - ), [24] = "." ], [13] = "\n\n" ] ), [22] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Cuisine" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Main" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "German cuisine" ] ) ] ) ], [2] = "\n", [3] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:144215094 be5e39f10f b.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Schwarzw\u00E4lder Kirschtorte" ], title = - ) ), [2] = " (Black Forest cake)" ) ] ), [4] = "\n\n", [5] = WtParagraph[ [0] = "German cuisine varies from region to region. The southern regions of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bavarian cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bavaria" ) ), [2] = " and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}}") ), [4] = " Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sausage" ], title = - ), [6] = " are produced in Germany. ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Organic food" ], title = - ), [8] = " has gained a market share of around 3.0%, and is predicted to increase further.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}}") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "A popular German saying has the meaning: \"Breakfast like an emperor, lunch like a king, and dine like a beggar.\" Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "yoghurt" ], title = - ), [2] = " is less common but widespread.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November.") ), [4] = " More than 300 types of bread are sold in bakery shops across the country.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November.") ) ], [8] = "\n\n", [9] = WtParagraph[], [10] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Buffet Germany.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A typical cheese and cold meat ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "buffet" ], title = - ), [2] = " served at private festivities" ) ] ), [11] = "\n\n", [12] = WtParagraph[ [0] = "As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Italian cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Italian" ) ), [2] = " dishes like pizza and pasta, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Turkish cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Turkish" ) ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arab" ], title = - ), [6] = " dishes like ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Doner kebab" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "D\u00F6ner Kebab" ) ), [8] = " and ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Falafel" ], title = - ), [10] = " are well established, especially in bigger cities. International ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hamburger" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "burger" ) ), [12] = " chains, as well as ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chinese cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chinese" ) ), [14] = " and ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Greek cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Greek" ) ), [16] = " restaurants, are widespread. ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Indian cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian" ) ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thai cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Thai" ) ), [20] = ", ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Japanese cuisine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Japanese" ) ), [22] = ", and other Asian cuisines have gained popularity in recent decades.\nAmong high-profile restaurants in Germany, the ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michelin guide" ], title = - ), [24] = " has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November.") ), [26] = " German restaurants have become the world's second most decorated eateries after France.", [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November.") ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but\u2014at 116 litres annually\u2014it is still among the highest in the world.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November.") ), [2] = " Beer varieties include ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Altbier" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alt" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bock" ], title = - ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dunkel" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "K\u00F6lsch (beer)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "K\u00F6lsch" ) ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lager" ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Malzbier" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pilsener" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pils" ) ), [16] = ", and ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Weizenbier" ], title = - ), [18] = ". Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.", [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November.") ), [20] = " Furthermore, carbonated mineral water and ", [21] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Spritzer#Non-alcoholic spritzer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Schorle" ) ) ), [22] = " (its mixture with fruit juice) are very popular in Germany." ], [15] = "\n\n" ] ), [23] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Society" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Schloss-Neuschwanstein.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tourism is an important industry in parts of Germany(", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Neuschwanstein Castle" ], title = - ), [2] = ")" ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = "Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010.") ), [2] = " The country has established a high level of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gender equality" ], title = - ), [4] = ", promotes ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Disability rights movement" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "disability rights" ) ), [6] = ", and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and ", [7] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "civil union" ], title = - ), [8] = " have been permitted since 2001.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007.") ), [10] = " The Vice-Chancellor ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guido Westerwelle" ], title = - ), [12] = " and the mayor of Berlin, ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Klaus Wowereit" ], title = - ), [14] = ", are openly gay.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "gayscity" ] ) ], body = WtTagExtensionBody("{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}") ), [16] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Update after" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2011" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "09" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "reason" ], value = WtValue[ [0] = "elections in Berlin" ] ) ] ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = "During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }}") ) ], [7] = "\n\n", [8] = WtParagraph[ [0] = "Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007.") ), [2] = " In annually conducted global surveys known as ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nation Brands Index" ], title = - ), [4] = ", Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }}") ), [6] = " Another global opinion poll, for the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BBC" ], title = - ), [8] = ", revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}") ), [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010.") ) ], [9] = "\n\n", [10] = WtParagraph[ [0] = "With an expenditure of \u20AC67", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }}") ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "-" ], args = WtTemplateArguments[] ) ], [11] = "\n\n" ] ) ] ), [14] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "See also" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Portal box" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "European Union" ] ) ] ) ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Outline of Germany" ], title = - ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " Articles Related to Germany\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Germany topics" ], args = WtTemplateArguments[] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "States of Germany " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "titlestyle" ], value = WtValue[ [0] = "background:#ddf;" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " Geographic locale\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Geographic location\n " ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Northwest " ], value = WtValue[ [0] = " ''[[North Sea]]''
    ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "The Netherlands" ] ) ] ), [2] = "\n " ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " North " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Denmark" ] ) ] ), [2] = "\n " ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Northeast " ], value = WtValue[ [0] = " ''[[Baltic Sea]]''\n " ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " West " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Belgium" ] ) ] ), [2] = "
    ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Luxembourg" ] ) ] ), [4] = "\n " ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Centre " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flagicon" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ), [2] = " [[Outline of Germany|Germany]]\n " ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " East " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Poland" ] ) ] ), [2] = "
    ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Czech Republic" ] ) ] ), [4] = "\n " ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Southwest " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "France" ] ) ] ), [2] = "\n " ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " South " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Switzerland" ] ) ] ), [2] = " \u2022 ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Austria" ] ) ] ), [4] = "\n " ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = " Southeast " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Flag" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Austria" ] ) ] ), [2] = "\n" ] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Sovereign states of Europe" ], args = WtTemplateArguments[] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Countries bordering the Baltic Sea" ], args = WtTemplateArguments[] ), [6] = "\n" ] ) ] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Template group\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title " ], value = WtValue[ [0] = " International membership\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "list " ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "EU members" ], args = WtTemplateArguments[] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "North Atlantic Treaty Organisation (NATO)" ], args = WtTemplateArguments[] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Organisation for Economic Co-operation and Development" ], args = WtTemplateArguments[] ), [6] = "\n", [7] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "G8 nations" ], args = WtTemplateArguments[] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "G20" ], args = WtTemplateArguments[] ), [10] = "\n", [11] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WTO members" ], args = WtTemplateArguments[] ), [12] = "\n", [13] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Council of Europe" ], args = WtTemplateArguments[] ), [14] = "\n", [15] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "OSCE" ], args = WtTemplateArguments[] ), [16] = "\n" ] ) ] ), [8] = "\n", [9] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "National personifications" ], args = WtTemplateArguments[] ), [10] = "\n" ] ) ] ) ], [6] = "\n\n" ] ), [15] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Notes" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "group" ], value = WtValue[ [0] = "note" ] ) ] ) ], [2] = "\n" ] ), [16] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "References" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "colwidth" ], value = WtValue[ [0] = "30em" ] ) ] ) ], [2] = "\n\n" ] ), [17] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Spoken Wikipedia-2" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008-06-24" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany (Spoken Article) Part 1.ogg" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany (Spoken Article) Part 2.ogg" ] ) ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Sister project links" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ) ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ WtXmlComment("\nWikipedia is not a link list nor a Web directory. If your link points to a site that does not cover many subjects about Germany, it's most likely in the wrong place here and you should go and search for a more specific article.\n") + "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.deutschland.de/" {P} protocol = "http" {P} rtd = RTD[ "http://www.deutschland.de/" ] ), title = WtLinkTitle[ [0] = "Deutschland.de" ] ), [2] = " \u2013 Official Germany portal (non-profit)" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.bundeskanzlerin.de/" {P} protocol = "http" {P} rtd = RTD[ "http://www.bundeskanzlerin.de/" ] ), title = WtLinkTitle[ [0] = "Official site of German Chancellor" ] ), [2] = " (German and English)" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.dw-world.de/" {P} protocol = "http" {P} rtd = RTD[ "http://www.dw-world.de/" ] ), title = WtLinkTitle[ [0] = "Deutsche Welle" ] ), [2] = " \u2013 Germany's international broadcaster" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html" {P} protocol = "https" {P} rtd = RTD[ "https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html" ] ), title = WtLinkTitle[ [0] = "Chief of State and Cabinet Members" ] ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "CIA World Factbook link" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "gm" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.britannica.com/EBchecked/topic/231186/Germany" {P} protocol = "http" {P} rtd = RTD[ "http://www.britannica.com/EBchecked/topic/231186/Germany" ] ), title = WtLinkTitle[ [0] = "Germany" ] ), [2] = " entry at ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Encyclop\u00E6dia Britannica" ], title = - ) ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//ucblibraries.colorado.edu/govpubs/for/germany.htm" {P} protocol = "http" {P} rtd = RTD[ "http://ucblibraries.colorado.edu/govpubs/for/germany.htm" ] ), title = WtLinkTitle[ [0] = "Germany" ] ), [2] = " at ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "UCB Libraries GovPubs" ) ), [7] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "dmoz" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Regional/Europe/Germany" ] ) ] ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Wikiatlas" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Germany" ] ) ] ) ], [6] = "\n", [7] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.tatsachen-ueber-deutschland.de/en/" {P} protocol = "http" {P} rtd = RTD[ "http://www.tatsachen-ueber-deutschland.de/en/" ] ), title = WtLinkTitle[ [0] = "Facts about Germany" ] ), [2] = " \u2013 by the German Federal Foreign Office" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.destatis.de/e_home.htm" {P} protocol = "http" {P} rtd = RTD[ "http://www.destatis.de/e_home.htm" ] ), title = WtLinkTitle[ [0] = "Destatis.de" ] ), [2] = " \u2013 Federal Statistical Office Germany ", [3] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "en icon" ], args = WtTemplateArguments[] ) ) ], [8] = "\n", [9] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "osmrelation-inline" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "51477" ] ) ] ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Germany" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " " ) ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:European countries" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Member states of the European Union" ], title = - ), [5] = "\n", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Alpine countries" ], title = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Countries bordering the Atlantic Ocean" ], title = - ), [9] = "\n", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Countries bordering the Baltic Sea" ], title = - ), [11] = "\n", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Republics" ], title = - ), [13] = "\n", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Federal countries" ], title = - ), [15] = "\n", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:German-speaking countries" ], title = - ), [17] = "\n", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:G8 nations" ], title = - ), [19] = "\n", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:G20 nations" ], title = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Liberal democracies" ], title = - ), [23] = "\n", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Western Europe" ], title = - ), [25] = "\n", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Member states of the Union for the Mediterranean" ], title = - ), [27] = "\n", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:States and territories established in 1871" ], title = - ), [29] = "\n", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Members of the North Atlantic Treaty Organization" ], title = - ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "da" ] ) ] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "de" ] ) ] ), [3] = "\n", [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "eo" ] ) ] ), [5] = "\n", [6] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "es" ] ) ] ), [7] = "\n", [8] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "lt" ] ) ] ), [9] = "\n", [10] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link GA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "zh" ] ) ] ), [11] = "\n", [12] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "af" ] ) ] ), [13] = "\n", [14] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "gv" ] ) ] ), [15] = "\n", [16] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "hr" ] ) ] ), [17] = "\n", [18] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "lv" ] ) ] ), [19] = "\n", [20] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "mr" ] ) ] ), [21] = "\n", [22] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "nah" ] ) ] ), [23] = "\n", [24] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "pt" ] ) ] ), [25] = "\n", [26] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "sq" ] ) ] ), [27] = "\n", [28] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "tr" ] ) ] ), [29] = "\n", [30] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Link FA" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "yi" ] ) ] ), [31] = "\n", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ace:Jeureuman" ], title = - ), [33] = "\n", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "af:Duitsland" ], title = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "als:Deutschland" ], title = - ), [37] = "\n", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "am:\u1300\u122D\u1218\u1295" ], title = - ), [39] = "\n", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ang:\u00DE\u0113odscland" ], title = - ), [41] = "\n", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ab:\u0410\u043B\u043C\u0430\u043D\u0442\u04D9\u044B\u043B\u0430" ], title = - ), [43] = "\n", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ar:\u0623\u0644\u0645\u0627\u0646\u064A\u0627" ], title = - ), [45] = "\n", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "an:Alemanya" ], title = - ), [47] = "\n", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "arc:\u0713\u072A\u0721\u0722" ], title = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "roa-rup:Gherm\u00E3nia" ], title = - ), [51] = "\n", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "frp:Alemagne" ], title = - ), [53] = "\n", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ast:Alema\u00F1a" ], title = - ), [55] = "\n", [56] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gn:Alema\u00F1a" ], title = - ), [57] = "\n", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ay:Alima\u00F1a" ], title = - ), [59] = "\n", [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "az:Almaniya" ], title = - ), [61] = "\n", [62] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bm:Jermani" ], title = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bn:\u099C\u09BE\u09B0\u09CD\u09AE\u09BE\u09A8\u09BF" ], title = - ), [65] = "\n", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zh-min-nan:Tek-kok" ], title = - ), [67] = "\n", [68] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ba:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [69] = "\n", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "be:\u0413\u0435\u0440\u043C\u0430\u043D\u0456\u044F" ], title = - ), [71] = "\n", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "be-x-old:\u041D\u044F\u043C\u0435\u0447\u0447\u044B\u043D\u0430" ], title = - ), [73] = "\n", [74] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bcl:Alemanya" ], title = - ), [75] = "\n", [76] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bi:Germany" ], title = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bar:Deitschland" ], title = - ), [79] = "\n", [80] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bo:\u0F60\u0F47\u0F62\u0F0B\u0F58\u0F53\u0F0D" ], title = - ), [81] = "\n", [82] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bs:Njema\u010Dka" ], title = - ), [83] = "\n", [84] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "br:Alamagn" ], title = - ), [85] = "\n", [86] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bg:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [87] = "\n", [88] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ca:Alemanya" ], title = - ), [89] = "\n", [90] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cv:\u0413\u0435\u0440\u043C\u0430\u043D\u0438" ], title = - ), [91] = "\n", [92] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ceb:Alemanya" ], title = - ), [93] = "\n", [94] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cs:N\u011Bmecko" ], title = - ), [95] = "\n", [96] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cbk-zam:Alemania" ], title = - ), [97] = "\n", [98] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tum:Germany" ], title = - ), [99] = "\n", [100] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "co:Germania" ], title = - ), [101] = "\n", [102] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cy:Yr Almaen" ], title = - ), [103] = "\n", [104] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "da:Tyskland" ], title = - ), [105] = "\n", [106] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pdc:Deitschland" ], title = - ), [107] = "\n", [108] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:Deutschland" ], title = - ), [109] = "\n", [110] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "dv:\u0796\u07A6\u0783\u07AA\u0789\u07A6\u0782\u07AA\u0788\u07A8\u078D\u07A7\u078C\u07B0" ], title = - ), [111] = "\n", [112] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nv:B\u00E9\u00E9sh Bich\u02BCahii Bik\u00E9yah" ], title = - ), [113] = "\n", [114] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "dsb:Nimska" ], title = - ), [115] = "\n", [116] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "dz:\u0F47\u0F71\u0F62\u0F0B\u0F58\u0F0B\u0F53\u0F72\u0F0B" ], title = - ), [117] = "\n", [118] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "et:Saksamaa" ], title = - ), [119] = "\n", [120] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "el:\u0393\u03B5\u03C1\u03BC\u03B1\u03BD\u03AF\u03B1" ], title = - ), [121] = "\n", [122] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eml:Germ\u00E2gna" ], title = - ), [123] = "\n", [124] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "myv:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F \u041C\u0430\u0441\u0442\u043E\u0440" ], title = - ), [125] = "\n", [126] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "es:Alemania" ], title = - ), [127] = "\n", [128] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eo:Germanio" ], title = - ), [129] = "\n", [130] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ext:Alema\u00F1a" ], title = - ), [131] = "\n", [132] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "eu:Alemania" ], title = - ), [133] = "\n", [134] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ee:Germany" ], title = - ), [135] = "\n", [136] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fa:\u0622\u0644\u0645\u0627\u0646" ], title = - ), [137] = "\n", [138] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hif:Germany" ], title = - ), [139] = "\n", [140] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fo:T\u00FDskland" ], title = - ), [141] = "\n", [142] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:Allemagne" ], title = - ), [143] = "\n", [144] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fy:D\u00FAtsl\u00E2n" ], title = - ), [145] = "\n", [146] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fur:Gjermanie" ], title = - ), [147] = "\n", [148] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ga:An Ghearm\u00E1in" ], title = - ), [149] = "\n", [150] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gv:Yn Ghermaan" ], title = - ), [151] = "\n", [152] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gd:A' Ghearmailt" ], title = - ), [153] = "\n", [154] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gl:Alema\u00F1a - Deutschland" ], title = - ), [155] = "\n", [156] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "frr:Tj\u00FCschl\u00F6nj" ], title = - ), [157] = "\n", [158] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gan:\u5FB7\u570B" ], title = - ), [159] = "\n", [160] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gag:Germaniya" ], title = - ), [161] = "\n", [162] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "got:\uD800\uDF38\uD800\uDF39\uD800\uDF3F\uD800\uDF33\uD800\uDF39\uD800\uDF43\uD800\uDF3A\uD800\uDF30\uD800\uDF3B\uD800\uDF30\uD800\uDF3D\uD800\uDF33" ], title = - ), [163] = "\n", [164] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hak:Tet-koet" ], title = - ), [165] = "\n", [166] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "xal:\u041D\u0438\u0438\u0446\u04D9\u0442\u04D9 \u041D\u0435\u043C\u0448\u0438\u043D \u041E\u0440\u043D" ], title = - ), [167] = "\n", [168] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ko:\uB3C5\uC77C" ], title = - ), [169] = "\n", [170] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "haw:Kelem\u0101nia" ], title = - ), [171] = "\n", [172] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hy:\u0533\u0565\u0580\u0574\u0561\u0576\u056B\u0561" ], title = - ), [173] = "\n", [174] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hi:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [175] = "\n", [176] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hsb:N\u011Bmska" ], title = - ), [177] = "\n", [178] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hr:Njema\u010Dka" ], title = - ), [179] = "\n", [180] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "io:Germania" ], title = - ), [181] = "\n", [182] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ig:J\u00E9man\u1ECB" ], title = - ), [183] = "\n", [184] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ilo:Alemania" ], title = - ), [185] = "\n", [186] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bpy:\u099C\u09BE\u09B0\u09CD\u09AE\u09BE\u09A8\u09BF" ], title = - ), [187] = "\n", [188] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "id:Jerman" ], title = - ), [189] = "\n", [190] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ia:Germania" ], title = - ), [191] = "\n", [192] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ie:Germania" ], title = - ), [193] = "\n", [194] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "iu:\u152E\u14AA\u14C2/jaamani" ], title = - ), [195] = "\n", [196] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "os:\u0413\u0435\u0440\u043C\u0430\u043D" ], title = - ), [197] = "\n", [198] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "xh:IJamani" ], title = - ), [199] = "\n", [200] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zu:IJalimani" ], title = - ), [201] = "\n", [202] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "is:\u00DE\u00FDskaland" ], title = - ), [203] = "\n", [204] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "it:Germania" ], title = - ), [205] = "\n", [206] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "he:\u05D2\u05E8\u05DE\u05E0\u05D9\u05D4" ], title = - ), [207] = "\n", [208] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "jv:Jerman" ], title = - ), [209] = "\n", [210] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kl:Tysklandi" ], title = - ), [211] = "\n", [212] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kn:\u0C9C\u0CB0\u0CCD\u0CAE\u0CA8\u0CBF" ], title = - ), [213] = "\n", [214] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pam:Alemania" ], title = - ), [215] = "\n", [216] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ka:\u10D2\u10D4\u10E0\u10DB\u10D0\u10DC\u10D8\u10D0" ], title = - ), [217] = "\n", [218] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ks:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [219] = "\n", [220] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "csb:Miemieck\u00F4" ], title = - ), [221] = "\n", [222] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kk:\u0410\u043B\u043C\u0430\u043D\u0438\u044F" ], title = - ), [223] = "\n", [224] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kw:Almayn" ], title = - ), [225] = "\n", [226] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rw:Ubudage" ], title = - ), [227] = "\n", [228] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ky:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [229] = "\n", [230] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rn:Ubudagi" ], title = - ), [231] = "\n", [232] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sw:Ujerumani" ], title = - ), [233] = "\n", [234] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kv:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [235] = "\n", [236] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kg:Alemanyi" ], title = - ), [237] = "\n", [238] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ht:Almay" ], title = - ), [239] = "\n", [240] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ku:Almanya" ], title = - ), [241] = "\n", [242] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "koi:\u041D\u0435\u043C\u0435\u0447\u043C\u0443" ], title = - ), [243] = "\n", [244] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lad:Almania" ], title = - ), [245] = "\n", [246] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "krc:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [247] = "\n", [248] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lo:\u0E9B\u0EB0\u0EC0\u0E97\u0E94\u0EC0\u0EA2\u0EB1\u0EBD\u0EA5\u0EB0\u0EA1\u0EB1\u0E99" ], title = - ), [249] = "\n", [250] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "la:Germania" ], title = - ), [251] = "\n", [252] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lv:V\u0101cija" ], title = - ), [253] = "\n", [254] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lb:D\u00E4itschland" ], title = - ), [255] = "\n", [256] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lt:Vokietija" ], title = - ), [257] = "\n", [258] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lij:Germania" ], title = - ), [259] = "\n", [260] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "li:Duutsjlandj" ], title = - ), [261] = "\n", [262] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ln:Al\u00E9mani" ], title = - ), [263] = "\n", [264] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "jbo:dotygu'e" ], title = - ), [265] = "\n", [266] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lg:Girimane" ], title = - ), [267] = "\n", [268] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "lmo:Germania" ], title = - ), [269] = "\n", [270] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hu:N\u00E9metorsz\u00E1g" ], title = - ), [271] = "\n", [272] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mk:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u0458\u0430" ], title = - ), [273] = "\n", [274] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mg:Alemaina" ], title = - ), [275] = "\n", [276] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ml:\u0D1C\u0D7C\u0D2E\u0D4D\u0D2E\u0D28\u0D3F" ], title = - ), [277] = "\n", [278] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mt:\u0120ermanja" ], title = - ), [279] = "\n", [280] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mi:Tiamana" ], title = - ), [281] = "\n", [282] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mr:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [283] = "\n", [284] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "arz:\u0627\u0644\u0645\u0627\u0646\u064A\u0627" ], title = - ), [285] = "\n", [286] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mzn:\u0622\u0644\u0645\u0627\u0646" ], title = - ), [287] = "\n", [288] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ms:Jerman" ], title = - ), [289] = "\n", [290] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cdo:D\u00E1ik-gu\u00F3k" ], title = - ), [291] = "\n", [292] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mdf:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u0435 \u043C\u0430\u0441\u0442\u043E\u0440" ], title = - ), [293] = "\n", [294] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mn:\u0413\u0435\u0440\u043C\u0430\u043D" ], title = - ), [295] = "\n", [296] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "my:\u1002\u103B\u102C\u1019\u1014\u102E\u1014\u102D\u102F\u1004\u103A\u1004\u1036" ], title = - ), [297] = "\n", [298] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nah:Teutontl\u0101lpan" ], title = - ), [299] = "\n", [300] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "na:Germany" ], title = - ), [301] = "\n", [302] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:Duitsland" ], title = - ), [303] = "\n", [304] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nds-nl:Duutslaand" ], title = - ), [305] = "\n", [306] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ne:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [307] = "\n", [308] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "new:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [309] = "\n", [310] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ja:\u30C9\u30A4\u30C4" ], title = - ), [311] = "\n", [312] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nap:Germania" ], title = - ), [313] = "\n", [314] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ce:\u0413\u0435\u0440\u043C\u0430\u043D\u0438" ], title = - ), [315] = "\n", [316] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pih:Doichland" ], title = - ), [317] = "\n", [318] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "no:Tyskland" ], title = - ), [319] = "\n", [320] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nn:Tyskland" ], title = - ), [321] = "\n", [322] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nrm:Allemangne" ], title = - ), [323] = "\n", [324] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nov:Germania" ], title = - ), [325] = "\n", [326] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "oc:Alemanha" ], title = - ), [327] = "\n", [328] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "mhr:\u041D\u0435\u043C\u044B\u0447 \u042D\u043B" ], title = - ), [329] = "\n", [330] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "uz:Olmoniya" ], title = - ), [331] = "\n", [332] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pa:\u0A1C\u0A30\u0A2E\u0A28\u0A40" ], title = - ), [333] = "\n", [334] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pag:Germany" ], title = - ), [335] = "\n", [336] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pnb:\u062C\u0631\u0645\u0646\u06CC" ], title = - ), [337] = "\n", [338] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pap:Alemania" ], title = - ), [339] = "\n", [340] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ps:\u0622\u0644\u0645\u0627\u0646" ], title = - ), [341] = "\n", [342] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "km:\u17A2\u17B6\u179B\u17D2\u179B\u17BA\u1798\u17C9\u1784\u17CB" ], title = - ), [343] = "\n", [344] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pcd:Alemanne" ], title = - ), [345] = "\n", [346] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pfl:Daitschlond" ], title = - ), [347] = "\n", [348] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pms:G\u00EBrmania" ], title = - ), [349] = "\n", [350] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tpi:Siamani" ], title = - ), [351] = "\n", [352] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nds:D\u00FC\u00FCtschland" ], title = - ), [353] = "\n", [354] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pl:Niemcy" ], title = - ), [355] = "\n", [356] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pnt:\u0393\u03B5\u03C1\u03BC\u03B1\u03BD\u03AF\u03B1" ], title = - ), [357] = "\n", [358] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pt:Alemanha" ], title = - ), [359] = "\n", [360] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kaa:Germaniya" ], title = - ), [361] = "\n", [362] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "crh:Almaniya" ], title = - ), [363] = "\n", [364] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ty:Heremani" ], title = - ), [365] = "\n", [366] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ksh:D\u00FCtschland" ], title = - ), [367] = "\n", [368] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ro:Germania" ], title = - ), [369] = "\n", [370] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rmy:Jermaniya" ], title = - ), [371] = "\n", [372] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rm:Germania" ], title = - ), [373] = "\n", [374] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "qu:Alimanya" ], title = - ), [375] = "\n", [376] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ru:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [377] = "\n", [378] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rue:\u041D\u0457\u043C\u0435\u0446\u044C\u043A\u043E" ], title = - ), [379] = "\n", [380] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sah:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [381] = "\n", [382] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "se:Duiska" ], title = - ), [383] = "\n", [384] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sm:Siamani" ], title = - ), [385] = "\n", [386] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sa:\u091C\u0930\u094D\u092E\u0928\u0940" ], title = - ), [387] = "\n", [388] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sc:Germ\u00E0nia" ], title = - ), [389] = "\n", [390] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sco:Germany" ], title = - ), [391] = "\n", [392] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "stq:D\u00FC\u00FCtsklound" ], title = - ), [393] = "\n", [394] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sq:Gjermania" ], title = - ), [395] = "\n", [396] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "scn:Girmania" ], title = - ), [397] = "\n", [398] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "simple:Germany" ], title = - ), [399] = "\n", [400] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ss:IJalimane" ], title = - ), [401] = "\n", [402] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sk:Nemecko" ], title = - ), [403] = "\n", [404] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cu:\u041D\u0463\u0301\u043C\u044C\u0446\u0438" ], title = - ), [405] = "\n", [406] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sl:Nem\u010Dija" ], title = - ), [407] = "\n", [408] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "szl:Mjymcy" ], title = - ), [409] = "\n", [410] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "so:Jarmalka" ], title = - ), [411] = "\n", [412] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ckb:\u0626\u0627\u06B5\u0645\u0627\u0646\u06CC\u0627" ], title = - ), [413] = "\n", [414] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "srn:Doysrikondre" ], title = - ), [415] = "\n", [416] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sr:\u041D\u0435\u043C\u0430\u0447\u043A\u0430" ], title = - ), [417] = "\n", [418] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sh:Nema\u010Dka" ], title = - ), [419] = "\n", [420] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "su:J\u00E9rman" ], title = - ), [421] = "\n", [422] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Saksa" ], title = - ), [423] = "\n", [424] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sv:Tyskland" ], title = - ), [425] = "\n", [426] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tl:Alemanya" ], title = - ), [427] = "\n", [428] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ta:\u0B9A\u0BC6\u0BB0\u0BC1\u0BAE\u0BA9\u0BBF" ], title = - ), [429] = "\n", [430] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "kab:Lalman" ], title = - ), [431] = "\n", [432] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tt:\u0410\u043B\u043C\u0430\u043D\u0438\u044F" ], title = - ), [433] = "\n", [434] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "te:\u0C1C\u0C30\u0C4D\u0C2E\u0C28\u0C40" ], title = - ), [435] = "\n", [436] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tet:Alema\u00F1a" ], title = - ), [437] = "\n", [438] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "th:\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E40\u0E22\u0E2D\u0E23\u0E21\u0E19\u0E35" ], title = - ), [439] = "\n", [440] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ti:\u1300\u122D\u1218\u1295" ], title = - ), [441] = "\n", [442] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tg:\u041E\u043B\u043C\u043E\u043D" ], title = - ), [443] = "\n", [444] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "chr:\u13A0\u13DB\u13E5" ], title = - ), [445] = "\n", [446] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tr:Almanya" ], title = - ), [447] = "\n", [448] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "tk:Germani\u00FDa" ], title = - ), [449] = "\n", [450] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "udm:\u0413\u0435\u0440\u043C\u0430\u043D\u0438\u044F" ], title = - ), [451] = "\n", [452] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "uk:\u041D\u0456\u043C\u0435\u0447\u0447\u0438\u043D\u0430" ], title = - ), [453] = "\n", [454] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ur:\u062C\u0631\u0645\u0646\u06CC" ], title = - ), [455] = "\n", [456] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ug:\u06AF\u06D0\u0631\u0645\u0627\u0646\u0649\u064A\u06D5" ], title = - ), [457] = "\n", [458] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "za:Dwzgoz" ], title = - ), [459] = "\n", [460] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vec:Germania" ], title = - ), [461] = "\n", [462] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vi:\u0110\u1EE9c" ], title = - ), [463] = "\n", [464] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vo:Deut\u00E4n" ], title = - ), [465] = "\n", [466] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fiu-vro:S'aksamaa" ], title = - ), [467] = "\n", [468] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "wa:Almagne" ], title = - ), [469] = "\n", [470] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zh-classical:\u5FB7\u570B" ], title = - ), [471] = "\n", [472] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "vls:Duutsland" ], title = - ), [473] = "\n", [474] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "war:Alemanya" ], title = - ), [475] = "\n", [476] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "wo:Almaa\u00F1" ], title = - ), [477] = "\n", [478] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "wuu:\u5FB7\u56FD" ], title = - ), [479] = "\n", [480] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ts:Jarimani" ], title = - ), [481] = "\n", [482] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "yi:\u05D3\u05D9\u05D9\u05D8\u05E9\u05DC\u05D0\u05E0\u05D3" ], title = - ), [483] = "\n", [484] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "yo:J\u1EB9\u0301m\u00E1n\u00EC" ], title = - ), [485] = "\n", [486] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zh-yue:\u5FB7\u570B" ], title = - ), [487] = "\n", [488] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "diq:Almanya" ], title = - ), [489] = "\n", [490] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zea:Duutsland" ], title = - ), [491] = "\n", [492] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bat-smg:Vuok\u012Bt\u0117j\u0117" ], title = - ), [493] = "\n", [494] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "zh:\u5FB7\u56FD" ], title = - ) ] ] ) ) raw-List+of+MythBusters+special+episodes.ast000066400000000000000000002567361335270560400554520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "wikiquotepar" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "MythBusters" ] ) ] ), [1] = WtIgnored(""), [2] = WtXmlComment( {P} content = " This is the episode number within the entire series " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [3] = WtXmlComment( {P} content = " This is the episode number within the current season " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Episode list\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EpisodeNumber " ], value = WtValue[ [0] = " SP11\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EpisodeNumber2 " ], value = WtValue[ [0] = " Special 1\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Title " ], value = WtValue[ [0] = " Young Scientist Special\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "RTitle " ], value = WtValue[ [0] = " \n" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "OriginalAirDate " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Start date" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "4" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "26" ] ) ] ), [2] = "\n" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ShortSummary " ], value = WtValue[ [0] = " '''Myths tested''':
    [[Discovery Channel]]'s young scientist contenders help the Mythbusters tackle environmental myths:
    Are electric cars truly slow?
    Do increased CO2 levels cause accelerated ice melting? (Former Mythbuster [[Scottie Chapman]] returns to assist the testing)
    Are cows truly the single greatest air polluter?\n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "LineColor " ], value = WtValue[ [0] = " DBE9F4\n" ] ) ] ), [5] = WtIgnored("
    "), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/egguinox.html|title=The Egg-uinox|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ), [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/breakstep.html|title=Breakstep Bridge|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ), [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/sharkmyths/sharkmyths.html|title=Shark Mini-Myths|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.youtube.com/watch?v=JisgLhWghRQ|title=Un-Air-able Banned Mythbuster Fart Episode part 1 Keri Byron|publisher=[[YouTube]]|accessdate=October 25, 2009}}") ), [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.youtube.com/watch?v=BqFRBHPIE-w|title=Un-Air-able Banned Mythbuster Fart episode part 2|publisher=[[YouTube]]|accessdate=October 25, 2009}}") ), [11] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "inc-video" ], args = WtTemplateArguments[] ), [12] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[] ), [13] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "imdb title" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "id" ], value = WtValue[ [0] = "0383126" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "MythBusters" ] ) ] ), [14] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "MythBusters" ], args = WtTemplateArguments[] ), [15] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "DEFAULTSORT:Mythbusters" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "wikiquotepar" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "MythBusters" ] ) ] ), [1] = "\nThe cast of the television series ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters" ], title = - ) ), [3] = " perform experiments to verify or debunk ", [4] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "urban legend" ], title = - ), [5] = ", ", [6] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "old wives' tale" ], title = - ), [7] = ", and the like. This is a list of the various myths tested on the show as well as the results of the experiments (the myth is ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters#Conclusions of the experiments" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Busted, Plausible, or Confirmed" ) ), [9] = ")." ], [1] = "\n\n", [2] = WtParagraph[ [0] = "Special episodes listed here were aired separately to the normal season episodes and special episodes. Also included are \"mini myths\", videos available from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Discovery Channel" ], title = - ), [2] = " website." ], [3] = "\n\n", [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Episode overview" ), body = WtBody[ [0] = "\n", [1] = WtIgnored(""), [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%; margin:auto; background:#FFFFFF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: #DBE9F4; color:#000; text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Series # ", [1] = WtXmlComment( {P} content = " This is the episode number within the entire series " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: #DBE9F4; color:#000; text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Season # ", [1] = WtXmlComment( {P} content = " This is the episode number within the current season " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: #DBE9F4; color:#000; text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Title" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ "!!" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: #DBE9F4; color:#000; text-align: center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Original airdate\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Episode list\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EpisodeNumber " ], value = WtValue[ [0] = " SP11\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "EpisodeNumber2 " ], value = WtValue[ [0] = " Special 1\n" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Title " ], value = WtValue[ [0] = " Young Scientist Special\n" ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "RTitle " ], value = WtValue[ [0] = " \n" ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "OriginalAirDate " ], value = WtValue[ [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Start date" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "2008" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "4" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "26" ] ) ] ), [2] = "\n" ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "ShortSummary " ], value = WtValue[ [0] = " '''Myths tested''':
    [[Discovery Channel]]'s young scientist contenders help the Mythbusters tackle environmental myths:
    Are electric cars truly slow?
    Do increased CO2 levels cause accelerated ice melting? (Former Mythbuster [[Scottie Chapman]] returns to assist the testing)
    Are cows truly the single greatest air polluter?\n" ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "LineColor " ], value = WtValue[ [0] = " DBE9F4\n" ] ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n", [5] = WtIgnored("
    "), [6] = "\n", [7] = WtParagraph[ [0] = "\n" ] ] ), [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Specials" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Episode SP11 \u2013 \"Young Scientists Special\"" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Original airdate: April 26, 2008 on ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Science Channel" ], title = - ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "This episode aired first on ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Science Channel" ], title = - ), [2] = ", as opposed to the show's regular home of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Discovery Channel" ], title = - ), [4] = ". A team of winners in Discovery's \"Young Scientist Challenge\" competitions tested environmental myths with the team. Former MythBuster ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scottie Chapman" ], title = - ), [6] = " returned to assist with a myth." ], [4] = "\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Greenhouse gases increase the amount of heat absorbed by air." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "green" ] ) ], body = WtBody[ [0] = " Confirmed " ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Airtight containers with carbon dioxide or methane added got one degree Celsius (2 \u00B0F) hotter than regular when heated by a hot lamp." ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "Electric car" ], title = - ), [2] = " are more sluggish than ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "gasoline" ], title = - ), [4] = "-powered cars." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = " Busted " ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " They first had Jamie drive Brandon (a Young Scientist Challenge winner) in both a gas and electric consumer grade car, and blindfolded Brandon and covered Jamie's ears to see if they could tell the difference. Brandon couldn't tell, but being an experienced driver, Jamie was able to immediately tell based on the electric car's acceleration. Then Adam, Jamie, and Brandon built an electric go-kart using lithium iron phosphate batteries and tested it against a gas go-kart. Despite weighing twice as much as the gas go-kart, the electric go-kart performed about the same. Then they went to a professional track and watched the KillaCycle, an electric drag motorcycle race against a stock gas motorcycle. The gas motorcycle won by a slight margin. Then they had the X1 electric sports car race against an F430 Ferrari, and while the Ferrari's top speed was faster, the electric car accelerated faster and beat it in a drag race. Finally, they had the electric car race against a FJR50 Formula 3 race car. While the Formula 3 car easily beat the electric car, the electric car is considered a \"street car,\" not a race car, and it did well enough that they proclaimed electric cars to be anything but slow." ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cows hurt the environment." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "green" ] ) ], body = WtBody[ [0] = " Confirmed " ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cows emit ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "methane" ], title = - ), [2] = WtXmlEntityRef( {P} name = "mdash" {P} resolved = "\u2014" {P} rtd = RTD[ "—" ] ), [3] = "though not mostly from flatulence, but from belching ", [4] = WtXmlEntityRef( {P} name = "mdash" {P} resolved = "\u2014" {P} rtd = RTD[ "—" ] ), [5] = " and their feces emit even more methane once they begin rotting. Since there are so many cows, the methane contributes significantly to global warming." ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cow manure can be used to help the environment." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "green" ] ) ], body = WtBody[ [0] = " Confirmed " ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cow manure can be used to power things. The Young Scientists helped collect cow manure and extracted methane gas from it. Grant hooked up the methane gas and used it to power a hand lawnmower. They then saw that the farm where they had collected cow manure from received 90% of its electricity from its own manure-powered generator." ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n" ] ) ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Mini Myths" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The mini-myths are shown in video clips that are available from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Discovery Channel" ], title = - ), [2] = " website, as well as during the commercials in between ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "MythBusters" ), [4] = " episodes." ], [2] = "\n\n", [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "\"Egg-uinox\"" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The Egg-uinox myth was perhaps too short to air in any episode, as it was easily and conclusively busted.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/egguinox.html|title=The Egg-uinox|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ) ], [2] = "\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " An egg can be balanced on its ends only during the spring and fall ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "equinox" ], title = - ), [2] = "." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Busted" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " This is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "China" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chinese" ) ), [2] = " folk belief, sometimes called ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Egg of Li Chun" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Li Chun egg balancing" ) ), [4] = " after the first day of spring in the Chinese calendar. There is nothing special about the spring and fall equinoxes that allows an egg to balance on end. A person with enough ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "dexterity" ], title = - ), [6] = " can do it on any day of the year. Hard boiled eggs balance better than raw eggs, however." ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "\"Breakstep Bridge\"" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "In a revisit of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Breakstep Bridge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Breakstep Bridge" ) ), [2] = " myth, Adam and Jamie decide that the suspension bridge that Adam had built was too stable to accurately test, so they build a simple ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "beam bridge" ], title = - ), [4] = " and test it under Adam's weight.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/breakstep.html|title=Breakstep Bridge|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ), [6] = " This test was also aired in ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "#Outtakes" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MythBusters Outtakes" ) ) ), [8] = "." ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A bridge can be collapsed by the vibration caused by pedestrian traffic. The theory was soldiers break step on bridge, because if their march gets a resonant frequency of the bridge, it will snap the bridge." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:orange" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Plausible" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " The bridge was able to hold Adam's weight until he started bouncing on it." ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "\"Mini Shark Myths\"" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The mini shark myths, while related to Discovery Channel's Shark Week, are not related to the movie ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Jaws" ), [2] = " in particular.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/sharkmyths/sharkmyths.html|title=Shark Mini-Myths|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}}") ) ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Sharks tend to be attracted to brighter colors like yellow." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:orange" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Plausible" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " When all the results were calculated, the sharks tested preferred to go for the \"yum-yum yellow\" bait bag before the other ones (red, blue, black, white, silver). Though they did also go for the silver and black ones." ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Sharks can detect a single drop of blood dropped into a pool of water." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Busted" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " The sharks detected fish blood, however they either did not detect human blood or did not care about it. Also, like any scent, the sharks weren't able to detect the blood until their noses came into contact with the blood particles, and the smell grew weaker as the blood got diluted by the water, meaning that a single drop of blood in a particular area of the pool would not be detectable by any shark that was not in that area, and was not swimming right into the blood. However, the Mythbusters only used ", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "lemon shark" ], title = - ), [2] = ", and ", [3] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "great white shark" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "great white" ) ), [4] = " or ", [5] = WtInternalLink( {P} postfix = "s" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]s" ] target = WtPageName[ [0] = "bull shark" ], title = - ), [6] = " might have gotten different results." ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A shark's skin is rough enough to be used as ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sandpaper" ], title = - ), [2] = "." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:green" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Confirmed" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " When compared to various grains of sandpaper, the sharkskin that Adam and Jamie acquired was comparable to a very high-grain (400 to 600) of sandpaper, and can be used as such, even on a rotary sander." ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " There is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "rule of thumb" ], title = - ), [2] = " a casual observer can use to adequately estimate the size of a shark." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Busted" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Out of all the measurements taken of sharks of various species, only one (from nosetip to dorsal fin tip) could consistently be used to estimate the shark's size, and that requires knowledge of the specific shark species and an up-close measurement that might be too difficult and dangerous to be done by a casual observer." ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ) ] ), [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Outtakes" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "During live appearances by the MythBusters, they have screened additional segments that were not aired." ], [2] = "\n\n", [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "\"Facts About Flatulence\"" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "There were two additional myths addressed in addition to those in the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2006 season)#Franklin's Kite" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Franklin's Kite" ) ) ), [2] = " episode. These two myths did not air because they were thought to be inappropriate for younger viewers." ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Attractive women do not pass gas." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Busted" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Kari wore underwear equipped with a microphone connected to an amplifier and a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hydrogen sulfide" ], title = - ), [2] = " meter. The meter malfunctioned, giving false positive readings. However, the microphone did record the sound of a released flatus.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.youtube.com/watch?v=JisgLhWghRQ|title=Un-Air-able Banned Mythbuster Fart Episode part 1 Keri Byron|publisher=[[YouTube]]|accessdate=October 25, 2009}}") ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "flatus" ], title = - ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fart lighting" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "can be ignited" ) ), [4] = "." ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:green" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Confirmed" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Adam had some initial performance anxiety, but finally did release a flatus that could be ignited by a butane lighter.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{Cite web|url=http://www.youtube.com/watch?v=BqFRBHPIE-w|title=Un-Air-able Banned Mythbuster Fart episode part 2|publisher=[[YouTube]]|accessdate=October 25, 2009}}") ), [2] = " The flammable methane within a regular flatus, despite only making up about 7% of the flatus' gasses, is still enough to set it alight upon release (when it first contacts and mixes with the air, but before it can diffuse altogether)." ], [1] = "\n\n", [2] = WtParagraph[ [0] = "This segment was later aired as part of the \"Top 25 Moments\" special on June 16, 2010." ], [3] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "\"MythBusters Teeth Challenge\"" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Less a challenge than an inside joke. The MythBusters received many e-mails from fans complaining about Adam's brown teeth. This was originally planned for the \"", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2006 season)#Episode 55 \u2013 \"Steam Cannon\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Steam Cannon" ) ), [2] = "\" episode. However, on the Discovery Europe version, it is included in the episode." ], [2] = "\n\n", [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myth statement" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Status" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Notes" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Of all the MythBusters, Adam is the one with the brownest teeth. " ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = "Busted" ] ), [2] = ", then ", [3] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "green" ] ) ], body = WtBody[ [0] = "Confirmed" ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Jamie, Adam, Tory, and Grant all had their teeth checked by Kari. At first Jamie was the one with the brownest teeth, not Adam. However, after hearing the news, he had his ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tooth bleaching" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "teeth bleached" ) ), [2] = " to make them white again. After this, Adam did have the brownest teeth. The overall result, from best to worst: Grant, Tory, Adam, and finally Jamie (before his bleaching)." ], [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n\n" ] ) ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BBC Two" ], title = - ), [1] = " re-edited half hour shows" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "inc-video" ], args = WtTemplateArguments[] ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "BBC Two" ], title = - ), [1] = "'s editions of ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "MythBusters" ), [3] = " are narrated by ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rufus Hound" ], title = - ), [5] = " in an energetic and irreverent style." ], [4] = "\n\n", [5] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Date broadcast" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Myths" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " July 27, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Penny Drop" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Penny Drop" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Who Gets Wetter?" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Who Gets Wetter?" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Exploding Toilet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Exploding Toilet" ) ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " August 3, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#CD-ROM Shattering" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CD-ROM Shattering" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Silicone Breasts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Silicone Breasts" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Cell Phone Destruction" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cell Phone Destruction" ) ) ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " September 7, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Lightning Strikes Tongue Piercing" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lightning Strikes Tongue Piercing" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#101 Uses For Cola" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cola Myths (partial; cleaning blood, pennies and chrome, dissolving teeth and steaks)" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (season 1)#Hammer Bridge Drop" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hammer Bridge Drop" ) ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " September 14, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 1 \u2013 \"Jet Assisted Chevy, Pop Rocks and Soda\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JATO Car, Pop Rocks and Soda (called \"Space Dust\" in the British narration, as it is the more common name for Pop Rocks in the UK)" ) ) ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " September 21, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Buried Alive" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Buried Alive" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Beat the Breath Test" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Beat the Breath Test" ) ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " September 28, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Explosive Decompression" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Explosive Decompression" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Rear Axle" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rear Axle" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Frog Giggin'" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Frog Giggin'" ) ) ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " October 5, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#The Mad Trombonist" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mad Trombonist" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Goldfish Memory" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Goldfish Memory" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Sinking Titanic" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Down with the Titanic" ) ) ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " October 12, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Escape From Alcatraz" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Escape from Alcatraz" ) ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Stud Finders & Mind Control Chips" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mind Control Chips" ) ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2003 season)#Does a Duck's Quack Echo?" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Does a Duck's Quack Echo?" ) ) ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " October 19, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Rowing Water Skier" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Row Skiing" ) ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Toothbrush Surprise" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Surprise Toothbrush" ) ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Breakstep Bridge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Breakstep Bridge" ) ) ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" " \n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " October 31, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Buried in Concrete" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Hunt for Hoffa" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Daddy Long-Legs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Daddy Long-Legs" ) ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Jet Taxi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jet Taxi" ) ) ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " November 7, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 3 \u2013 \"Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lawn Chair Balloon" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 3 \u2013 \"Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Poppy Seed Drug Test" ) ), [4] = ", ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 3 \u2013 \"Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Goldfinger" ) ) ) ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " November 14, 2006" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Chicken Gun" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chicken Gun (frozen or thawed?)" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "MythBusters (2004 season)#Killer Washing Machine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Killer Laundry!" ) ) ], [1] = "\n" ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " February 19, 2007" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 2 \u2013 \"Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vacuum Toilet" ) ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters pilot episodes#Pilot 2 \u2013 \"Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer\"" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Exploding Shopping" ) ) ], [1] = "\n" ] ) ] ) ] ) ] ), [6] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "See also" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of MythBusters episodes" ], title = - ) ) ], [2] = "\n\n" ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "References" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Reflist" ], args = WtTemplateArguments[] ) ], [2] = "\n\n" ] ), [11] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//dsc.discovery.com/fansites/mythbusters/mythbusters.html" {P} protocol = "http" {P} rtd = RTD[ "http://dsc.discovery.com/fansites/mythbusters/mythbusters.html" ] ), title = WtLinkTitle[ [0] = "MythBusters Official site" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//drmikessteakdinner.com/2007/03/15/so-do-pretty-girls-fart/" {P} protocol = "http" {P} rtd = RTD[ "http://drmikessteakdinner.com/2007/03/15/so-do-pretty-girls-fart/" ] ), title = WtLinkTitle[ [0] = "View the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Facts About Flatulence" ), [2] = " outtakes" ] ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " ", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "imdb title" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "id" ], value = WtValue[ [0] = "0383126" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "MythBusters" ] ) ] ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "MythBusters" ], args = WtTemplateArguments[] ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "DEFAULTSORT:Mythbusters" ], args = WtTemplateArguments[] ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Lists of MythBusters episodes" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Special" ) ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:MythBusters afleveringen: Specials" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ru:\u0420\u0430\u0437\u0440\u0443\u0448\u0438\u0442\u0435\u043B\u0438 \u043B\u0435\u0433\u0435\u043D\u0434: \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0432\u044B\u043F\u0443\u0441\u043A\u0438" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Luettelo televisiosarjan Myytinmurtajat erikoisjaksoista" ], title = - ) ], [8] = "\n" ] ) ) raw-List+of+high+schools+in+San+Diego+County%2C+California.ast000066400000000000000000001253511335270560400602230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = ":San Diego Unified School District" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = ":Roman Catholic Diocese of San Diego" ], args = WtTemplateArguments[] ), [3] = WtIgnored(""), [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.ramonasentinel.com/default.asp?sourceid=&smenu=1&twindow=&mad=&sdetail=5118&wpage=1&skeyword=&sidate=&ccat=&ccatm=&restate=&restatus=&reoption=&retype=&repmin=&repmax=&rebed=&rebath=&subname=&pform=&sc=1085&hn=ramonasentinel&he=.com Ramona California's Community Newspaper]") ) } {P} warnings = C[ Warning: /nopkg-complex/input.wikitext/raw-List+of+high+schools+in+San+Diego+County%2C+California.wikitext:178:2: : 12.2.4 Element should not be an empty tag! @ WtXmlEmptyTag. ] [0] = WtParagraph[ [0] = "This is a ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "list of high schools in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Diego County, California" ], title = - ) ), [2] = ". It includes public and private schools and is arranged by school district (public schools) or affiliation (private schools). These schools offer grades 9 through 12. Junior High schools are not listed here.\n" ], [1] = "\n", [2] = WtIgnored(""), [3] = "\n", [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Public schools" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Borrego Springs Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Borrego Springs High School" ], title = - ), [1] = ", Borrego Springs" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Palm Canyon High School (continuation), Borrego Springs" ) ], [2] = "\n\n" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Coronado Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Coronado High School (Coronado, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coronado High School" ) ), [1] = ", Coronado" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Palm Academy for Learning, Coronado" ) ], [2] = "\n\n" ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Escondido Union School District" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Escondido Union High School District" ) ) ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Center City High School, Escondido\t" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Escondido Charter High School, Escondido" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Escondido High School" ], title = - ), [1] = ", Escondido" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orange Glen High School" ], title = - ), [1] = ", Escondido" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Pasqual High School" ], title = - ), [1] = ", Escondido" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley High School (continuation), Escondido" ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Classical Academy High School (California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Classical Academy High School" ) ) ) ], [2] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Fallbrook Union High School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fallbrook Union High School" ], title = - ), [1] = ", Fallbrook\t" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Ivy High School (continuation), Fallbrook" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Oasis High School (alternative), Fallbrook" ) ], [2] = "\n\n" ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grossmont Union High School District" ], title = - ) ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chaparral High School (El Cajon)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chaparral High School" ) ), [1] = " (continuation), El Cajon" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "El Cajon Valley High School" ], title = - ), [1] = ", El Cajon" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "El Capitan High School" ], title = - ), [1] = ", Lakeside" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Granite Hills High School (El Cajon, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Granite Hills High School" ) ), [1] = ", El Cajon" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grossmont High School" ], title = - ), [1] = ", La Mesa/El Cajon" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grossmont Middle College High School" ], title = - ), [1] = ", El Cajon" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Helix High School" ], title = - ), [1] = ", La Mesa" ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Monte Vista High School (Spring Valley, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Monte Vista High School" ) ), [1] = ", Spring Valley" ), [8] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mount Miguel High School" ], title = - ), [1] = ", Spring Valley" ), [9] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Santana High School" ], title = - ), [1] = ", Santee" ), [10] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Steele Canyon High School" ], title = - ), [1] = ", Spring Valley" ), [11] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valhalla High School (El Cajon, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Valhalla High School" ) ), [1] = ", El Cajon" ), [12] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Hills High School" ], title = - ), [1] = ", Santee" ) ], [2] = "\n\n" ] ), [6] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Julian Union High School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julian High School" ], title = - ), [1] = ", Julian" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Redding (Ray) High (continuation), Julian" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Summit High Community Day, Julian" ) ], [2] = "\n\n" ] ), [7] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Lakeside Union School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "River Valley Charter School" ], title = - ), [1] = ", Lakeside" ) ], [2] = "\n\n" ] ), [8] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Mountain Empire Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mountain Empire High School" ], title = - ), [1] = ", Pine Valley" ) ], [2] = "\n\n" ] ), [9] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Oceanside Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "El Camino High School (Oceanside)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "El Camino High School" ) ), [1] = ", Oceanside" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oceanside High School" ], title = - ), [1] = ", Oceanside" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Oceanside School of Business and Technology, Oceanside" ), [3] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Pacific View Charter School, Oceanside" ) ], [2] = "\n\n" ] ), [10] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Poway Unified School District" ], title = - ) ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Del Norte High School (San Diego, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Del Norte High School" ) ), [1] = ", San Diego" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mount Carmel High School (San Diego, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mount Carmel High School" ) ), [1] = ", San Diego" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Poway High School" ], title = - ), [1] = ", Poway" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rancho Bernardo High School" ], title = - ), [1] = ", San Diego" ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Westview High School (San Diego)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Westview High School" ) ), [1] = ", San Diego" ) ], [2] = "\n\n" ] ), [11] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Ramona Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Montecito High School (alternative), Ramona" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Mountain Valley Academy High School, Ramona" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ramona High School (Ramona, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ramona High School" ) ), [1] = ", Ramona" ) ], [2] = "\n\n" ] ), [12] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Diego City Schools" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "San Diego Unified School District" ) ) ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = ":San Diego Unified School District" ], args = WtTemplateArguments[] ) ], [2] = "\n\n" ] ), [13] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Dieguito Union High School District" ], title = - ) ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Canyon Crest Academy" ], title = - ), [1] = ", San Diego" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Costa Canyon High School" ], title = - ), [1] = ", Carlsbad" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "North Coast High School (alternative)" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Dieguito Academy" ], title = - ), [1] = ", Encinitas" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Sunset High School (alternative)" ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Torrey Pines High School" ], title = - ), [1] = ", San Diego" ) ], [2] = "\n\n" ] ), [14] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "San Marcos Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Bayshore Prep Charter School, San Marcos\t" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Foothills High (alternative), San Marcos\t" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mission Hills High School" ], title = - ), [1] = ", San Marcos" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Marcos High School (San Marcos, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "San Marcos High School" ) ), [1] = ", San Marcos" ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Twin Oaks High School (alternative), San Marcos" ) ], [2] = "\n\n" ] ), [15] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sweetwater Union High School District" ], title = - ) ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonita Vista High School" ], title = - ), [1] = ", Chula Vista" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Castle Park High School" ], title = - ), [1] = ", Chula Vista" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chula Vista High School" ], title = - ), [1] = ", Chula Vista" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eastlake High School (Chula Vista, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Eastlake High School" ) ), [1] = ", Chula Vista" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hilltop High School" ], title = - ), [1] = ", Chula Vista" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "MAAC Community Charter School, Chula Vista" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mar Vista High School" ], title = - ), [1] = ", Imperial Beach" ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Montgomery High School, San Diego" ], title = - ) ), [8] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympian High School" ], title = - ), [1] = ", Chula Vista" ), [9] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Options Secondary School" ], title = - ), [1] = ", Chula Vista" ), [10] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Otay Ranch High School" ], title = - ), [1] = ", Chula Vista" ), [11] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Palomar High School, Chula Vista" ), [12] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Ysidro High School" ], title = - ), [1] = ", San Diego" ), [13] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Southwest Senior High School" ], title = - ), [1] = ", San Diego" ), [14] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sweetwater High School" ], title = - ), [1] = ", National City" ), [15] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "High School of Roque" ], title = - ), [1] = ",San Diego" ) ], [2] = "\n\n" ] ), [16] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Valley Center-Pauma Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valley Center High School" ], title = - ), [1] = ", Valley Center" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley Center Middle School, Valley Center" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley Center Elementary, Valley Center" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley Center Primary, Valley Center" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley Center Lilac Elementary, Valley Center" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Pauma Valley School K-8, Pauma Valley" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Oak Glen High School (Continuation), Valley Center" ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Valley Center Independent Study, Valley Center" ), [8] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Valley Center Adult Education, Valley Center" ) ], [2] = "\n\n" ] ), [17] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Vista Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guajome Park Academy" ], title = - ), [2] = " (charter), Vista" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rancho Buena Vista High School" ], title = - ), [2] = ", Vista" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vista High School (Vista, California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vista High School" ) ), [2] = ", Vista" ), [3] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " North County Trade Tech High School (charter), Vista" ) ], [2] = "\n\n" ] ), [18] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Warner Unified School District" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warner Middle / High School" ], title = - ), [1] = ", Warner Springs" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "San Jose Valley Continuation High School, Warner Springs" ) ], [2] = "\n\n" ] ) ] ), [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Private schools" ), body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Baptist" ), body = WtBody[ [0] = "\n\n" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Catholic Diocese of San Diego" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Catholic" ) ) ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = ":Roman Catholic Diocese of San Diego" ], args = WtTemplateArguments[] ) ], [2] = "\n\n" ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Episcopal" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Bishop's School (California)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Bishop's School" ) ), [1] = ", La Jolla" ) ], [2] = "\n\n" ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Jewish" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Diego Jewish Academy" ], title = - ), [1] = ", San Diego" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Southern California Yeshiva High School" ], title = - ), [1] = ", San Diego" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Torah High Schools of San Diego" ], title = - ), [1] = ", San Diego" ) ], [2] = "\n\n" ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Lutheran" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lutheran High School of San Diego" ], title = - ), [1] = ", San Diego" ) ], [2] = "\n\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Escondido Adventist Academy" ], title = - ), [1] = ", Escondido" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "San Diego Academy" ], title = - ), [1] = ", National City" ) ], [4] = "\n\n" ] ), [6] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Non-Denominational" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Maranatha Christian Schools, San Diego" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Calvin Christian School (Escondido, California)" ], title = - ) ) ], [2] = "\n\n" ] ), [7] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Nonsectarian" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.tcps.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.tcps.org" ] ), title = WtLinkTitle[ [0] = "The Child's Primary School" ] ), [1] = ", San Diego" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Carlsbad Seaside Academy, Carlsbad\t" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Carlsbad Village Academy, Carlsbad" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis W. Parker School (San Diego)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Francis W. Parker School" ) ), [1] = ", San Diego" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grauer School" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Grauer School" ) ), [1] = ", Encinitas" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Halstrom High School" ], title = - ), [1] = ", Oceanside" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Halstrom High School" ], title = - ), [1] = ", San Diego" ), [7] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Jolla Country Day School" ], title = - ), [1] = ", La Jolla" ), [8] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Pacific Academy International, Encinitas" ), [9] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Pacific Ridge School, Carlsbad" ) ], [2] = "\n", [3] = WtIgnored(""), [4] = "\n", [5] = WtParagraph[ [0] = "\n" ] ] ) ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Closed schools" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Sun Valley Charter High School, Ramona. Closed as of February 3, 2008 due to lack of funding.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.ramonasentinel.com/default.asp?sourceid=&smenu=1&twindow=&mad=&sdetail=5118&wpage=1&skeyword=&sidate=&ccat=&ccatm=&restate=&restatus=&reoption=&retype=&repmin=&repmax=&rebed=&rebath=&subname=&pform=&sc=1085&hn=ramonasentinel&he=.com Ramona California's Community Newspaper]") ), [2] = ")" ) ], [2] = "\n\n" ] ), [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "See also" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of high schools in California" ], title = - ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of school districts in California" ], title = - ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lists of school districts in California by county" ], title = - ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of school districts in San Diego County, California" ], title = - ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Primary and secondary schools in San Diego, California" ], title = - ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of closed secondary schools in California" ], title = - ) ) ], [2] = "\n\n" ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " References " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtXmlElement( {P} name = "references" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ) ], [2] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.sdcoe.k12.ca.us/" {P} protocol = "http" {P} rtd = RTD[ "http://www.sdcoe.k12.ca.us/" ] ), title = WtLinkTitle[ [0] = "San Diego County Office of Education" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//california.schooltree.org/high/San-Diego-County-Schools.html" {P} protocol = "http" {P} rtd = RTD[ "http://california.schooltree.org/high/San-Diego-County-Schools.html" ] ), title = WtLinkTitle[ [0] = "San Diego County Schools" ] ), [1] = ", list of schools from SchoolTree.org" ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:High schools in San Diego County, California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "*" ) ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Lists of schools in California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "California, San Diego County" ) ) ], [4] = "\n" ] ) ) raw-Projet%3ABretagne%2F%C3%89bauches+Bretagne.ast000066400000000000000000051133251335270560400555560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Les 1308 articles suivants ont un bandeau d'\u00E9bauche sur un sujet ne concernant pas la Bretagne, tout en ayant un bandeau de portail li\u00E9 \u00E0 la Bretagne (c'est-\u00E0-dire ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [4] = ", ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [6] = ", ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [8] = ", ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [12] = ", ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [18] = ", ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [20] = ", ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Lorient" ], title = - ), [22] = ", ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [24] = ", ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [26] = ", ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [28] = ", ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [30] = ", ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [32] = ", ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [34] = " ou ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Nazaire" ], title = - ), [36] = ")." ], [1] = "\n\n", [2] = WtParagraph[], [3] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "2e r\u00E9giment du mat\u00E9riel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "3e r\u00E9giment d'infanterie de marine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ABC Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ASPTT Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ASPTT Nantes football" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [5] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Notre-Dame de Daoulas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [6] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Notre-Dame de Langonnet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [7] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Notre-Dame de Lanth\u00E9nac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [3] = "\n" ] ) ] ), [8] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Saint-Jacques de Montfort" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [9] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Saint-Michel de Kergonan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [10] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Saint-Sauveur de Redon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [11] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye Sainte-Marie de Pornic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [12] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abbaye de Saint-Jean-des-Pr\u00E9s" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [13] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abel Durand" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [14] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abysses (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [15] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Adolphe Moiti\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [16] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Agn\u00E8s Giard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [17] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Airon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [18] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alain Barri\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [19] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alain II de Rohan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [20] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alain III de Rohan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [21] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alain Le Quernec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [22] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alain Thiboult" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [23] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albert Caradec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [24] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albert Louppe" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [25] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alex Dupont" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [26] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Lalli\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [27] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alix de Bretagne (1297-1377)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [28] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alix de Thouars" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [29] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alphonse Gasnier-Duparc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [30] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alphonse de Callac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [31] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amicale La\u00EFque Bruz TT" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [32] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amicale sportive de Vitr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [33] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "An heol a zo glaz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [34] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Andr\u00E9 Fauvel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [35] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Andr\u00E9 Le Dissez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [36] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Andr\u00E9 Le Floch" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [37] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Andr\u00E9 Loyen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [38] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Angers-Nantes Op\u00E9ra" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [39] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Anniversc\u00E8ne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [40] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Anthony Masselin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [41] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Anthony Palou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [42] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Anthyme-Denis Cohon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [43] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Antoine Dufour (homme politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [44] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Antoine-Mathieu-Alexandre Jaquemet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [45] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Antoinette de Maignelais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [46] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Aqueduc de la Minette" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [47] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ar-Men (bi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [48] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ardenne (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [49] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arguenon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [50] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Aristide Locquet de Grandville" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [51] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armand Corre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [52] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armand Fouillen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [53] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armand F\u00E9lix Marie Jobb\u00E9-Duval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [54] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armand Rousseau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [55] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armand du Cambout" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [56] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armel (pr\u00E9nom)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [57] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armel de Wismes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [58] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armorique au Haut Moyen \u00C2ge" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [59] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armorloricus davidi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [60] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Armorloricus elegans" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [61] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arm\u00E9e des c\u00F4tes de Brest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [3] = "\n" ] ) ] ), [62] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arnaud Cazin d'Honincthun" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [63] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arnaud Hybois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [64] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arnaud d'Ossat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [65] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arrondissement de Brest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [66] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arrondissement de Dinan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [67] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arrondissement de Guingamp" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [68] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arrondissement de Morlaix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [69] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arrondissement de Redon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [70] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ars\u00E8ne Leloup" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [71] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Art celte" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [72] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthur Regnault" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [73] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arzel Even" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [74] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Association sportive brestoise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [75] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astropolis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [76] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ateliers et chantiers de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [77] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ateliers orl\u00E9anais de r\u00E9alisations ferroviaires" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [78] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Auguste Le Goff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [79] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Auguste Pageot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [80] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Auguste-Ren\u00E9-Marie Dubourg" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [81] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustin Bernard Fran\u00E7ois Le Goazre de Kerv\u00E9l\u00E9gan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [82] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustin de Loynes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [83] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustin-Jean Malassis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [84] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Autour du Blues" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [85] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "A\u00E9roport de Saint-Nazaire - Montoir" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [86] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bagad Nomino\u00EB du Pays de Redon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [5] = ", ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [7] = "\n" ] ) ] ), [87] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Baillistre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [88] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Banc de Bilho" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [89] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barocks" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [90] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barzaz Breiz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [91] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Base a\u00E9rienne 271 Rennes Saint Jacques" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [92] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Base d'a\u00E9ronautique navale de Lanv\u00E9oc-Poulmic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [93] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Base de plein air et de loisirs de Guerl\u00E9dan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [94] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Basset fauve de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [95] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bataille de Carnac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [96] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bataille de Grand-Champ" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [97] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bataille de La Roche-Derrien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [98] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bataille de Machecoul (juin 1793)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [99] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Batscap" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [100] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Beg Meil" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [101] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Beg ar C'hra Communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [102] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Belle Ang\u00E8le (voilier)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [103] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Belle et rebelle" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [104] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Belle-\u00C9toile" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [105] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Beno\u00EEt Le Roux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [106] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Beno\u00EEt Vaugrenard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [107] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard (cardinal, 1151)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [108] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Alliot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [109] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Bretonni\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [110] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Gestin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [111] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Mallet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [112] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Reyt" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [113] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernard Tanguy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [114] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernez Tangi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [115] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Berthe de Blois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [116] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bertrand H\u00E9monic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [117] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bertrand de Broc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [118] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Best of Gilles Servat : 40 ans de succ\u00E8s" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [119] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Beuvron (affluent de la S\u00E9lune)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [120] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bidet (cheval)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [121] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bigard (entreprise)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [122] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Billy Ze Kick et les Gamins en Folie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [123] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bizu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [124] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Blanche de Castille (Nantes)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [125] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boehlen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [126] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bonaventure Chailland" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [127] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brasserie Mor Braz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [128] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brasserie Sainte-Colombe" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [129] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brasserie Tri Martolod" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [130] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brasserie de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [131] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Breiz-Izel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [132] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bretagne (trois-m\u00E2ts)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [133] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bretagne vivante" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [134] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bretagne-Plants" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [135] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brigitte Barazer de Lannurien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [136] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Britt" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [137] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Brivet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Nazaire" ], title = - ), [1] = "\n" ] ) ] ), [138] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bugaled Breizh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [139] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C'est un pays" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [140] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C2C (groupe)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [141] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Caf\u00E9 du bon coin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [142] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Camille Fran\u00E7ois Philippe de Farcy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [143] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Camille Gu\u00E9rini" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [144] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Camille Le Menn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [145] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Camille Robida" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [146] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Canal B" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [147] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cano\u00EB Kayak Club Acign\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [148] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Canton de Brest-Saint-Marc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [149] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Canton de Lanvollon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [150] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Canton de Rez\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [151] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cap Sizun" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [152] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Caradoc Freichfras" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [153] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cartopole" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [3] = "\n" ] ) ] ), [154] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cath\u00E9drale Saint-\u00C9tienne de Saint-Brieuc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [155] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Celtigel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [156] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Centre d\u2019\u00E9tude et de valorisation des algues" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [157] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Centre hospitalier universitaire de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [158] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Centre nautique municipal de Douarnenez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [159] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Centre sportif et culturel Laetitia" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [160] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Championnat de Bretagne de cross-country" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [161] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Championnats d'Europe de char \u00E0 voile 1969" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [162] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Championnats du monde de char \u00E0 voile 2012" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [163] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Championnats du monde de cyclo-cross 2004" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [164] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chantez la vie, l'amour et la mort" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [165] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chantier Krebs" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [166] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chantiers de la Loire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [167] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chapelle de Lochrist" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [168] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chapelle de Prigny" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [169] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chapelle des Ursulines (Ancenis)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [170] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Brunelli\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [171] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Dani\u00E9lou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [172] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Gwennou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [173] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles G\u00E9niaux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [174] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Harouys" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [175] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Huon de Penanster" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [176] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Joseph Lenoir" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [177] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles K\u00E9rivel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [178] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Le Quintrec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [179] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Meunier-Surcouf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [180] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Millardet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [181] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles de Gaulle (\u00E9crivain)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [182] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles de La Monneraye" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [183] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles de La Noue" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [184] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles de Rosmadec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [185] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles-Ange Laisant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [186] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles-Eutrope de La Laurencie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [187] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles-Marie de Faucigny-Lucinge" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [188] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles-Ren\u00E9 Collin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [189] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles-Tanguy Le Roux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [190] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chasse-mar\u00E9e (magazine)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [191] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chaumer\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [192] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chenal du Four" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [193] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christian Troadec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [194] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christophe Cou\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [195] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christophe Revel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [196] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christophe Rouxel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [197] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Christophe-Louis Turpin de Criss\u00E9 de Sanzay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [198] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ch\u00E2teau de Champtoc\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [199] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ch\u00E2teau de Clairvaux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [200] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ch\u00E2teau de Lambilly" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [201] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ch\u00E2teau de la Touche-Larcher" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [202] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ch\u00E2teau du Pr\u00E9-Clos" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [203] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claie (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [204] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claire Huchet-Bishop" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [205] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claude Vaillant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [206] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claude-Ren\u00E9 P\u00E2ris" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [207] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Club olympique briochin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [208] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cl\u00E9ment Guillon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [209] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cl\u00E9ment Th\u00E9audin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [210] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cobac Parc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [211] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Combat de Lamballe" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [212] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Combat de Vitr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [213] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Commando Kieffer (marine nationale)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Lorient" ], title = - ), [1] = "\n" ] ) ] ), [214] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 d'agglom\u00E9ration Cap Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [215] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 d'agglom\u00E9ration de Saint-Brieuc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [216] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Arguenon - Hunaudaye" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [217] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Callac - Argoat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [218] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Centre Armor Puissance 4" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [219] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Guerl\u00E9dan M\u00FBr-de-Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [220] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Hardouinais Men\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [221] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Lamballe Communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [222] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Paimpol-Go\u00EBlo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [223] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes Rance - Fr\u00E9mur" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [224] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de Dinan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [225] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de Moyenne Vilaine et du Semnon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [226] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de Planco\u00EBt Val d'Arguenon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [227] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de l'Aulne Maritime" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [228] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la Baie du Kernic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [229] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la Baie du Mont Saint-Michel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [230] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la C\u00F4te de Penthi\u00E8vre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [231] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la C\u00F4te des M\u00E9galithes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [232] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la Presqu'\u00EEle de L\u00E9zardrieux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [233] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la R\u00E9gion de Pleyben" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [234] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes de la presqu'\u00EEle de Crozon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [235] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes des Monts d'Arr\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [236] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes des Trois Rivi\u00E8res (C\u00F4tes-d'Armor)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [237] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Coglais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [238] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Haut Pays Bigouden" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [239] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Kreiz-Breizh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [240] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Men\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [241] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays Guerchais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [242] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays L\u00E9onard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [243] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays d'Aubign\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [244] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays d'Iroise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [245] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays d'Uzel-pr\u00E8s-l'Oust" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [246] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays d'\u00C9vran" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [247] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Belle-Isle-en-Terre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [248] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Bourbriac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [249] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de B\u00E9gard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [250] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Caulnes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [251] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Ch\u00E2teaugiron" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [252] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Ch\u00E2teaulin et du Porzay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [253] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Ch\u00E2telaudren - Plouagat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [254] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Corlay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [255] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Dol-de-Bretagne et de la Baie du Mont Saint-Michel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [256] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Landerneau-Daoulas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [257] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Landivisiau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [258] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Liffr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [259] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Matignon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [260] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Moncontour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [261] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Montauban-de-Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [262] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Pl\u00E9lan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [263] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Saint-Aubin-du-Cormier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [264] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de Saint-M\u00E9en-le-Grand" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [265] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays de la Bretagne romantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [266] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays du Guesclin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [267] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Pays rochois (C\u00F4tes-d'Armor)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [268] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Val d'Ille" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [269] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du Yeun Elez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [270] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du canton d'Antrain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [271] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Communaut\u00E9 de communes du canton de Guichen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [272] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Concarneau Cornouaille Agglom\u00E9ration" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [273] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Congr\u00E8s de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [274] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Congr\u00E8s de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [275] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conseil g\u00E9n\u00E9ral des C\u00F4tes-d'Armor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [276] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conseil g\u00E9n\u00E9ral du Finist\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [277] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conservatoire \u00E0 rayonnement r\u00E9gional de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [278] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conserverie Gonidec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [279] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Coopagri Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [280] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Corentin (voilier)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [281] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Corentin Canevet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [282] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Corn Bihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [283] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cour administrative d'appel de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [284] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cour d'appel de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [285] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Couvre-feu (festival)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [286] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Crash de Quiberon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [287] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Criale\u00EFs" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [288] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cr\u00E9dit mutuel Ark\u00E9a" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [289] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cr\u00EApe bretonne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [290] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cr\u00EAperie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [291] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cyndyddan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [292] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cynwyd ap Cynfelyn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [293] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cyril Yapi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [294] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C\u00E9dric Morgan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [295] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C\u00F4te sauvage de la Presqu'\u00EEle gu\u00E9randaise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [296] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C\u00F4tes d'Armor Cyclisme" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [297] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "DGA Ma\u00EEtrise de l'information" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [298] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dalh-Mad" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [299] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Leb\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [300] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Darerca" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [301] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Bouard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [302] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Chauvel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [303] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Nal-Vad" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [304] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "De sang, de sueur et d'amour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [305] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Denis Moutel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [306] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Denise Le Dantec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [307] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Derby de l'Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [308] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deski\u00F1 d\u2019an oadourien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [309] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Deuxi\u00E8me bataille de Land\u00E9vant (1795)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [310] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dialogues (librairie)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [311] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Diboular" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [312] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Didier Chouat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [313] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dieu a besoin des hommes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [314] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dioc\u00E8se de Quimper et L\u00E9on" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [3] = "\n" ] ) ] ), [315] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dioc\u00E8se de Saint-Brieuc et Tr\u00E9guier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [3] = "\n" ] ) ] ), [316] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dioc\u00E8se de Vannes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [317] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Discussion Wikip\u00E9dia:Prise de d\u00E9cision/Bandeaux de portail" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [318] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dix ans, dix filles" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [319] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dom Louis Le Pelletier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [320] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Domaine m\u00E9galithique des Pierres droites" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [321] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dominique Irvoas-Dantec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [322] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dominique de Legge" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [3] = "\n" ] ) ] ), [323] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dourduff (Rivi\u00E8re de Morlaix)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [324] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dremmwel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [325] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ecorurb" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [326] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Edme Fouquet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [327] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Edmond Bertreux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [328] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Edmond-Pierre Dor\u00E9-Graslin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [329] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Enez Koalen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [330] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Enez Sun 3" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [331] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "En\u00E9zy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [332] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eon (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [333] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Er Runio" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [334] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ernest Guibourd de Luzinais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [335] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ernest Le Barzic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [336] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ernest Rannou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [337] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Erwan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [338] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Erwan Quintin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [339] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Erwan Tabarly" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [340] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Escales (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [341] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Estuaire de la Loire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [342] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Estuaire de la Vilaine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [343] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eug\u00E8ne Brager de La Ville-Moysan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [344] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eug\u00E8ne Cornu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [345] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eug\u00E8ne H\u00E9lary" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [346] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eug\u00E8ne Lageat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [347] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Eurofins Scientific" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [348] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Evialis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [349] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fabrice Garin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [350] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Famille O'Riordan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [351] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Famille du Bot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [352] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fanch Stephan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [353] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fanch Vidament" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [354] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fa\u00F1ch Peru" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [355] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fa\u00F1ch Postic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [356] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ferdinand Baston de La Riboisi\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [357] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ferdinand Le Drogo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [358] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fernand Crouan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [359] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fernand Dauchot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [360] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fernand Gu\u00E9riff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [361] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fernand Picot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [362] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fernand Rauzena" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [363] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fest Noz de Paname" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [364] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Festival Agrock" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [365] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Festival Scopitone" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [366] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Festival de Saint-Nolff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [367] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Festival de cin\u00E9ma de Douarnenez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [368] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Firmin Le Bourhis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [369] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fleur de Mai (bateau)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [370] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Flora (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [371] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Florian Le Roy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [372] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fonderie d'Indret" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [373] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Forges des Salles" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [5] = "\n" ] ) ] ), [374] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fort Cigogne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [375] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fort National" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [376] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "For\u00EAt du G\u00E2vre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [377] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fouace nantaise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [378] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foug\u00E8res communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [379] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foulques de Laval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [380] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foul\u00E9es Briochines" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [381] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francesco Buanomici" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [382] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis Barbu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [383] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis Blin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [384] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis Le Bl\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [3] = "\n" ] ) ] ), [385] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis Pellerin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [386] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francis Portais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [387] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Andr\u00E9 (homme politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [388] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Autain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [389] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Cuillandre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [390] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Erlenbach" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [391] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Fellonneau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [392] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Hippolyte Lalaisse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [393] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois L'Archiver" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [394] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Le Douarec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [395] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Le Lay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [396] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Mellinet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [397] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Mevellec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [398] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Valentin (peintre)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [399] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois Vall\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [400] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois-Charles Blacque-Belair" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [401] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois-Charles Oberthur Fiduciaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [402] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois-Marie-Bonaventure du Fou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [403] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7ois-Virgile Dubillard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [404] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fran\u00E7oise Le Mer" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [405] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fra\u00F1sez Kervella" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [406] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frugy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [407] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fr\u00E8res de l'instruction chr\u00E9tienne de Plo\u00EBrmel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [408] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fr\u00E9d\u00E9ric Adam" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [409] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Fr\u00E9d\u00E9ric Cailliaud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [410] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "F\u00E9lix Fournier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [411] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "F\u00E9lix Martin-Feuill\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [412] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "F\u00E9lix Pol Jobb\u00E9-Duval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [413] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "F\u00EAte du lait de mai" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [414] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gabriel Deshayes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [415] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gabriel Milin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [416] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gabrielle B." ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [417] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gare de Besl\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [418] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gare de Mass\u00E9rac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [419] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gare de Sainte-Pazanne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [420] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gaston Veil" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [421] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gautier de Bentley" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [422] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ga\u00EBl Danic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [423] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ga\u00EBtan Rondeau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [424] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Genevi\u00E8ve Asse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [425] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Geoffroi II de Rohan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [426] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Geoffroy Drouet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [427] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georges Arnoux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [428] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georges Maillols" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [429] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georges Talbourdet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [430] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georges-Robert Lefort" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [431] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georges-\u00C9variste Colombel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [432] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gilbert Beaufranchet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [433] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gilbert Le Chenadec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [434] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gilles Barbedette" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [435] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gilles Servat en public" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [436] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gireg" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [437] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gouessant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [438] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Goulven (pr\u00E9nom)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [439] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Goulven Morvan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [440] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Goulwen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [441] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Goulwena an Henaff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [442] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Govihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [443] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Go\u00E9lette paimpolaise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [444] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grand Norven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [445] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grand Prix de Plumelec-Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [446] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grand Ve\u00EFzit" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [447] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grand menhir bris\u00E9 d'Er Grah" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [448] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Grand r\u00E9servoir de Vioreau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [449] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupama 3" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [450] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe Beaumanoir" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [451] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe CECAB" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [452] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe Roullier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [453] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe R\u00E9gional Ind\u00E9pendant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [454] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe SIPA - Ouest-France" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [455] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupe Yves Rocher" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [456] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Groupement de soutien de la base de d\u00E9fense de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [457] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume Fran\u00E7ois Laennec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [458] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume Le Breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [459] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume Moullec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [460] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume Ouvrouin (\u00E9v\u00EAque de L\u00E9on)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [461] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume Seignac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [3] = "\n" ] ) ] ), [462] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume de Saint-Andr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [463] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillaume-Marie-Joseph Labour\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [464] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guillec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [465] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guingamp Communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [466] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gustave Le Borgne de La Tour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [467] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gustave de Closmadeuc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [468] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guy Bellay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [469] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guy de Penthi\u00E8vre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [470] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guy de Salvaing de Boissieu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [471] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guy \u00C9tienne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [472] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gu\u00E9nane Cade" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [473] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gu\u00E9rin de Roug\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [474] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gwena\u00EBl Kerl\u00E9o" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [475] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gwena\u00EBl Leduc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [476] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gwenegan Bui" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [477] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gwilherm Dubourg" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [478] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gwir Vretoned" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [479] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G\u00E9rard Le Cam" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [480] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G\u00E9rard Ru\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [481] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "HBC Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [482] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Havoise de Normandie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [483] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Havre de Roth\u00E9neuf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [484] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Anger" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [485] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Battais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [486] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Bourgeois (militaire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [487] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Lassourd" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [488] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Le Breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [489] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Maho" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [490] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Marie Auguste Ferron de la Ferronnays" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [491] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Poisson" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [492] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri Quilgars" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [493] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri de La Ferronnays (1876-1946)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [494] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri-Marie Dubreil de Pontbriand" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [495] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Henri-Marie-Claude de Bruc-Montplaisir" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [496] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herv\u00E9 Budes de Gu\u00E9briant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [497] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herv\u00E9 Burillier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [498] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herv\u00E9 Le Boterf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [499] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herv\u00E9 Ph\u00E9lippeau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [500] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hippolyte Tr\u00E9hiou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [501] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hippolyte-\u00C9tienne Etiennez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [502] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hirvoudou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [503] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Historique du parcours europ\u00E9en du Football Club de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [504] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hockey Club de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [505] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Holavre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [506] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hommage \u00E0 Ren\u00E9 Guy Cadou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [507] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Honor\u00E9-Charles Baston de La Riboisi\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [508] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Horn (L\u00E9on)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [509] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hoti\u00E9 de Viviane" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [510] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hubert Guillotel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [511] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hugues de Montrelais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [3] = "\n" ] ) ] ), [512] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "H\u00E9l\u00E8ne Tanguy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [513] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "H\u00E9l\u00E8ne de Laval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [514] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "H\u00E9m\u00E9rica" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [515] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "H\u00EAtre de Ponthus" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [516] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "H\u00F4tel d'Asfeld" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [517] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imbourc'h" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [518] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Institut de recherche en informatique et syst\u00E8mes al\u00E9atoires" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [519] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "In\u00E9zic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [520] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ise (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [521] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ivona Martin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [522] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacky Le Menn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [523] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacqueline Chev\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [524] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacqueline Lazard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [525] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Bonsergent" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [526] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Chazot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Lorient" ], title = - ), [1] = "\n" ] ) ] ), [527] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Cressard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [528] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Fleurent" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [529] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Fournier (po\u00E8te)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [530] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Jullien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [531] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Le Cann" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [532] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Pellen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [533] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques Viot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [534] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jacques de Menou (homme politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [535] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jakez Cornou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [536] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Janig Corlay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [537] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jazz \u00E0 l'Ouest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [538] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Je ne hurlerai pas avec les loups" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [539] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Je vous emporte dans mon c\u0153ur (35 ans - 35 titres)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [540] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Allard de Grandmaison" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [541] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Bothorel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [542] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Choleau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [543] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Clerfeuille" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [544] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Corne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [545] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Failler" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [546] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Fourch\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [547] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Gainche" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [548] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Guegueniat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [549] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Hamelin (politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [550] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean II de Roug\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [551] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean IV de Beaumanoir" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [552] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean IV de Brosse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [553] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Kerl\u00E9v\u00E9o" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [554] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Le Cour-Grandmaison" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [555] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Le Guillou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [556] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Le Guilly" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [557] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Markale" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [558] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Ollivro" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [559] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Robic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [560] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Rouxel (chimiste)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [561] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Stalaven (Entreprise)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [562] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Tirilly" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [563] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean Tricoire (m\u00E9decin)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [564] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean de Derval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [565] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean de Laval-Ch\u00E2teaubriant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [566] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean de Malestroit (cardinal)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [567] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean de Samois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [568] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean de la Grille" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [569] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean et Jo\u00EBl Martel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [570] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Baptiste Barr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [571] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Baptiste Bompard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [572] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Baptiste Corlob\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [573] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Baptiste Duvoisin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [574] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Baptiste Martenot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [575] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Charles Chevillote" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [576] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Charles Perazzi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [577] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Claude Andro" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [578] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Claude Ca\u00EBr" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [579] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Claude Le Chev\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [580] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Claude Petit (politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [581] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Fran\u00E7ois Dubois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [582] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Fran\u00E7ois Roger (musicien)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [583] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Fran\u00E7ois de Herc\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [584] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Joseph Lucas de Bourgerel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [585] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Louis Aven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [586] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Louis Goasduff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [587] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Luc Istin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [588] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Marie Corre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [589] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Marie Goasmat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [590] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Marie Le Vert" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [591] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Marie \u00C9corchard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [592] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Michel Boucheron (1948)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [593] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-No\u00EBl Kerdraon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [594] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Pascal Dubost" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [595] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Paul Hameury" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [596] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Paul James" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [597] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Paul Parayre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [598] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Pierre Bosser" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [599] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Pierre Le Ridant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [600] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Ren\u00E9 Bollor\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [601] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Ren\u00E9 Toumelin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [602] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Yves Guiomar" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [603] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jean-Yves Veillard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [3] = "\n" ] ) ] ), [604] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeanine Baude" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [605] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jef Le Penven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [606] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeffrey Shaw (\u00E9crivain)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [607] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joachim Darquistade" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [608] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joachim-Pierre Bul\u00E9on" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [609] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Abasq" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [610] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Bigot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [611] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Canal" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [612] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Du Baudory" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [613] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Duchauchix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [614] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Hall\u00E9guen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [615] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph Paris (industriel)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [616] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph-Marie-Prudent Lucas de Bourgerel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [617] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph-Michel-Jean-Baptiste-Paul-Augustin Micolon de Gu\u00E9rines" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [618] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jo\u00EBl Cloarec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [619] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jo\u00EBl Labb\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [620] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jo\u00EBl Quiniou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [621] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jules Hippolyte Masson" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [622] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jules-Albert de Dion" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [623] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jules-Fran\u00E7ois Le Coq" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [624] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julien Gourdel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [625] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julien Guillemot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [626] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julien Lachuer" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [627] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julien-Charles Lechat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [628] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kamp Etrekeltiek ar Vrezhonegerien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [629] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Keiichir\u014D Kume" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [630] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kelenn (maison d'\u00E9dition)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [631] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Keolis Brest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [632] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Keraluc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [633] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kerichen 72" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [634] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kernews" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [635] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ki Du" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [636] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kl\u00E9ber Bobin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [637] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kreiz Breizh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [638] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kreiz Breizh Elites" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [639] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kristen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [640] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kristof Jezegou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [641] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L'Hirondelle (album de Gilles Servat)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [642] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L'H\u00F4tel de la plage" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [643] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L'Or des mers" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [644] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L'Or et le Cuivre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [645] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L'\u00C9claireur" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [646] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Blanche Hermine (album de Gilles Servat)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [647] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Bretagne (journal)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [648] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Bretagne (revue)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [649] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Bretagne communiste" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [650] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Bretagne r\u00E9elle" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [651] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Chronique R\u00E9publicaine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [652] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Dervenn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [653] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Douleur d'aimer" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [654] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La D\u00E9couverte ou l'Ignorance" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [655] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La D\u00E9p\u00EAche de Brest et de l'Ouest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [656] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Gazette du Centre Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [657] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Libert\u00E9 brille dans la nuit" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [658] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Ouache" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [659] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Pens\u00E9e bretonne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [660] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Presse d'Armor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [661] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Tradition symphonique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [662] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Tradition symphonique 2" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [663] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Veill\u00E9e du troisi\u00E8me mill\u00E9naire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [664] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La Vitr\u00E9enne football club" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [665] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lady Maud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [666] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laetitia Nantes Handball" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [667] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laiterie de Saint-Malo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [668] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Landes de Lanvaux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [669] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laurent Guyot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [670] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laurent Herv\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [671] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laurent Huard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [672] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laurent Viaud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [673] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "La\u00EBtitia Payet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [674] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Beau Voyage (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [675] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Cheval d'orgueil (livre)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [676] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Christ sur la croix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [677] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Cohty" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [678] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Comptoir Irlandais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [679] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Courrier Ind\u00E9pendant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [680] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Courrier du Pays de Retz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [681] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Cours des Gl\u00E9nans" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [682] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Gouessant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [683] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Grand Huernic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [684] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Gr\u00E9gan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [685] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Mensuel de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [686] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Mensuel du Golfe du Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [687] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Pain des r\u00EAves" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [688] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Pays Malouin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [689] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Pays de Foug\u00E8res" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [690] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Perenno" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [691] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Petit Bleu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [692] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Petit Huernic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [693] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Plo\u00EBrmelais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [694] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Pouvoir des mots" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [695] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le P\u00E9l\u00E9grin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [696] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Tr\u00E9gor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [697] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Le Vaisseau de pierre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [698] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leier Eusa" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [699] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Les Armes de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [700] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Les Clam's" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [701] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Les Enfants de N\u00E9ant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [702] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Les Seigneurs" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [703] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Les Trois Fr\u00E8res (sinago)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [704] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Carhaix \u00E0 Loud\u00E9ac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [705] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Clisson \u00E0 Cholet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [706] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Commequiers \u00E0 Saint-Gilles-Croix-de-Vie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [707] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Morlaix \u00E0 Carhaix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [708] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Nantes \u00E0 Saint-Gilles-Croix-de-Vie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [709] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Nantes-\u00C9tat \u00E0 La Roche-sur-Yon par Sainte-Pazanne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [710] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Navibus - Erdre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [711] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Navibus - Loire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [712] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Navibus - Passeur de l'Erdre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [713] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Perros-Saint-Fiacre au Fret" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [714] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Saint-Hilaire-de-Chal\u00E9ons \u00E0 Paimb\u0153uf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [715] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ligne de Saint-M\u00E9en \u00E0 Loud\u00E9ac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [716] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lionel Jaffredo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [717] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lionel Rouxel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [718] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des cours d'eau de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [719] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des d\u00E9put\u00E9s des C\u00F4tes-d'Armor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [720] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des d\u00E9put\u00E9s du Finist\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [721] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des d\u00E9put\u00E9s du Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [722] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des intercommunalit\u00E9s du Finist\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [723] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des joueurs d'En Avant Guingamp" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [724] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des \u00E9v\u00EAques de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [5] = "\n" ] ) ] ), [725] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des \u00E9v\u00EAques de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [726] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des \u00E9v\u00EAques de Saint-Brieuc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [727] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Liste des \u00E9v\u00EAques de Tr\u00E9guier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [728] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Litanies pour l'an 2000" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [729] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Littoral M\u00E9dia" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [730] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Litt\u00E9rature en breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [731] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Li\u00E9 (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [732] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lou Raoul" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [733] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Chopier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [734] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Dio" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [735] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Grivart" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [736] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Guillois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [737] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Harel de la No\u00EB" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [738] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis II de Rohan-Chabot (1679-1738)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [739] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Jules Trochu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [740] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Orvo\u00EBn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [741] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Picquet du Boisguy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [742] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis Rousseau de Saint-Aignan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [743] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis de Coss\u00E9 de Brissac (1625-1661)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [744] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis-Alphonse de Gouzillon de B\u00E9lizal" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [745] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis-Fran\u00E7ois Papin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [746] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis-Hyacinthe Levesque" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [747] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis-Jules-Fran\u00E7ois-Joseph d'Andign\u00E9 de Mayneuf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [748] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis-Marie Saget" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [749] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louise de Kergariou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [750] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Loulotte" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [751] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lo\u00EFc Druon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [752] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lo\u00EFc Taillebrest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [753] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lucien Fruchaud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [754] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lucien Raoul" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [755] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Luna Park (St-Brieuc)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [3] = "\n" ] ) ] ), [756] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lyc\u00E9e Chateaubriand" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [757] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lyc\u00E9e Saint-Fran\u00E7ois-Xavier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [758] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L\u00E9on Tr\u00E9gor Basket 29" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [759] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L\u00E9opold Cassegrain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [760] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "L\u00E9opold Follioley" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [761] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Macario Vitalis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [762] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mad in S\u00E9r\u00E9nit\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [763] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Madeleine Desroseaux" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [764] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Madelynn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [765] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maison de Co\u00EBtlogon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [766] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maison de la po\u00E9sie de Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [767] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Manoir de l'automobile" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [768] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maodez Glanndour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [769] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marathon de la C\u00F4te d'Amour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [770] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marc Simon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [771] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marcel Carfantan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [772] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marcel Rupied" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [773] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marcel Saupin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [774] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marche-Avec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [775] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marguerite Gourlaouen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [776] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marguerite de Foix (morte en 1486)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [777] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mari-Lizig" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [778] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marianna Abgrall" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [779] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie Allo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [780] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie Le Drian" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Lorient" ], title = - ), [5] = "\n" ] ) ] ), [781] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie Le Franc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [782] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie d'Angleterre (1344-1362)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [783] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie de Limoges" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [784] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marie-Anne Chapdelaine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [785] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marines (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [786] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marmohec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [787] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marquis de Sade (groupe)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [788] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maryannick" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [789] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maryvonne Qu\u00E9m\u00E9r\u00E9-Jaouen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [790] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mask ha gazh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [791] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mathieu Berson" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [792] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mathurin Henrio" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [793] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maure de Bretagne communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [794] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maurice Delarue" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [795] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maurice Halna du Fretay (arch\u00E9ologue)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [796] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maurice Le Lannou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [797] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maurice Polard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [798] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maurice \u00C9tiennez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [799] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maxime Maufra" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [800] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ma\u00EEtrise de la Perverie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [801] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Menhir de Kergadiou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [802] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Menhir de Kerloas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [803] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Menhir de Lanvar" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [804] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mer des Faluns" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [805] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Meu (rivi\u00E8re)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [806] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Esneu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [807] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Guib\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [3] = "\n" ] ) ] ), [808] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Le Bris" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [809] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Le Scouarnec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [810] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Luneau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [811] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Manoll" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [812] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Moreau-Grandmaison" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [813] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Nicolas (historien)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [814] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Santangelli" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [815] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Sauvageau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [816] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michel Scouarnec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [817] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michelle Meunier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [818] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mich\u00E8le Wargnier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [819] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Micka\u00EBl Buzar\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [820] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Minihi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [821] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mon pays t'attend" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [822] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Monique Lemaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [823] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Morgan (illustrateur)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [824] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Motte castrale du Roc'h" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [825] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mouchiouse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [826] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mouladurio\u00F9 Hor Yezh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [827] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moyen breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [828] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mus\u00E9e de la p\u00EAche de Concarneau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [829] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mus\u00E9e international du Long-Cours Cap-Hornier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [830] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M\u00E9aban" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [831] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M\u00E9nez Kador" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [832] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nanaloricus mysticus" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [833] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes Atlantique Baseball" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [834] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes Atlantique Hockey Glace" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [835] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes Loire Atlantique Handball" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [836] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes Rez\u00E9 M\u00E9tropole Volley" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [837] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes Volley F\u00E9minin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [838] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nantes-Rez\u00E9 Basket 44" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [839] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Narcisse Chaillou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [840] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Narcisse Quellien" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [841] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Na\u00EEtre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [842] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Niccol\u00F2 Caetani" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [843] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicolas Joseph Marie Le Gall" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [844] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicolas Lunven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [845] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicole Laurent-Catrice" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [846] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nos premi\u00E8res ann\u00E9es" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [847] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "No\u00E9mie Dondel du Faou\u00EBdic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [848] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "N\u00E9buleuse (voilier)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [849] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oc\u00E9anopolis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [850] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Odile Caradec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [851] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oignon de Roscoff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [852] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olivier Cousin (\u00E9crivain)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [853] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olivier de Blois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [854] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "On peut tous r\u00EAver" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [855] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orange II" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [856] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orchestre symphonique de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [857] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ordre de la Cordeli\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [858] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Osismes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [859] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ouvrages d'art des chemins de fer des C\u00F4tes-du-Nord" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [860] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paille d'or" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [861] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Palais des Sports de la Valette" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [862] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Panique celtique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [863] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Panique celtique II, le village" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [864] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paol Keineg" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [865] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paolig Combot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [866] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Papa Poydenot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [867] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pariz - Breizh" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [868] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pascal Mandart" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [869] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pascal Quintin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [870] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pascal Robert" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [871] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Passage de la Teignouse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [872] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Passage du Fromveur" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [873] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Passerelle du Croa\u00EB" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [874] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrice Kervarrec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [875] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Colleter" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [876] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Le Mercier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [877] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Carron de La Carri\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [878] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Gury" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [879] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Ihuel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [880] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Le Drogo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [881] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Lotz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [882] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Louis Rossi" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [883] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul du Chatellier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [884] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul-Alexis Robic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [885] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul-Yves S\u00E9billot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [886] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Penn Ble\u00EF" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [887] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Percubaba" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [888] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Petit Ve\u00EFzit" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [889] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phare de la Balue" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [890] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Brinquin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [891] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Celdran" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [892] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Charzay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [893] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Mouazan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [894] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Rault" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [895] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Tibeuf" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [896] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe Tourault" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [897] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe-Ren\u00E9 Soubzmain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [898] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philom\u00E8ne Cadoret" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [899] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Belordeau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [900] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Cloarec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [901] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Coustard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [902] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Guillemot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [903] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Landais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [904] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Laurent (po\u00E8te)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [905] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Lelong (homme politique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [906] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Maille" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [907] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Martin (po\u00E8te)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [908] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Mourain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [909] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Nourry" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [910] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Pi\u00E9dru" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [911] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Pronost" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [912] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre P\u00E9ron" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [3] = "\n" ] ) ] ), [913] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Savigny de Belay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [914] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Tal Coat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [915] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Talmont" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [916] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre Toulhoat" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [917] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre de Rohan-Gu\u00E9m\u00E9n\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [918] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre de Rostrenen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [919] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre de l'H\u00F4pital" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [920] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre de l'Isle" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [921] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre-Ferdinand de Bausset-Roquefort" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [922] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre-Marie Le Provost de Launay" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [923] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pierre-Yves Moign" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [924] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pipriac communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [925] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Piren" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [926] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Piriou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [927] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Place de la Libert\u00E9 (Brest)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [928] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pladic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [929] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Plessis-Belli\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [930] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pont de l'Ouen" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [931] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pont de la Joneli\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [932] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pont du Guildo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [933] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pont ferroviaire de Pirmil" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [934] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pontivy Journal" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [935] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Port-la-For\u00EAt" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [936] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Port-mus\u00E9e de Douarnenez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [937] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portraits (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [938] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Premi\u00E8re bataille de Land\u00E9vant (1795)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [939] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Premi\u00E8re bord\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [940] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Presqu'\u00EEle de Rhuys" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [941] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Prix Xavier de Langlais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [942] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Projet Saint Michel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [943] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Projet:Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [944] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Projet:Bretagne/Mod\u00E8les" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [945] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Projet:Finist\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [946] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Projet:Finist\u00E8re/Mod\u00E8les" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [947] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Promessa" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [948] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Prosper Chubert" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [949] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "P\u00EAr Loisel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [950] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quai des Bulles" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [951] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quartier des Oiseaux (La Baule)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [952] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Qub" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [953] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Queffleut" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [954] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quimper Communaut\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [3] = "\n" ] ) ] ), [955] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quimper Cornouaille Tennis de Table" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [956] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quimper Kerfeunteun Football Club" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Quimper" ], title = - ), [1] = "\n" ] ) ] ), [957] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Quy\u00EAn Ngo-Dinh-Phu" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [958] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Racing Club d'Ancenis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [959] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radenec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [960] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio Campus Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [961] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio C\u00F4te d'amour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [962] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio Kerne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [963] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio Morbihan Sud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [964] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio Rennes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [965] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Radio en breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [3] = "\n" ] ) ] ), [966] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Raoul du Bouchet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [967] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rapha\u00EBl Corre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [968] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rasta Bigoud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [969] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Raymonde Allain" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [970] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Raz de Sein" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [971] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Recherche g\u00E9n\u00E9alogique en Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [972] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Record SNSM" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [973] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Records du Football Club de Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [974] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Red Ar Mor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [3] = "\n" ] ) ] ), [975] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Redones" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [976] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Regional Airlines (France)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [977] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Remparts de Vitr\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [978] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rencontres du film documentaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [979] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 Cardaliaguet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [980] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 Constant Le Marant de Kerdaniel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [981] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 Le Corre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [982] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 Le Lamer" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [983] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 Waldeck-Rousseau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [984] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 de Cornulier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [985] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ren\u00E9 de Rais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [986] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Repr\u00E9sentations d'Anne de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [3] = "\n" ] ) ] ), [987] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rivi\u00E8re d'Auray" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [988] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Le Masson" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [989] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roc'h Ruz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [990] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roc'h Trevezel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [991] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roc'h Tr\u00E9dudon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [992] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rock a Vista" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [993] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rodolphe Bresdin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [994] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roger Flouriot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [995] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roger Laouenan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [996] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roland Guillas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [997] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rolland (cardinal, 1185)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [998] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roller Armor Club Saint-Brieuc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [999] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Kerdraon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1000] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Larvor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1001] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Le Coadic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1002] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Leprohon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1003] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Pichery" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1004] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Sala\u00FCn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1005] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ronan Tr\u00E9mel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1006] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roselyne Lefran\u00E7ois" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1007] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route d\u00E9partementale 213 (Loire-Atlantique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1008] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 136" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1009] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 137" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1010] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 155" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1011] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 155a" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1012] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 157" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [1013] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 163" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1014] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 163bis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1015] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 164" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [1016] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 164bis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1017] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 165" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [1018] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 166" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1019] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 166a" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1020] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 167" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [3] = "\n" ] ) ] ), [1021] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 168" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1022] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 168a" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1023] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 169" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1024] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 170" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1025] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 171" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1026] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 175" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [1027] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 176" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1028] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 177" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1029] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 178" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1030] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 23b" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1031] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 23bis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1032] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 265" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [1033] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 365" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1034] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 444" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1035] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 465" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1036] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 772" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1037] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 773" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1038] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 774" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1039] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 775" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1040] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 776" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1041] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 777" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1042] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 778" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1043] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 779" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1044] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 780" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1045] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 781" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1046] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 782" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1047] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 783" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1048] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 784" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1049] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 785" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1050] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 786" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1051] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 786a" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1052] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 786b" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1053] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 786c" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1054] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 786d" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1055] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 787" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1056] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 788" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1057] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 789" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1058] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 790" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1059] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 791" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1060] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 792" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1061] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 793" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1062] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 794" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1063] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 795" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1064] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 796" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1065] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 797" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1066] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 798" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1067] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 801" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1068] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 805" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1069] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 806" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1070] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Route nationale 844" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1071] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rozenn Milin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1072] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "R\u00E9gional (compagnie a\u00E9rienne europ\u00E9enne)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1073] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "R\u00E9gis-Marie-Joseph de L'Estourbeillon de La Garnache" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1074] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "R\u00E9seau interurbain du Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1075] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "R\u00E9sistants du lyc\u00E9e Anatole-Le-Braz" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [1076] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "R\u00E9sultats du Football Club de Nantes en coupe de France" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1077] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sabl\u00E9 (biscuit)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1078] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint Tudy (navire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1079] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint-Brieuc C\u00F4tes-d'Armor Volley-Ball" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [1080] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint-Malo \u00E0 la Hune" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [1081] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint-Michel II (navire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1082] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint-Nazaire Volley-Ball Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Nazaire" ], title = - ), [1] = "\n" ] ) ] ), [1083] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saint-gildas-des-bois (fromage)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1084] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sainte Tryphine et le Roi Arthur" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1085] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1963-1964 du FC Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1086] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1978-1979 du FC Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1087] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1992-1993 du FC Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1088] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1993-1994 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1089] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1994-1995 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1090] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1996-1997 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1091] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1997-1998 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1092] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1998-1999 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1093] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 1999-2000 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1094] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 2001-2002 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1095] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 2002-2003 du FC Nantes Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1096] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saison 2003-2004 de l'\u00C9tendard de Brest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1097] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Salle Omnisport Laetitia Nantes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1098] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Salle des sports de Saint-Nazaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Nazaire" ], title = - ), [1] = "\n" ] ) ] ), [1099] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Salva du B\u00E9al" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1100] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sarre (Morbihan)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [3] = "\n" ] ) ] ), [1101] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saupiquet (marque)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1102] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sedrenn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1103] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Serge Kerval" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1104] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Shane Cough" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1105] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Silky Shai" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1106] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sillon de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1107] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sinago" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1108] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sing Sing (radio)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [1109] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Si\u00E8ge de Fort Sans-Culotte" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1110] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Skolaj Penn-ar-Bed" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1111] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Soci\u00E9t\u00E9 d'histoire et d'arch\u00E9ologie de l'arrondissement de Saint-Malo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1112] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Soci\u00E9t\u00E9 d'\u00E9mulation des C\u00F4tes-d'Armor" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1113] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Soci\u00E9t\u00E9 d'\u00E9tudes historiques et arch\u00E9ologiques du Go\u00EBlo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1114] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sodeb'O (voilier)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1115] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Spi Ouest-France" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1116] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade Fred-Aubert" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [1117] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade Yves-Jaguin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1118] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade briochin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Brieuc" ], title = - ), [1] = "\n" ] ) ] ), [1119] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade de la Rabine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1120] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade du Roudourou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1121] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade lamballais" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1122] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stade rennais rugby" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1123] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stibiden" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [1124] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stone Age (Stone Age)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1125] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stunfest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1126] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Stur (presse)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1127] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St\u00E9phane Cueff" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1128] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St\u00E9phane Le Mignan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1129] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Suite gallaise" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1130] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Supporters du Stade rennais football club" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [1131] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Suzanne Creston" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1132] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "S\u0153urs de la Charit\u00E9 de Saint-Louis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1133] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "TVR (Bretagne)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1134] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Templiers dans le Finist\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1135] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tempo (radio)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1136] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thierry Le Pennec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1137] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas Deniaud" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1138] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Th\u00E9odore Nau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1139] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Th\u00E9odore Roussel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1140] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Th\u00E9ophile Briant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1141] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Th\u00E9r\u00E8se Fantou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1142] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tilly (r\u00E9alisateur)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1143] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tipiak" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1144] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tombeau de Merlin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1145] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tommy Senger" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1146] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tonnerre de Brest (brasserie)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Brest" ], title = - ), [1] = "\n" ] ) ] ), [1147] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tony Heurtebis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1148] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "TornaoD" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1149] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Totems d'Armorique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1150] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tour de Bretagne (cyclisme)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1151] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tour-mod\u00E8le type 1811" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1152] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tourisme en Loire-Atlantique" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1153] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Trag\u00E9die (groupe)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1154] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Trait\u00E9 de Westminster (1353)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1155] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tramway de Saint-Briac \u00E0 Dinard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1156] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tramways d'Ille-et-Vilaine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [3] = "\n" ] ) ] ), [1157] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tri Bleiz Die" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [3] = "\n" ] ) ] ), [1158] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tri Yann an Naoned" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1159] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Triangle (m\u00E9tro rennais)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [3] = "\n" ] ) ] ), [1160] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Triskalia" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1161] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tristan Mordrelle" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1162] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tristan Nihouarn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1163] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Trohennec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1164] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Troilus de Mesgouez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1165] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Troph\u00E9e Centre Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1166] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Troph\u00E9e des champions 2002" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Lorient" ], title = - ), [1] = "\n" ] ) ] ), [1167] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tr\u00E9gornan-en-Glomel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1168] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tudual Huon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1169] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tuilage (musique)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1170] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "T\u00E9viec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1171] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Un recteur de l'\u00CEle de Sein" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1172] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Universit\u00E9 de Nantes Aviron" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1173] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Urba (album)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1174] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Urielle de Tr\u00E9meur" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1175] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Utilisateur:GwenofGwened/Sociologie de Vannes" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [1176] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Utilisateur:Mouche35120/brouillon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1177] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Va Zi Bihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1178] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Va pas trop vite" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1179] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Val sans retour" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = "\n" ] ) ] ), [1180] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valentin Vignard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1181] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vannes Volley-Ball" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1182] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vannes agglo - Golfe du Morbihan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [1183] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Variation (radio)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1184] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vatar" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1185] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc de Blanchardeau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1186] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc de Morlaix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1187] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc de Ponto" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1188] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc de Toupin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1189] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc des Pourrhis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1190] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc du Parfond du Gou\u00EBt" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1191] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viaduc du Pr\u00E9to" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1192] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Victor Boner" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1193] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Victor-Alain Berto" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1194] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viens dans ma maison" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1195] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ville de Saint-Nazaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Nazaire" ], title = - ), [1] = "\n" ] ) ] ), [1196] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vincent-Jean-Marie Caradec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1197] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Virginie Kl\u00E8s" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1198] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Viviane Le Dissez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1199] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vol 5672 Air France" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1200] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Voltigeurs de Ch\u00E2teaubriant" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1201] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vorganium" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1202] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikip\u00E9dia en breton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1203] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Xavier Haas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1204] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yann Bourven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1205] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yann-Ber Piriou" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1206] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yann-Fanch Kaba" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1207] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yannick Botrel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:C\u00F4tes-d'Armor" ], title = - ), [1] = "\n" ] ) ] ), [1208] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yannick Le Bourdonnec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1209] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yannick Pelletier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1210] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yannick Vaugrenard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1211] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yolande de Dreux (reine d'\u00C9cosse)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Duch\u00E9 de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1212] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Youenn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1213] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Bodiguel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1214] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Coativy" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Histoire de Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1215] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Fr\u00E9ville" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1216] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Guillemot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1217] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Le Febvre" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1218] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Monot" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1219] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves Rocher (entreprise)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1220] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yves du Halgou\u00EBt" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1221] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yvo Jacquier" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1222] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yvon Abiven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1223] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yvon Le Men" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1224] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Yvon Mauffret" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1225] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ZAP (journal)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1226] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zo (groupe)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1227] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Z\u00E9nith FM" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Ille-et-Vilaine" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [3] = "\n" ] ) ] ), [1228] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9cole des transmissions" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1229] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9cole europ\u00E9enne sup\u00E9rieure d'art de Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1230] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9cole nationale d'ing\u00E9nieurs de Brest" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1231] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9cole nationale de la Marine marchande de Saint-Malo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [1232] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9coles de Saint-Cyr Co\u00EBtquidan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1233] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9ditions An-Tour-tan embannadurio\u00F9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1234] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9ditions Apog\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1235] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9ditions Terre de Brume" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1236] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9dmond Puyo" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1237] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9douard Jolin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1238] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9douard Le Jeune" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1239] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9douard Normand" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1240] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Notre-Dame de Brennilis" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1241] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Notre-Dame du Clo\u00EEtre Saint-Th\u00E9gonnec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1242] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Edern de Lann\u00E9dern" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1243] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Herv\u00E9 de Lanhouarneau" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1244] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Jean-Baptiste de la Feuill\u00E9e" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1245] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Pierre d'Irvillac" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1246] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Pierre de Guiclan" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1247] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Saint-Yves de Ploun\u00E9our-M\u00E9nez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1248] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Sainte-Nonne de Dirinon" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1249] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Sainte-Pit\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1250] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9glise Sainte-Th\u00E9r\u00E8se (Nantes)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1251] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9lections l\u00E9gislatives de 2007 en Bretagne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1252] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9mile Durand (musicien)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1253] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9mile Ernault" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1254] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9mile Gabory" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1255] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9mile Le Beller" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = "\n" ] ) ] ), [1256] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9mile Mouette" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1257] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9quipe cycliste Bretagne-Schuller" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1258] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9ric Digaire" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Musique bretonne" ], title = - ), [1] = "\n" ] ) ] ), [1259] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9tat-major de force n\u00B0 2" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1260] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9tienne Blandin" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1261] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9tienne Bouill\u00E9" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1262] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9tienne C\u00E9lestin Enoch" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Rennes" ], title = - ), [1] = "\n" ] ) ] ), [1263] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9toile Mol\u00E8ne" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Saint-Malo" ], title = - ), [1] = "\n" ] ) ] ), [1264] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9variste Colombel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1265] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00C9ven" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1266] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Batailleuse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1267] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Bernardeau-Boire-Rousse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1268] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle B\u00E9niguet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1269] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Carn" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1270] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Cl\u00E9mentine" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1271] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Coton" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1272] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Cre\u00EFzic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1273] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Delage" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1274] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Dorelle" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1275] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Drenec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1276] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Forget" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1277] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Godec" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1278] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Kerguelen (Loire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1279] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Meslet" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1280] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Moquart" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1281] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Neuve" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1282] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Neuve-Macri\u00E8re" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1283] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Perdue" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1284] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Perdue (Loire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1285] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Pinette" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1286] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Quistinic" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1287] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Ripoche" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1288] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Ronde (rade de Brest)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1289] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle Saint-Nicolas" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1290] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle aux Moines (Loire)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1291] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle aux Oiseaux (Morbihan)" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [1292] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle d'Arrouix" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1293] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle d'Arun" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1294] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de B\u00E9chit" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Morbihan" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [3] = "\n" ] ) ] ), [1295] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de Monty" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1296] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de Petite Biesse" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1297] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de T\u00E9r\u00E9nez" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Finist\u00E8re" ], title = - ), [1] = "\n" ] ) ] ), [1298] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de la Ch\u00EAnaie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Loire-Atlantique" ], title = - ), [1] = "\n" ] ) ] ), [1299] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de la Pointe" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1300] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle de la Prairie au Duc" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Nantes" ], title = - ), [1] = "\n" ] ) ] ), [1301] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle des \u0152ufs" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1302] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle du Charles" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1303] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle du Renard" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1304] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEle-Grande" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1305] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00CEles de Brouel" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Vannes" ], title = - ), [1] = "\n" ] ) ] ), [1306] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\u00D4br\u00E9e Alie" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ), [1307] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "\uA742" ], title = - ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Portail:Bretagne" ], title = - ), [1] = "\n" ] ) ] ) ] ) ] ), [4] = "\n" ) raw-Talk%3AArundel+Castle.ast000066400000000000000000001033441335270560400522570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProjectBannerShell" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "1" ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProject Sussex" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "importance" ], value = WtValue[ [0] = "Mid" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "unref" ], value = WtValue[] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProject Architecture" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "importance" ], value = WtValue[ [0] = "mid" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WPMILHIST\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start\n", [1] = WtXmlComment( {P} content = " B-Class checklist " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [2] = WtXmlComment( {P} content = " 1. It is suitably referenced, and all \nmajor points are appropriately cited. " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [3] = "\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-1" ], value = WtValue[ [0] = "no\n", [1] = WtXmlComment( {P} content = " 2. It reasonably covers the topic, and \ndoes not contain major omissions or inaccuracies. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-2" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 3. It has a defined structure, including \na lead section and one or more sections of content. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-3" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 4. It is free from major grammatical errors. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-4" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 5. It contains appropriate supporting materials, \nsuch as an infobox, images, or diagrams. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-5" ], value = WtValue[ [0] = "no infobox, no plan or map\n", [1] = WtXmlComment( {P} content = " Task force tags " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "British-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Fortifications-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Medieval-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [9] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Technology-task-force" ], value = WtValue[ [0] = "yes" ] ), [10] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Early-Modern-task-force" ], value = WtValue[ [0] = "yes" ] ) ] ), [6] = "\n" ] ) ] ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cleanup}}") ), [2] = WtXmlComment( {P} content = " Template:UnsignedIP " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [3] = WtXmlComment( {P} content = "Autosigned by SineBot" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [4] = WtIgnored(""), [5] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "#ifeq:", [1] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "name" ], default = -, garbage = WtTemplateArguments[] ) ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Arundel Castle" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC)" ] ) ] ), [6] = WtIgnored(""), [7] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [8] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Not done" ], args = WtTemplateArguments[] ), [9] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [10] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("==The Biography==") ), [12] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("==Biography==") ), [13] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Not done" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProjectBannerShell" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "1" ], value = WtValue[ [0] = "\n", [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProject Sussex" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "importance" ], value = WtValue[ [0] = "Mid" ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "unref" ], value = WtValue[] ) ] ), [2] = "\n", [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WikiProject Architecture" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "importance" ], value = WtValue[ [0] = "mid" ] ) ] ), [4] = "\n", [5] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "WPMILHIST\n" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "start\n", [1] = WtXmlComment( {P} content = " B-Class checklist " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [2] = WtXmlComment( {P} content = " 1. It is suitably referenced, and all \nmajor points are appropriately cited. " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [3] = "\n" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-1" ], value = WtValue[ [0] = "no\n", [1] = WtXmlComment( {P} content = " 2. It reasonably covers the topic, and \ndoes not contain major omissions or inaccuracies. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [2] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-2" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 3. It has a defined structure, including \na lead section and one or more sections of content. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [3] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-3" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 4. It is free from major grammatical errors. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [4] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-4" ], value = WtValue[ [0] = "\n", [1] = WtXmlComment( {P} content = " 5. It contains appropriate supporting materials, \nsuch as an infobox, images, or diagrams. " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [5] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "B-Class-5" ], value = WtValue[ [0] = "no infobox, no plan or map\n", [1] = WtXmlComment( {P} content = " Task force tags " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) ] ), [6] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "British-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [7] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Fortifications-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [8] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Medieval-task-force" ], value = WtValue[ [0] = "yes\n" ] ), [9] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Technology-task-force" ], value = WtValue[ [0] = "yes" ] ), [10] = WtTemplateArgument( {P} rtd = RTD[ "|" "=" "" ] name = WtName[ [0] = "Early-Modern-task-force" ], value = WtValue[ [0] = "yes" ] ) ] ), [6] = "\n" ] ) ] ) ], [1] = "\n\n", [2] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [3] = "\n", [4] = WtParagraph[ [0] = "Okay, what's the problem? Zvesoulis put a ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cleanup}}") ), [2] = " tag on the article, but I've read the thing through several times and don't see a problem warranting the tag. Moreover, this is the very first entry in the talk page which strikes me as meaning we have a ways to go before we start throwing tags around. I removed the tag and made a couple of other edits. If anyone has any thoughts on what needs to be ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "cleaned up" ), [4] = " please say something here and/or let me know. Thanks. ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Duckecho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Duckecho" ) ), [6] = " (", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Duckecho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk)" ) ), [8] = " 7 July 2005 19:52 (UTC)" ], [5] = "\n\n", [6] = WtParagraph[ [0] = "The history section states that the castle was first built in 1068 and that it was built during Edward the Confessor's reign. Which is correct?" ], [7] = "\n\n", [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Ghosts " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "What about the 4 ghosts living in the castle? there should be some reference ", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: smaller;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "autosigned" ] ) ], body = WtBody[ [0] = "\u2014Preceding ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Signatures" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "unsigned" ) ), [2] = " comment added by ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Special:Contributions/88.17.252.156" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "88.17.252.156" ) ), [4] = " (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:88.17.252.156" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [6] = ") 00:33, 8 March 2010 (UTC)" ] ), [2] = WtXmlComment( {P} content = " Template:UnsignedIP " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [3] = " ", [4] = WtXmlComment( {P} content = "Autosigned by SineBot" {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) ], [2] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Automated peer review " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtIgnored(""), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "#ifeq:", [1] = WtTemplateParameter( {P} precededByNewline = false {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "name" ], default = -, garbage = WtTemplateArguments[] ) ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Arundel Castle" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "[[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC)" ] ) ] ), [2] = WtIgnored(""), [3] = "The following suggestions were generated by a semi-automatic ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/peerreviewer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "javascript program" ) ), [5] = ", and might not be applicable for the article in question." ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [1] = " Per ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Only make links that are relevant to the context" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wikipedia:Context" ) ), [3] = " and ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (dates and numbers)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wikipedia:Manual of Style (dates)" ) ), [5] = ", months and days of the week generally should not be linked. Years, decades, and centuries can be linked if they provide ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:CONTEXT" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "context" ) ), [7] = " for the article.", [8] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#contxt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Not done" ], args = WtTemplateArguments[] ), [1] = " Per ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:What is a featured article?" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:IMAGE" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Images" ) ), [5] = " should have concise captions.", [6] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#caption" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "NA" ), [1] = " You may wish to consider adding an appropriate ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:INFOBOX" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "infobox" ) ), [3] = " for this article, if one exists relating to the topic of the article. ", [4] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#infobox" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ), [5] = " (Note that there might not be an applicable infobox; remember that these suggestions are not generated manually)" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [1] = " As per ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (dates and numbers)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wikipedia:Manual of Style (dates)" ) ), [3] = ", dates shouldn't use ", [4] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "th" ] ), [5] = "; for example, instead of (if such appeared in the article) using ", [6] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "January 30" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "January 30", [1] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "th" ] ) ) ), [1] = " was a great day" ), [7] = ", use ", [8] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "January 30" ], title = - ), [1] = " was a great day" ), [9] = ".", [10] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#dateth" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Done" ], args = WtTemplateArguments[] ), [1] = " Per ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Manual of Style (headings)" ], title = - ), [3] = ", headings generally do not start with articles ('the', 'a(n)'). For example, if there was a section called ", [4] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("==The Biography==") ) ), [5] = ", it should be changed to ", [6] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("==Biography==") ) ), [7] = ".", [8] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#headingthe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Not done" ], args = WtTemplateArguments[] ), [1] = " Watch for ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Tony1/How_to_satisfy_Criterion_2a#Redundancy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "redundancies" ) ), [3] = " that make the article too wordy instead of being crisp and concise. (You may wish to try Tony1's ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Tony1/How to satisfy Criterion 1a: redundancy exercises" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "redundancy exercises" ) ), [5] = ".)", [6] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = "Vague terms of size often are unnecessary and redundant - \u201Csome\u201D, \u201Ca variety/number/majority of\u201D, \u201Cseveral\u201D, \u201Ca few\u201D, \u201Cmany\u201D, \u201Cany\u201D, and \u201Call\u201D. For example, \u201C", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "='" "'" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "s" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "All" ] ) ] ), [2] = " pigs are pink, so we thought of ", [3] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "='" "'" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "s" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "a number of" ] ) ] ), [4] = " ways to turn them green.\u201D" ), [1] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = "\u201CIn ", [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "='" "'" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "s" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "the year ", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/raw-Talk%3AArundel+Castle.wikitext:21:37 - 38: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [2] = "of]" ] ) ] ), [2] = " 1138\u201D" ) ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Please ensure that the article has gone through a thorough copyediting so that it exemplifies some of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:WIAFA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wikipedia's best work" ) ), [2] = ". See also ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Tony1/How to satisfy Criterion 1a" ], title = - ), [4] = ".", [5] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/G#copyedit" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "[?" ) ), [1] = "]" ] ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = "You may wish to browse through ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:AndyZ/Suggestions" ], title = - ), [2] = " for further ideas. Thanks, ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:MortimerCat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MortimerCat" ) ), [4] = " (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:MortimerCat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [6] = ") 00:02, 14 April 2008 (UTC)" ], [6] = "\n" ] ) ) raw-Talk%3AAustralian+rules+football%2FArchive+1.ast000066400000000000000000006543541335270560400564140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "talkarchive" ], args = WtTemplateArguments[] ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[Category:Football_in_Australia]]") ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "talkarchive" ], args = WtTemplateArguments[] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Archive 1" ) ], [3] = "\n\n", [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "The Irish connection " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Mmmm, it is very similar to Irish football, I wonder - was there significant Irish immigration in Australia at the time. {end sarcasm} Australian Rules = Irish Football played on a cricket pitch. It's ironic that us Aussie's love to play up AFL's uniqueness, yet it's uniqueness that gives away the fact that it's a bastardisation of an immigrant sport that's only played in one other country in the world. - CS" ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " This sort of comment shows a lack of understanding of the history of all football codes. No one says that Australian Football wasn't influenced by other codes, in fact, the reverse is true. It was codified in 1859, which in the context of all the modern codes of football, is very early indeed. It didn't just appear out of thin air, in fact, we know a lot about the people that first played it and who first formulated the rudimentary rules. Almost without exception, they had had exposure to the English public school system - which is where we are to find the roots of almost all the modern football codes. However, during the 1840s and 1850s, they all had their own separate and different rules. So Australian Football is unique in that it was codified so early in the piece and that it was an amalgam of the experience of various wealthy Australians in the English public school system. The biggest influence was clearly the Rugby school (and those who know both sports well will also be familiar with a lot of the shared terminology that is used that is not to be found in the other codes). However, all these different school rules can be categorised roughly into two groups: those that relied predominantly on kicking the ball (precursor to Association Football) and those that relied predominantly on running with the ball (Rugby). Both Australian and Gaelic football share the characteristic that they are a combination of both groups - but that doesn't mean that one influenced the other - it's simply what they both got out of the various rules that were doing the rounds at the time. It is worth mentioning that the modern version of Gaelic Football was codified a good 30 years after Australian Football. All football historians have found no evidence of Gaelic football being an influence on Australian football. This is unsurprising - remembering that the first ones to play the game all had an English public school background - how many of them were going to put their hand up and say let's play this Irish game I know! This is not a partisan view, it is simply what we know of the history of the game. Remember also that the first recorded game of Australian Football was between two wealthy protestant private schools - it is unlikely that any Catholics took the field that day! --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 07:11, 15 November 2005 (UTC) ps I am Catholic.", [5] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = " Some have suggested that the influence was more in the other direction, i.e. that Gaelic was based on Aussie rules! There is some evidence for this, e.g. the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "GAA" ], title = - ), [2] = " was not founded until the late 1880s and I know that Archbishop ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas Croke" ], title = - ), [4] = ", one of the founders, was in New Zealand in the 1870s, where he had the opportunity to see \"Australasian rules\" being played. So maybe it was a \"two way street\". I will have to get hold of a history of Gaelic football one of these days. ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [6] = " ", [7] = WtXmlCharRef( {P} codePoint = 91 {P} rtd = RTD[ "[" ] ), [8] = WtXmlCharRef( {P} codePoint = 91 {P} rtd = RTD[ "[" ] ), [9] = "User talk: Grant65", [10] = WtXmlCharRef( {P} codePoint = 124 {P} rtd = RTD[ "|" ] ), [11] = " (Talk)]] 09:44, 15 November 2005 (UTC)" ) ) ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "I appreciate both your points. Am I driven by a partisan viewpoint? Perhaps, though to be honest I don't really enjoy either game being mainly a follower of rugby league. I'm just dumbfounded by the vehemence towards the idea that the game has Irish roots. And I can't help but think this was driven historically by the very real Irish/English divisions that existed in Australia up until the first wave of Southern European migration last century. The rules of Irish football may not have been codified until 30 years after Aussie Rules, but the game was played 100's of years previously. To dismiss out of hand, that a game familiar to a large (ethnic) part of a new society, had no influence on the development of a game with practically identical rules within that society is laughable. And then to \"draw a long bow\" to claim that the game is \"originally\" Australian because the natives were sometimes seen to kick a stuffed wombat around is ludicrous. Would you also deny the influence of African music on rock and roll because europeans played string instruments before exposure to African rhythms?" ], [6] = "\n", [7] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "But...we can trace the influences of rock and roll directly to African music (or afro-american at least) - but the evidence for an Irish influence just isn't there. Please note, I am not saying there were no influences from other codes, I have already stated that the Rugby School provided the greatest influence, but there is zero, I repeat, zero evidence of a Gaelic influence. Lastly, the rules of both Aussie rules and Gaelic football are not similar at all. The pig skin gets moved around the park in a similar manner, but that is where the similarity ends. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 09:00, 17 November 2005 (UTC)" ) ], [8] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = " Zero evidence except our eyes, Pippu ;-) I blame Geoff Blainey for perpetuating this idea that Tom Wills wasn't influenced by Irish football (or Marn Grook). The fact is, no one knows what rules were used in the game that Blainey pushes as the \"first\" game (between Melbourne Grammar and Scotch College on August 7, 1858,) and they may had bugger all to do with the ones that the Melbourne FC devised the following year. I know those two schools have played ever since, but that doesn't mean they still use the same rules they did in 1858. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = " | ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [4] = " 14:28, 22 November 2005 (UTC)" ) ] ] ), [9] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "\"the rules of both Aussie rules and Gaelic football are not similar at all\" Let me assure you, my friend, that the games are closer in rules and style than the two rugby codes that people from the southern and western states seem to commonly lump together. \"zero evidence of a Gaelic influence\" - again I can only shake my head, it is amazing that a code of football can generate such a fierce and defensive parochialism.", [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = "It's funny that I should be accused of parochialism when I am trying to direct everyone to the available evidence - rather than simpy relying on the superficial similarity between Gaelic Football and aussie rules. I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities. And it's not just Geoff Blainey, even as a kid growing up in the 60s I was aware that the first game of footy took place in 1858 between Melb Grammar and Scotch, and that a letter had appeared in the paper around the same time imploring cricketers to take up footy over the winter to keep fit. As I have said before, we know a fair bit about how and why footy came to be played in Melbourne, and the personalities involved - but it is equally true that we do not know all that much about that first game. What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays (was that his name? you know what I mean). And it is instructive that I should refer to him, because that book is set in the English public schools of the 1840s and without doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s - all the main pioneers of aussie rules had attended these schools. In other words, like all the different rules of football at that time, there was a constant tension between running with the ball and kicking the ball - so it should not surprise any of us that ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "all" ), [2] = " the codes have an element of each to varying degrees. You might say that soccer doesn't (i.e. running with the ball) - but in fact the goalkeeper is allowed to run a short distance with the ball and kick it from his hand a la Gaelic/Australian style. What is the significance of that? Because the precursors of Soccer allowed that to happen to a far greater degree. Read the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cambridge Rules" ], title = - ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sheffield Rules" ], title = - ), [6] = ". These are basically the rules of Aussie rules as they were codified in 1859! So don't just rely on the superficial similarity of Gaelic football and aussie rules - dig a little deeper and look at the prevailing environment of the 1840s and 1850s - aussie rules, indeed all the modern football codes, can only be truly understood in that context. ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [8] = " - ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [10] = " 00:16, 25 November 2005 (UTC)" ) ) ) ), [10] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Pippu, you say: \"I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities.\" But rules on paper are just that, rules on paper; the two games are clearly similar in the way they are played. Can you imagine a compromise/hybrid (like International rules) between Aussie rules and either code of rugby? Or soccer and rugby? I'm sorry, I know it's an institution, but the 1858 game between Melb Grammar and Scotch was ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "not" ), [2] = " the first time any kind of football was played in Melbourne, and since we don't know what rules they used, it has as much to do with Aussie rules as a game of rugby (codified in 1845) or soccer. IMO, Wills' letter to ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Bell's Life" ), [4] = " is the beginning, as was the experimental game played in the Richmond Paddock (Yarra Park) as a result, three weeks later. The same day Melbourne Grammar played a St Kilda team. This was ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "one week before" ), [6] = " the Grammar-Scotch game was played (with Wills as referee). \"What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays....\" Agreed. \"", [7] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:15:1220 - 1221: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [8] = "W]ithout doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s...\" It is ", [9] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "one" ), [10] = " of the sources, yes. For example rugby and Aussie rules in the 1850s both had 20 players per team." ) ] ] ), [11] = "\n\n", [12] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "\"", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:17:4 - 5: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [2] = "T]he precursors of Soccer allowed that to happen to a far greater degree. Read the Cambridge Rules and Sheffield Rules. These are basically the rules of Aussie rules as they were codified in 1859!\" Sheffield, yes. IMO, the key is not \"kicking v running\"; it is the lack of an offside rule, which is what sets the Sheffield rules, Aussie rules and Gaelic apart. That is a very Irish thing ", [3] = WtXmlEntityRef( {P} name = "mdash" {P} resolved = "\u2014" {P} rtd = RTD[ "—" ] ), [4] = " it was in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "hurling" ], title = - ), [6] = " before any of these codes of football exited. Cambridge had an offside rule. And not quite enough time elapsed between the Sheffield rules (1857) and Wills' experiments of 1858, for the former to have influenced the latter. So I suspect that it was either a case of parallel evolution or they were both influenced by a common \"ancestor\". ", [7] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 30 target = WtPageName[ [0] = "Image:NonFreeImageRemoved.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|30px" ] {P} width = 30 ) ] ), [8] = " ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [10] = " | ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [12] = " 16:27, 20 December 2005 (UTC)" ) ] ] ], [13] = "\n\n", [14] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Are we in disagreement on any of these points? All I am saying is that the Gaelic influence on aussie rules is inconclusive (at best!) and that ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "all" ), [2] = " the modern football games can be traced back to the various english public school games of the 1840s and 1850s. Funny you should mention composite rules of aussie rules/rugby - I believe that in 2008, to mark the 150th anniversary of the first recorded game of our national game (however it may have been played back then), we should try and recreate the rules of 1858, and it would basically be a composite aussie rules/rugby game, and the AFL should challenge the Wallabies (or anyone else for that matter) playing these composite rules. You first read the idea here folks, don't forget it! Re a hybrid soccer/rugby game - I am all for it, because the end result would undoubtedly look better than either of them! ", [3] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Flag of Sicily.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|40px" ] {P} width = 40 ) ] ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [6] = " - ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'Angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [8] = " 22:09, 20 December 2005 (UTC) ps one of our compatriots told me to stop using the western bulldogs logo, so hopefully my new icon is more acceptable." ) ] ] ] ] ], [15] = "\n\n" ] ), [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Miscellaneous" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Are there really no older professional teams? I have found some older cricket teams but don't know if they are professional or not. ---rmhermen" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "well, its older than soccer. thats good enough for me." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "In fact, professionalism was not allowed by the VFL until its Rule 29 of 1911 (although under-the-table payments may well have occurred), and Melbourne FC was famous for being amateur for many years afterwards, so I don't think this can be justified. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = " 10:28, 14 Mar 2004 (UTC) " ], [6] = "\n\n", [7] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [8] = "\n", [9] = WtParagraph[ [0] = "I understand and appreciate the writer's enthusiasm for the sport, but the last sentence in partciular needs to be rephrased to be less partisan about its alleged superiority over other variants of football." ], [10] = "\n", [11] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [12] = "\n", [13] = WtParagraph[ [0] = "No, I agree with the author of the article. Where he says there are other ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "leagues" ), [2] = " in Australia, he is not referring to variants of the sport, he is referring to other groups of teams who play each other- other divisions, so to speak. For instance, in Western Australia, there is the WAFL- the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "West" ), [4] = " Australian Football League. More people are interested in the AFL than regional leagues like WAFL, therefore AFL is more popular. I don't think the author's comment at the end is unjustified, or biased at all. -- ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Mark Ryan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mark Ryan" ) ) ], [14] = "\n\n", [15] = WtHorizontalRule( {P} rtd = RTD[ "-----" ] ), [16] = "\n", [17] = WtParagraph[ [0] = "By the way, I wrote a bunch more stuff for this article months ago that seems to have been lost by somebody's errant revision. I hope the new wikipedia software will support a complete revision history. . . ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Robert Merkel" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Robert Merkel" ) ) ], [18] = "\n\n", [19] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [20] = "\n\n", [21] = WtParagraph[ [0] = "I saw some games on TV in the US. Who's the guy in the white suit who waves around flags when a goal is scored? Shouldn't this be mentioned in the article somewhere?" ], [22] = "\n\n", [23] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "The Goal Umipre" ) ], [24] = "\n\n", [25] = WtHorizontalRule( {P} rtd = RTD[ "-----" ] ), [26] = "\n\n", [27] = WtParagraph[ [0] = "I like the diagrams, but the font is much too small. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Daniel Quinlan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Daniel Quinlan" ) ), [2] = " 08:31, Aug 2, 2003 (UTC)" ], [28] = "\n", [29] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [30] = "\n\n" ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Winter" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "What is the difference between summer and winter in Australia, that the same fields are used but for different sports? -- ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Error" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Error" ) ) ], [2] = "\n\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "um... the weather! You are obviously from a small country like england where the climate is basically the same in every location within the country. Australia is a big country. In melbourne you may be able to get away with playing in summer, most of the time, but in Brisbane you'd be carried off the field in a coffin! Summer is hot (avg 29 degrees C but it reaches 40) winter is cold (avg 20 degrees C). That's the difference. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 14:06, 21 November 2005 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "No way in Melbourne - plenty of days over 30 and one or two up to 40. That's why the players train in ice vests when they're training in summer, even in Melbourne. Now, Hobart on the other hand...--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Stevage" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stevage" ) ), [2] = " 16:36, 24 November 2005 (UTC)" ) ) ) ] ] ], [4] = "\n\n", [5] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "You can have as many extreme days as you like but the average summer temperature for melbourne is still 22 degrees which is only 2 degrees warmer than the average winter temp for Brisbane.", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::::" "" ] [0] = "Indeed, even ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.bom.gov.au/climate/averages/tables/cw_070282.shtml" {P} protocol = "http" {P} rtd = RTD[ "http://www.bom.gov.au/climate/averages/tables/cw_070282.shtml" ] ), title = WtLinkTitle[ [0] = "Canberra" ] ), [2] = " is has hotter summers than ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.bom.gov.au/climate/averages/tables/cw_086071.shtml" {P} protocol = "http" {P} rtd = RTD[ "http://www.bom.gov.au/climate/averages/tables/cw_086071.shtml" ] ), title = WtLinkTitle[ [0] = "Melbourne" ] ), [4] = ". Nearly as hot as ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.bom.gov.au/climate/averages/tables/cw_040214.shtml" {P} protocol = "http" {P} rtd = RTD[ "http://www.bom.gov.au/climate/averages/tables/cw_040214.shtml" ] ), title = WtLinkTitle[ [0] = "Brissie" ] ), [6] = "." ) ) ) ] ] ] ] ] ] ], [6] = "\n\n", [7] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [8] = "\n", [9] = WtParagraph[ [0] = "I have to take issue with the following -" ], [10] = "\n\n", [11] = WtParagraph[ [0] = "\"All of the original VFL clubs are still in existence, with the exception of South Melbourne Football Club who in 1982 relocated to Sydney and became known as the Sydney Swans and the Fitzroy which merged with the Brisbane in 1996 due to financial difficulties.\"" ], [12] = "\n\n", [13] = WtParagraph[ [0] = "Does \"exist\" mean the club no longer plays in the VFL/AFL, or no longer exists?\nFitzroy still exists as an amateur club. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:RoyalDave" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "RoyalDave" ) ) ], [14] = "\n\n" ] ), [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "History" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The history section on this page needs to be corrected to bring it into line with the information on this site ", [1] = WtUrl( {P} path = "//www.fullpointsfooty.net/melbourne.htm" {P} protocol = "http" {P} rtd = RTD[ "http://www.fullpointsfooty.net/melbourne.htm" ] ), [2] = ", but I'l leave that to the Aussies. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mintguy" ) ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "(T)" ) ), [6] = " 14:21, 9 Mar 2004 (UTC)" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Mintguy has a point, although I've said to him elsewhere ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Talk:Football" ], title = - ), [2] = ", I think fullpointsfooty.net is wrong on the early history. In fact, a lot of the histories of Aussie rules available on the web seem to be terrible and contradictory. We have a great opportunity to do better :-) Anyway, I've expanded and updated the history section. In particular, I've addressed some inaccuracies, such as (1) the role of H.C.A. Harrison, which seems to be exaggerated by almost everyone except serious historians; (2) the previous omission of the experiments at the Richmond Paddock, and (3) the \"significance\" of the game between Melbourne Grammar and Scotch College in 1858. To name a few. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [4] = " 18:10, 12 Mar 2004 (UTC)" ], [4] = "\n", [5] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [6] = "\n", [7] = WtParagraph[ [0] = "I just had another look at Blainey's ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "A Game of Our Own" ), [2] = " (1990; there is a 2003 edition, which I haven't seen yet), and Rob Hess ", [3] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:69:132 - 133: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [4] = " Bob Stewart's ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "More Than A Game" ), [6] = " (1998). The latter book provides a few more details: they say that \"a rugby ball\" was used in the experimental game on July 31, 1858; that people of various backgrounds were involved, and; that rules were supposed to have been formulated afterwards, although these have not survived. " ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Hess ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:71:6 - 7: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " Stewart barely mention the Melbourne Grammar v. Scotch College match on August 7. Blainey is a prolific promoter of that game (cynics might say because of his own background), but he doesn't discuss the rules either. (However, it is known that Wills did umpire that game.) " ], [10] = "\n\n", [11] = WtParagraph[ [0] = "Re. the other drafters of the 1859 rules, Hess ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:73:48 - 49: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = " Stewart say that, like Wills, Hammersley and Thompson were ex-Cambridge University, and Smith was Irish and had attended Trinity College in Dublin. (There are some similarities between the Cambridge rules and Aussie rules, see ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Football#The Establishment of Modern Codes of Football" ], title = - ), [4] = ".) Hess ", [5] = WtText( {A} warnings = C[ Warning (informative): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:73:343 - 344: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [6] = " Stewart say Harrison was not involved. They also cite a letter to a Melbourne newspaper in 1864, suggesting that the English ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Football Association" ], title = - ), [8] = " rules of 1863 had been by influenced by the Melbourne FC rules! ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [10] = " 10:28, 14 Mar 2004 (UTC)" ], [12] = "\n\n", [13] = WtParagraph[ [0] = "Grant. You've just reminded me of something with that last sentence. Some time ago I tried to find out about early proponents of Association football in Australia but I found virtually no information about this. I did find out that early bodies subscribing to the FA rules included the Southern British Football Association in New South Wales, the Anglo-Australian Football Association in Victoria and the British Football Associations of Queensland, South Australia and Tasmania. But I couldn't find any dates relating to the establishment and/or demise of these organisations. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mintguy" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "(T)" ) ), [4] = " 10:56, 14 Mar 2004 (UTC)" ], [14] = "\n\n", [15] = WtParagraph[ [0] = "Mintguy, see the latest comments on my talk page. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = " 13:19, 14 Mar 2004 (UTC)~" ], [16] = "\n\n", [17] = WtHorizontalRule( {P} rtd = RTD[ "----" ] ), [18] = "\n", [19] = WtParagraph[ [0] = "The article states that the VFA was formed in 1877, but the list of teams is incorrect. For example, Essendon is not listed as a team in the VFA in 1877, but they finished fourth in that year." ], [20] = "\n\n", [21] = WtParagraph[ [0] = "There is also no mention of the earlier Victorian competition that preceded the VFA.\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:B.d.mills" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "B.d.mills" ) ), [2] = " 12:54, 28 Sep 2004 (UTC)" ], [22] = "\n" ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Rules" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "I think the section on the rules could be expanded. Basic information like the number of players is lacking, and can only be deduced from studying the images. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Abigail-II" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Abigail" ) ), [2] = " 10:48, Mar 11, 2004 (UTC)" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "It seems that I am far from the only one who has mixed up the various games played in 1858. ", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//www.statelibrary.vic.gov.au/slv/slvnews/aussierulesonline.pdf" {P} protocol = "http" {P} rtd = RTD[ "http://www.statelibrary.vic.gov.au/slv/slvnews/aussierulesonline.pdf" ] ), title = - ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mintguy" ) ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Mintguy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "(T)" ) ), [6] = " 13:13, 14 Mar 2004 (UTC)" ], [4] = "\n\n", [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Length of the Game" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Seems an obvious thing to have, yet it's currently missing. As far as I know it's four quarters of thirty minutes, but I don't know who keeps time and whether it can go over thirty, or what happens if the scores are level at full time. Aussie input welcome! ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Deadlock" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Deadlock" ) ), [2] = " 19:45, 24 September 2005 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Good point - done! Revisions welcome. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 10:09, 25 September 2005 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Thanks - I now understand why when the clock showed 10 minutes the commentator said we were half-way through the final quarter of the GF highlights I saw. The quarter eventually ran to 32 minutes... ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Deadlock" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Deadlock" ) ), [2] = " 23:18, 25 September 2005 (UTC)" ) ) ) ], [4] = "\n\n", [5] = WtSemiPre[ [0] = " Each quarter runs for 20 minutes. Over time is what causes the game to go past the 20 minute mark. Overtime can be caused by a number of factors such as " ], [6] = "\n", [7] = WtParagraph[ [0] = "-the umpire returning the ball to the center to be bounced and resume play (30-40sec. each time)\n-a player getting injured and needing to be carried off the feild (3-6min)\n-A player taking a long time to have a shot at goal. (1-2min.) etc.\nOvertime is usually no more than 10 minutes which may have contributed to confusion about 30 minute quarters.\nTime is keept by an offical time keeper independent of the players and umpire. Only the umpire can call for the clock to be stoped which is what causes overtime." ], [8] = "\n\n" ] ) ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Rugby League" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "To explain my last edit: it's not accurate to say that Aussie Rules was \"developed as an alternative to Rugby\", with a link to ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rugby League" ], title = - ), [2] = ", because Aussie Rules was invented long before there was any such thing as \"Rugby League\" and before there was even much ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rugby Football" ], title = - ), [4] = " outside ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rugby School" ], title = - ), [6] = ". Neither would it be accurate to describe Aussie Rules as an offshoot of Rugby. See ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Football#The_Establishment_of_Modern_Codes_of_Football" ], title = - ), [8] = ". ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [11] = " 21:09, Apr 12, 2004 (UTC)" ], [2] = "\n\n" ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Rules Football" ], title = - ), [2] = " <-> ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Football League" ], title = - ), [4] = " " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "I added a section today, under the \"Future teams\" heading. However on re-reading it seems that the entire \"teams\" section, as well as my additional section, should really go in the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Football League" ], title = - ), [2] = " article. However I figured if this was right, someone would have done it already. Ideas anyone? -- ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Chuq" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chuq" ) ), [4] = " 00:16, 20 Jul 2004 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Yes, I think it should go on the AFL page.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [3] = " 18:50, Apr 8, 2005 (UTC)", [4] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I moved both the future teams article, as well as the Hall of Fame section to ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Football League" ], title = - ), [2] = ". I beleive that the Hall of Fame does not belong because it is the ", [3] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "AFL" ), [4] = " Hall of Fame. The teams and leagues section needs serious editing and splitting up before it can be moved to other articles - a job for another day. ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bjmurph" ) ), [6] = " 09:47, 5 May 2005 (UTC)", [7] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Actually it's the \"Australian Football Hall of Fame\" (but it's already been moved back in the article). ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 30 target = WtPageName[ [0] = "Image:Flag_of_Australia.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|30px" ] {P} width = 30 ) ] ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "plattopus" ) ), [4] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ) ] ) ] ), [5] = " 13:03, May 5, 2005 (UTC)", [6] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "Yes, I accept I was wrong in this assumption, however, it still may not belong in this article. Perhaps it should be removed from both this page and the AFL page, and moved to it's own, to remove the duplicate entries. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bjmurph" ) ), [2] = " 13:17, 5 May 2005 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::::" "" ] [0] = "Possibly a good idea, assuming there is enough to write about it. If there is a HOF article in its own right, then obviously both the AFL and ARF articles should link to it, but in the meantime it should reside under Australian Rules Football, not the AFL. ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 30 target = WtPageName[ [0] = "Image:Flag_of_Australia.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|30px" ] {P} width = 30 ) ] ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "plattopus" ) ), [4] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ) ] ) ] ), [5] = " 15:44, May 5, 2005 (UTC)" ) ) ) ) ) ) ) ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = "I would like to see the names of the 12 AHoF \"legends\" (at least) remain in this article, as there were very few mentions of players when I originally added the HoF section. A separate article on the HoF would still be a good idea, as it has a lot more members than just the 12 legends. By the way, almost none of the legends had article when I added that list and Wikipedia is still short of articles on Aussie rules players. (Except for the fan contributions on current players like ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chris Tarrant" ], title = - ), [2] = " etc.) ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [5] = " 00:17, May 6, 2005 (UTC)" ], [6] = "\n\n", [7] = WtParagraph[ [0] = "It seems silly to have the Hall of Fame information duplicated on both this page and the AFL page. I agree that it needs its own page but perhaps there should be some consensus about where it really should go? My vote, fwiw, is to leave it on this page in preparation for moving it to its own page later.--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 07:45, 9 Jun 2005 (UTC)" ], [8] = "\n\n", [9] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "There is nothing wrong with having duplicate material on different pages, when appropriate. If anything I think the HoF material should be removed from the AFL page, since the HoF is about the whole history of the game and not just the AFL, but there may be opposition to that. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [3] = " 11:48, Jun 10, 2005 (UTC)" ) ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Yup the HoH should be in this article. On the other hand, the \"Notable VFL/AFL records\" section should be removed from this article if duplication is an issue between the two pages. - ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Squilibob" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Squilibob" ) ), [2] = " 07:25, 1 December 2005 (UTC)" ) ] ] ], [12] = "\n\n" ] ), [11] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "IAFC" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The article indicates that the IAFC is the official administrative body for Australian rules football internationally but I think you would get a very different view on that from the AFL, who see themselves as the official international representative body for the sport. If someone can come up with a statement from the AFL that it recognises the IAFC as the official international body though, I'd be happy to retain the reference. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Roisterer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roisterer" ) ), [2] = " 04:05, 10 Oct 2004 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "The AFL certainly see themselves as the universal governing body, and I don't think I've seen any official AFL statements regarding the IAFC but I can guarantee they wouldn't be positive. ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 30 target = WtPageName[ [0] = "Image:Flag_of_Australia.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|30px" ] {P} width = 30 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] ) ] ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "plattopus" ) ), [4] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Plattopus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "is this thing on?" ) ) ] ) ] ), [5] = " 18:36, Apr 8, 2005 (UTC)", [6] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "The IAFC is not recognised by the AFL. No doubt the IAFC would say \"who is the AFL to recognise us or not?\" They would have a point since the AFL in recent years has shown itself as strangely reluctant to promote the game in countries such as Denmark where the game has grown of its own accord.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [3] = " 18:50, Apr 8, 2005 (UTC)" ) ) ) ], [4] = "\n\n" ] ), [12] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Diagrams " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Anyone want to have a go at adding the new centre circle into the diagrams? --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 02:48, 5 May 2005 (UTC)\n\n" ], [2] = "\n\n" ] ), [13] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Footy " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Is this section really necessary or appropriate?" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Neither - it's vandalism, now reverted.--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 06:32, 21 July 2005 (UTC)" ) ], [4] = "\n\n" ] ), [14] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " What is a \"clearance\"? " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "When I watch AFL football on TV, I often hear the announcers talking about \"clearances\" and \"disposals\", which events are also tabulated among the statistics. Unfortunately, no one ever bothers to tell us Americans what those terms mean. I decided that a Web search would provide me the answers. Actually, I have searched extensively; and, though I did find here a definition of \"disposal\", I am still at a loss for an exact definition of \"clearance\". I suppose that a clearance has occurred when the ball is kicked a long ways, but I suspect field position has something to do with it. I don't know if a hand pass can count as a clearance." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "I hope that someone who knows will add to the article a definition of \"clearance\"." ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:DrHow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DrHow" ) ), [1] = " 15:17, 26 August 2005 (UTC)" ], [6] = "\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "A clearance is more correctly known as a \"centre clearance\", and refers to when the ball is kicked out of the centre square to the advantage of one team or the other directly from the centre bounce after a goal or at the beginning of a quarter. So if there's a stoppage in play in the centre square leading to an umpire bounce, the ensuing kick out of the square is NOT a clearance; but if it occurs as a direct consequence of the centre bounce it is. " ) ], [8] = "\n\n", [9] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Not sure where exactly to put that in the article as yet, but I'm sure someone will think of a way! --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 05:10, 27 August 2005 (UTC)" ) ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I think that is a pretty good definition, but in modern day commentary I am pretty sure they have extended the term to mean a clearance from any stoppage. In modern day footy, the team that can win the most clearances from all forms of stoppages will nearly always win the game and thus the frequency of the use of the term. Also, it can mean a handball if it has effectively cleared the area of the stoppage to the team's advantage, so a handball that went nowhere and resulted in another ball up would not be counted as a stat. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'coz!)" ] ) ) ), [4] = " 12:03, 7 September 2005 (UTC)" ) ] ] ], [12] = "\n\n" ] ), [15] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Latest edit " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The latest anonimous edit looks like a bit of POV mischief from a banana bender with taped back ears and no neck who doesn't mind sniffing the odd backside. Anyone with sufficient powers out there agree on a roll back? --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'coz!)" ] ) ) ), [4] = " 08:53, 14 September 2005 (UTC)" ], [2] = "\n\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Pippu, absolutely agree to that. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Be bold in updating pages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Be bold" ) ), [2] = ". You don't need special powers to roll-back, just go to the edit history and select the previous edit (the good one) and press edit and save. You will get a warning that you're going to overwrite the current version but just say OK to that. -- ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ian" ) ), [4] = " ", [5] = WtXmlEntityRef( {P} name = "equiv" {P} resolved = "\u2261" {P} rtd = RTD[ "≡" ] ), [6] = " ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [8] = " 12:59, 14 September 2005 (UTC)" ) ], [4] = "\n\n" ] ), [16] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " ACT " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Re the Brain's most recent edit, that wasn't me that deleted that line that he has restored, but I always thought that it was inaccurate in relation to the ACT (i.e. Canberra). In fact, Canberra was an aussie rules stronghold until at least 1982 because the first two generations of public servants came predominantly from Melbourne. With time this balance swung more to Sydney and then around 1982 the Canberra Raiders joined the then NSWRL. Rugby league certainly has overtaken aussie rules in general popularity (if you are counting TV ratings) but in terms of participation I would think that it would be roughly on par with aussie rules and rugby union, and all three are likely to be behind soccer. In terms spectators attending games, I imagine the ACT Brumbies currently outstrip all, the Canberra Raiders only get about half, and for some of the three or four games the Kangaroos play in Canberra, they will often get more than the average Raiders game. All in all - I think it is not an accurate statement about Canberra (not to mention that in souther NSW, aussie rules is stronger than rugby league). --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 06:53, 27 September 2005 (UTC) ps I am a Canberran." ], [2] = "\n\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "This was the passage I restored (in ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "bold" ), [2] = "):" ) ], [4] = "\n\n", [5] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Australian rules which was invented in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Melbourne" ], title = - ), [2] = ", is the predominant ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "winter sport" ], title = - ), [4] = " in all states of ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australia" ], title = - ), [6] = " in which it is played", [7] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = " with the exception of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Queensland" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New South Wales" ], title = - ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Capital Territory" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ACT" ) ), [6] = ", where ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rugby league" ], title = - ), [8] = " is the predominant sport" ), [8] = "." ), [1] = " " ) ] ], [1] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "I think that's fair enough Pippu. I've not spent much time in Canberra but my understanding of Aussie rules history there is much as you describe. However it must be said that the AFL match crowds in Canberra in recent years have been very small in comparison to the Raiders' and Brumbies'. Whether or not that would change if an AFL side was based there is a matter for conjecture but not in a WP article. About the only thing disputable about the passage is whether union or league is more popular in the ACT. " ) ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Without the bold section above, the passage reads as though Aussie rules is predominant in all states of Australia, which is of course not the case, despite recent progress. " ) ], [8] = "\n\n", [9] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Perhaps the par could be rewritten to note Aussie rules' predominance in southern NSW but I'm not convinced that's warranted; to all intents and purposes the par is fine for mine. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 07:07, 27 September 2005 (UTC)" ) ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Brains - thanks for the reply - perhaps it's ok as it is but I wasn't suggesting that aussie rules was bigger than league or on par, but that even one of the other two codes may have been just as big (depending on the criterion you are using) - I'm just not sure that league is way out ahead of the other three in Canberra. The interest in the raiders has really waned since the Brumbies came on the scene - but that needs to be tested over a long period because I am not sure the average Canberran would suffer say 5 or 6 years in the bottom 4. Correct also in saying that it is too early to judge the Kangaroos experiment. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 09:58, 27 September 2005 (UTC) p.s. check out our main page at ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:p\u00E0ggina principali" ], title = - ), [6] = "! All invited!" ) ] ] ] ] ], [12] = "\n", [13] = WtParagraph[ [0] = "The crowd at the last Raiders match (v Manly) was 10,366;", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//foxsports.news.com.au/story/0,8659,16485151-23214,00.html" {P} protocol = "http" {P} rtd = RTD[ "http://foxsports.news.com.au/story/0,8659,16485151-23214,00.html" ] ), title = - ), [2] = " the AFL Kangaroos biggest crowd this year was 13,481:", [3] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//canberra.yourguide.com.au/detail.asp?class=sport&subclass=local&category=general%20sport&story_id=421562&y=2005&m=9" {P} protocol = "http" {P} rtd = RTD[ "http://canberra.yourguide.com.au/detail.asp?class=sport&subclass=local&category=general%20sport&story_id=421562&y=2005&m=9" ] ), title = - ) ], [14] = "\n\n", [15] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Record crowd figures at Canberra's 2005 AFL games have virtually guaranteed the ACT will remain the Kangaroos' interstate home beyond next year." ) ) ], [16] = "\n\n", [17] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "An average 12,180 fans attended the Kangaroos' three premiership games this season, boosted by a 13,481 gate at the annual blockbuster against Sydney in round two." ), [1] = " " ) ], [18] = "\n\n", [19] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Manuka Oval's 2005 AFL attendance total was 36,538, breaking the previous record of 34,105 set in 2001." ) ) ], [20] = "\n\n", [21] = WtParagraph[ [0] = "On that basis you I think it have to be said that Aussies rules is at least equal to rugby league, and is growing at the moment. When the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Western Force" ], title = - ), [2] = " smash the Brumbies, expect union to decline in the ACT as well ;-) Seriously, with a population of 300,000, it's not a bad effort to get 10,000+ to both league and AFL games. According to the Governor-General the Brumbies get an average crowd of 22,500.", [3] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//www.gg.gov.au/speeches/html/speeches/2005/050202.html" {P} protocol = "http" {P} rtd = RTD[ "http://www.gg.gov.au/speeches/html/speeches/2005/050202.html" ] ), title = - ), [4] = " A competitive AFL team based there would come close to that I think.", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk: Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " (Talk)" ) ), [7] = " 22:27, 27 September 2005 (UTC)" ], [22] = "\n\n", [23] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Fair enough, Grant, but are you aware that one of those matches was entirely bought out by Foxtel, who supplied free tickets to anyone who wanted one as part of a Foxtel/Fox Footy/AFL promotion in Canberra? " ) ], [24] = "\n\n", [25] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Perhaps we'd better take this discussion to BigFooty ;) --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 23:20, 27 September 2005 (UTC)" ) ], [26] = "\n\n", [27] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "BigFooty" ), [1] = " oh yeah, you'll get some bipartisan discourse there... In my experience, as a 1971-1982 Canberra schoolboy (neatly the pre-Raiders period) AR was non-existant. But that was just our school, I'm sure some schools played it. But I'd agree with Grant, an AFL team would outdraw than the Raiders, as league fans are notorious for their unwillingness to show up at games, and AR fans the exact opposite. Doesn't help the Raiders have played a crappy brand of football for about 8 years either. On the Brumbies, they're only playing a six game season, probably more people showed up at Raiders games this year, despite their pitiful form.--", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:*Paul*" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [3] = " 10:01, 29 October 2005 (UTC)" ) ] ] ], [28] = "\n \n", [29] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I confirm what Brains says about the free game. All in all, I think it is a reasonable rewrite - but re the ACT - we might revisit it this time next year! --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 03:02, 28 September 2005 (UTC)" ) ] ] ], [30] = "\n\n", [31] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "The average 2005 crowds for comparison. Rugby Union 22,895; Rugby League 12,404; Aussie Rules 12,149. Based on crowds alone, Union should rightly be most popular in ACT. League gets good TV ratings but this may also be because the games are broadcast more regularly (Super 14 matches are not held as often). Aussie Rules may be catching up, but by average crowds and ratings it is still 3rd overall. Canberra memberships for both the Kangaroos and Sydney Swans may have nearly doubled in 2006, but still total less than 1,000 ", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//kangaroos.com.au/default.asp?pg=canberra&spg=display&articleid=242973" {P} protocol = "http" {P} rtd = RTD[ "http://kangaroos.com.au/default.asp?pg=canberra&spg=display&articleid=242973" ] ), title = - ), [2] = " ", [3] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//sydneyswans.com.au/default.asp?pg=news&spg=display&articleid=237653" {P} protocol = "http" {P} rtd = RTD[ "http://sydneyswans.com.au/default.asp?pg=news&spg=display&articleid=237653" ] ), title = - ), [4] = ". I think a lot of people confuse Aussie Rules long-time strong presence in southern NSW/Riverina as extending to Canberra. It is more the case that Canberra's proximity to Sydney holds sway. --", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Biatch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Biatch" ) ) ) ] ] ], [32] = "\n\n" ] ), [17] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Aussie rules in Australia " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sport in Australia" ], title = - ), [2] = " article is the current ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Australian Collaboration of the Fortnight" ], title = - ), [4] = " - just wondering if anyone here would be interested in adding to the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sport_in_Australia#Australian rules football" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aussie rules" ) ), [6] = " section? (or any other section) thanks --- ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Astrokey44" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Astrokey44" ) ), [8] = " 04:32, 18 October 2005 (UTC)" ], [2] = "\n\n" ] ), [18] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Rules " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "The Rules section is getting rather long and unwieldly, especially the holding the ball subsection (which I started, when it actually was \"easily summarised\"), so moving it to another article seems like a good idea. But the name of such an article is an interesting topic - I would suggest \"Australian Football Rules\", just to confuse people (and to make User 139.132.1.1 happy). Possible alternatives are \"Australian Rules Football Rules\", or \"Rules of Australian Rules Football\", or even \"Australian Rules\". Seriously, probably the best name would be \"Rules of Australian Football\", regardless of whether you think that Australian Football is a good name. Incidentally, my copy of the rulebook has on the cover \"Laws of Australian Football\", so maybe thats an even better one (or \"Laws of Australian Rules Football\" come to think of it). If someone else wants to actually move the stuff, that would be good, or I'll probably do it in a week or two when I have more time. Of course the alternative is to just delete half the stuff, but that's probably not a good idea." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "On an unrelated note, exactly how high is \"elbow height\"? ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bjmurph" ) ), [2] = " 17:39, 9 November 2005 (UTC)" ], [4] = "\n", [5] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "If you can get hold of an old video of Dipper playing, that will give you a pretty good idea - the range is from throat level to black eye level. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "pippudoz" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 22:10, 9 November 2005 (UTC)" ) ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Actually, I was refering to the thing about the goal umpire signalling with hands at elbow height, but you've illustrated my point anyway. Maybe Belly-button height is a better description? ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bjmurph" ) ), [2] = " 06:37, 10 November 2005 (UTC)" ) ] ] ], [8] = "\n\n", [9] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "As a formerly accredited goal umpire, I can tell you that the upper arms should be vertical and the lower arms horizontal, making it the height of the elbow when standing with arms by your sides. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "(talk)" ) ), [4] = " 08:58, 10 November 2005 (UTC)" ) ] ] ] ] ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Laws of Australian Football sounds good to me, since that's what they're called. Law of Australian Rules Football if anyone really wants to kick up a stink. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "(talk)" ) ), [4] = " 17:58, 9 November 2005 (UTC)" ) ], [12] = "\n\n", [13] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "ok I moved it across to ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Laws of Australian Football" ], title = - ), [2] = ". Probably still needs a good short paragraph in this article ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Astrokey44" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Astrokey44" ) ), [4] = " 23:21, 9 November 2005 (UTC)" ) ] ] ], [14] = "\n\n" ] ), [19] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Attendance Record Cop-Outs and Factoids " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Aussie Rules fans go to games. Rugby league fans watch games on tv. Using attendance records as a means to determine popularity is severely flawed. Put simply, it's a cop out." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Another copout is the state count. Try adding up the populations of the AFL states in comparison to the non-AFL states! You have more than 50% of the entire country's population when you aggregate NSW and Qld populations alone." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "I'm not suggesting that RL has higher popularity, just that AFL popularity in comparison is incredibly overstated by the non-NPOV wording in this article." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "\nNow for the backup stats. This is from the Australian Bureau of Statistics. State populations as of june 30 2003..." ], [8] = "\n\n", [9] = WtParagraph[ [0] = "I've even given you the benefit of the doubt on NT being an AFL zone! I'm not convinced." ], [10] = "\n\n", [11] = WtParagraph[ [0] = "Non AFL States and Territories...\nNSW: 668 6644\nQld: 379 6775\nACT: 322 850\nTotal: 10 806 269" ], [12] = "\n\n", [13] = WtParagraph[ [0] = "AFL States and Territories...\nVic: 4 917 394\nSA: 1 527 421\nWA: 1 952 286\nTas: 477 094\nNT: 198 351\nTotal: 9 072 546" ], [14] = "\n\n", [15] = WtParagraph[ [0] = "Sorry to Burst your bubble AFL Fans! ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 13:53, 21 November 2005 (UTC)" ], [16] = "\n\n", [17] = WtParagraph[ [0] = "I'm not really sure what you're trying to say, since your arguments are as dodgy as the ones you are apparaently debunking, not to mention noone ever used a state count to prove anything. Aussie Rules is the most popular code of football in Australia, by any measure (eg ", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//www.smh.com.au/articles/2003/05/22/1053196670542.html" {P} protocol = "http" {P} rtd = RTD[ "http://www.smh.com.au/articles/2003/05/22/1053196670542.html" ] ), title = - ), [2] = "). I tend to agree that stating it is the most popular sport is probably going a bit far, but the rest of the paragraph is fine. If anything, it understates the popularity of Aussie Rules in the NSW Riverina. Keep in mind also, that this article is about the sport, not about the AFL. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [4] = " 14:37, 21 November 2005 (UTC)" ], [18] = "\n\n", [19] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "The standard measurement of popularity used by the ABS is game attendance and participation. This doesn't accurately measure the popularity of a sport. It's perfectly valid to refer to the AFL alone in this argument since QAFL, NSWAFL, WAFL etc are not telecasted nationally if at all. The popularity section boasts the # of states where the game is the most popular sport and mentions attendance. That's fine except it doesn't mention anything about television viewership nor the populations of those states and territories mentioned. In this respect, the reader has no way to quantify the popularity accurately and the article implies that the sport is phenomenally more popular than it is. I know AFL fans can become extremely obsessive so we can't really expect an truely NPOV article on the subject without outside help. In a few weeks i'm going to be back in australia. I intend to do some research and provide an NPOV article based on cited sources. Wikipedia's NPOV policy is not negotiable in any article. Furthermore, this article is loaded with original material and lacks the appropriate citations expected from a Wikipedia article. These rules apply to AFL fans too! ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 09:49, 22 November 2005 (UTC)" ) ] ] ], [20] = "\n\n", [21] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "The paragraph describes the geographical spread of the popularity of Aussie Rules. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "That's right it does and it stops short of actually providing any evidence of the sports popularity at a national level leaving the reader believing that an extremely large majority of people follow the sport in comparison to other sports.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [22] = "\n\n", [23] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "It does not \"boast the # of states where the game is the most popular sport\". ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "It implies it! Show me where the term 'Geographical spread' is used in the article!", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [24] = "\n\n", [25] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "If you read the paragraph as a description of the game's popularity, rather than assuming it was trying to make ridiculous claims, it might make more sense to you. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "I did read it as a description of the games popularity. That's the problem!", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [26] = "\n\n", [27] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Your argument about other leagues is nonsense. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "My argument regarding other leagues validates my legitimate claim to use the term AFL and to limit my research to AFL whilst investigating the popularity of the sport of Australian Rules Football. Unless you believe there are a significant number of followers who only follow the local state level games and bear no interest in the AFL then my argument is still valid.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [28] = "\n\n", [29] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "I didn't mention the ABS, so I'm not sure what you are referring to. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "I'm referring to the governing body that is usually considered to be the authority on statistics in Australia and dismissing their statistics as invalid. Not everything I have to say is necessarily an argument debunking you. Get over yourself.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [30] = "\n\n", [31] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "The Sweeny Report that I mentioned uses as a criteria simply whether a person claims to be interested in the sport. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "Where is that mentioned?", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [32] = "\n\n", [33] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Is that broad enough for you? There is more to life than television,", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "\n" ] [0] = "Nice ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Straw Man Fallacy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Straw Man" ) ), [2] = "! ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [4] = " 12:46, 22 November 2005 (UTC)" ) ) ), [1] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = " but if you want to add information on the viewing figures, then do that. ", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "Television viewership is far more valid than game attendance since viewership represents a much higher number of followers. I think it would be a very valid statistic to add if you're going to make a comparison between the popularity of AFL in comparison to followers of other sporting bodies.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [34] = "\n\n", [35] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "The fact that the SANFL and WAFL are not telecast nationally doesn't mean that they don't show evidence of the popularity of the code. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 10:17, 22 November 2005 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "See my previous comment regarding that particular argument.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 12:46, 22 November 2005 (UTC)" ) ) ) ] ] ] ] ], [36] = "\n\n", [37] = WtParagraph[ [0] = "By the way, I noticed you didn't comment on my suggestion that this article is loaded with Non-NPov original material with little or no source citation to back it up.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 13:01, 22 November 2005 (UTC)" ], [38] = "\n\n", [39] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Sources should definitely be added. If you have any more examples of POV sections, then please point them out, but please try to avoid reading things that aren't there. I have agreed with you that the wording \"most popular spectator sport\" is possibly misleading, and regarded as the national sport is dodgy, and have changed the article accordingly. I'm not sure what you are getting at with the rest of your comments. You do seem to think television audiences are important, so if you have some sources about them, please tell us, rather than complaining about the existence of other statistics. No one at all has implied that the ABS figures give an overall indicator of the popularity of the sport, they have simply used them for what they ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "are" ), [2] = " valid for, so I am still not sure what you are referring to. I will say again that the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "main" ), [4] = " purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has. This means stating where it is and isn't dominant and mentioning attendance rates, participation rates and television audiences without trying to draw conclusions about which figures are most relevant. The reader can do that for themselves. Lastly, please don't try to break up my comments, as how you did it last time obscured the points I was making. ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [6] = " 13:32, 22 November 2005 (UTC)" ) ], [40] = "\n\n", [41] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "I will say again that the main purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has." ), [1] = "\nI have to disagree with you there. How can you demonstrate the popularity of a sport without benchmarking it against other sports. Saying Austrlian rules is very popular, or even the 'most' popular sport is like saying, 'my piece of string is very long' or 'I have the longest piece of string'. As someone reading the article I want to see how much more popular the sport is overall and in comparison to the sport that comes second in the popularity contest. Having said that, nothing annoys me more than when Aussie Rules fans pull out their pencil and eraser on a rugby league article and insert the term 'Aussie Rules' in as many places as they can get away with! That's not what i'm trying to do here and generally speaking, I like to discuss potential edits prior to making changes to a page." ], [42] = "\n\n", [43] = WtParagraph[ [0] = "I will, as you suggest, add some sources, citable statistics and non-npov wording to the article.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 13:44, 22 November 2005 (UTC)" ], [44] = "\n\n", [45] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Please don't post comments in other people's posts, it makes it hard to tell who's said what." ) ], [46] = "\n\n", [47] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example:" ) ], [48] = "\n\n", [49] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Total viewers (in thousands) and broken down by five largest cities." ) ], [50] = "\n\n", [51] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 1ST GAME. Total 1,733. Syd 813; Mel 128; Bris 726; Ade 32; Perth 34." ) ], [52] = "\n\n", [53] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "STATE OF ORIGIN RUGBY LEAGUE NSW V QLD 2ND GAME: Total 1,758. Syd 959; Mel 106; Bris 652; Ade 22; Perth 19" ) ], [54] = "\n\n", [55] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 3RD GAME: Total: 1,863. Syd 952; Mel 251; Bris 593; Ade 32; Per 35" ) ], [56] = "\n\n", [57] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "2005 NRL GRAND FINAL Total: 2,563. Syd 1,188; Mel 506; Bris 778; Ade 49; Per 42" ) ], [58] = "\n\n", [59] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "2005 AFL GRAND FINAL Total: 3,386. Syd 991; Mel 1,202; Bris 341; Ade 341; Per 511" ) ], [60] = "\n\n", [61] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "source: ", [1] = WtUrl( {P} path = "//www.oztam.com.au/archives.aspx?Year=2005" {P} protocol = "http" {P} rtd = RTD[ "http://www.oztam.com.au/archives.aspx?Year=2005" ] ) ) ], [62] = "\n\n", [63] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " Interesting to note that almost as many people in Sydney watched the AFL grand final as watched the NRL event. You could argue that it was because the Swans were playing, but that doesn't explain the lacklustre figures for league outside of Sydney and Brisbane, e.g. the relative figures in figures in Perth and Adelaide for Origin 2 and the AFL GF." ) ], [64] = "\n\n", [65] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "That site doesn't have stats yet for the last Socceroos game. Every source I have seen says that soccer is the biggest sport in terms of ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "participation" ), [2] = " (probably because because of the number of kids, including girls playing), but Aussie rules is second and it also gets the biggest attendances and TV audiences, by a significant margin." ) ], [66] = "\n\n", [67] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Oh, by the way, official attendance at the WAFL grand final was 22,570.", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//www.claremontfc.com/2005season/modules.php?name=News&file=article&sid=87" {P} protocol = "http" {P} rtd = RTD[ "http://www.claremontfc.com/2005season/modules.php?name=News&file=article&sid=87" ] ), title = - ), [2] = " ;-) ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [4] = " | ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [6] = " 14:28, 22 November 2005 (UTC)" ) ], [68] = "\n\n", [69] = WtParagraph[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example: " ) ], [70] = "\n\n", [71] = WtParagraph[ [0] = "Didn't suggest we do but your suggestion reinforces the meaningless nature of the state based stats when trying to draw a conclusion from a national standpoint. If you'd read my comments you'd see I actually suggested using viewership as the main component of such an argument. So thanks for backing my argument and supplying some usefull stats. I'd like to see some of the viewership stats in the article." ], [72] = "\n\n", [73] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Every source I have seen says that soccer is the biggest sport in terms of participation (probably because because of the number of kids, including girls playing), but Aussie rules is second " ), [1] = "\nWell the ABS disagrees. " ], [74] = "\n\n", [75] = WtParagraph[ [0] = "This link includes all forms of exercise as well as sports. Aussie rules doesn't even rank in the top 10. Soccer is number 10...\n", [1] = WtUrl( {P} path = "//www.abs.gov.au/Ausstats/abs@.nsf/0/DAAADA81176E2F89CA256F7200833023?Open" {P} protocol = "http" {P} rtd = RTD[ "http://www.abs.gov.au/Ausstats/abs@.nsf/0/DAAADA81176E2F89CA256F7200833023?Open" ] ) ], [76] = "\n\n", [77] = WtParagraph[ [0] = "This article is limited to organised sports and shows stats for children alone. Aussie Rules is ranked 6th after swimming, soccer, netball, tennis and basketball\n", [1] = WtUrl( {P} path = "//search.abs.gov.au/servlet/SearchDocuments?query=Australian+rules+football+soccer+rugby+league&docID=CA256FE8004F86D9&docURL=HTTP://www.abs.gov.au/Ausstats/abs%40.nsf/0/57E1C764BFA85942CA256F7200832FBC%3FOpen" {P} protocol = "http" {P} rtd = RTD[ "http://search.abs.gov.au/servlet/SearchDocuments?query=Australian+rules+football+soccer+rugby+league&docID=CA256FE8004F86D9&docURL=HTTP://www.abs.gov.au/Ausstats/abs%40.nsf/0/57E1C764BFA85942CA256F7200832FBC%3FOpen" ] ) ], [78] = "\n\n", [79] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Oh, by the way, official attendance at the WAFL grand final was 22,570.", [1] = WtText( {A} warnings = C[ Warning (none): /nopkg-complex/input.wikitext/raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext:314:75 - 76: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [2] = "6] ;-) Grant65 | Talk 14:28, 22 November 2005 (UTC) " ), [1] = "\nPerhaps you can explain the relevance of this point. I don't get it." ], [80] = "\n\n", [81] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [1] = " 15:03, 22 November 2005 (UTC)" ], [82] = "\n\n", [83] = WtParagraph[ [0] = "You are being extremely inconsistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. The most recent version of the sweeney report, mentioned above, which uses participation as well as watching and attending, gives swimming as the most popular sport, with tennis, cricket and AF tied on second. Taking only TV (your favourite statistic) AF is the highest. Again, it contains many forms of exercise as well. If you want to read it - ", [1] = WtUrl( {P} path = "//www.sweeneyresearch.com.au/PDF/Interest.pdf" {P} protocol = "http" {P} rtd = RTD[ "http://www.sweeneyresearch.com.au/PDF/Interest.pdf" ] ), [2] = ". ", [3] = WtXmlElement( {P} name = "s" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "And please stop editing other peoples comments, it's just confuses things." ] ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [6] = " ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [8] = " 15:22, 22 November 2005 (UTC)" ], [84] = "\n", [85] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "Posting bits of other peoples things to reply to is confusing too. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [4] = " 16:12, 22 November 2005 (UTC)" ) ] ] ] ] ], [86] = "\n\n", [87] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand. (The WAFL games are telecast, by the way, live on the ABC. I would guess the SANFL and VFL games are as well.)" ) ], [88] = "\n\n", [89] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport:" ) ], [90] = "\n\n", [91] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "MAIN SPORTS ATTENDED, 12 months ending April 1999" ) ] ] ], [92] = "\n\n", [93] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Sport; Persons ('000); Attendance rate % " ) ] ] ], [94] = "\n\n", [95] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Australian rules: 2,509.2; 16.8 " ), [1] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Horse racing: 1,756.4; 11.8 " ), [2] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Motor sports: 1,574.3; 10.6 " ), [3] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Rugby league: 1,501.1; 10.1 " ), [4] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Cricket: 942.5 6.3 " ), [5] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Soccer: 621.2; 4.2 " ), [6] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Harness racing: 534.8; 3.6 " ), [7] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Basketball: 526.0; 3.5 " ), [8] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Rugby union: 446.2; 3.0 " ), [9] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Tennis: 444.0; 3.0 " ), [10] = WtDefinitionListDef( {P} rtd = RTD[ "::" "\n" ] [0] = "Dog racing: 276.4; 1.9 " ), [11] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Netball: 248.7; 1.7 " ) ] ] ], [96] = "\n\n", [97] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = WtUrl( {P} path = "//www.abs.gov.au/Ausstats/abs@.nsf/0/e298cee24565c911ca256def007248ff?OpenDocument" {P} protocol = "http" {P} rtd = RTD[ "http://www.abs.gov.au/Ausstats/abs@.nsf/0/e298cee24565c911ca256def007248ff?OpenDocument" ] ) ) ] ] ], [98] = "\n\n", [99] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " ...unless we accept the \"argument\" that league fans would rather watch it on TV. But I don't buy it. Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union, which was established first and (I'm guessing) has been growing in popularity since professionalism was (officially) allowed. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [2] = " | ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [4] = " 15:33, 22 November 2005 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I think that the League people watching TV is a moot point, because I'm yet to see a statistic that shows the NRL TV viewing greater than the AFL TV viewing. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [4] = " 16:12, 22 November 2005 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "I haven't at any point suggested that Rugby League has higher ratings or is more popular. All I have suggested is, if you are going to say Australian Rules is more popular, this should be correctly sourced and sourced in a way that shows how much more popular it is in comparison to other sports." ) ) ) ) ) ], [100] = "\n\n", [101] = WtParagraph[ [0] = "To BJMurph\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "You are being extremely incosistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. " ) ], [102] = "\n\n", [103] = WtParagraph[ [0] = "OK feel free to quote me out of context! What I said was that the ABS doesn't provide statistics that will tell us which sport is more popular or how popular Australian sports are in comparison to one another. Where i've used abs stats it has been specifically in relation to participation in sport." ], [104] = "\n\n", [105] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "The most recent version of the sweeney report" ), [1] = "\nIf you'd bothered to read my comments you'd see that I do view the sweeny report as a solid source and that my only gripe is with the fact that none of the stats from said report are included in the article!" ], [106] = "\n\n", [107] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "gives swimming as the most popular sport, with tennis cricket and AF tied on second" ), [1] = "\nAh. So are you now saying that Aussie Rules isn't the most popular sport in Australia? Or have I misunderstood your point?" ], [108] = "\n\n", [109] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "And please stop editing other peoples comments, it's just confuses things" ), [1] = "\nWell firstly, I didn't edit anyone elses comments. I merely inserted my comments amongst theirs so it would be obvious which point i'm addressing. After doing that ONCE I was asked not to so I didn't do it again. Your statement implies that i've continued to do this. This is a false accusation and a clear attempt at the ad hominen fallacy. A dirty debating trick. If what you're actually referring to me copying and pasting the arguments i'm commenting on, I fail to see how that makes it more confusing. In fact i'd say it's making it more difficult for yout to confuse the issue. You sure are trying hard though aren't you?" ], [110] = "\n\n", [111] = WtParagraph[ [0] = "\n\nTo Grant65\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand." ), [2] = "\nMy comments suggesting that it's ok to look at AFL popularity alone to get an idea of the popularity of the sport as a whole? Again I will say, unless you think a significant number of those WAFL supporters don't support the AFL, there is no need to look at those numbers. This is yet another attempt at a straw man argument." ], [112] = "\n\n", [113] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport: " ), [1] = "\nI don't dispute these stats at all. Only the context in which they are used. These stats don't in any way conclusively suggest that Aussies rules is 'more popular' than every other sport in Australia. They merely show that Aussie rules gets more attendence at its games. Any level headed person can see that. If you can't i'd suggest your judgement is clouded by the love of the game to the extent that you are incapable of taking a pragmatic approach to the subject." ], [114] = "\n\n", [115] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union" ), [1] = "\nAnd yet another straw man argument. This discussion has nothing to do with rugby league. This discussion relates to the non-npov way in which Aussie Rules is represented in this article as Australia's most 'popular' sport." ], [116] = "\n\n", [117] = WtParagraph[ [0] = "Please read the prior discussion before adding anything further to this discussion. And please cease using dirty debating tactics. I'm familiar with all of the logical fallacies. We might even improve this article as a result!" ], [118] = "\n\n", [119] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [1] = " 16:28, 22 November 2005 (UTC)" ], [120] = "\n\n", [121] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "You'll notice I had already struck out the comment about editing other peoples comments, I wasn't reading it properly. And I will now say the same about the ABS comment, but with your interjections and stuff, I was finding the page hard to read. Perhaps if you made sure your comments were on a new line after the person you're quoting (maybe indented)(bold is good though)." ) ], [122] = "\n\n", [123] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "You have indeed misunderstood my point, I beleive the article claims that Australian Football is the most popular ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "spectator" ), [2] = " sport (or if it doesn't, it did, and should). The Sweeney report includes participation. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [6] = " 16:49, 22 November 2005 (UTC)" ) ], [124] = "\n\n" ] ), [20] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Another example of out of control non-NPOV " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Cricket is the most common summer spectator sport in Australia, and is usually played on the same grounds as Australian Football. In the past, many elite-level footballers played representative cricket, but the increasingly professional nature of the game made this impossible by the 1980s. Of the other organised sports or physical activities played by aussie rules footballers in Australia, outdoor cricket is the most popular." ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "I think we're forgetting what the CG part of MCG stands for!", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 10:01, 22 November 2005 (UTC)" ], [4] = "\n\n", [5] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "I think you're forgetting what the article is about. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 10:20, 22 November 2005 (UTC)" ) ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "You must be pretty desperate for a valid argument if, in order to gain one, you have to resurect a comment I already admitted was incorrect and subsequently deleted in order to gain one!" ) ] ] ], [8] = "\n\n", [9] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "I did not see that you had deleted your comment, as it edit conflicted with my edit to the previous section and was quite confusing. At any rate, it is not normal to delete comments from the talk page. To avoid confusion, you might like admit on the talk page that you misread the sentence, rather than just deleting your comment. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 13:12, 22 November 2005 (UTC)" ) ] ] ] ] ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "I admitted it in the history where the deletion was recorded. The entire section became pointless but since you're not going to let it die I decided to take some time to go through the first part of the article. I'm not finished yet..." ) ] ] ] ] ] ] ], [12] = "\n\n", [13] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::::" "" ] [0] = "Could you please ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:FAITH" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "assume good faith" ) ), [2] = "? The edit conflict was quite confusing and I did not realise that you had deleted it. I did not imply that you did not admit it, I simply suggested that it would have been less confusing to admit on the talk page. I am perfectly happy to let it die now that I understand you retracted the comment. I am not perfectly happy to accept your accusation that I deliberately resurrected it. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [4] = " 13:40, 22 November 2005 (UTC)" ) ] ] ] ] ] ] ] ] ], [14] = "\n\n", [15] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "OK good faith it is. I even deleted the accusation.... well i thought that was funny. I originally thought the sentence was suggesting that cricket is played on an Aussie Rules field. That would qualify as non-NPOV. Saying they're played on the same field is not." ) ] ] ] ] ] ] ], [16] = "\n\n", [17] = WtParagraph[ [0] = WtXmlElement( {P} name = "s" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = ":::::It seem that you added this paragraph just before I clicked edit, so I hadn't read it when I wrote the above. The explanation for the 6 minutes, if you want it, is that I clicked submit when I had finished my edit to the earlier section, and then worked on something else. When I came back to the window, I saw that it had not been submitted due to an edit conflict. How much of the six minutes was between your edits and my original submission and how much was between my first submission and my second one, I don't know. You can see that my \"resurrection\" of your comment was part of the edit I made to the earlier section. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 13:53, 22 November 2005 (UTC)" ] ), [1] = " This was a response to your now deleted accusation - I am still having trouble keeping up with you, but I think we understand the original problem now, so let's leave it at that. ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [3] = " 13:56, 22 November 2005 (UTC)" ], [18] = "\n\n", [19] = WtParagraph[ [0] = "OUT OF CONTROL NON-NPOV" ], [20] = "\n", [21] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Openning Paragraph" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Spectacular high marks (\"speccies\") are regarded as one of the game's main attributes as a spectator sport." ), [1] = "\nFrom who's 'point of view' is it spectacular?" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Spectators. That's why it says \"...as a spectator sport\". If this is \"POV\", then you presumably believe that some other attribute of the game is more important to spectators. Which? ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User Talk:Stevage" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stevage" ) ), [2] = " 14:52, 16 December 2005 (UTC)" ) ], [4] = "\n\n" ] ), [22] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Popularity" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Domestic Migration" ), [1] = "\nI'm a northerner and a rugby league fan, experientially I can't deny that AFL seems to be Australia's most popular winter sport and is growing in popularity. This point should be made though:" ], [2] = "\n", [3] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "In the states that support AFL pre-dominantly, that sport is followed with an unmatched level of passion, akin to a religion or way of life for many. It is not only accepted, but expected that you follow an AFL team, and it does not matter whether you are a truck driver or a lawyer the game is loved by everyone. In NSW on the other hand, following rugby league can sometimes be considered low-brow by your intellectual types, uncool by your hip types and thuggish brutality by your vegan types. Factor in the class divide where your elite private schools play rugby union only, and breed staunch union supporters and you can see you're behind the eight ball already. And then there is domestic migration, which in Australia tends to move in a north eastern direction meaning people brought up speaking the language of AFL move into NSW and Queensland and increase the supporter base for the code in those states." ) ], [4] = "\n\n", [5] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "With relation to the above, this affects media coverage of the respective sports in Sydney. There are two reasons for this, the average union and AFL fan in NSW has a higher expendable income than the average rugby league fan (sorry no references), leading to these sports being able to attract 'high-end' sponsors and advertisers. In a vicious cycle, these 'high end' company's are often run at the highest levels by graduates from the aforementioned elite schools and we know where their loyalties lie. (In a quick aside, my personal opinion is that in Australia, rugby union would be as much of an anachronism as royal tennis, if it weren't for the elite private schools keeping it alive all these years.) Good sponsorship like this leads to greater exposure, even if the actual level of support doesn't warrant it. The Sydney Morning Herald is a prime example. This paper concentrates on union and AFL at the expense of rugby league, it also has a very poor circulation compared to the other major Sydney paper, the Daily Telegraph." ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:220.245.178.140" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "220.245.178.140" ) ), [2] = " 00:54, 25 November 2005 (UTC)Regards CS-----", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:220.245.178.140" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "220.245.178.140" ) ), [4] = " 00:54, 25 November 2005 (UTC)" ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Very true. And i'm happy to admit I came to this page knowing it would be loaded with non-npov statments due to the incredible level of fanaticism with the sport. The level of fanaticism can only be compared to sports such as soccer in europe and GAA sports in country areas of Ireland (GAA sports are not popular in dublin where everyone just follows british soccer). When visiting Melbourne many a cab driver has become upset with me when my response to the question 'which team do you follow?' is the Brisbane Broncos ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 09:28, 25 November 2005 (UTC)\n" ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "In doing so, you managed to find several \"non-npov statements\" that were perfectly npov when they were read sensibly. You might have understood what was being said better if you didn't start with the assumption that it would be inappropriate. I agree with you that there are several vague unsourced statements, but that is not the same as POV-pushing. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 10:45, 25 November 2005 (UTC)" ) ], [12] = "\n\n", [13] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "That may be the case but either way, my presumption has allowed me to play devils advocate to the benefit of the article. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 11:41, 25 November 2005 (UTC)" ) ] ] ], [14] = "\n\n", [15] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "attracts more interest than any other winter sport" ), [1] = "\nThis comment is backed up by an excellent citation. The citation has a great deal of information that could aid the reader to quantify the popularity of Australian rules football in comparison to other sports. However, none of that information is included in the article!" ], [16] = "\n\n", [17] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In the Australian Capital Territory (ACT) rugby union is arguably more popular." ), [1] = "\nArguable by whom? Who is being quoted here? Where's the source to back this up? Looks like heresay to me." ], [18] = "\n", [19] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "I am not a rugby fan but I live in Canberra and I can tell you that Rugby Union (at the elite level) easily attracts, on average, more spectators per game. It's a non contest so drop it.", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Sorry not good enough. I expect more than anecdotal evidience to back a claim like this. Where are the numbers? Who are you quoting?", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:62.254.168.102" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "62.254.168.102" ) ), [2] = " 09:13, 23 November 2005 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "It's probably true, it does need to be sourced, but more to the point, does it really need to be in the article? The point is that in most of NSW, Qld and ACT, AF is not the obviously dominant code as it is in other areas. For this context, it doesn't matter what the dominant code is. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 09:48, 23 November 2005 (UTC)" ) ) ) ) ) ], [20] = "\n\n", [21] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In recent years, there has been a boom in Australian Football in Brisbane, and this appears to be closely linked to the success of the Brisbane Lions, who won three premierships in a row (2001-2003), and were runners-up in 2004." ), [1] = "\nWho is being quoted here? Where is the citation and stats to back up the claim? Looks like an assumption based on anecdotal evidence to me." ], [22] = "\n", [23] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "We can look at Brisbane Lions membership and crowd attendance (through the roof), and participation rates of school-age children in the Brisbane metropolitan area, especially in the Auskick program.", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "That would be a good start. In addition, can we find out the rise in television ratings? Since the first premiership win? Maybe the immigration stats. I'm originally from Brisbane and recall a time when the only attendance the Brisbane Bears received consisted of southern immigrants who were there to see the opposition play. It has been suggested that those AFL fans had children and their children follow the Brisbane Lions. This largely accounts for the grown in support for the sport in Brisbane prior to the first premiership win. I'll see if I can track down a quote or source for this.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:62.254.168.102" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "62.254.168.102" ) ), [2] = " 09:13, 23 November 2005 (UTC)" ) ) ) ], [24] = "\n\n", [25] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In both the ACT and south-western NSW, Australian Football has rivalled the two varieties of rugby in popularity over many decades." ), [1] = "\nOver many decades? I find that difficult to believe. And again I ask, where's the source of this information?" ], [26] = "\n", [27] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "This is a stupid question, it is common knowledge, like the sky is blue. Southern NSW has alsways been Aussie rules territory, some of the best players in history have come from Albury and Wagga. In fact in the 1996 grand final, the two captains of the opposing teams both came from Wagga. As for the ACT, only someone who doesn't know the history of Canberra would query this fact.", [1] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "This is a stupid suggestion. It doesn't matter if it is common knowledge. You are breaking wikipedia's rules by including original material and not providing a source. Having said that, I did misread the quote and thought it was suggesting all of NSW. I agree it is common knowledge. I've been to wagga wagga and albury. However, I stand by my comment that this needs to be sourced." ) ) ) ], [28] = "\n\n", [29] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "With nearly 400,000 participants, Australian Football is also one of the most played sports in the Australia." ), [1] = "\nGreat. Now the participation section. Easily verifiable by the Australian Bureau of statistics web site. One problem. It's a pretty vague comment. ", [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "One of the most played sports" ), [3] = " and successfully manages to leave people assuming certain things. How about stating the its rank? It might be interesting for people to know that soccer, netball and basketball all have higher participation rates and Australian Rules football. And that in adults, sports such as golf, darts,billiards and pool have higher participation rates. This is exactly how i'd word an article if I were expressing point of view and pushing an agenda." ], [30] = "\n\n", [31] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Australian Football is also now played in more than 20 countries around the world." ), [1] = "\nThis fails to express how unpopular the sport is in those 20 countries?" ], [32] = "\n", [33] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = " Does it really need to address popularity (surely general popularity was covered in a previous section that mentions the game is only popular in Nauru and PNG ? In any case it is a simple statement of fact - no more, no less. --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Biatch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Biatch" ) ) ) ] ] ], [34] = "\n\n" ] ), [23] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Leagues" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "The most powerful organisation and competition within the game is the elite, professional Australian Football League (AFL)" ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Oh they're elite. Is that another non-NPOV comment? how about quoting somebody saying that?" ], [4] = "\n\n", [5] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "Stating a rank is completley meaningless when there is so much of an argument over what that rank is. The very fact your arguing illustrates that \"one of the most popular\" is the ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "most" ), [2] = " neutral thing we can say." ), [1] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "It does not matter how unpopular it is, it is saying how many countries it is played in. Does it say, \"AF is the best sport ever, with national leagues in 20 countries\"?" ), [2] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "We don't need a quote to prove the AFL is the elite league - to quote Macquarie, \"a group of people with the most power, money, education etc.\" elite is just an adjective. Would you argue the AFL does not have the most money of any organisation of the game? And they set the rules, how much more power can you have?" ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "I notice that all your arguments come from the sections that were removed from the intro. They are terefore summarising what should have been further into the article. I was not a fan of the leagues section, seeing as there is a teams and leagues section further in." ], [8] = "\n\n", [9] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [3] = " 15:38, 22 November 2005 (UTC)" ], [10] = "\n\n", [11] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "No I merely read through the first few paragraphs looking for non-npov statements. I stopped at the leagues section due to time constraints. I intend to go through the remainder of the article. I don't want to go making changes without discussing them first. That sort of thing leads to reversion and wasted time." ) ] ] ], [12] = "\n\n", [13] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "With regards to rank, there is no dispute regarding the ranking as a participant sport. The ABS provides these figures and even if we disputed it, it wouldn't matter. You can still say \"the ABS says...\"." ), [1] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "How popular it is in those countries is very interesting and usefull information. The absence of this information can be interpreted as non-npov writing." ), [2] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "As for your 'elite' comment, there should be nothing in this article that can be interpreted as 'original material'. Everything in this article is supposed to be sourced from somewhere. This rule applies to all wikipedia articles. This one is not an exception." ) ], [14] = "\n\n", [15] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [1] = " 16:41, 22 November 2005 (UTC)" ], [16] = "\n\n", [17] = WtParagraph[ [0] = "I just took a look at the article for the first time since writing this and see that the issues i brought up have been addressed. I'm impressed. I think the article is better as a result. Still needs more verifiable citations and quotations.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 17:01, 22 November 2005 (UTC)" ], [18] = "\n\n", [19] = WtParagraph[ [0] = "\nI wasn't trying to say anything about your comments, rather that until a few weeks ago, everything up to and including the leagues section was in the intro. I haven't liked it is(or like it was), and have felt it sub par, but not quite sure how to go about fixing it." ], [20] = "\n\n", [21] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "Fair enough" ), [1] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "I still think that this is ok", [1] = WtXmlEntityRef( {P} name = "mdash" {P} resolved = "\u2014" {P} rtd = RTD[ "—" ] ), [2] = " perhaps your use of the word unpopular got my back up (fails to mention the degree of popularity...?) My understanding is that it is quite popular in some countries, esp. the US. Shouldn't be too hard to find references" ), [2] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "And I still think you're taking this one too far", [1] = WtXmlEntityRef( {P} name = "mdash" {P} resolved = "\u2014" {P} rtd = RTD[ "—" ] ), [2] = " Everything in the article must be sourced, but that does not mean that everything in the article must be directly quoted from somewhere (granted, \"elite\" is possibly not the best word)" ) ], [22] = "\n", [23] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "bjmurph" ) ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Bjmurph" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "sub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "talk\u203D" ] ) ) ), [3] = " 17:08, 22 November 2005 (UTC)\n(stop editing the page while i'm trying to post!!!!)" ], [24] = "\n\n", [25] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "The participation information should not have been removed from the page. I think it is fair enough to say it is one of the most played sports, as the definition of sport differs from survey to survey. (A lot of people swim, a lot less swim compeititively), but we should definitely give the figures from the ABS. The emphasis should be on the nubmers, not the comparison." ), [1] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "Including \"amateur\" probably makes enough difference, but you were being a bit fussy to start with - don't read too much into a sentence. At any rate, more detail is given later in the article." ), [2] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "I think the relevant definition of elite here is \u201CThe best or most skilled members of a group: the football team's elite.\u201D It would be POV to declare individual players elite, or possibly even to call the VFL the elite league in the past, but in modern days the structure of the game is such that saying the AFL is the elite league is as undisputable as calling the Premier League the elite competition in English soccer. We don't need to have sources for the word \"elite\", simply for the fact that it is the top-level competition. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 09:48, 23 November 2005 (UTC)" ) ], [26] = "\n\n", [27] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "Re: the word elite. OK I agree that the word elite can be used in a non-npov context. However, in the sentence it's being used here, it is redundant. It becomes POV at the point that the same point is repeated a multiple number of times in the same sentence. I'm happy for them to be called either the most powerful organisation or the elite organisation, but not both. What if instead of saying 'The NRL is the elite governing body for the sport of rugby leage in Australia' I decided to say this 'The NRL is the most powerful, vigorously supreme, almighty and elite governing body of the sport of rugby league in Australia'?", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 14:47, 23 November 2005 (UTC)" ) ], [28] = "\n\n", [29] = WtParagraph[ [0] = "You have a good point. I guess I feel that the meaning of elite being used here is the one that refers to the skill level of the competition, rather than the power and money of the organisation (governing body). It would be good to rewrite/split the sentence to that it adequately reflects both aspects. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 14:54, 23 November 2005 (UTC)" ], [30] = "\n\n", [31] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "Re: the word elite. Geez, if you really want one, the NAB (sponsors) obviously think it is elite, because they drop the word about 5 times in this article ", [1] = WtExternalLink( {P} rtd = RTD[ "[" "" "]" ] target = WtUrl( {P} path = "//www.national.com.au/Sponsorships/0,,66975,00.html" {P} protocol = "http" {P} rtd = RTD[ "http://www.national.com.au/Sponsorships/0,,66975,00.html" ] ), title = - ), [2] = ". If guess if it wasn't elite, you could probably walk up and get a game, which is obviously not the case. --", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Biatch" ], title = - ) ) ], [32] = "\n\n" ] ) ] ), [21] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Rename? " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Should this article be renamed from \"Australian rules football\" to \"Australian Rules Football\"? It seems to be that the former sounds like a statement about a person in charge of football :) But in all seriousness, the latter is the correct title, is it not? The history in the redirect appears to show the reverse was done on 11 November 2004, I but cannot think why. \"rules\" (uncapitalised) implies something other than a title. -- ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ian" ) ), [2] = " \u2261 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [4] = " 02:27, 25 November 2005 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Hi Ian - I agree it needs to be looked at, I don't understand either why it was changed to lower case. It has to be either Australian Rules Football, or simply Australian Football (remembering that the league is called the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Football League" ], title = - ), [2] = "). ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [4] = " - ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [6] = " 03:06, 25 November 2005 (UTC)", [7] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Hi Pippu - long time no speak! Definitely not \"Australian Football\"! I always played \"Aussie Rules\" or \"Australian Rules Football\". Regards -- ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ian" ) ), [2] = " ", [3] = WtXmlEntityRef( {P} name = "equiv" {P} resolved = "\u2261" {P} rtd = RTD[ "≡" ] ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [6] = " 04:18, 25 November 2005 (UTC)", [7] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "\n" ] [0] = "I too played \"Aussie Rules\" or \"Australian Rules Football\" (in amongst kick-to-kick, waxing, going for speccies and having pot shots at goal from impossible angles). All I can add is that I have noticed a trend over the last 10 to 15 years to use the term \"Australian Football\", and indeed some of the major leagues around the country (and maybe even some club names), that may have once had the term \"Rules\" in them, have dropped it of late. I accept that this is just a gut-feel and I have not surveyed anyone - either way, ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Australian rules football" ), [2] = " is not acceptable. --", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [4] = " - ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [6] = " 04:50, 25 November 2005 (UTC)" ), [1] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "I don't understand why it's not acceptable. The \"Australian\" part is the only part that refers to a proper noun, the rest should be uncapitalised in the same way we refer to \"American football\", \"Association football\", etc. We don't play \"Netball and Basketball\", we play netball and basketball. There's nothing about the name of the sport that demands capitalisation except for the bit that is named after a country, even if only for consistency's sake. Whatever our own opinions surely we should follow WP convention at least.--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:The Brain of Morbius" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Brain of Morbius" ) ), [2] = " 05:07, 25 November 2005 (UTC)" ) ) ) ) ) ], [4] = "\n\n", [5] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = "When I was playing in the junior ranks (rare for a queenslander) our sport was referred to as 'Australian Footy' which was a cut down version where you couldn't kick the ball off the ground. The senior players played a game called 'Australian Football'. That's how it was officially termed." ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = "It doesn't matter how you want the capitalisation to work, it is a wikipedia standard to capitalise only the first letter of the first word.", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Factoid Killer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Factoid Killer" ) ), [2] = " 09:20, 25 November 2005 (UTC)" ) ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Not quite true - if the title as a whole is a proper noun (eg New South Wales), then obviously each word has a capital letter. However, the convention is (correctly) that names of sports are not proper nouns, hence rugby league and Australian rules football. It is true that the game is often called simply Australian football, but the version with \"rules\" is at least as common and less ambiguous. The name of the AFL is irrelevant, as I'm fairly sure that there the sport is simply refered to as \"football\", with \"Australian\" referring to the league. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " 10:04, 25 November 2005 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "if it's a wikipedia convention - fair enough - but I still maintain there has been a big push over the last 10 to 15 years to call it simply Australian football, also, I can't help thinking that that is the normal encyclopaedic entry - but I'm definitely not going to die in a ditch over it! ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 11:28, 25 November 2005 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "There may have been 'a push', but I don't think that's the standard term yet. I call it \"Australian football\" when explaining it to foreigners, but that's still a bit of a neologism." ) ), [6] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "::*" "" ] [0] = "I've done a bit of research and thought this through a bit more and have to backtrack and agree with ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = - ), [2] = ". ie. leave as is. I apologise for bringing this up. -- ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ian" ) ), [4] = " ", [5] = WtXmlEntityRef( {P} name = "equiv" {P} resolved = "\u2261" {P} rtd = RTD[ "≡" ] ), [6] = " ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Ianbrown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [8] = " 18:26, 25 November 2005 (UTC)" ) ) ) ) ) ], [8] = "\n\n" ] ), [22] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " External links " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "I notice that some of the lists in the article have been columnised, drawing attention to something I was planning to raise earlier - should we really have that many external links listed? Most of them seem to be fairly good sites, but we aren't meant to be a link directory. The links at ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "cricket" ], title = - ), [2] = " have been deliberately kept at a much smaller number, so maybe someone should do a bit of a cull here? ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [4] = " 17:40, 26 November 2005 (UTC)" ], [2] = "\n\n", [3] = WtParagraph[ [0] = "I don't think it's too bad. I agree it's as long as it should be, and maybe could be tightened slightly, but don't think a drastic cull is necessary.--", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Cinephobia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cinephobia" ) ), [2] = " 11:20, 29 November 2005 (UTC)" ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Bah :p Many links, but none to ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//stats.rleague.com/afl/afl_index.html" {P} protocol = "http" {P} rtd = RTD[ "http://stats.rleague.com/afl/afl_index.html" ] ), title = WtLinkTitle[ [0] = "me" ] ), [2] = " --", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:*Paul*" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [4] = " 14:36, 29 November 2005 (UTC)" ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = " I recommend doing what they do at ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Association football" ], title = - ), [2] = ": have only high-level links in the main article, and place other links in more relevant articles (e.g. the articles on the actual organisations the refer to). --", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Daveb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Daveb" ) ), [4] = " 09:17, 30 November 2005 (UTC)" ) ], [8] = "\n\n" ] ), [23] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " Padding " ), body = WtBody[ [0] = "\n\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "The lengthy discussion regarding padding has been moved to ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Talk:Australian rules football/padding" ], title = - ), [2] = "; to see it in its original context prior to the move ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Talk:Australian_rules_football&oldid=32944830#padding" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Talk:Australian_rules_football&oldid=32944830#padding" ] ), title = WtLinkTitle[ [0] = "click here" ] ) ) ) ], [2] = "\n\n" ] ), [24] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Piccies" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "I ask again: are these the very best photos we can get our hands on of the great Australian game? The one photo we show, looks more like the old Sun \"Spot the Ball\" competition. C'mon, let's lift our game! ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'Angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 22:57, 8 February 2006 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Don't worry mate, footy season coming up soon, plenty of opportunities coming up. Cheers, ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "darkblue" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:AFL" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R" ) ) ] ), [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Special:Contributions/Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "o" ) ) ] ), [2] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "darkblue" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "gerthat" ) ) ] ) ] ), [2] = " ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "black" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ) ] ) ] ) ), [4] = " 08:07, 9 February 2006 (UTC)" ) ], [4] = "\n\n", [5] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I've uploaded some pictures I took at a match between Essendon and the Lions in June last year. They're not great, but are better than what is there now. I haven't added them in yet, I'll leave that for someone else to do. They could also possibly be re-cropped and resized, I can do this if someone asks. Locations: ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/wiki/Image:Australian_rules_01.jpg" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/wiki/Image:Australian_rules_01.jpg" ] ), title = WtLinkTitle[ [0] = "Australian_rules_01.jpg" ] ), [2] = ", ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/wiki/Image:Australian_rules_02.jpg" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/wiki/Image:Australian_rules_02.jpg" ] ), title = WtLinkTitle[ [0] = "Australian_rules_02.jpg" ] ), [4] = ", ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/wiki/Image:Australian_rules_03.jpg" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/wiki/Image:Australian_rules_03.jpg" ] ), title = WtLinkTitle[ [0] = "Australian_rules_03.jpg" ] ), [6] = " --", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Joshd" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Joshd" ) ), [8] = " 15:25, 1 March 2006 (UTC)" ) ] ] ], [6] = "\n\n", [7] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "I've cropped the one with the banner, uploaded it as ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = ":Image:Footybanner.jpg" ], options = WtLinkOptions[] ), [2] = " and put it in the section of this article mentioning the banners. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [4] = " (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [6] = ") 11:09, 2 March 2006 (UTC)" ) ] ] ] ] ], [8] = "\n\n" ] ), [25] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "POV" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "Well, this article is pretty good, so congrats to the people involved. I do feel however, that it glorifies the sport a bit much, I know it is popular, but this article is a tad misleading, reading through it, it reads as if AFL is the be all and end all of Australian sport. Im not here to bag AFL by any means, and I know that there are sources provided and so on, but I do feel the article is not really written in a NPOV. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Forever young" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forever young" ) ), [2] = " 03:51, 19 February 2006 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "About once every few months, someone comes along questioning the stats about the TV audiences, participation, live crowds, membership, etc. Rather than go through all of it a gain in tedious detail, could you please highight a few areas that are POV, especially via direct quotes from the article. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'Angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 05:20, 19 February 2006 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "I wouldn't call it non-NPOV, but the Popularity section, particularly with it positioned as the lead item (in front of what the game actually is, and its history) and its length, reads more like a fan site than a encyclopaedia --", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:*Paul*" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [2] = " 09:31, 19 February 2006 (UTC)", [3] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "\n" ] [0] = "that's a fair point - I am wondering whether it has always been there at the start, or whether it snuck in there during some of the many reorgs of the article...", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'Angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 11:54, 19 February 2006 (UTC)" ), [1] = WtDefinitionListDef( {P} rtd = RTD[ ":::" "" ] [0] = "in fact I just checked a version I edited on 25 September 2005 and noticed that there was no section on the popularity of the game - so clearly it has been added in since - nothing wrong with that, but as you correctly point out, it may be best appearing after the game is actually described - I have to agree with you on that one - anyone else? ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Pippu d'angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "\u03C1\u00A1\u03C1\u03C1\u00B5 \u03B4\u2192\u03B8\u2211" ) ), [2] = " - ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":scn:User talk:Pippu d'Angelo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "(waarom? jus'b'coz!)" ] ) ) ), [4] = " 11:57, 19 February 2006 (UTC)", [5] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::::" "" ] [0] = "I believe the intro understandably said something about where the game was played, which then became a lengthy explanation of it's popularity in Australia, etc, which became so long it was correctly made a separate section from the intro. I agree that it shouldn't really be at the beginning. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [4] = ") 19:17, 19 February 2006 (UTC)" ) ) ) ) ) ) ) ], [4] = "\n" ] ), [26] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Help!" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "A few soccer fundamentalists are hijacking the term football in Australian articles. See, for example, ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[Category:Football_in_Australia]]") ), [2] = ". We need concerted action to stop this. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [4] = " | ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [6] = " 10:16, 22 February 2006 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "Put the category up for renaming. That name can't really be justified, so you should get support. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [4] = ") 11:40, 22 February 2006 (UTC)" ) ], [4] = "\n\n" ] ), [27] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Tactics/Terminology" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "I propose a section in the article on some of the tactics and terminology used in the game, drawing from ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Australian Rules slang" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":Category:Australian rules football terminology" ], title = - ), [4] = ". Any thoughts or suggestions on this? ", [5] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "darkblue" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "WP:AFL" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R" ) ) ] ), [1] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "red" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Special:Contributions/Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "o" ) ) ] ), [2] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "darkblue" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "gerthat" ) ) ] ) ] ), [6] = " ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "font" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "color" ], value = WtValue[ [0] = "black" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User_talk:Rogerthat" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ) ] ) ] ) ), [8] = " 11:18, 22 February 2006 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "The article is already quite long. If we were to add anything like this, we'd have to prune the rest of it, I think. If things are covered in another article, they don't need to have too much detail here - the attendance records could be removed, for example. ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [4] = ") 11:44, 22 February 2006 (UTC)" ) ], [4] = "\n\n" ] ), [28] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Please vote" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "...in a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Talk:Football#Poll_on_content_relating_to_Australian_rules_football.2Frugby" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "poll on references to Aussie rules in the ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Football" ) ) ), [2] = " article. ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grant65" ) ), [4] = " | ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:Grant65" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talk" ) ), [6] = " 03:37, 4 March 2006 (UTC)" ], [2] = "\n\n" ] ), [29] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " External links " ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "I've just reverted the additional of a generic football forum a couple of times. Could someone more knowledgeable go through and trim the external links? -- ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Chuq" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chuq" ) ), [2] = " 06:45, 31 March 2006 (UTC)" ], [2] = "\n", [3] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "All the links that you have removed were definitely aussie rules specific, so I don't understand your edit summary. However, there were way too many links. I have cut quite a few, but there are still more than there should be going by ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:External links" ], title = - ), [2] = ". ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "JPD" ) ), [4] = " (", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:JPD" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "talk" ) ), [6] = ") 09:45, 31 March 2006 (UTC)", [7] = WtDefinitionList( {P} rtd = RTD[ "\n" "" ] [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = "Well, one was SANFL, one was North Melbourne, one appeared to be a Coke promotional site.. and one other. -- ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Chuq" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chuq" ) ), [2] = " 12:47, 31 March 2006 (UTC)" ) ) ) ], [4] = "\n", [5] = WtParagraph[ [0] = "I've added the following text in a comment in the external links section - feel free to change if you don't think it is appropriate:\n", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Please DO NOT add other external links here unless they offer something specific that isn't available at any other site. There are hundreds of unofficial fan sites and they can not all be listed here. Preference will be given to links added by editors who contribute content, as opposed to editors who sign up specifically to promote a particular website." ), [2] = "\n-- ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:Chuq" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chuq" ) ), [4] = " 00:32, 3 April 2006 (UTC)" ], [6] = "\n" ] ) ) raw-Wikipedia%3AWikirreto+2008%2FNoviembre%2FLucien+leGrey.ast000066400000000000000000061257151335270560400577750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " LAS DOS SIGUIENTES L\u00CDNEAS SON IMPRESCINDIBLES " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [1] = WtIgnored(""), [2] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Wikipedia:Wikirreto 2008/Avisos" ], args = WtTemplateArguments[] ), [3] = WtIgnored(""), [4] = WtXmlComment( {P} content = " LAS DOS L\u00CDNEAS ANTERIORES SON IMPRESCINDIBLES " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [5] = WtIgnored(""), [6] = WtIgnored(""), [7] = WtIgnored(""), [8] = WtIgnored(""), [9] = WtIgnored(""), [10] = WtIgnored(""), [11] = WtIgnored("") } {P} warnings = C[] [0] = WtXmlComment( {P} content = " LAS DOS SIGUIENTES L\u00CDNEAS SON IMPRESCINDIBLES " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [1] = "\n", [2] = WtParagraph[ [0] = WtIgnored(""), [1] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Wikipedia:Wikirreto 2008/Avisos" ], args = WtTemplateArguments[] ) ] ), [2] = WtIgnored("") ], [3] = "\n", [4] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ WtXmlComment(" LAS DOS L\u00CDNEAS ANTERIORES SON IMPRESCINDIBLES ") + WtIgnored("") + "==" "==" + WtIgnored("") ] [0] = "Tabla" ), body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "sortable wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " N\u00BA " ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Nombre de art\u00EDculo" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Tipo de trabajo" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Kb finales" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Puntuaci\u00F3n" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buergeria buergeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 2" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buergeria japonica" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buergeria oxycephalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 4" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buergeria robusta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 5" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Buergeriinae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 6" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 7" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus ananjevae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 8" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus cherrapunjiae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 9" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus doriae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 10" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus dudhwaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 11" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus hansenae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 12" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus laevis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 13" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus nongkhorensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 14" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus palpebralis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [15] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 15" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus punctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 16" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus shyamrupus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [17] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 17" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus simus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [18] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 18" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chirixalus vittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [19] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 19" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chiromantis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [20] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 20" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chiromantis kelleri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [21] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 21" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chiromantis petersii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [22] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 22" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chiromantis rufescens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [23] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 23" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chiromantis xerampelina" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [24] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 24" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kurixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [25] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 25" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kurixalus eiffingeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [26] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 26" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kurixalus idiootocus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [27] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 27" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [28] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 28" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctixalus margaritifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [29] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 29" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctixalus moloch" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [30] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 30" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctixalus pictus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [31] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 31" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctixalus spinosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [32] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 32" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [33] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 33" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus abditus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [34] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 34" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus abundus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [35] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 35" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus acutirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [36] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 36" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus acutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [37] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 37" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus adspersus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [38] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 38" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus albopunctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [39] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 39" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus alto" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [40] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 40" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus amoenus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [41] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 41" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus andersoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [42] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 42" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus annandalii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [43] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 43" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus asankai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [44] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 44" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus aurantium" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [45] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 45" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus auratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [46] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 46" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus aurifasciatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [47] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 47" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus banaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [48] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 48" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus beddomii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [49] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 49" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus bombayensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [50] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 50" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus bunitus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [51] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 51" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus caeruleus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [52] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 52" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus cardamonus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [53] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 53" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus carinensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [54] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 54" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus cavirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [55] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 55" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus chalazodes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [56] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 56" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus charius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [57] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 57" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus cinerascens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [58] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 58" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus cornutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [59] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 59" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus cuspis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [60] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 60" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus decoris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [61] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 61" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus dimbullae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [62] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 62" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus disgregus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [63] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 63" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus dubius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [64] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 64" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus erythrophthalmus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [65] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 65" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus eximius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [66] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 66" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus extirpo" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [67] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 67" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus femoralis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [68] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 68" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus fergusonianus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [69] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 69" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus flaviventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [70] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 70" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus folicola" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [71] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 71" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus frankenbergi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [72] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 72" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus fulvus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [73] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 73" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus garo" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [74] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 74" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus glandulosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [75] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 75" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus gracilipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [76] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 76" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus griet" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [77] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 77" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus gryllus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [78] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 78" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus gunungensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [79] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 79" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus hallidayi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [80] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 80" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus halyi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [81] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 81" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus hoffmanni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [82] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 82" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus hoipolloi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [83] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 83" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus hosii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [84] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 84" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus hypomelas" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [85] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 85" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus ingeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [86] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 86" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus jacobsoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [87] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 87" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus jerdonii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [88] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 88" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus jinxiuensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [89] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 89" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus kempiae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [90] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 90" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus kerangae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [91] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 91" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus leitensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [92] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 92" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus leucorhinus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [93] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 93" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus limbus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [94] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 94" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus longchuanensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [95] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 95" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus longicrus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [96] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 96" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus lunatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [97] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 97" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus luteolus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [98] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 98" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus macropus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [99] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 99" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus malcolmsmithi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [100] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 100" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus maosonensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [101] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 101" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus medogensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [102] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 102" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus menglaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [103] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 103" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus microdiscus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [104] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 104" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus microtympanum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [105] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 105" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus mittermeieri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [106] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 106" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus mjobergi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [107] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 107" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus mooreorum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [108] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 108" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus namdaphaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [109] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 109" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus nanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [110] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 110" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus nasutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [111] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 111" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus nemus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [112] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 112" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus ocellatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [113] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 113" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus ocularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [114] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 114" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus odontotarsus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [115] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 115" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus oxyrhynchus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [116] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 116" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus pallidipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [117] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 117" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus papillosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [118] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 118" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus parvulus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [119] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 119" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus petersi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [120] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 120" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus petilus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [121] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 121" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus pleurotaenia" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [122] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 122" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus poecilius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [123] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 123" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus poppiae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [124] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 124" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus popularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [125] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 125" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus procax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [126] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 126" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus refugii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [127] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 127" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus regius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [128] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 128" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus reticulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [129] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 129" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus rhododiscus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [130] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 130" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus rugatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [131] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 131" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus rus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [132] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 132" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus sanctisilvaticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [133] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 133" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus sarasinorum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [134] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 134" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus saueri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [135] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 135" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus schmackeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [136] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 136" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus schmarda" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [137] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 137" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus semiruber" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [138] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 138" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus shillongensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [139] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 139" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus signatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [140] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 140" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus silus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [141] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 141" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus silvaticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [142] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 142" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus simba" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [143] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 143" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus similipalensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [144] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 144" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus similis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [145] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 145" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus sordidus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [146] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 146" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus steineri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [147] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 147" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus stellatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [148] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 148" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus stictomerus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [149] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 149" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus stuarti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [150] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 150" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus supercornutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [151] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 151" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus surdus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [152] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 152" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus surrufus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [153] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 153" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus tectus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [154] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 154" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus temporalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [155] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 155" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus terebrans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [156] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 156" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus tinniens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [157] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 157" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus travancoricus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [158] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 158" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus tuberohumerus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [159] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 159" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus tytthus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [160] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 160" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus umbra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [161] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 161" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus variabilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [162] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 162" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus vermiculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [163] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 163" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus viridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [164] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 164" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus vittiger" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [165] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 165" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus worcesteri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [166] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 166" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus wynaadensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [167] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 167" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus zal" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [168] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 168" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus zimmeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [169] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 169" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philautus zorro" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [170] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 170" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [171] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 171" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates chenfui" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [172] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 172" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates colletti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [173] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 173" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates cruciger" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [174] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 174" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates dorsoviridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [175] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 175" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates dugritei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [176] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 176" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates eques" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [177] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 177" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates fastigo" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [178] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 178" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates gongshanensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [179] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 179" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates hecticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [180] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 180" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates hungfuensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [181] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 181" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates insularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [182] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 182" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates leucomystax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [183] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 183" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates longinasus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [184] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 184" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates macrotis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [185] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 185" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates maculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [186] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 186" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates megacephalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [187] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 187" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates mutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [188] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 188" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates naso" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [189] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 189" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates nigropunctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [190] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 190" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates omeimontis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [191] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 191" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates otilophus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [192] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 192" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates pseudocruciger" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [193] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 193" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates puerensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [194] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 194" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates taeniatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [195] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 195" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates yaoshanensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [196] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 196" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates zed" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [197] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 197" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Polypedates zhaojuensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [198] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 198" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorinae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [199] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 199" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [200] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 200" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus achantharrhena" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [201] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 201" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus angulirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [202] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 202" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus annamensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [203] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 203" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus appendiculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [204] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 204" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus arboreus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [205] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 205" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus arvalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [206] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 206" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus aurantiventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [207] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 207" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus baliogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [208] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 208" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus baluensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [209] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 209" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus barisani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [210] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 210" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus bifasciatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [211] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 211" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus bimaculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [212] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 212" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus bipunctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [213] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 213" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus bisacculus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [214] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 214" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus calcadensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [215] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 215" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus calcaneus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [216] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 216" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus catamitus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [217] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 217" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus cyanopunctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [218] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 218" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus dennysi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [219] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 219" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus depressus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [220] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 220" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus duboisi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [221] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 221" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus dulitensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [222] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 222" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus edentulus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [223] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 223" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus everetti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [224] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 224" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus exechopygus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [225] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 225" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus fasciatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [226] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 226" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus gauni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [227] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 227" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus georgii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [228] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 228" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus hainanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [229] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 229" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus harrissoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [230] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 230" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus hoanglienensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [231] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 231" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus htunwini" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [232] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 232" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus kajau" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [233] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 233" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus lateralis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [234] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 234" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus malabaricus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [235] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 235" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus margaritifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [236] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 236" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus maximus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [237] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 237" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus modestus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [238] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 238" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus moltrechti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [239] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 239" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus monticola" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [240] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 240" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus nigropalmatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [241] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 241" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus notater" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [242] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 242" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus orlovi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [243] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 243" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus owstoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [244] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 244" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus pardalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [245] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 245" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus poecilonotus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [246] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 246" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus prasinatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [247] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 247" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus prominanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [248] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 248" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus pseudomalabaricus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [249] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 249" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus reinwardtii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [250] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 250" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus rhodopus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [251] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 251" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus rhyssocephalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [252] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 252" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus robinsonii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [253] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 253" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus rufipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [254] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 254" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus schlegelii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [255] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 255" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus taipeianus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [256] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 256" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus taronensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [257] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 257" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus translineatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [258] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 258" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus tuberculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [259] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 259" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus turpes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [260] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 260" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus variabilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [261] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 261" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus verrucopus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [262] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 262" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus verrucosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [263] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 263" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophorus viridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [264] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 264" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [265] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 265" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma bicolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [266] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 266" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma corticale" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [267] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 267" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma gordoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [268] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 268" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma horridum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [269] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 269" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma kwangsiense" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [270] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 270" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma leporosum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [271] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 271" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma phrynoderma" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [272] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 272" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Theloderma stellatum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [273] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 273" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [274] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 274" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis adelphus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [275] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 275" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis adolfifriederici" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [276] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 276" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis affinis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [277] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 277" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis bivittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [278] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 278" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis brevipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [279] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 279" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis carquejai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [280] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 280" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis crusculum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [281] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 281" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis discodactyla" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [282] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 282" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis francei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [283] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 283" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis hematogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [284] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 284" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis lameerei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [285] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 285" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis loveridgei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [286] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 286" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis milletihorsini" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [287] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 287" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis mossoensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [288] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 288" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis nikeae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [289] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 289" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis nimbaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [290] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 290" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis phrynoides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [291] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 291" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis poecilonotus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [292] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 292" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis pyrrhoscelis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [293] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 293" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis reichei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [294] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 294" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis schubotzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [295] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 295" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis spinalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [296] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 296" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis stenodactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [297] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 297" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis sylvatica" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [298] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 298" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis taeniatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [299] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 299" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis tanneri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [300] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 300" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis troglodytes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [301] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 301" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis tuberosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [302] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 302" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis variabilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [303] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 303" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis vercammeni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [304] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 304" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis wahlbergii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [305] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 305" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis xenochirus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [306] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 306" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis xenodactyla" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [307] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 307" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis xenodactyloides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [308] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 308" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arthroleptis zimmeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [309] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 309" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [310] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 310" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus batesi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [311] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 311" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus diadematus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [312] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 312" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus fallax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [313] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 313" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus laurenti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [314] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 314" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus montanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [315] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 315" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus nganhanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [316] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 316" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus occidentalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [317] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 317" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus perreti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [318] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 318" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus ranoides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [319] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 319" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus rheophilus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [320] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 320" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Astylosternus schioetzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [321] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 321" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [322] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 322" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa alsco" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [323] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 323" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa aureoli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [324] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 324" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa cyaneospila" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [325] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 325" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa dorsalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [326] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 326" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa elegans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [327] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 327" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa escalerae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [328] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 328" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa gracilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [329] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 329" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa gratiosa" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [330] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 330" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa leucomystax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [331] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 331" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa melanogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [332] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 332" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa nigromaculata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [333] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 333" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa oreas" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [334] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 334" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa pulchra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [335] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 335" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa schioetzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [336] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 336" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa trifasciata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [337] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 337" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cardioglossa venusta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [338] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 338" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [339] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 339" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon albiventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [340] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 340" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon axillaris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [341] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 341" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon bicolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [342] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 342" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon blanci" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [343] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 343" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon boulengeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [344] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 344" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon bueanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [345] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 345" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon erythrogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [346] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 346" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon mertensi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [347] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 347" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon ornatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [348] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 348" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon ovatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [349] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 349" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon perreti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [350] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 350" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon polyacanthus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [351] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 351" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon stevarti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [352] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 352" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon ventrimarmoratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [353] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 353" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptodactylodon wildi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [354] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 354" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nyctibates corrugatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [355] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 355" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scotobleps gabonicus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [356] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 356" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [357] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 357" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis anchietae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [358] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 358" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis argenteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [359] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 359" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis aubryi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [360] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 360" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis barbouri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [361] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 361" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis bequaerti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [362] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 362" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis bocagii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [363] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 363" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis boulengeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [364] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 364" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis brevipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [365] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 365" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis brevirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [366] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 366" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis broadleyi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [367] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 367" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis bufonides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [368] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 368" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis calcaratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [369] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 369" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis christyi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [370] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 370" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis concolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [371] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 371" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis crystallinoron" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [372] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 372" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis cynnamomeus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [373] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 373" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis fenestratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [374] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 374" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis fiziensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [375] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 375" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis flavomaculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [376] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 376" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis gramineus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [377] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 377" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis hyloides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [378] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 378" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis jordani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [379] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 379" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis karissimbensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [380] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 380" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis kivuensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [381] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 381" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis lebeaui" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [382] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 382" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis macrotis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [383] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 383" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis marginatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [384] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 384" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis millsoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [385] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 385" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis modestus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [386] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 386" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis mossambicus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [387] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 387" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis natalensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [388] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 388" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis nordequatorialis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [389] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 389" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis notatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [390] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 390" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis ocellatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [391] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 391" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis omissus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [392] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 392" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis oryi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [393] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 393" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis palmatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [394] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 394" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis parbocagii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [395] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 395" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis parkeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [396] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 396" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis parvus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [397] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 397" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis ragazzii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [398] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 398" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis rufus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [399] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 399" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis susanae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [400] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 400" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis uluguruensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [401] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 401" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis vannutellii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [402] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 402" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis vermiculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [403] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 403" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis viridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [404] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 404" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis xenodactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [405] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 405" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis yaldeni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [406] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 406" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis zebra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [407] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 407" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Leptopelis occidentalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [408] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 408" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [409] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 409" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius acuticephalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [410] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 410" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius acuticeps" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [411] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 411" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius acutirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [412] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 412" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius ademetzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [413] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 413" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius adspersus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [414] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 414" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius albofrenatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [415] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 415" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius argus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [416] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 416" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius atrigularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [417] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 417" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius balfouri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [418] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 418" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius baumanni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [419] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 419" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius benguellensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [420] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 420" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius bicolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [421] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 421" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius bobirensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [422] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 422" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius bolifambae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [423] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 423" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius bopeleti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [424] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 424" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius brachiofasciatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [425] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 425" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius camerunensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [426] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 426" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius castaneus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [427] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 427" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius chlorosteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [428] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 428" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius chrysogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [429] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 429" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius cinereus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [430] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 430" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius cinnamomeoventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [431] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 431" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius concolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [432] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 432" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius cystocandicans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [433] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 433" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius diaphanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [434] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 434" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius dintelmanni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [435] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 435" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius discodactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [436] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 436" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius endjami" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [437] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 437" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius fasciatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [438] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 438" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius ferreirai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [439] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 439" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius ferrugineus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [440] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 440" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius frontalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [441] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 441" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius fuscigula" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [442] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 442" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius fusciventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [443] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 443" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius ghesquieri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [444] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 444" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius glandicolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [445] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 445" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius gularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [446] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 446" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius guttulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [447] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 447" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius horstockii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [448] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 448" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius houyi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [449] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 449" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius hutsebauti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [450] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 450" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius igbettensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [451] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 451" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius inornatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [452] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 452" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius kachalolae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [453] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 453" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius kibarae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [454] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 454" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius kihangensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [455] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 455" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius kivuensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [456] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 456" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius kuligae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [457] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 457" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius lamottei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [458] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 458" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius langi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [459] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 459" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius lateralis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [460] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 460" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius laticeps" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [461] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 461" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius laurenti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [462] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 462" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius leleupi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [463] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 463" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius leucotaenius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [464] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 464" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius lucani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [465] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 465" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius maestus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [466] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 466" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius major" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [467] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 467" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius marginatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [468] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 468" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius mariae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [469] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 469" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius marmoratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [470] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 470" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius minutissimus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [471] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 471" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius mitchelli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [472] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 472" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius molleri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [473] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 473" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius montanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [474] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 474" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius mosaicus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [475] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 475" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius nasutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [476] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 476" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius nienokouensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [477] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 477" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius nimbae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [478] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 478" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius nitidulus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [479] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 479" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius obscurus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [480] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 480" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius occidentalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [481] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 481" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius ocellatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [482] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 482" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius orkarkarri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [483] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 483" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius parallelus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [484] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 484" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pardalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [485] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 485" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius parkeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [486] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 486" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius phantasticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [487] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 487" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pickersgilli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [488] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 488" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius picturatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [489] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 489" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pictus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [490] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 490" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius platyceps" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [491] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 491" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius polli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [492] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 492" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius polystictus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [493] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 493" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius protchei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [494] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 494" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pseudargus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [495] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 495" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius puncticulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [496] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 496" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius punctulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [497] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 497" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pusillus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [498] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 498" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pustulifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [499] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 499" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius pyrrhodictyon" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [500] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 500" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius quadratomaculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [501] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 501" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius quinquevittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [502] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 502" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius raveni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [503] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 503" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius reesi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [504] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 504" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius rhizophilus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [505] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 505" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius rhodesianus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [506] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 506" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius riggenbachi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [507] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 507" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius robustus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [508] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 508" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius rubrovermiculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [509] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 509" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius sankuruensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [510] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 510" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius schoutedeni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [511] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 511" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius seabrai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [512] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 512" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius semidiscus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [513] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 513" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius sheldricki" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [514] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 514" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius soror" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [515] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 515" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius spinigularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [516] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 516" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius steindachneri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [517] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 517" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius stenodactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [518] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 518" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius swynnertoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [519] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 519" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius sylvaticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [520] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 520" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius tannerorum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [521] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 521" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius thomensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [522] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 522" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius thoracotuberculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [523] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 523" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius tornieri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [524] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 524" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius torrentis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [525] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 525" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius tuberculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [526] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 526" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius tuberilinguis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [527] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 527" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius vilhenai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [528] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 528" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius viridiflavus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [529] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 529" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius viridigulosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [530] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 530" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius viridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [531] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 531" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius wermuthi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [532] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 532" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius xenorhinus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [533] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 533" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius zonatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [534] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 534" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hyperolius bocagei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [535] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 535" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [536] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 536" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus aureus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [537] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 537" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus brachycnemis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [538] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 538" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus clarkeorum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [539] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 539" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus crotalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [540] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 540" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus dorsalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [541] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 541" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus equatorialis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [542] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 542" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus fornasini" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [543] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 543" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus fulvovittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [544] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 544" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus knysnae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [545] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 545" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus lacteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [546] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 546" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus laevis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [547] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 547" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus leucostictus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [548] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 548" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus lindholmi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [549] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 549" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus morerei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [550] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 550" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus nigeriensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [551] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 551" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus orophilus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [552] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 552" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus osorioi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [553] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 553" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus paradorsalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [554] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 554" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus quadrivittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [555] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 555" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus schneideri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [556] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 556" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus septentrionalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [557] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 557" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus spinifrons" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [558] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 558" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus stuhlmanni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [559] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 559" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus sylvaticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [560] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 560" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus uluguruensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [561] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 561" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus upembae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [562] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 562" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus vibekensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [563] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 563" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus weidholzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [564] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 564" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Afrixalus wittei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [565] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 565" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [566] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 566" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus alboguttatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [567] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 567" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus andrakata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [568] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 568" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus betsileo" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [569] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 569" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus boettgeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [570] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 570" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus carbonei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [571] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 571" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus luteostriatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [572] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 572" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus madagascariensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [573] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 573" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus punctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [574] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 574" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus rutenbergi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [575] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 575" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus tricolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [576] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 576" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Heterixalus variabilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [577] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 577" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [578] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 578" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina arboricola" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [579] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 579" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina cassinoides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [580] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 580" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina cochranae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [581] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 581" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina fusca" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [582] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 582" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina jozani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [583] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 583" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina kuvangensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [584] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 584" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina lamottei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [585] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 585" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina maculata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [586] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 586" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina maculifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [587] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 587" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina maculosa" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [588] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 588" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina mertensi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [589] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 589" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina schioetzi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [590] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 590" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kassina somalica" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [591] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 591" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Acanthixalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [592] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 592" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Acanthixalus sonjae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [593] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 593" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Acanthixalus spinosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [594] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 594" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexteroon" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [595] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 595" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexteroon hypsiphonus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [596] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 596" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexteroon jynx" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [597] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 597" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexteroon obstetricans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [598] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 598" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Callixalus pictus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [599] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 599" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arlequinus krebsi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [600] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 600" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chlorolius koehleri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [601] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 601" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chrysobatrachus cupreonitens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [602] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 602" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cryptothylax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [603] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 603" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cryptothylax greshoffii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [604] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 604" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paracassina" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [605] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 605" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paracassina kounhiensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [606] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 606" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paracassina obscura" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [607] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 607" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cryptothylax minutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [608] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 608" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phlyctimantis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [609] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 609" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phlyctimantis boulengeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [610] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 610" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phlyctimantis keithae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [611] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 611" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phlyctimantis leonardi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [612] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 612" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tachycnemis seychellensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [613] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 613" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Semnodactylus wealii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [614] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 614" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phlyctimantis verrucosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [615] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 615" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus andinus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [616] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 616" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus angelito" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [617] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 617" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus arsyecue" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [618] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 618" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus arthuri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [619] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 619" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus balios" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [620] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 620" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus bomolochos" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [621] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 621" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus boulengeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [622] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 622" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus carauta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [623] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 623" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus carrikeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [624] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 624" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus certus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [625] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 625" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus chiriquiensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [626] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 626" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus chocoensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [627] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 627" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus chrysocorallus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [628] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 628" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus coynei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [629] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 629" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus cruciger" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [630] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 630" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus dimorphus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [631] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 631" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus elegans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [632] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 632" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus erythropus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [633] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 633" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus eusebianus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [634] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 634" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus exiguus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [635] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 635" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus famelicus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [636] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 636" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus farci" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [637] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 637" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus flavescens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [638] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 638" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus franciscus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [639] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 639" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus galactogaster" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [640] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 640" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus glyphus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [641] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 641" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus guanujo" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [642] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 642" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus guitarraensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [643] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 643" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus halihelos" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [644] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 644" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus laetissimus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [645] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 645" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus limosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [646] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 646" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus longibrachius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [647] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 647" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus longirostris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [648] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 648" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus lozanoi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [649] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 649" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus lynchi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [650] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 650" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus mandingues" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [651] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 651" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus mindoensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [652] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 652" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus minutulus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [653] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 653" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus monohernandezii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [654] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 654" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus mucubajiensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [655] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 655" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus muisca" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [656] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 656" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus nahumae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [657] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 657" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus nanay" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [658] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 658" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus nepiozomus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [659] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 659" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus nicefori" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [660] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 660" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus oxyrhynchus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [661] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 661" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus pachydermus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [662] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 662" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus palmatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [663] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 663" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus pedimarmoratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [664] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 664" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus peruensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [665] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 665" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus petersi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [666] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 666" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus petriruizi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [667] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 667" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus pictiventris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [668] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 668" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus pinangoi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [669] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 669" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus planispina" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [670] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 670" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus pulcher" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [671] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 671" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus quimbaya" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [672] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 672" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus reticulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [673] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 673" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus sanjosei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [674] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 674" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus seminiferus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [675] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 675" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus senex" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [676] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 676" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus sernai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [677] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 677" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus simulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [678] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 678" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus siranus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [679] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 679" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus sonsonensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [680] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 680" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus sorianoi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [681] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 681" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus spumarius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [682] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 682" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus spurrelli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [683] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 683" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus subornatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [684] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 684" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus tamaensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [685] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 685" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus tricolor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [686] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 686" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus varius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [687] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 687" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus vogli" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [688] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 688" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus walkeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [689] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 689" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Atelopus zeteki" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [690] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 690" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia albomaculata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [691] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 691" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia anotis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [692] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 692" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia endauensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [693] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 693" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia fuliginea" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [694] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 694" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia glandulosa" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [695] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 695" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia guibei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [696] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 696" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia hanitschi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [697] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 697" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia inthanon" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [698] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 698" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia kraensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [699] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 699" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia latidisca" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [700] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 700" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia leptopus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [701] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 701" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia longidigita" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [702] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 702" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia malayana" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [703] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 703" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia mcgregori" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [704] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 704" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia minuta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [705] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 705" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia muelleri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [706] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 706" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia penangensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [707] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 707" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia platysoma" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [708] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 708" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia rubigina" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [709] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 709" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia siamensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [710] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 710" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia spinulifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [711] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 711" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia tiomanica" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [712] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 712" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ansonia torrentis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [713] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 713" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [714] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 714" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus asmarae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [715] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 715" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus blanfordii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [716] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 716" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus brauni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [717] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 717" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus buchneri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [718] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 718" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus camerunensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [719] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 719" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus chudeaui" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [720] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 720" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus cristiglans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [721] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 721" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus danielae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [722] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 722" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus djohongensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [723] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 723" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus fuliginatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [724] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 724" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus funereus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [725] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 725" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus garmani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [726] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 726" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus gracilipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [727] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 727" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus gutturalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [728] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 728" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus kassasii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [729] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 729" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus kerinyagae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [730] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 730" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus kisoloensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [731] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 731" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus langanoensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [732] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 732" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus latifrons" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [733] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 733" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus lemairii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [734] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 734" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus maculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [735] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 735" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus pantherinus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [736] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 736" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus pardalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [737] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 737" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus perreti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [738] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 738" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus poweri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [739] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 739" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus rangeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [740] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 740" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus reesi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [741] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 741" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus regularis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [742] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 742" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus steindachneri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [743] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 743" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus superciliaris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [744] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 744" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus taiensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [745] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 745" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus togoensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [746] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 746" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus tuberosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [747] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 747" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus turkanae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [748] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 748" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus urunguensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [749] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 749" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus villiersi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [750] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 750" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus vittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [751] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 751" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amietophrynus xeros" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [752] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 752" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca abdita" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [753] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 753" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca albolineata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [754] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 754" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca andaquiensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [755] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 755" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca angustifrons" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [756] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 756" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca antomia" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [757] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 757" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca argenteovirens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [758] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 758" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca atympana" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [759] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 759" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca aureomaculata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [760] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 760" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca bufona" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [761] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 761" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca christiani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [762] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 762" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca chrysosticta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [763] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 763" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca cornuta" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [764] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 764" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca dendronastes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [765] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 765" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca dunni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [766] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 766" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca espeletia" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [767] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 767" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca excubitor" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [768] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 768" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca fissipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [769] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 769" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca galeata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [770] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 770" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca gracilis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [771] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 771" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca griswoldi" ], title = - ), [2] = " \"" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [772] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 772" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca guentheri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [773] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 773" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca helenae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [774] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 774" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca lateonota" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [775] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 775" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca lauzuricae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [776] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 776" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca litonedis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [777] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 777" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca longipes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [778] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 778" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca marsupiata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [779] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 779" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca microdiscus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [780] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 780" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca monticola" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [781] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 781" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca nicefori" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [782] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 782" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca ochoai" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [783] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 783" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca orophylax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [784] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 784" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca ossilaginis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [785] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 785" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca ovifera" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [786] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 786" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca pacchamama" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [787] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 787" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca peruana" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [788] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 788" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca phalarosa" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [789] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 789" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca piperata" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [790] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 790" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca plumbea" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [791] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 791" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca pseustes" ], title = - ), [2] = " \"" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [792] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 792" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca psychrophila" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [793] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 793" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca rebeccae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [794] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 794" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca riobambae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [795] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 795" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca ruizi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [796] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 796" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca splendens" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [797] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 797" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca stictopleura" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [798] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 798" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca testudinea" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [799] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 799" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca trachyceps" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [800] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 800" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca walkeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [801] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 801" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca weinlandii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [802] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 802" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca williamsoni" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [803] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 803" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gastrotheca zeugocystis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [804] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 804" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [805] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 805" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus aerumnalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [806] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 806" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus aglavei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [807] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 807" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus albofrenatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [808] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 808" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus albolineatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [809] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 809" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus alutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [810] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 810" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus ambohimitombi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [811] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 811" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus ambohitra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [812] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 812" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus ambreensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [813] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 813" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus argenteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [814] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 814" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus asper" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [815] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 815" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus bertini" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [816] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 816" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus betsileanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [817] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 817" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus bicalcaratus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [818] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 818" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus biporus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [819] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 819" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus blanci" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [820] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 820" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus blommersae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [821] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 821" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus boulengeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [822] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 822" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus brevipalmatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [823] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 823" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus brunae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [824] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 824" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus charlotteae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [825] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 825" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus cornutus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [826] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 826" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus corvus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [827] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 827" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus curtus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [828] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 828" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus decaryi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [829] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 829" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus depressiceps" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [830] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 830" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus domerguei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [831] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 831" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus eiselti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [832] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 832" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus elegans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [833] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 833" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus enki" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [834] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 834" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus femoralis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [835] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 835" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus fimbriatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [836] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 836" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus flavobrunneus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [837] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 837" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus grandidieri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [838] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 838" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus grandisonae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [839] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 839" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus granulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [840] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 840" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus guibei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [841] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 841" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus guttulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [842] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 842" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus horridus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [843] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 843" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus kathrinae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [844] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 844" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus kely" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [845] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 845" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus klemmeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [846] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 846" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus leucocephalus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [847] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 847" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus leucomaculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [848] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 848" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus liber" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [849] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 849" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus lugubris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [850] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 850" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus luteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [851] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 851" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus madecassus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [852] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 852" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus madinika" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [853] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 853" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus majori" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [854] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 854" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus malagasius" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [855] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 855" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus massorum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [856] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 856" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus melanopleura" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [857] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 857" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus microtis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [858] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 858" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus microtympanum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [859] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 859" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus mocquardi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [860] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 860" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus moseri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [861] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 861" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus opiparis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [862] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 862" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus pauliani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [863] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 863" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus peraccae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [864] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 864" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus phantasticus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [865] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 865" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus plicifer" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [866] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 866" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus pseudoasper" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [867] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 867" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus pulcher" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [868] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 868" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus punctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [869] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 869" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus redimitus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [870] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 870" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus rivicola" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [871] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 871" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus salegy" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [872] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 872" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus sarotra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [873] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 873" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus schilfi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [874] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 874" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus sculpturatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [875] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 875" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus silvanus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [876] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 876" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus spiniferus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [877] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 877" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus striatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [878] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 878" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus tandroka" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [879] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 879" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus thelenae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [880] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 880" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus timidus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [881] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 881" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus tornieri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [882] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 882" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus tricinctus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [883] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 883" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus tschenki" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [884] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 884" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus ulcerosus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [885] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 885" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus ventrimaculatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [886] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 886" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus webbi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [887] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 887" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus wittei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [888] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 888" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus zavona" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [889] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 889" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus zipperi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [890] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 890" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mantidactylus zolitschka" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [891] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 891" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [892] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 892" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis albilabris" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [893] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 893" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis albipunctatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [894] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 894" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis andohahela" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [895] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 895" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis andreonei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [896] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 896" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis anjanaharibeensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [897] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 897" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis ankaratra" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [898] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 898" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis blommersae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [899] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 899" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis boehmei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [900] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 900" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis bottae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [901] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 901" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis brachychir" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [902] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 902" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis burgeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [903] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 903" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis doulioti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [904] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 904" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis elenae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [905] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 905" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis englaenderi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [906] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 906" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis erythrodactylus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [907] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 907" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis feonnyala" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [908] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 908" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis goudotii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [909] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 909" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis guibei" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [910] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 910" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis haematopus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [911] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 911" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis hillenii" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [912] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 912" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis idae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [913] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 913" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis jaegeri" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [914] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 914" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis laurenti" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [915] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 915" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis liami" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [916] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 916" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis lichenoides" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [917] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 917" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis luteus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [918] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 918" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis madagascariensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [919] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 919" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis majori" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [920] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 920" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis mandraka" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [921] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 921" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis marojezensis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [922] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 922" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis microtympanum" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [923] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 923" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis miniatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [924] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 924" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis occidentalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [925] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 925" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis opisthodon" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [926] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 926" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis pauliani" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [927] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 927" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis periegetes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [928] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 928" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis picturatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [929] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 929" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis pyrrhus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [930] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 930" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis rappiodes" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [931] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 931" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis reticulatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [932] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 932" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis rhodoscelis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [933] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 933" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis rufioculis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [934] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 934" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis sambirano" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [935] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 935" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis schuboeae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [936] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 936" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis septentrionalis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [937] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 937" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis sibilans" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [938] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 938" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis solomaso" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [939] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 939" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis tasymena" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [940] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 940" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis tephraeomystax" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [941] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 941" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis viridis" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [942] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 942" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis vittatus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [943] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 943" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis williamsi" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [944] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 944" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Boophis xerophilus" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " <2 Kb" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [945] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 945" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhacophoridae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Ca" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 1.728 bytes" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [946] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 946" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vigilante" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Cp (desamb)" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 908 bytes" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5" ], [1] = "\n" ] ) ] ), [947] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 947" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sooglossidae" ], title = - ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " C" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 3.161 bytes" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 1" ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n\n" ] ), [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ WtIgnored("") + "==" "==" + WtIgnored("") ] [0] = "Resumen" ), body = WtBody[ [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "sortable wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Icono" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Tipo" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " # de Art." ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Puntuaci\u00F3n" ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:N write green black.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wikificados" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 puntos" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:N write.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Wikificados especiales" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 puntos" ], [1] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Quill and ink.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Creados" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 01" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 01 puntos" ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Pencil.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "C. Peque\u00F1os" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 01" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 0,5 puntos" ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Redhat-office.png" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "C. Autom\u00E1ticos" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 945" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 472,5 puntos" ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Art\u00EDculo_bueno.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "AB's" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 " ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 puntos" ], [1] = "\n" ] ) ] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Cscr-featured.svg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "AD's" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 puntos" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imagen:Crystal Clear app List manager.png" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "30px" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Revisi\u00F3n SAB" ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 00 puntos" ], [1] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = "----" ] ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "big" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Total" ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "big" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = ">>>>>>>>>>>>>>>>" ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " 947" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtXmlElement( {P} name = "big" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "474 puntos" ) ] ) ], [1] = "\n" ] ) ] ) ] ) ] ), [2] = "\n\n", [3] = WtParagraph[ [0] = WtIgnored(""), [1] = "\n" ] ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Tabla r\u00E1pida" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Entre 2 y 5 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "1 punto" ), [2] = "." ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Entre 5 y 7 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "2 puntos" ), [2] = "." ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Entre 7 y 13 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "3 puntos" ), [2] = "." ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Entre 13 y 19 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "4 puntos" ), [2] = "." ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Entre 19 y 31 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "5 puntos" ), [2] = "." ), [5] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "M\u00E1s de 31 kb: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "6 puntos" ), [2] = "." ) ], [2] = "\n", [3] = WtIgnored(""), [4] = "\n", [5] = WtParagraph[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Categor\u00EDa:Wikipedia:Wikirreto 2008/Noviembre" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lucien leGrey" ) ), [2] = " " ], [6] = "\n", [7] = WtIgnored(""), [8] = "\n" ] ) ) input.wikitext/000077500000000000000000000000001335270560400431435ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complexNOTICE000066400000000000000000000030751335270560400440540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitextThe articles in this directory are taken from the English, French and Spanish Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "Help:Table", Revision: 423675315 (Expanded by Wikipedia) http://en.wikipedia.org/w/index.php?oldid=423675315 "Saxby Chambliss", Revision: 341171402 (Expanded by Wikipedia) http://en.wikipedia.org/w/index.php?oldid=341171402 "ASDF", Revision: 416210608 http://en.wikipedia.org/w/index.php?oldid=416210608 "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 "List of high schools in San Diego County, California", Revision: 390643056 http://en.wikipedia.org/w/index.php?oldid=390643056 "List of MythBusters special episodes", Revision: 387019382 http://en.wikipedia.org/w/index.php?oldid=387019382 "Projet:Bretagne/Ébauches Bretagne", Revision: 83124202 http://fr.wikipedia.org/w/index.php?oldid=83124202 "Talk:Arundel Castle", Revision: 389259990 http://en.wikipedia.org/w/index.php?oldid=389259990 "Talk:Australian rules football/Archive 1", Revision: 363371937 http://en.wikipedia.org/w/index.php?oldid=363371937 "Wikipedia:Wikirreto 2008/Noviembre/Lucien leGrey", Revision: 22143734 http://es.wikipedia.org/w/index.php?oldid=22143734 Expansion is done using the script bin/enwp-expand.php. exp-Help%3ATable.wikitext000066400000000000000000002260411335270560400476250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext
    Wiki markup
    [[Wikipedia:Cheatsheet|Basic markup]]
    [[Help:Wiki markup|Text, links, and talk pages]]
    [[Help:Visual file markup|Visual files]]
    [[Help:Sound file markup|Sound files]]
    [[Help:Table|Tables]]
    [[Help:Template|Template editing]]
    [[Help:HTML in wikitext|Using HTML]]
    A '''wikitable''' is an arrangement of columns and rows used to organize and position data. Tables are useful for this purpose and there are many different styles and tricks that can be used to customise each. This page gives you information about syntax to build wikitables in Wikipedia. == Using the toolbar == [[File:Advanced toolbar of vector skin.png|frame|center|Vector toolbar - default]] [[File:Toolbar2.PNG|frame|center|Monobook toolbar]] To automatically insert a table, click [[File:Vector toolbar insert table button.png]] or [[File:Button insert table.png]] (Insert a table) on the [[Help:Edit toolbar|edit toolbar]]. If "Insert a table" is not on the toolbar follow [[mw:Customizing edit toolbar|these directions]] to add it. The following text is inserted when '''Insert a table''' is clicked:
    {| class="wikitable"
    |-
    ! Header 1
    ! Header 2
    ! Header 3
    |-
    | row 1, cell 1
    | row 1, cell 2
    | row 1, cell 3
    |-
    | row 2, cell 1
    | row 2, cell 2
    | row 2, cell 3
    |-
    | row 3, cell 1
    | row 3, cell 2
    | row 3, cell 3
    |}
    
    {| class="wikitable" |- ! Header 1!! Header 2!! Header 3 |- | row 1, cell 1|| row 1, cell 2|| row 1, cell 3 |- | row 2, cell 1|| row 2, cell 2|| row 2, cell 3 |- | row 3, cell 1|| row 3, cell 2|| row 3, cell 3 |} The sample text ("Header 1" or "row 1, cell 1") is to be replaced with actual data. == Pipe syntax tutorial == {| border="3" style="margin-left: 3em;" |- ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 | Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} Although HTML table syntax also works, special [[wikicode]] can be used as a shortcut to create a table. The pipe ([[w:vertical bar|vertical bar]]) codes function exactly the same as [[w:HTML table|HTML table]] markup, so a knowledge of HTML table code will help in understanding pipe code. The shortcuts are as follows: * The entire table is encased with curly brackets and a vertical bar character (a pipe). So use '''{|''' to begin a table, and '''|}''' to end it. Each one needs to be on its own line: '''{|''' ''table code goes here'' '''|}''' * An optional '''table caption''' is included with a line starting with a vertical bar and plus sign "'''|+'''" and the caption after it: {| '''|+ ''caption''''' ''table code goes here'' |} * To start a new '''table [[row]]''', type a vertical bar and a [[w:hyphen|hyphen]] on its own line: "'''|-'''". The codes for the cells in that row will start on the next line. {| |+ The table's caption '''|-''' ''row code goes here'' '''|-''' ''row code goes here'' |} * Type the codes for each ''table [[w:cell|cell]]'' in the next row, starting with a bar: {| |+ The table's caption |- '''|''' ''cell codes go here'' |- '''|''' ''cells in the next row go here'' '''|''' ''more cells in the same row here'' |} * Cells can be separated with either a new line and new bar, or by a double bar "'''||'''" on the same line. Both produce the same output: {| |+ The table's caption |- '''|Cell 1 || Cell 2 || Cell 3''' |- '''|Cell A''' '''|Cell B''' '''|Cell C''' |} * If you use single bars, then what might appear to be the first cell is in fact a format modifier applied to the cell, and the rest of your "cells" will be merged into one: {| border="1" |- |format modifier (not displayed) '''|'''These all '''|'''(including the pipes) '''|'''go into '''|'''the first cell |} which is probably not what you want: {| border="1" |- | format modifier (not displayed)|These all |(including the pipes)|go into |the first cell |} However, the format modifier is useful: {| border="1" |- | Cell 1 (no modifier — not aligned) |- | align="right" | Cell 2 (right aligned) |} {| border="1" |- | Cell 1 (no modifier — not aligned) |- | style="text-align: right;" | Cell 2 (right aligned) |} Just remember: no more than 2 single pipes on a line! * a row of '''column headings''' is identified by using "! scope="col" |" instead of "|", and using "!! scope="col" |" instead of "||". Header cells typically render differently from regular cells, depending on the browser. They are often rendered in a bold font and centered. {| |+ The table's caption '''! scope="col" | Column heading 1''' '''! scope="col" | Column heading 2''' '''! scope="col" | Column heading 3''' |- | Cell 1 || Cell 2 || Cell 3 |- | Cell A | Cell B | Cell C |} * the first cell of a row is identified as a '''row heading''' by starting the line with "! scope="row" |" instead of "|", and starting subsequent data cells on a new line. {| |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- '''! scope="row" | Row heading 1''' | Cell 2 || Cell 3 |- '''! scope="row" | Row heading A''' | Cell B | Cell C |} * Optional '''parameters''' can modify the behavior of cells, rows, or the entire table. For instance, a border could be added to the table: {| '''border="1"''' |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 || Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} The final table would display like this:
    {| border="1" |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 || Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |}
    The table parameters and cell parameters are the same as in [[w:HTML|HTML]], see http://www.w3.org/TR/html401/struct/tables.html#edef-TABLE and [[w:Table (HTML)|Table (HTML)]]. However, the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. A table can be useful even if none of the cells have content. For example, the background colors of cells can be changed with cell parameters, making the table into a diagram, like [[meta:Template talk:Square 8x8 pentomino example]]. An "image" in the form of a table is much more convenient to edit than an uploaded image. Each row must have the same number of cells as the other rows, so that the number of columns in the table remains consistent. For empty cells, use the non-breaking space &nbsp; as content to ensure that the cells are displayed. To show a visible pipe in a cell, use <nowiki>|</nowiki> or &#124;. With colspan and rowspan cells can span several columns or rows, see the [[Help:Table#Mélange|Mélange]] example below. However, this has the disadvantage that [[help:sorting|sorting]] does not work properly anymore. == Examples == === Simple example === Both of these generate the same output. Choose a style based on the number of cells in each row and the total text inside each cell. The wiki markup code:
    {|
    | A
    | B
    |-
    | C
    | D
    |}
    
    {|
    | A || B
    |-
    | C || D
    |}
    
    As it appears in a browser (note that there are no borders):
    {| |- | A | B |- | C | D |}
    === Multiplication table === Here is the wiki markup code:
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;"
    |+ Multiplication table
    |-
    ! scope="col" | × 
    ! scope="col" | 1 
    ! scope="col" | 2 
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    As it appears in a browser (see ''[[Help:User style]]''):
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    === Color; scope of parameters === Two ways of specifying [[Wikipedia:Colours|color]] of text and background for a single cell are as follows. The first form is preferred because the second form uses deprecated HTML: The wiki markup code:
    {|
    | style="background: red; color: white" | abc
    | def
    | bgcolor="red" |  ghi 
    | jkl
    |}
    
    As it appears in a browser:
    {| |- | style="background: red; color: white" | abc | def | style="background: red;"| ghi | jkl |}
    Like other parameters, colors can also be specified for a whole row or the whole table; parameters for a row override the value for the table, and those for a cell override those for a row. (Note that there is no easy way to specify a color for a whole column—each cell in the column must be individually specified. Tools can make it easier.): The wiki markup code:
    {| style="background: yellow; color: green"
    |-
    | abc || def || ghi
    |- style="background: red; color: white"
    | jkl || mno || pqr
    |-
    | stu || style="background: silver" | vwx || yz
    |}
    
    As it appears in a browser:
    {| style="background: yellow; color: green" |- | abc || def || ghi |- style="background: red; color: white" | jkl || mno || pqr |- | stu || style="background: silver" | vwx || yz |}
    To make the table blend in with the background, use style="background: none;" or style="background: transparent;". (Warning: style="background: inherit;", does not work with some browsers, including IE6!) To force a cell to match one of the default colors of the [[Help:User style|class="wikitable" template]], use style="background: #f2f2f2" for the darker header, and style="background: #f9f9f9" for the lighter body. See : [[w:style| style]], [[w:background|background]], [[w:list of colors|list of colors]], [[w:web colors|web colors]] === Width, height === The width and height of the whole table can be specified, as well as the height of a row. To specify the width of a column one can specify the width of an arbitrary cell in it. If the width is not specified for all columns, and/or the height is not specified for all rows, then there is some ambiguity, and the result depends on the browser. The wiki markup code:
    {| style="width: 75%; height: 200px" border="1"
    |-
    | abc || def || ghi
    |- style="height: 100px;"
    | jkl || style="width: 200px;" | mno || pqr
    |-
    | stu || vwx || yz
    |}
    
    As it appears in a browser:
    {| style="width:75%; height:200px" border="1" |- | abc || def || ghi |- style="height: 100px;" | jkl || style="width: 200px;" | mno || pqr |- | stu || vwx || yz |}
    Note that style="inline CSS" has no effect with some browsers. If compatibility is important, equivalent older constructs like width="75%" should work on more browsers. ==== Setting column widths ==== To force column widths to specific requirements, rather than accepting the width of the widest text element in a column's cells, follow this example. Note that [[word wrap|wrap-around of text]] is forced. The wiki markup code:
    {| border="1" cellpadding="2"
    ! scope="col" width="50" | Name
    ! scope="col" width="225" | Effect
    ! scope="col" width="225" | Games Found In
    |-
    | Poké Ball || Regular Poké Ball || All Versions
    |-
    | Great Ball || Better than a Poké Ball || All Versions
    |}
    
    {| border="1" cellpadding="2" |- ! scope="col" width="50" | Name ! scope="col" style="width: 225px;" | Effect ! scope="col" style="width: 225px;" | Games Found In |- |Poké Ball || Regular Poké Ball || All Versions |- |Great Ball || Better than a Poké Ball || All Versions |}
    To set column widths in a table without headers, specify the width in the first cell for each column, like this:
    {| border="1" cellpadding="2"
    |-
    | width="100pt" | This column is 100 points wide
    | width="200pt" | This column is 200 points wide
    | width="300pt" | This column is 300 points wide
    |-
    | blah || blih || bluh
    |}
    
    {| border="1" cellpadding="2" |- | style="width: 100pt;" | This column is 100 points wide | style="width: 200pt;" | This column is 200 points wide | style="width: 300pt;" | This column is 300 points wide |- | blah || blih || bluh |}
    One application of setting the widths is aligning columns of consecutive tables: {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | The Netherlands || Amsterdam |} {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | France || Paris |} =====Nowrap===== In a table that spans the entire width of a page, cells narrower than the widest cell tend to wrap. To keep an entire column from wrapping, use style=white-space:nowrap in a non-header cell on the longest/widest cell to affect the entire column. Before: {|"class=wikitable sortable" border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |[[Lorem ipsum]] dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" |January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} After: {|"class=wikitable sortable" border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |style=white-space:nowrap|"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" |style=white-space:nowrap|January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} === Setting borders === Table borders default to a complex shaded double-line (the default in HTML); however, those borders can be set to a thin solid line by using a style-parameter (style="border: 1px solid darkgray"), as in the following (''Note: if you intend to use the 'cellpadding' or 'cellspacing' options along with a border, you MUST use this format''):
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- border="0"
    | [[File:StarIconBronze.png|120px]]
    | [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    | Bronze star || Gold star || Green star
    |}
    
    Note the bottom-row texts are centered by 'align="center"' while star-images were not centered. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left: 4em;" |- ! style="width: 140px;" | Left ! style="width: 150px;" | Middle ! style="width: 130px;" | Right |- border="0" | [[File:StarIconBronze.png|120px]] | [[File:StarIconGold.png|120px|Caption when mouse-over image]] | [[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" | Bronze star || Gold star || Green star |} As long as the "Image:" specs omit the parameter "thumb|" they will not show the caption lines in the table (only during mouse-over). The border color "darkgray" matches typical tables or infoboxes in articles; however, it could be any color name (such as style="border: 1px solid darkgreen;") or use a hex-color (such as: #DDCCBB). A column format-specifier (enclosed in "|...|") can have a style-parameter to set borders on each cell, as follows:
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- align="center"
    | style="border: 1px solid blue;"|
    [[File:StarIconBronze.png|120px]]
    | style="border: 1px solid #777777;"|
    [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | style="border: 1px solid #22AA55;"|
    [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    |Bronze star || Gold star || Green star
    |}
    
    Note only the image cells, here, have individual borders, not the text. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left:4em;" |- ! style="width:140px;"|Left || style="width:150px;"|Middle || style="width:130px;"|Right |- align="center" | style="border: 1px solid blue;"| [[File:StarIconBronze.png|120px]] | style="border: 1px solid #777;"| [[File:StarIconGold.png|120px|Caption when mouse-over image]] | style="border: 1px solid #2a5;"| [[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" |Bronze star || Gold star || Green star |} The lower hex-colors (such as: #616161) are closer to black. Typically, all borders in a table would be one specific color. === Vertical alignment === By default data in tables is vertically centrally aligned, which results in odd-looking layouts like this: {| border="1" cellpadding="2" style="width:400px; margin-left:6em;" |- ! scope="row" style="width:10%;"| Row heading | style="width:70%;"|A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width:20%;"|short text |- ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} To fix this, apply the valign="top" attribute to the rows (unfortunately it seems to be necessary to apply this individually to every single row). For example:
    {| border="1" cellpadding="2" width="400"
    |- valign="top"
    ! scope="row" width="10%" | Row heading
    | width="70%" | A longer piece of text. Lorem ipsum...
    | width="20%" | short text
    |- valign="top"
    ! scope="row" | Row heading
    | Excepteur sint occaecat...
    | short text
    |}
    
    {| border="1" cellpadding="2" style="width: 400px; margin-left: 6em;" |- valign="top" ! scope="row" style="width: 10%;" | Row heading | style="width: 70%;" | A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width: 20%;" | short text |- valign="top" ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} === Positioning === You can position the table itself, the contents of a row, and the contents of a cell, but not with a single parameter for all the contents of the table. See [[m:Template talk:Table demo]]. Prior to April 2009, using "float" to position a table was discouraged; however, it no longer always breaks page rendering at large font sizes. See a floated image, below, under "[[#Floating images in the center|Floating images in the center]]". === Mélange === ''Note: This example is not [[Wikipedia:Manual of Style (accessibility)|accessible]], and should be avoided as much as possible. For example, nested tables (tables inside tables) should be separated into distinct tables when possible.'' Here's a more advanced example, showing some more options available for making up tables. Note however that with colspan and rowspan [[help:sorting|sorting]] does not work properly anymore. You can play with these settings in your own table to see what effect they have. Not all of these techniques may be appropriate in all cases; just because you can add colored backgrounds, for example, doesn't mean it's always a good idea. Try to keep the markup in your tables relatively simple -- remember, other people are going to be editing the article too! This example should give you an idea of what is possible, though. The wiki markup code:
    {| border="1" cellpadding="5" cellspacing="0" align="center"
    |+ '''An example table'''
    |-
    ! style="background: #efefef;" | First header
    ! colspan="2" style="background: #ffdead;" | Second header
    |-
    | upper left
    | &nbsp;
    | rowspan="2" style="border-bottom: 3px solid grey;" valign="top" |
    right side
    |-
    | style="border-bottom: 3px solid grey;" | lower left
    | style="border-bottom: 3px solid grey;" | lower middle
    |-
    | colspan="3" align="center" |
    {| border="0"
    |+ ''A table in a table''
    |-
    | align="center" width="150" | [[File:Wiki.png]]
    | align="center" width="150" | [[File:Wiki.png]]
    |-
    | align="center" colspan="2" style="border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" |
    Two Wikipedia logos
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="1" cellspacing="0" style="margin: auto;" |+ '''An example table''' |- ! style="background: #efefef;" | First header ! colspan="2" style="background: #ffdead;" | Second header |- | upper left |   | rowspan="2" style="border-bottom: 3px solid gray; vertical-align: top;"| right side |- | style="border-bottom: 3px solid gray;" | lower left | style="border-bottom: 3px solid gray;" | lower middle |- | colspan="3" style="text-align: center;" | {| border="0" |+ ''A table in a table'' |- style="text-align: center;" || [[File:Wiki.png]] | style="width: 150px;" | [[File:Wiki.png]] |- | colspan="2" style="text-align: center; border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;"| Two Wikipedia logos |} |}
    === Floating table === The wiki markup coding:
    This paragraph is before the table.  Lorem ipsum dolor sit
    amet, consectetur adipisicing elit, sed do eiusmod...
    
    {| style="float: right;" border="1"
    | Col 1, row 1
    | rowspan="2" | Col 2, row 1 (and 2)
    | Col 3, row 1
    |-
    | Col 1, row 2
    | Col 3, row 2
    |}
    
    Note the floating-table to the right.
    
    This paragraph is after the table.  The text in column 2
    will span both rows due to format specifier "rowspan=2" so there
    is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    
    As it appears in a browser:
    This paragraph is before the table. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod... {| style="float: right;" border="1" |- | Col 1, row 1 | rowspan="2" | Col 2, row 1 (and 2) | Col 3, row 1 |- | Col 1, row 2 | Col 3, row 2 |} Note the floating-table to the right. This paragraph is after the table. The text in column 2 will span both rows due to format specifier "rowspan=2" so there is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    === Floating images in the center === A table can be used to wrap an image, so that the table can float towards the center of the page (such as using: style="float: right;"). However, the table margins, border and font-size must be precisely set to match a typical image display. The Image-spec parameter "thumb|" (although auto-thumbnailing to user-preference width) forces a wide left-margin that squeezes the nearby text, so the parameter "center|" can be added to suppress the left-margin padding. However, "center" sometimes shoves the caption to a 2nd line (under a centered box "[]"), so "thumb|" could be omitted and just hard-code the image size, adding a gray (#BBB) border. Using precise parameters to match other images, a floating-image table can be coded as follows:
    {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;"
    |- style="font-size: 86%;"
    | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating). |}
    The text inside the floating-table is sized by style="font-size: 86%;". That floating-image table floats a typical image-box, but allows adjusting the left-hand margin of the image (see temple-example floating below). {| class="infobox" style="width: 90px;" |- ! colspan="2" | Infobox A |- | colspan="2" | This sample infobox shows how the floating image-box aligns toward the center. |} {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" |- style="font-size: 86%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
     Temple of [[Bel (mythology)|Bel]]  (floating). |} {| style="float: right; clear:right; border: 1px solid black;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|thumb|right|This table shows the implicit margins of Images using "right".]] |} The caption-text can be omitted, or remove the parameter "thumb|" so the caption is hidden until "mouse-over display". Unfortunately the parameter "thumb|" (used for displaying the caption) also controls the auto-thumbnailing to re-size images by user-preferences size. In April 2009, it was not possible to have auto-thumbnail sizing while also concealing the caption: parameter "thumb|" triggers both actions and forces the caption to display. An image set with parameter "left|" will gain a wide right-side margin (opposite margin of parameter "right|"), so floating toward the left would require an image set as "center|" inside a table with style="float:left; margin:0.46em 0.2em". Recall that, outside an image-table, the parameter "right|" causes an image to align (either) above or below an infobox, but would not float alongside the infobox. Note the ''order of precedence'': first come infoboxes or images using "right|", then come the floating-tables, and lastly, any text will wrap that can still fit. If the first text-word is too long, no text will fit to complete the left-hand side, so beware creating a "ragged left margin" when not enough space remains for text to fit alongside floating-tables. If multiple single image-tables are stacked, they will float to align across the page, depending on page-width. The text will be squeezed to allow as many floating-tables as can fit, as auto-aligned, then wrap whatever text (can still fit) at the left-hand side. {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...by float: right |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...images wrap... |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    All these... |} That auto-aligning feature can be used to create a "floating-gallery" of images: a set of 20 floating-tables will wrap (backward, right-to-left) as if each table were a word of text to wrap across and down the page. To wrap in the typical direction (wrapping left-to-right) define all those floating-tables, instead, as left-side tables using the top parameter style="float:left; margin:0.46em 0.2em". Multiple floating-images empower more flexible typesetting of images around the text. === Nested tables === ''Note: because they cause [[Wikipedia:Manual_of_Style_(accessibility)#Tables|accessibility issues]], nested tables should be avoided whenever possible.'' Seven different (blue) tables are shown nested inside the cells of a table. Automatically the two tables |A| and |B|B| are vertically aligned instead of the usual side by side of text characters in a cell. "float" is used to fix each of tables |C| and |D| to their own position within one cell of the table. This may be used for charts and schemes. ''Nested tables must start on a new line.'' '''Wiki markup'''

    {| border="1"
    | &alpha;
    | style="text-align: center;"| cell2
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| NESTED'''
    '''|-'''
    '''| TABLE'''
    '''|}'''
    | style="vertical-align:bottom;"| the original table again
    | style="width:100px;" |
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| A'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| B || B'''
    '''|}'''
    | style="width:50px;" |
    '''{| border="2" style="background: #ABCDEF; float:left;"'''
    '''| C'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF; float: right;"'''
    '''| D'''
    '''|}'''
    |}

    '''As it appears in a browser''': {| border="1" |- | α | style="text-align: center;"| cell2 {| border="2" style="background: #ABCDEF;" |- | NESTED |- | TABLE |} | style="vertical-align: bottom;" | the original table again | style="width: 100px;" | {| border="2" style="background: #ABCDEF;" |- | A |} {| border="2" style="background: #ABCDEF;" |- | B || B |} | style="width: 50px;" | {| border="2" style="background: #ABCDEF; float:left;" |- | C |} {| border="2" style="background: #ABCDEF; float: right;" |- | D |} |} === Combined use of COLSPAN and ROWSPAN === '''Wiki markup'''
    {| border="1" cellpadding="5" cellspacing="0"
    |-
    | Column 1 || Column 2 || Column 3
    |-
    | rowspan="2" | A
    | colspan="2" style="text-align: center;" | B
    |-
    | C 
    | D
    |-
    | E
    | rowspan="2" colspan="2" style="text-align: center;" | F
    |-
    | G 
    |-
    | colspan="3" style="text-align: center;" | H
    |}
    
    '''As it appears in a browser''': {| border="1" cellpadding="5" cellspacing="0" |- | Column 1 || Column 2 || Column 3 |- | rowspan="2" | A | colspan="2" style="text-align: center;" | B |- | C | D |- | E | rowspan="2" colspan="2" style="text-align: center;" | F |- | G |- | colspan="3" style="text-align: center;" | H |} Note that using rowspan="2" for cell '''G''' combined with rowspan="3" for cell '''F''' to get another row below '''G''' and '''F''' won't work, because all (implicit) cells would be empty. Likewise complete columns are not displayed if all their cells are empty. Borders between non-empty and empty cells might be also not displayed (depending on the browser), use &nbsp; to fill an empty cell with dummy content. === Centering tables === Centered tables can be achieved, but they will not "float"; that is to say, no text will appear to either side. The trick is {| style="margin: 1em auto 1em auto;" '''Wiki markup'''
    {| class="wikitable" style="margin: 1em auto 1em auto;"
    |+ '''Cells left-aligned, table centered'''
    ! scope="col" | Duis 
    ! scope="col" | aute 
    ! scope="col" | irure
    |-
    | dolor  || in reprehenderit || in voluptate velit
    |-
    | esse cillum dolore || eu fugiat nulla || pariatur.
    |}
    
    '''As it appears in a browser''': {| class="wikitable" style="margin: 1em auto 1em auto;" |+ '''Cells left-aligned, table centered''' ! Duis || aute || irure |- | dolor || in reprehenderit || in voluptate velit |- | esse cillum dolore || eu fugiat nulla || pariatur. |} === Setting parameters === At the start of a cell, add your parameter followed by a single pipe. For example width="300"| will set that cell to a width of 300 pixels. To set more than one parameter, leave a space between each one, as follows:
    {| style="color:white"
    |-
    | bgcolor="red"|cell1 || width="300" bgcolor="blue"|cell2
    | bgcolor="green"|cell3
    |}
    
    As it appears in a browser: {| style="color:white" |- | style="background:red;"|cell1 || style="width:300px; background:blue;"|cell2 || style="background:green;"|cell3 |} === Tiny tables within a text line === For years in [[HTML]], a table has always forced an implicit line-wrap (or ''line-break''), so to keep a table within a line, the work-around is to put all text into a table, then embed a table-within-a-table, using the outer table to force the whole line to stay together. Consider the following examples: : Wikicode (''showing table forces line-break''): :: * This is a test table here
    HELLO WORLD
    followed by this text afterward.
    :Result: ::* This is a test table here
    HELLO WORLD
    followed by this text afterward. : Wikicode (''table-within-table''): :: *
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.
    :Result: ::*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table. Use style="font-size:60%" to shrink the text within the box. However, the small text could be replaced with small images (aligned inside the inner table). The outer table is for one line only, so to make a 2nd line appear even, the exact length of line 1 must be pre-determined, to match the length of other lines. === Decimal point alignment === A method to get columns of numbers aligned at the decimal point is as follows:
    {| cellpadding="0" cellspacing="0"
    | align="right" | 432 || .1
    |-
    | align="right" | 43 || .21
    |-
    | align="right" | 4 || .321
    |}
    
    As it appears in a browser:
    {| cellpadding="0" cellspacing="0" |- | align="right" | 432 || .1 |- | align="right" | 43 || .21 |- | align="right" | 4 || .321 |}
    If the column of numbers appears in a table with cell padding or cell spacing, you can still align the decimal points without an unsightly gap in the middle. Embed a table in each number's cell and specify its column widths. Make the embedded tables' column widths the same for each cell in the column. (If decimal points are still misaligned using this method, the main table's column may be too narrow. Add a parameter to increase the column's width.) The wiki markup code:
    {| border="1" cellpadding="4" cellspacing="2"
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 432 || width="50%" | .1
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 43 || width="50%" | .21
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%" | 4 || width="50%" | .321
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="4" cellspacing="2" | {| cellpadding="0" cellspacing="0" style="width: 100px;" |- | style="text-align: right; width: 50%;" | 432 || style="width: 50%;" | .1 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 43 || style="width: 50%;" | .21 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 4 || style="width: 50%;" | .321 |} |}
    In the case of preformatted text, you can dispense with the table feature entirely and simply start the lines with a space, and put spaces to position the numbers: 432.1 43.21 4.321 However, there should be a good reason to use pre-formatted text in an article. == Style classes == : ''See also [[Help:User style]].'' In the first line of table code, after the "{|", instead of specifying a style directly, you can also specify a [[w:Cascading Style Sheets|CSS]] class. The style for this class can be specified in various ways: * in the software itself, per skin (for example the class [[#Sorting|sortable]]) * collectively for all users of one wiki in [[MediaWiki:Common.css]] (for example, on this and some other projects there is or was the class wikitable, later moved to [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup shared.css]) * separately per skin in [[MediaWiki:Monobook.css]] etc. * individually on one wiki in a user subpage * individually, but jointly for tables of the class concerned on all web pages, on the local computer of the user. Instead of remembering table parameters, you just include an appropriate style class after the {|. This helps keep table formatting consistent, and can allow a single change to the class to fix a problem or enhance the look of all the tables that are using it at once. For instance, this:
    
    {| cellpadding="2"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| cellpadding="2" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    becomes this:
    
    {| class="wikitable"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| class="wikitable" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    simply by replacing inline CSS for the table by class="wikitable". This is because the ''wikitable'' class in [[MediaWiki:Common.css]] contains a number of ''table.wikitable'' [[w:CSS|CSS]] style rules. These are all applied at once when you mark a table with the class. You can then add additional style rules if desired. These override the class's rules, allowing you to use the class style as a base and build up on it: '''Wiki markup'''
    
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |}
    Notice that the table retains the gray background of the wikitable class, and the headers are still bold and centered. But now the text formatting has been overridden by the local ''style'' statement; all of the text in the table has been made italic and 120% normal size, and the wikitable border has been replaced by the red dashed border. Of course this works only for browsers supporting inline CSS, if it's important use XHTML markup like <big> instead of "font-size:120%", or Wiki markup like ''text'' instead of "font-style:italic". === Collapsible tables === Classes can also be used to collapse tables, so they are hidden by default. Use the style 'collapsible' to enable collapsing behaviour. By default, a collapsible table will begin expanded. To change this, include the additional class 'collapsed' or 'autocollapse' (i.e. only collapse if 3 other collapsible tables are present). You must include a header row, where the 'hide' option will be displayed. Example:
    {| class="wikitable collapsible collapsed"
    ! Header
    |-
    | Content which starts hidden
    |-
    | more hidden content
    |}
    
    Gives: {| class="wikitable collapsible collapsed" |- ! Header |- | Content which starts hidden |- | more hidden content |} == Sorting == :''Further information [[meta:Help:Sorting|Help:Sorting]]'' Tables can be made sortable by adding class="sortable"; for details see '''[[Help:Sorting]]'''. Since this can be very useful, it is wise to keep the possibilities and limitations of this feature in mind when designing a table. For example: * Do not divide a table into sections by subheaders spanning several rows. Instead, an extra column can be made showing the content of these headers on each row, in a short form. * Do not have elements spanning several columns; instead, again, repeat the content on each row, in a short form. * In a column of numbers, do not put text such as "ca." in front of a number-it will sort like zero. Do not put text after the number, and do not put a range of numbers (it does not affect the sorting position for numeric sorting mode, and in the case of a range, the first number determines the position, but if, possibly after sorting this or another column, the element is at the top, it will induce alphabetic sorting mode). Instead, put these texts in a separate column. Alternatively, for the greatest flexibility, alphabetic sorting mode with hidden sortkeys can be used. A long form of abbreviated content can be put as legend outside the table. '''Wiki markup'''
    
    {| class="wikitable sortable" border="1"
    |+ Sortable table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable" |+ Sortable table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d || 20 || 2008-11-24 || This |- | b || 8 || 2004-03-01 || column |- | a || 6 || 1979-07-23 || cannot |- | c || 4 || 1492-12-08 || be |- | e || 0 || 1601-08-13 || sorted. |}
    ===Sorting and collapsing=== It is possible to collapse a sortable table. To do so, you need to use the code {| class="wikitable sortable collapsible". Taking the above table and making it collapsable gives you this: '''Wiki markup'''
    
    {| class="wikitable sortable collapsible" border="1"
    |+ Sortable and collapsible table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable collapsible" |+ Sortable and collapsible table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d || 20 || 2008-11-24 || This |- | b || 8 || 2004-03-01 || column |- | a || 6 || 1979-07-23 || cannot |- | c || 4 || 1492-12-08 || be |- | e || 0 || 1601-08-13 || sorted. |}
    If you want the table to default to collapsed state, use the code {| class="wikitable sortable collapsible collapsed" in place of {| class="wikitable sortable collapsible" == Row template == Regardless of whether wikitable format or HTML is used, the wikitext of the rows within a table, and sometimes even within a collection of tables, has much in common, e.g.: * the basic code for a table row * code for color, alignment, and sorting mode * fixed texts such as units * special formats for sorting In that case it can be useful to create a template that produces the syntax for a table row, with the data as parameters. This can have many advantages: * easily changing the order of columns, or removing a column * easily adding a new column if many elements of the new column are left blank (if the column is inserted and the existing fields are unnamed, use a named parameter for the new field to avoid adding blank parameter values to many template calls) * computing fields from other fields, e.g. population density from population and area * duplicating content and providing span tags with "display:none" for the purpose of having one format for [[Help:Sorting|sorting]] and another for display * easy specification of a format for a whole column, such as color and alignment Example: Using [[m:help:table/example row template]] ([[m:help talk:table/example row template|talk]], [[m:Special:Whatlinkshere/help:table/example row template|backlinks]], [http://meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit edit])
    {| class="wikitable sortable" border="1"
    |-
    ! scope="col" | a
    ! scope="col" | b
    ! scope="col" | a/b
    {{help:table/example row template|  50|200}}
    {{help:table/example row template|   8| 11}}
    {{help:table/example row template|1000| 81}}
    |}
    
    gives: {| class="wikitable sortable" |- ! scope="col" | a ! scope="col" | b ! scope="col" | a/b |- | 50||200||0.25 |- | 8|| 11||0.72727272727273 |- |1000|| 81||12.345679012346 |} == Conditional table row == For a conditional row in a table, we can have:
    {| class="wikitable" border="1"
    	
    	{{ #if:1|{{!}}-
    		! scope="row" {{!}} row one, column one
    		
    		{{!}}row one, column two}}
    	
    	{{ #if: |{{!}}-
    		! scope="row" {{!}}  row two, column one
    		{{!}}row two, column two}}
    	
    	|-
    		! scope="row" {{!}} row three, column one
    		| row three, column two
    |}
    
    Which gives the following table: (note how the second row is missing) {| class="wikitable" |- ! scope="row" | row one, column one |row one, column two |- ! scope="row" | row three, column one | row three, column two |} == Other table syntax == Other types of '''table''' syntax that MediaWiki supports: #XHTML #HTML & wiki- syntax ('''Do not use''') All three are supported by MediaWiki and create (currently) valid HTML output, but the pipe syntax is the simplest. Also, HTML & wiki- syntax (i.e., unclosed and tags) will not necessarily remain browser-supported in the future, especially on handheld internet-accessible devices. See also [[w:HTML element#Tables|HTML element#Tables]]. Note however that the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. === Comparison of table syntax === {| class="wikitable" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |- ! scope="row" | Table |
    |
    {|
    |}
    |- ! scope="row" | Caption |
    caption
    |
    |+ caption
    |- ! scope="row" | Row |
    
    | 
    |-
    |- ! scope="row" | Data cell |
    cell1cell2
    cell3
    |
    | cell1 || cell2
    | cell3
    |- ! scope="row" | Header cell |
    column heading

    row heading
    |
    ! scope="col" | column heading

    ! scope="row" | row heading
    |- ! scope="row" rowspan="2" | Sample table | colspan="2" |
    1 2
    3 4
    |- |
    1 2
    3 4
    |
    {|
    | 1 || 2
    |-
    | 3 || 4
    |}
    |- style="vertical-align: top;" ! scope="row" | Pros | * Can preview or debug with any XHTML editor * Can be indented for easier reading * Well-known * Insensitive to newlines * No characters like "|" which can collide with template and parser function syntax | * Easy to write * Easy to read * Takes little space * Can be learned quickly |- style="vertical-align: top;" ! scope="row" | Cons | * Tedious * Takes a lot of space * Difficult to read quickly * Accidentally putting "tr" for "td" can cause confusion for hours. * Indented code might not match nesting. * In rare cases, newlines can break cells, causing severe confusion since newlines usually are ok. | * Unfamiliar syntax * Rigid structure * Cannot be indented * Text (as in HTML tags) may be easier for some people to read than series of pipes, plus signs, dashes, etc. * Requires using [[Template:!]] to pass a "|" in a parameter. * Sensitive to newlines; see [[Help:Newlines and spaces]]. |- ! scope="col" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |} See also [[Template talk:For#Tables]]. == Pipe syntax in terms of the HTML produced == The pipe syntax, developed by [[m:User: Magnus Manske| Magnus Manske]], substitutes pipes (|) for HTML. There is an [http://www.uni-bonn.de/~manfear/html2wiki-tables.php on-line script] which converts html tables to pipe syntax tables. The pipes must start at the beginning of a new line, except when separating parameters from content or when using || to separate cells on a single line. The parameters are optional. === Tables === A [[w:Table (HTML)|table]] is defined by {| ''params'' |} which generates "<table ''params''></table>". === Rows === For each table, an HTML <tr> tag will be generated for the first row. To start a new row, use: |- which generates another "<tr>". Parameters can be added like this: |- ''params'' which generates "<tr ''params''>". Note: * <tr> tags will be automatically opened at the first <td> equivalent * <tr> tags will be automatically closed at <tr> and </table> equivalents === Cells === Cells are generated either like this: |cell1 |cell2 |cell3 or like this: |cell1||cell2||cell3 which both generate "<td>cell1</td><td>cell2</td><td>cell3</td>". The "||" equals "newline" + "|". Parameters in cells can be used like this: |''params''|cell1||''params''|cell2||''params''|cell3 which will result in <td ''params''>cell1</td> <td ''params''>cell2</td> <td ''params''>cell3</td> === Headers === Produces a TH, functioning the same way as TD, but with different style. "!" is used instead of the opening "|". "!!" can be used instead of "||". Parameters still use "|", though. Example: !''params''|cell1 === [[Help:Table Caption|Captions]] === A <caption> tag is created by |+ Caption which generates the HTML "<caption>Caption</caption>". You can also use parameters: |+ ''params''|Caption which will generate "<caption ''params''>Caption</caption>". === Summaries === A summary is produced by adding a summary attribute after the start of the table. It can be used by [[screen reader]]s to give visually impaired readers the overall gist of the table, without having to listen to the entire table. For example:
    {| summary="Artistic renderings of Germania became more triumphant and monumental."
    | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]
    | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]
    | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]]
    |}
    
    produces: {| summary="Artistic renderings of Germania became more triumphant and monumental." | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]] | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]] | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]] |} == Square monitors == To format for a square monitor or window, use a tape measure. Determine the height of your rectangular screen. Using that figure measure under the screen to determine the width your monitor’s screen would be if it were square. Mark that location using ink or tape under the screen. Drag the side of your browser’s window to that location so the window is square based on accurate measurements. Square monitors and reading windows are not able to contain tables and galleries made for rectangular and wide screens. When a table or gallery is wider than the monitor, it makes every line of text wider than the screen as well. The px amounts of the following gallery were determined after measuring the window to make sure it was square: Type this:
    {| style="background: transparent; margin: auto;"
    | [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]
    | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]
    | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]
    | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]
    | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]
    |}
    
    For this: {| style="background:none; margin: auto;" |- | [[File:Some_window_blinds.JPG|192x155px|thumb|left|Various window shades]] | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]] | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]] |} {| style="background:none; margin: auto;" |- | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]] | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]] |} {| style="background:none; margin: auto;" |- | [[File:Some window blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]] | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]] |} == Vertically oriented column headers == Sometimes it is desirable (such as in a table predominantly made of numbers) to rotate text such that it proceeds from top to bottom or bottom to top instead of from left to right or right to left. Currently, browser support for this type of styling as a component of HTML or CSS is sporadic (Internet Explorer is one of the few browsers that supports this in cascading stylesheets, albeit in a non-standard way). An alternative solution that works in most if not all browsers is to use images in place of the text. For instance, the following table uses SVG images instead of text to produce the rotated column headings: {| class="wikitable" style="text-align: center;" |- style="vertical-align: bottom;" ! style="width:3em;" | [[File:wpvg_hd_date_page.svg|link=]] ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=Wikipedia:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_talk.svg|link=Wikipedia talk:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_portal.svg|link=Portal:Video games]] ! style="width:3em;" | [[File:wpvg_vg_article_guidelines.svg|link=Wikipedia:WikiProject Video games/Article guidelines]] ! style="width:3em;" | [[File:wpvg_vg_templates.svg|link=Wikipedia:WikiProject Video games/Templates]] ! style="width:3em;" | [[File:wpvg_vg_sources.svg|link=Wikipedia:WikiProject Video games/Sources]] ! style="width:3em;" | [[File:wpvg_vg_assessment.svg|link=Wikipedia:WikiProject Video games/Assessment]] ! style="width:3em;" | [[File:wpvg_vg_cleanup.svg|link=Wikipedia:WikiProject Video games/Cleanup]] ! style="width:3em;" | [[File:wpvg_vg_requests.svg|link=Wikipedia:WikiProject Video games/Requests]] |- ! 05/08 | 4266 || 7828 || 7282 || 1105 || 224 || 161 || 916 || 506 || 231 |- ! 04/08 | 4127 || 6190 || 6487 || 1139 || 241 || 205 || 1165 || 478 || 301 |} Normally, one problem with this approach is that readers are directed to different pages when they click on the images. To eliminate this problem—or to direct readers to a ''different'' page—you can use the link parameter. A column-header can be coded as follows:
    
    ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=xxxx]]
    
    
    The image will wikilink to article "xxxx". By setting the link to an empty string (e.g. [[File:wpvg_hd_date_page.svg|link=]]), no navigation will occur when visitors click on an image. Note that it might also be a good idea to color the image text blue if you are using the images as links. Also, SVG is the preferred image format in this case because it can be re-scaled to any size without producing artifacts. == Wikitable as image gallery == :''This section is local to Wikipedia (hard-coded here now).'' A wikitable can be used to display side-by-side images, in the manner of an image gallery (formatted by "<gallery>"), but with larger images and less vacant area around photos. A simple framed gallery can be formatted using class="wikitable" to generate the minimal thin-lines around images/photos within the table: {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |}
    Note the result below (with thin-lined cells): {| class="wikitable" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |} Another issue about the standard "<gallery>" tag, in 2007-2008, was that it put 4 images per line, overrunning the right margin of a wiki article displayed in portrait-style width (like 800x600), unless the gallery had only 3 images. However, a wikitable uses typical image-links with sizes, such as "[[Image:XXX.jpg|130px]]" so 4 images could be displayed on a wikitable line within a 600px width (for 800x600 resolution screens). {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|125px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} {| class="wikitable" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|115px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} Another advantage about wikitable images, compared to "<gallery>" formatting, is the ability to "square" each image when similar heights are needed, so consider putting 2-number image sizes (such as "199x95px"), where the 2nd number limits height: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Note the 3 images sized "199x95px" appear identical height, of 95px (4th image purposely smaller). The "95px" forces height, while "199x" fits the various widths (could even be "999x"): {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Therefore, the use of size "199x95px" (or "999x95px") produces the auto-height-sizing beyond the "<gallery>" tag, and with the option to set taller thumbnails ("199x105px"), or even to have some images purposely smaller than other images of "95px" height. A very short height ("70px") allows many more images across the table: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} The above wikitable-coding produces the result below, of 6 columns: {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} Once images have been placed in a wikitable, control of formatting can be adjusted when more images are added. === Shifting/centering === Images within a wikitable can be shifted by inserting non-breaking spaces ("&nbsp;") before or after the image-link ("&nbsp;[[Image:]]"). However, auto-centering simply requires use of center-tags to be placed around an image-link for centering in a cell ("
    [[File:..]]
    ")
    . In the example below, note how Col2 uses <center>, but Col3 uses "&nbsp;": {| class="wikitable" border="1" |- |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp; |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |&nbsp;&nbsp;View from bell tower |}
    The above coding generates the table below: note the middle garden image is centered (but not the left image), and the right image has 2 spaces before "  View...": {| class="wikitable" |- |[[File:Domtoren vanaf Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    | [[File:Uitzicht vanaf de Domtoren.jpg|299x125px]]  |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |  View from bell tower |} Also note that the tag "<small>" made a smaller text-size caption. However, fonts also can be sized by percent (style="font-size: 87%;"), where the actual percent-size as displayed depends on the various sizes allowed for a particular font.
     | style="font-size: 87%;" | View from bell tower
    
    The column attribute, above, uses "style=" to set the font-size for the caption, following the 2nd vertical-bar "|". A font-size: 65% is very small, while style="font-size: 87%;" is a mid-size font, larger than the tag ''small''. === Speed/transfer rates === Actual transfer/display speeds depend on individual files. In 2007 to March 2009 some serious flaws existed in the thumbnailing process when combined with the gallery-display, making thumbnails sometimes larger than the originals. For this reason some users explicitly used tables instead of the gallery tag. However, these issues are fixed as of March 2009. == Generate a chart with a table ==
    Main article: [[meta:Visualizer for Wikimedia projects|meta:Visualizer for Wikimedia projects]]
    Using {{[[Template:visualizer|visualizer]]}} or another template that uses {{[[Template:metavisualizer|metavisualizer]]}}. == Converting spreadsheet to wikitable format == To convert from spreadsheets such as Gnumeric, MS Excel or OpenOffice.org Calc, you can use the [http://excel2wiki.net/wikipedia.php Copy & Paste Excel-to-Wiki] converter or you can save your spreadsheets as [[.csv]] and use the [http://toolserver.org/~al/data2mwGenerators/csv2wikitable.php csv2wikitable] converter. == See also == * [[Help:Wikitable]] * [[Wikipedia:Manual of Style (tables)]] * [[Wikipedia:How to make a table in Wikipedia]] * [[mw:Table]] * [[mw:Simplified table syntax]] * [[m:Wiki markup tables]] * [[m:Table background colors]] * [[User:Dcljr/Tables]] * [[w:Table (HTML)]] * [[m:Help:Template#A parameter value containing a pipe character]] * [[w:Category:Table and column templates]] * Examples: ** [[Template:Chess diagram|Chess board]] ** [[Template:Goban|Go board]] ** [[Monopoly (game)#Board|Monopoly board]] ** [[m:Template talk:Square 8x8 pentomino example|Square 8x8 pentomino example]] * [[commons:Commons:Convert tables and charts to wiki code|Commons:Convert tables and charts to wiki code]] * [[commons:Commons:Chart and graph resources|Commons:Chart and graph resources]] * Cleanup template {{[[Template:Listtable|Listtable]]}} and its category [[:Category:Articles requiring tables]] == External links == * [[:de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion]] published in German-Wikipediaproject (English instructions included) * [http://www.cnic.org/html2mediawiki.html HTML tables to wiki converter at cnic.org] * [http://area23.brightbyte.de/csv2wp.php csv2wp] - converts [[w:comma-separated values|comma-separated values]] (CSV) format to pipe syntax. You may use this to import tables from Excel etc. ([[:de:Benutzer:Duesentrieb/csv2wp (en)|more information]]) * [http://www.uni-bonn.de/~manfear/html2wiki-tables.php HTML tables to wiki converter at uni-bonn.de] * [http://diberri.dyndns.org/html2wiki.html HTML tables to wiki converter at diberri.dyndns.org] * [http://pywikipediabot.sourceforge.net/ pywikipediabot] (can convert HTML tables to wiki) * [http://search.cpan.org/~diberri/ HTML-WikiConverter] Various versions and languages * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables Making Wiki Tables] with good examples * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use Wiki and HTML Tables Ready to Use]: A selection of tables and their Wiki/HTML code * [http://www.w3.org/TR/css3-color/ Table of CSS color names and HEX codes] [[Category:Wikipedia how-to]] [[Category:Wikipedia text help]] [[ar:مساعدة:جدول]] [[bg:Уикипедия:Таблици]] [[ca:Ajuda:Taula]] [[cs:Nápověda:Tabulky]] [[de:Hilfe:Tabellen]] [[dsb:Pomoc:Tabela]] [[es:Ayuda:Tablas]] [[eo:Helpo:Vikitabeloj]] [[fa:راهنما:جدول‌ها]] [[fr:Aide:Les tableaux pour les novices]] [[hsb:Pomoc:Tabela]] [[hu:Wikipédia:Táblázatok]] [[id:Bantuan:Tabel]] [[it:Aiuto:Tabelle]] [[ja:Help:表の作り方]] [[ka:დახმარება:ცხრილის შექმნა]] [[km:ជំនួយ:តារាង]] [[ko:위키백과:표]] [[lb:Hëllef:Tabellen]] [[lt:Pagalba:Lentelė]] [[ml:സഹായം:പട്ടിക]] [[mn:Тусламж:Хүснэгт яаж хийх вэ?]] [[nl:Help:Gebruik van tabellen]] [[no:Hjelp:Tabeller]] [[pl:Pomoc:Tabele]] [[pt:Ajuda:Guia de edição/Usar tabelas]] [[ro:Ajutor:Tabele]] [[qu:Yanapa:Tawla]] [[sq:Ndihmë:Tabela]] [[simple:Help:Tables]] [[sk:Pomoc:Tabuľky]] [[sr:Помоћ:Табела]] [[fi:Ohje:Taulukot]] [[tt:Ярдәм:Tüşäw]] [[th:วิธีใช้:ตาราง]] [[uk:Довідка:Таблиці]] [[vi:Trợ giúp:Tạo bảng]] [[zh:Help:表格]] exp-Saxby+Chambliss.wikitext000066400000000000000000001747121335270560400505320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan=2 class="n" style="text-align: center; font-size: 125%; font-weight: bold"|Clarence Saxby Chambliss Jr |- | colspan=2 style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- |colspan="2" style="text-align:center; font-size:110%;"|
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- |colspan="2" style="text-align:center; background:lavender;"| '''[[Incumbent]]''' |- |colspan="2" style="text-align:center;"|'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- |colspan="2" style="text-align:center; font-size:110%;"|
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- !colspan="2" style="text-align:center; font-size:110%;"|
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- |colspan="2" style="border-bottom:none; text-align:center;"|'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- |colspan="2"|
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! |- |[[U.S. House election, 1994|1994]] | |style="background:#B0CEFF" |Craig Mathis |style="background:#B0CEFF" align="right" |53,408 |style="background:#B0CEFF" |37% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |89,591 |style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | |style="background:#B0CEFF" |Jim Wiggins |style="background:#B0CEFF" align="right" |84,506 |style="background:#B0CEFF" |47% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |93,619 |style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | |style="background:#B0CEFF" |Ronald L. Cain |style="background:#B0CEFF" align="right" |53,079 |style="background:#B0CEFF" |38% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |87,993 |style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | |style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] |style="background:#B0CEFF" align="right" |79,051 |style="background:#B0CEFF" |41% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |113,380 |style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !|Year ! !|Democrat !|Votes !|Pct ! !|Republican !|Votes !|Pct ! !|3rd Party !|Party !|Votes !|Pct ! |- |[[U.S. Senate election, 2002|2002]] | |style="background:#B0CEFF" |[[Max Cleland]] |style="background:#B0CEFF" align="right" |932,422 |style="background:#B0CEFF" |46% | |style="background:#FFB6B6" |'''Saxby Chambliss''' |style="background:#FFB6B6" align="right" |1,071,352 |style="background:#FFB6B6" |53% | |style="background:#ffff66" |Claude "Sandy" Thomas |style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] |style="background:#ffff66" align="right" |27,830 |style="background:#ffff66" align="right" |1% | |} {| border=1 cellpadding=4 cellspacing=0 style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan=6|2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan=2 style="width: 130px"|Party ! style="width: 17em"|Candidate ! style="width: 5em"|Votes ! style="width: 3.5em"|% ! style="width: 3.5em"|±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[J. Roy Rowland]] |width="40%" style="text-align: center;" rowspan="1"|'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Max Cleland]] |width="40%" style="text-align: center;" rowspan="1"|'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' |width="30%" align="center" rowspan="1"|'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    |width="40%" style="text-align: center;" rowspan="1"|'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 |width="30%" align="center" rowspan="1"| Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" |width="30%" align="center" rowspan="1"|Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    |width="40%" style="text-align: center;" rowspan="1"|'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''
    61st |width="30%" align="center" rowspan="1"| Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] raw-ASDF.wikitext000066400000000000000000000014451335270560400462450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext'''asdf''' or '''ASDF''' may refer to * [[Alabama State Defense Force]], a military entity * [[Alaska State Defense Force]], a military entity * [[Another System Definition Facility]], the most commonly used build system for Common Lisp * [[Association of Synchronous Data Formats]], an organization that advances the use of synchronous data transmission technology * Average Squared Difference Function, a mapping used in [[pitch detection algorithm]]s * asdf, the first four letters in the [[home row]] on a [[QWERTY]] keyboard * asdf movie, a series of [[viral video]]s * Asdf.com is a random chat board where the point is to not always stay on topic. == See also == * [[Hoverboard ASDF]] * [[Japan Air Self-Defense Force]] * [[QWERTY]] [[Category:Initialisms]] {{disambig}} [[de:ASDF]] [[fr:ASDF]] raw-Germany.wikitext000066400000000000000000004650111335270560400471350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=
    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
    Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
    and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;"| [[States of Germany|State]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²)!! style="width:85px;"| Population |- | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"|35,752|| style="text-align:right"|10,717,000 |- | [[Bavaria]] || [[Munich]] || style="text-align:right"|70,549|| style="text-align:right"|12,444,000 |- | Berlin || Berlin ||style="text-align:right"|892|| style="text-align:right"|3,400,000 |- | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"|29,477|| style="text-align:right"|2,568,000 |- | [[Bremen (state)|Bremen]] || [[Bremen]] || style="text-align:right"|404|| style="text-align:right"|663,000 |- | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"|755|| style="text-align:right"|1,735,000 |- | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"|21,115|| style="text-align:right"|6,098,000 |- | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"|23,174|| style="text-align:right"|1,720,000 |- | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"|47,618|| style="text-align:right"|8,001,000 |- | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"|34,043|| style="text-align:right"|18,075,000 |- | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"|19,847|| style="text-align:right"|4,061,000 |- | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"|2,569|| style="text-align:right"|1,056,000 |- | [[Saxony]] || [[Dresden]] || style="text-align:right"|18,416|| style="text-align:right"|4,296,000 |- | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"|20,445|| style="text-align:right"|2,494,000 |- | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"|15,763|| style="text-align:right"|2,829,000 |- | [[Thuringia]] || [[Erfurt]] || style="text-align:right"|16,172|| style="text-align:right"|2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;"| Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.|| style="text-align:center;"| Name|| style="text-align:center;"| Headquarters|| style="text-align:center;"| Revenue
    (Mil. €) || style="text-align:center;"| Profit
    (Mil. €) || style="text-align:center;"| Employees
    (World) |- | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 || 329,305 |- | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 || 272,382 |- | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]]/Berlin || 72,488 || 3,806 || 398,200 |- | 4. || style="text-align:left;"| [[E.ON|E.ON AG]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 || 87,815 |- | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 || 242,378 |- | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 || 475,100 |- | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 || 241,426 |- | 8. || style="text-align:left;"| [[BASF|BASF SE]] || style="text-align:left;"| [[Ludwigshafen am Rhein|Ludwigshafen]] || 57,951 || 4,065 || 95,175 |- | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 || 107,539 |- | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]]/[[Duisburg]] || 51,723 || 2,102 || 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
    [[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" !colspan=9 style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan=11 align=center valign=top | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
    [[Berlin]]
    [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
    [[Hamburg]]
    [[File:München Panorama.JPG|border|160px|Munich]]
    [[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 width="50" |   ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 align=center valign=top | [[File:Köln Panorama.jpg|border|160px|Cologne]]
    [[Cologne|Cologne (Köln)]]
    [[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
    [[Frankfurt am Main|Frankfurt]]
    [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
    [[Stuttgart]] |- | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right | 3,442,675 | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right | 520,966 |- | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right | 1,774,224 | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right | 518,862 |- | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right | 1,330,440 | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right | 517,052 |- | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right | 998,105 | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right | 503,673 |- | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main|Frankfurt]] || align=right | 671,927 | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right | 491,931 |- | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right | 601,646 | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right | 376,319 |- | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right | 586,217 | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right | 351,050 |- | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right | 581,308 | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right | 323,084 |- | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right | 576,259 | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right | 319,841 |- | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right | 547,685 | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right | 311,969 |- | colspan=9 align=center | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
    ===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
    (1749–1832) ! align=center |[[Friedrich Schiller]]
    (1759–1805) ! align=center |[[Brothers Grimm]]
    (1785–1863) ! align=center |[[Thomas Mann]]
    (1875–1955) ! align=center |[[Hermann Hesse]]
    (1877–1962) |- | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]]|| align=left | [[File:Grimm1.jpg|125px]]|| align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[J.S.Bach]]
    [[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align=center |[[Ludwig van Beethoven|L.v. Beethoven]]
    [[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align=center |[[Richard Wagner|R. Wagner]]
    [[Die Walküre]] ! align=center |[[Kraftwerk]]
    [[Computer World|Computerwelt Pt. 2]] ! align=center |[[Modern Talking]]
    [[Brother Louie (Modern Talking song)|Brother Louie]] ! align=center |[[Rammstein]]
    [[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]]|| style="text-align:left; background:silver;"|[[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]]|| style="text-align:left; background:dimGrey;"| [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
    {{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
    {{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
    {{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]raw-List+of+MythBusters+special+episodes.wikitext000066400000000000000000000360431335270560400545550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext{{wikiquotepar|MythBusters}} The cast of the television series ''[[MythBusters]]'' perform experiments to verify or debunk [[urban legend]]s, [[old wives' tale]]s, and the like. This is a list of the various myths tested on the show as well as the results of the experiments (the myth is [[MythBusters#Conclusions of the experiments|Busted, Plausible, or Confirmed]]). Special episodes listed here were aired separately to the normal season episodes and special episodes. Also included are "mini myths", videos available from the [[Discovery Channel]] website. ==Episode overview== {| class="wikitable" style="width:100%; margin:auto; background:#FFFFFF;" |- ! style="background-color: #DBE9F4; color:#000; text-align: center;"|Series # !! style="background-color: #DBE9F4; color:#000; text-align: center;"|Season # !! style="background-color: #DBE9F4; color:#000; text-align: center;"|Title !! style="background-color: #DBE9F4; color:#000; text-align: center;"|Original airdate {{Episode list |EpisodeNumber = SP11 |EpisodeNumber2 = Special 1 |Title = Young Scientist Special |RTitle = |OriginalAirDate = {{Start date|2008|4|26}} |ShortSummary = '''Myths tested''':
    [[Discovery Channel]]'s young scientist contenders help the Mythbusters tackle environmental myths:
    Are electric cars truly slow?
    Do increased CO2 levels cause accelerated ice melting? (Former Mythbuster [[Scottie Chapman]] returns to assist the testing)
    Are cows truly the single greatest air polluter? |LineColor = DBE9F4 }} |}
    ==Specials== === Episode SP11 – "Young Scientists Special"=== * Original airdate: April 26, 2008 on [[Science Channel]] This episode aired first on [[Science Channel]], as opposed to the show's regular home of [[Discovery Channel]]. A team of winners in Discovery's "Young Scientist Challenge" competitions tested environmental myths with the team. Former MythBuster [[Scottie Chapman]] returned to assist with a myth. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Greenhouse gases increase the amount of heat absorbed by air. | Confirmed | Airtight containers with carbon dioxide or methane added got one degree Celsius (2 °F) hotter than regular when heated by a hot lamp. |- | [[Electric car]]s are more sluggish than [[gasoline]]-powered cars. | Busted | They first had Jamie drive Brandon (a Young Scientist Challenge winner) in both a gas and electric consumer grade car, and blindfolded Brandon and covered Jamie's ears to see if they could tell the difference. Brandon couldn't tell, but being an experienced driver, Jamie was able to immediately tell based on the electric car's acceleration. Then Adam, Jamie, and Brandon built an electric go-kart using lithium iron phosphate batteries and tested it against a gas go-kart. Despite weighing twice as much as the gas go-kart, the electric go-kart performed about the same. Then they went to a professional track and watched the KillaCycle, an electric drag motorcycle race against a stock gas motorcycle. The gas motorcycle won by a slight margin. Then they had the X1 electric sports car race against an F430 Ferrari, and while the Ferrari's top speed was faster, the electric car accelerated faster and beat it in a drag race. Finally, they had the electric car race against a FJR50 Formula 3 race car. While the Formula 3 car easily beat the electric car, the electric car is considered a "street car," not a race car, and it did well enough that they proclaimed electric cars to be anything but slow. |- | Cows hurt the environment. | Confirmed | Cows emit [[methane]]—though not mostly from flatulence, but from belching — and their feces emit even more methane once they begin rotting. Since there are so many cows, the methane contributes significantly to global warming. |- | Cow manure can be used to help the environment. | Confirmed | Cow manure can be used to power things. The Young Scientists helped collect cow manure and extracted methane gas from it. Grant hooked up the methane gas and used it to power a hand lawnmower. They then saw that the farm where they had collected cow manure from received 90% of its electricity from its own manure-powered generator. |} ==Mini Myths== The mini-myths are shown in video clips that are available from the [[Discovery Channel]] website, as well as during the commercials in between ''MythBusters'' episodes. ==="Egg-uinox"=== The Egg-uinox myth was perhaps too short to air in any episode, as it was easily and conclusively busted.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/egguinox.html|title=The Egg-uinox|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} {| class="wikitable" ! Myth statement ! Status ! Notes |- | An egg can be balanced on its ends only during the spring and fall [[equinox]]. | style="color:red" | Busted | This is a [[China|Chinese]] folk belief, sometimes called [[Egg of Li Chun|Li Chun egg balancing]] after the first day of spring in the Chinese calendar. There is nothing special about the spring and fall equinoxes that allows an egg to balance on end. A person with enough [[dexterity]] can do it on any day of the year. Hard boiled eggs balance better than raw eggs, however. |} ==="Breakstep Bridge"=== In a revisit of the [[MythBusters (2004 season)#Breakstep Bridge|Breakstep Bridge]] myth, Adam and Jamie decide that the suspension bridge that Adam had built was too stable to accurately test, so they build a simple [[beam bridge]] and test it under Adam's weight.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/breakstep.html|title=Breakstep Bridge|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} This test was also aired in ''[[#Outtakes|MythBusters Outtakes]]''. {| class="wikitable" ! Myth statement ! Status ! Notes |- | A bridge can be collapsed by the vibration caused by pedestrian traffic. The theory was soldiers break step on bridge, because if their march gets a resonant frequency of the bridge, it will snap the bridge. | style="color:orange" | Plausible | The bridge was able to hold Adam's weight until he started bouncing on it. |} ==="Mini Shark Myths"=== The mini shark myths, while related to Discovery Channel's Shark Week, are not related to the movie ''Jaws'' in particular.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/sharkmyths/sharkmyths.html|title=Shark Mini-Myths|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} {| class="wikitable" ! Myth statement ! Status ! Notes |- | Sharks tend to be attracted to brighter colors like yellow. | style="color:orange" | Plausible | When all the results were calculated, the sharks tested preferred to go for the "yum-yum yellow" bait bag before the other ones (red, blue, black, white, silver). Though they did also go for the silver and black ones. |- | Sharks can detect a single drop of blood dropped into a pool of water. | style="color:red" | Busted | The sharks detected fish blood, however they either did not detect human blood or did not care about it. Also, like any scent, the sharks weren't able to detect the blood until their noses came into contact with the blood particles, and the smell grew weaker as the blood got diluted by the water, meaning that a single drop of blood in a particular area of the pool would not be detectable by any shark that was not in that area, and was not swimming right into the blood. However, the Mythbusters only used [[lemon shark]]s, and [[great white shark|great white]]s or [[bull shark]]s might have gotten different results. |- | A shark's skin is rough enough to be used as [[sandpaper]]. | style="color:green" | Confirmed | When compared to various grains of sandpaper, the sharkskin that Adam and Jamie acquired was comparable to a very high-grain (400 to 600) of sandpaper, and can be used as such, even on a rotary sander. |- | There is a [[rule of thumb]] a casual observer can use to adequately estimate the size of a shark. | style="color:red" | Busted | Out of all the measurements taken of sharks of various species, only one (from nosetip to dorsal fin tip) could consistently be used to estimate the shark's size, and that requires knowledge of the specific shark species and an up-close measurement that might be too difficult and dangerous to be done by a casual observer. |} ==Outtakes== During live appearances by the MythBusters, they have screened additional segments that were not aired. ==="Facts About Flatulence"=== There were two additional myths addressed in addition to those in the ''[[MythBusters (2006 season)#Franklin's Kite|Franklin's Kite]]'' episode. These two myths did not air because they were thought to be inappropriate for younger viewers. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Attractive women do not pass gas. | style="color:red" | Busted | Kari wore underwear equipped with a microphone connected to an amplifier and a [[hydrogen sulfide]] meter. The meter malfunctioned, giving false positive readings. However, the microphone did record the sound of a released flatus.{{Cite web|url=http://www.youtube.com/watch?v=JisgLhWghRQ|title=Un-Air-able Banned Mythbuster Fart Episode part 1 Keri Byron|publisher=[[YouTube]]|accessdate=October 25, 2009}} |- | A [[flatus]] [[Fart lighting|can be ignited]]. | style="color:green" | Confirmed | Adam had some initial performance anxiety, but finally did release a flatus that could be ignited by a butane lighter.{{Cite web|url=http://www.youtube.com/watch?v=BqFRBHPIE-w|title=Un-Air-able Banned Mythbuster Fart episode part 2|publisher=[[YouTube]]|accessdate=October 25, 2009}} The flammable methane within a regular flatus, despite only making up about 7% of the flatus' gasses, is still enough to set it alight upon release (when it first contacts and mixes with the air, but before it can diffuse altogether). This segment was later aired as part of the "Top 25 Moments" special on June 16, 2010. |} ==="MythBusters Teeth Challenge"=== Less a challenge than an inside joke. The MythBusters received many e-mails from fans complaining about Adam's brown teeth. This was originally planned for the "[[MythBusters (2006 season)#Episode 55 – "Steam Cannon"|Steam Cannon]]" episode. However, on the Discovery Europe version, it is included in the episode. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Of all the MythBusters, Adam is the one with the brownest teeth. | Busted, then Confirmed | Jamie, Adam, Tory, and Grant all had their teeth checked by Kari. At first Jamie was the one with the brownest teeth, not Adam. However, after hearing the news, he had his [[Tooth bleaching|teeth bleached]] to make them white again. After this, Adam did have the brownest teeth. The overall result, from best to worst: Grant, Tory, Adam, and finally Jamie (before his bleaching). |} ==[[BBC Two]] re-edited half hour shows== {{inc-video}} [[BBC Two]]'s editions of ''MythBusters'' are narrated by [[Rufus Hound]] in an energetic and irreverent style. {| class="wikitable" ! Date broadcast ! Myths |- | July 27, 2006 | [[MythBusters (2003 season)#Penny Drop|Penny Drop]], [[MythBusters (2003 season)#Who Gets Wetter?|Who Gets Wetter?]], [[MythBusters (2003 season)#Exploding Toilet|Exploding Toilet]] |- | August 3, 2006 | [[MythBusters (2003 season)#CD-ROM Shattering|CD-ROM Shattering]], [[MythBusters (2003 season)#Silicone Breasts|Silicone Breasts]], [[MythBusters (2003 season)#Cell Phone Destruction|Cell Phone Destruction]] |- | September 7, 2006 | [[MythBusters (2003 season)#Lightning Strikes Tongue Piercing|Lightning Strikes Tongue Piercing]], [[MythBusters (2003 season)#101 Uses For Cola|Cola Myths (partial; cleaning blood, pennies and chrome, dissolving teeth and steaks)]], [[MythBusters (season 1)#Hammer Bridge Drop|Hammer Bridge Drop]] |- | September 14, 2006 | [[List of MythBusters pilot episodes#Pilot 1 – "Jet Assisted Chevy, Pop Rocks and Soda"|JATO Car, Pop Rocks and Soda (called "Space Dust" in the British narration, as it is the more common name for Pop Rocks in the UK)]] |- | September 21, 2006 | [[MythBusters (2003 season)#Buried Alive|Buried Alive]], [[MythBusters (2003 season)#Beat the Breath Test|Beat the Breath Test]] |- | September 28, 2006 | [[MythBusters (2004 season)#Explosive Decompression|Explosive Decompression]], [[MythBusters (2004 season)#Rear Axle|Rear Axle]], [[MythBusters (2004 season)#Frog Giggin'|Frog Giggin']] |- | October 5, 2006 | [[MythBusters (2004 season)#The Mad Trombonist|Mad Trombonist]], [[MythBusters (2004 season)#Goldfish Memory|Goldfish Memory]], [[MythBusters (2004 season)#Sinking Titanic|Down with the Titanic]] |- | October 12, 2006 |[[MythBusters (2003 season)#Escape From Alcatraz|Escape from Alcatraz]], [[MythBusters (2003 season)#Stud Finders & Mind Control Chips|Mind Control Chips]], [[MythBusters (2003 season)#Does a Duck's Quack Echo?|Does a Duck's Quack Echo?]] |- | October 19, 2006 |[[MythBusters (2004 season)#Rowing Water Skier|Row Skiing]], [[MythBusters (2004 season)#Toothbrush Surprise|Surprise Toothbrush]], [[MythBusters (2004 season)#Breakstep Bridge|Breakstep Bridge]] |- | October 31, 2006 | [[MythBusters (2004 season)#Buried in Concrete|The Hunt for Hoffa]], [[MythBusters (2004 season)#Daddy Long-Legs|Daddy Long-Legs]], [[MythBusters (2004 season)#Jet Taxi|Jet Taxi]] |- | November 7, 2006 | [[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Lawn Chair Balloon]], [[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Poppy Seed Drug Test]], ''[[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Goldfinger]]'' |- | November 14, 2006 | [[MythBusters (2004 season)#Chicken Gun|Chicken Gun (frozen or thawed?)]], [[MythBusters (2004 season)#Killer Washing Machine|Killer Laundry!]] |- | February 19, 2007 | [[List of MythBusters pilot episodes#Pilot 2 – "Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer"|Vacuum Toilet]], [[List of MythBusters pilot episodes#Pilot 2 – "Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer"|Exploding Shopping]] |} ==See also== * [[List of MythBusters episodes]] ==References== {{Reflist}} ==External links== * [http://dsc.discovery.com/fansites/mythbusters/mythbusters.html MythBusters Official site] * [http://drmikessteakdinner.com/2007/03/15/so-do-pretty-girls-fart/ View the ''Facts About Flatulence'' outtakes] * {{imdb title|id=0383126|title=MythBusters}} {{MythBusters}} {{DEFAULTSORT:Mythbusters}} [[Category:Lists of MythBusters episodes|Special]] [[nl:MythBusters afleveringen: Specials]] [[ru:Разрушители легенд: специальные выпуски]] [[fi:Luettelo televisiosarjan Myytinmurtajat erikoisjaksoista]] raw-List+of+high+schools+in+San+Diego+County%2C+California.wikitext000066400000000000000000000170021335270560400573340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitextThis is a '''list of high schools in [[San Diego County, California]]'''. It includes public and private schools and is arranged by school district (public schools) or affiliation (private schools). These schools offer grades 9 through 12. Junior High schools are not listed here. ==Public schools== ===Borrego Springs Unified School District=== *[[Borrego Springs High School]], Borrego Springs *Palm Canyon High School (continuation), Borrego Springs ===Coronado Unified School District=== *[[Coronado High School (Coronado, California)|Coronado High School]], Coronado *Palm Academy for Learning, Coronado ===[[Escondido Union School District|Escondido Union High School District]]=== *Center City High School, Escondido *Escondido Charter High School, Escondido *[[Escondido High School]], Escondido *[[Orange Glen High School]], Escondido *[[San Pasqual High School]], Escondido *Valley High School (continuation), Escondido *[[The Classical Academy High School (California)|Classical Academy High School]] ===Fallbrook Union High School District=== *[[Fallbrook Union High School]], Fallbrook *Ivy High School (continuation), Fallbrook *Oasis High School (alternative), Fallbrook ===[[Grossmont Union High School District]]=== *[[Chaparral High School (El Cajon)|Chaparral High School]] (continuation), El Cajon *[[El Cajon Valley High School]], El Cajon *[[El Capitan High School]], Lakeside *[[Granite Hills High School (El Cajon, California)|Granite Hills High School]], El Cajon *[[Grossmont High School]], La Mesa/El Cajon *[[Grossmont Middle College High School]], El Cajon *[[Helix High School]], La Mesa *[[Monte Vista High School (Spring Valley, California)|Monte Vista High School]], Spring Valley *[[Mount Miguel High School]], Spring Valley *[[Santana High School]], Santee *[[Steele Canyon High School]], Spring Valley *[[Valhalla High School (El Cajon, California)|Valhalla High School]], El Cajon *[[West Hills High School]], Santee ===Julian Union High School District=== *[[Julian High School]], Julian *Redding (Ray) High (continuation), Julian *Summit High Community Day, Julian ===Lakeside Union School District=== *[[River Valley Charter School]], Lakeside ===Mountain Empire Unified School District=== *[[Mountain Empire High School]], Pine Valley ===Oceanside Unified School District=== *[[El Camino High School (Oceanside)|El Camino High School]], Oceanside *[[Oceanside High School]], Oceanside *Oceanside School of Business and Technology, Oceanside *Pacific View Charter School, Oceanside ===[[Poway Unified School District]]=== *[[Del Norte High School (San Diego, California)|Del Norte High School]], San Diego *[[Mount Carmel High School (San Diego, California)|Mount Carmel High School]], San Diego *[[Poway High School]], Poway *[[Rancho Bernardo High School]], San Diego *[[Westview High School (San Diego)|Westview High School]], San Diego ===Ramona Unified School District=== *Montecito High School (alternative), Ramona *Mountain Valley Academy High School, Ramona *[[Ramona High School (Ramona, California)|Ramona High School]], Ramona ===[[San Diego City Schools|San Diego Unified School District]]=== {{:San Diego Unified School District}} ===[[San Dieguito Union High School District]]=== *[[Canyon Crest Academy]], San Diego *[[La Costa Canyon High School]], Carlsbad *North Coast High School (alternative) *[[San Dieguito Academy]], Encinitas *Sunset High School (alternative) *[[Torrey Pines High School]], San Diego ===San Marcos Unified School District=== *Bayshore Prep Charter School, San Marcos *Foothills High (alternative), San Marcos *[[Mission Hills High School]], San Marcos *[[San Marcos High School (San Marcos, California)|San Marcos High School]], San Marcos *Twin Oaks High School (alternative), San Marcos ===[[Sweetwater Union High School District]]=== *[[Bonita Vista High School]], Chula Vista *[[Castle Park High School]], Chula Vista *[[Chula Vista High School]], Chula Vista *[[Eastlake High School (Chula Vista, California)|Eastlake High School]], Chula Vista *[[Hilltop High School]], Chula Vista *MAAC Community Charter School, Chula Vista *[[Mar Vista High School]], Imperial Beach *[[Montgomery High School, San Diego]] *[[Olympian High School]], Chula Vista *[[Options Secondary School]], Chula Vista *[[Otay Ranch High School]], Chula Vista *Palomar High School, Chula Vista *[[San Ysidro High School]], San Diego *[[Southwest Senior High School]], San Diego *[[Sweetwater High School]], National City *[[High School of Roque]],San Diego ===Valley Center-Pauma Unified School District=== *[[Valley Center High School]], Valley Center *Valley Center Middle School, Valley Center *Valley Center Elementary, Valley Center *Valley Center Primary, Valley Center *Valley Center Lilac Elementary, Valley Center *Pauma Valley School K-8, Pauma Valley *Oak Glen High School (Continuation), Valley Center *Valley Center Independent Study, Valley Center *Valley Center Adult Education, Valley Center ===Vista Unified School District=== * [[Guajome Park Academy]] (charter), Vista * [[Rancho Buena Vista High School]], Vista * [[Vista High School (Vista, California)|Vista High School]], Vista * North County Trade Tech High School (charter), Vista ===Warner Unified School District=== *[[Warner Middle / High School]], Warner Springs *San Jose Valley Continuation High School, Warner Springs ==Private schools== ===Baptist=== ===[[Roman Catholic Diocese of San Diego|Catholic]]=== {{:Roman Catholic Diocese of San Diego}} ===Episcopal=== *[[The Bishop's School (California)|The Bishop's School]], La Jolla ===Jewish=== *[[San Diego Jewish Academy]], San Diego *[[Southern California Yeshiva High School]], San Diego *[[Torah High Schools of San Diego]], San Diego ===Lutheran=== *[[Lutheran High School of San Diego]], San Diego *[[Escondido Adventist Academy]], Escondido *[[San Diego Academy]], National City ===Non-Denominational=== *Maranatha Christian Schools, San Diego *[[Calvin Christian School (Escondido, California)]] ===Nonsectarian=== *[http://www.tcps.org The Child's Primary School], San Diego *Carlsbad Seaside Academy, Carlsbad *Carlsbad Village Academy, Carlsbad *[[Francis W. Parker School (San Diego)|Francis W. Parker School]], San Diego *[[Grauer School|The Grauer School]], Encinitas *[[Halstrom High School]], Oceanside *[[Halstrom High School]], San Diego *[[La Jolla Country Day School]], La Jolla *Pacific Academy International, Encinitas *Pacific Ridge School, Carlsbad ==Closed schools== *Sun Valley Charter High School, Ramona. Closed as of February 3, 2008 due to lack of funding.[http://www.ramonasentinel.com/default.asp?sourceid=&smenu=1&twindow=&mad=&sdetail=5118&wpage=1&skeyword=&sidate=&ccat=&ccatm=&restate=&restatus=&reoption=&retype=&repmin=&repmax=&rebed=&rebath=&subname=&pform=&sc=1085&hn=ramonasentinel&he=.com Ramona California's Community Newspaper]) ==See also== *[[List of high schools in California]] *[[List of school districts in California]] *[[Lists of school districts in California by county]] *[[List of school districts in San Diego County, California]] *[[Primary and secondary schools in San Diego, California]] *[[List of closed secondary schools in California]] == References == ==External links== *[http://www.sdcoe.k12.ca.us/ San Diego County Office of Education] *[http://california.schooltree.org/high/San-Diego-County-Schools.html San Diego County Schools], list of schools from SchoolTree.org [[Category:High schools in San Diego County, California|*]] [[Category:Lists of schools in California|California, San Diego County]] raw-Projet%3ABretagne%2F%C3%89bauches+Bretagne.wikitext000066400000000000000000002405031335270560400546700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitextLes 1308 articles suivants ont un bandeau d'ébauche sur un sujet ne concernant pas la Bretagne, tout en ayant un bandeau de portail lié à la Bretagne (c'est-à-dire [[Portail:Bretagne]], [[Portail:Côtes-d'Armor]], [[Portail:Saint-Brieuc]], [[Portail:Finistère]], [[Portail:Brest]], [[Portail:Quimper]], [[Portail:Ille-et-Vilaine]], [[Portail:Rennes]], [[Portail:Saint-Malo]], [[Portail:Morbihan]], [[Portail:Lorient]], [[Portail:Vannes]], [[Portail:Histoire de Bretagne]], [[Portail:Duché de Bretagne]], [[Portail:Musique bretonne]], [[Portail:Loire-Atlantique]], [[Portail:Nantes]] ou [[Portail:Saint-Nazaire]]).
    [[2e régiment du matériel]][[Portail:Rennes]]
    [[3e régiment d'infanterie de marine]][[Portail:Vannes]]
    [[ABC Nantes]][[Portail:Nantes]]
    [[ASPTT Nantes]][[Portail:Nantes]]
    [[ASPTT Nantes football]][[Portail:Nantes]]
    [[Abbaye Notre-Dame de Daoulas]][[Portail:Finistère]]
    [[Abbaye Notre-Dame de Langonnet]][[Portail:Morbihan]]
    [[Abbaye Notre-Dame de Lanthénac]][[Portail:Bretagne]], [[Portail:Côtes-d'Armor]]
    [[Abbaye Saint-Jacques de Montfort]][[Portail:Ille-et-Vilaine]]
    [[Abbaye Saint-Michel de Kergonan]][[Portail:Morbihan]]
    [[Abbaye Saint-Sauveur de Redon]][[Portail:Ille-et-Vilaine]]
    [[Abbaye Sainte-Marie de Pornic]][[Portail:Loire-Atlantique]]
    [[Abbaye de Saint-Jean-des-Prés]][[Portail:Morbihan]]
    [[Abel Durand]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Abysses (album)]][[Portail:Musique bretonne]]
    [[Adolphe Moitié]][[Portail:Nantes]]
    [[Agnès Giard]][[Portail:Vannes]]
    [[Airon]][[Portail:Ille-et-Vilaine]]
    [[Alain Barrière]][[Portail:Morbihan]]
    [[Alain II de Rohan]][[Portail:Duché de Bretagne]]
    [[Alain III de Rohan]][[Portail:Duché de Bretagne]]
    [[Alain Le Quernec]][[Portail:Morbihan]]
    [[Alain Thiboult]][[Portail:Vannes]]
    [[Albert Caradec]][[Portail:Morbihan]]
    [[Albert Louppe]][[Portail:Finistère]]
    [[Alex Dupont]][[Portail:Brest]]
    [[Alfred Lallié]][[Portail:Nantes]]
    [[Alix de Bretagne (1297-1377)]][[Portail:Duché de Bretagne]]
    [[Alix de Thouars]][[Portail:Duché de Bretagne]]
    [[Alphonse Gasnier-Duparc]][[Portail:Ille-et-Vilaine]]
    [[Alphonse de Callac]][[Portail:Ille-et-Vilaine]]
    [[Amicale Laïque Bruz TT]][[Portail:Rennes]]
    [[Amicale sportive de Vitré]][[Portail:Ille-et-Vilaine]]
    [[An heol a zo glaz]][[Portail:Musique bretonne]]
    [[André Fauvel]][[Portail:Quimper]]
    [[André Le Dissez]][[Portail:Bretagne]]
    [[André Le Floch]][[Portail:Vannes]]
    [[André Loyen]][[Portail:Morbihan]]
    [[Angers-Nantes Opéra]][[Portail:Nantes]]
    [[Anniverscène]][[Portail:Musique bretonne]]
    [[Anthony Masselin]][[Portail:Musique bretonne]]
    [[Anthony Palou]][[Portail:Quimper]]
    [[Anthyme-Denis Cohon]][[Portail:Bretagne]]
    [[Antoine Dufour (homme politique)]][[Portail:Nantes]]
    [[Antoine-Mathieu-Alexandre Jaquemet]][[Portail:Nantes]]
    [[Antoinette de Maignelais]][[Portail:Duché de Bretagne]]
    [[Aqueduc de la Minette]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Ar-Men (bière)]][[Portail:Bretagne]]
    [[Ardenne (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Arguenon]][[Portail:Bretagne]]
    [[Aristide Locquet de Grandville]][[Portail:Loire-Atlantique]]
    [[Armand Corre]][[Portail:Bretagne]]
    [[Armand Fouillen]][[Portail:Bretagne]]
    [[Armand Félix Marie Jobbé-Duval]][[Portail:Bretagne]]
    [[Armand Rousseau]][[Portail:Finistère]]
    [[Armand du Cambout]][[Portail:Bretagne]]
    [[Armel (prénom)]][[Portail:Bretagne]]
    [[Armel de Wismes]][[Portail:Bretagne]], [[Portail:Nantes]]
    [[Armorique au Haut Moyen Âge]][[Portail:Histoire de Bretagne]]
    [[Armorloricus davidi]][[Portail:Finistère]]
    [[Armorloricus elegans]][[Portail:Finistère]]
    [[Armée des côtes de Brest]][[Portail:Bretagne]], [[Portail:Brest]]
    [[Arnaud Cazin d'Honincthun]][[Portail:Finistère]]
    [[Arnaud Hybois]][[Portail:Morbihan]]
    [[Arnaud d'Ossat]][[Portail:Rennes]]
    [[Arrondissement de Brest]][[Portail:Finistère]]
    [[Arrondissement de Dinan]][[Portail:Côtes-d'Armor]]
    [[Arrondissement de Guingamp]][[Portail:Côtes-d'Armor]]
    [[Arrondissement de Morlaix]][[Portail:Bretagne]]
    [[Arrondissement de Redon]][[Portail:Ille-et-Vilaine]]
    [[Arsène Leloup]][[Portail:Nantes]]
    [[Art celte]][[Portail:Bretagne]]
    [[Arthur Regnault]][[Portail:Ille-et-Vilaine]]
    [[Arzel Even]][[Portail:Bretagne]]
    [[Association sportive brestoise]][[Portail:Brest]]
    [[Astropolis]][[Portail:Finistère]]
    [[Ateliers et chantiers de Bretagne]][[Portail:Bretagne]]
    [[Ateliers orléanais de réalisations ferroviaires]][[Portail:Loire-Atlantique]]
    [[Auguste Le Goff]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Auguste Pageot]][[Portail:Nantes]]
    [[Auguste-René-Marie Dubourg]][[Portail:Rennes]]
    [[Augustin Bernard François Le Goazre de Kervélégan]][[Portail:Finistère]]
    [[Augustin de Loynes]][[Portail:Nantes]]
    [[Augustin-Jean Malassis]][[Portail:Nantes]]
    [[Autour du Blues]][[Portail:Côtes-d'Armor]]
    [[Aéroport de Saint-Nazaire - Montoir]][[Portail:Loire-Atlantique]]
    [[Bagad Nominoë du Pays de Redon]][[Portail:Ille-et-Vilaine]], [[Portail:Morbihan]], [[Portail:Musique bretonne]], [[Portail:Loire-Atlantique]]
    [[Baillistre]][[Portail:Duché de Bretagne]]
    [[Banc de Bilho]][[Portail:Loire-Atlantique]]
    [[Barocks]][[Portail:Côtes-d'Armor]]
    [[Barzaz Breiz]][[Portail:Musique bretonne]]
    [[Base aérienne 271 Rennes Saint Jacques]][[Portail:Bretagne]]
    [[Base d'aéronautique navale de Lanvéoc-Poulmic]][[Portail:Bretagne]]
    [[Base de plein air et de loisirs de Guerlédan]][[Portail:Bretagne]]
    [[Basset fauve de Bretagne]][[Portail:Bretagne]]
    [[Bataille de Carnac]][[Portail:Morbihan]]
    [[Bataille de Grand-Champ]][[Portail:Morbihan]]
    [[Bataille de La Roche-Derrien]][[Portail:Duché de Bretagne]]
    [[Bataille de Machecoul (juin 1793)]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Batscap]][[Portail:Finistère]]
    [[Beg Meil]][[Portail:Bretagne]]
    [[Beg ar C'hra Communauté]][[Portail:Côtes-d'Armor]]
    [[Belle Angèle (voilier)]][[Portail:Bretagne]]
    [[Belle et rebelle]][[Portail:Musique bretonne]]
    [[Belle-Étoile]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Benoît Le Roux]][[Portail:Bretagne]]
    [[Benoît Vaugrenard]][[Portail:Vannes]]
    [[Bernard (cardinal, 1151)]][[Portail:Rennes]]
    [[Bernard Alliot]][[Portail:Bretagne]]
    [[Bernard Bretonnière]][[Portail:Bretagne]]
    [[Bernard Gestin]][[Portail:Bretagne]]
    [[Bernard Mallet]][[Portail:Nantes]]
    [[Bernard Reyt]][[Portail:Bretagne]]
    [[Bernard Tanguy]][[Portail:Histoire de Bretagne]]
    [[Bernez Tangi]][[Portail:Musique bretonne]]
    [[Berthe de Blois]][[Portail:Duché de Bretagne]]
    [[Bertrand Hémonic]][[Portail:Morbihan]]
    [[Bertrand de Broc]][[Portail:Bretagne]]
    [[Best of Gilles Servat : 40 ans de succès]][[Portail:Musique bretonne]]
    [[Beuvron (affluent de la Sélune)]][[Portail:Ille-et-Vilaine]]
    [[Bidet (cheval)]][[Portail:Bretagne]]
    [[Bigard (entreprise)]][[Portail:Finistère]]
    [[Billy Ze Kick et les Gamins en Folie]][[Portail:Rennes]]
    [[Bizu]][[Portail:Bretagne]]
    [[Blanche de Castille (Nantes)]][[Portail:Nantes]]
    [[Boehlen]][[Portail:Bretagne]]
    [[Bonaventure Chailland]][[Portail:Bretagne]]
    [[Brasserie Mor Braz]][[Portail:Morbihan]]
    [[Brasserie Sainte-Colombe]][[Portail:Bretagne]]
    [[Brasserie Tri Martolod]][[Portail:Bretagne]]
    [[Brasserie de Bretagne]][[Portail:Finistère]]
    [[Breiz-Izel]][[Portail:Musique bretonne]]
    [[Bretagne (trois-mâts)]][[Portail:Bretagne]]
    [[Bretagne vivante]][[Portail:Bretagne]]
    [[Bretagne-Plants]][[Portail:Bretagne]]
    [[Brigitte Barazer de Lannurien]][[Portail:Bretagne]]
    [[Britt]][[Portail:Bretagne]]
    [[Brivet]][[Portail:Saint-Nazaire]]
    [[Bugaled Breizh]][[Portail:Bretagne]]
    [[C'est un pays]][[Portail:Musique bretonne]]
    [[C2C (groupe)]][[Portail:Nantes]]
    [[Café du bon coin]][[Portail:Musique bretonne]]
    [[Camille François Philippe de Farcy]][[Portail:Bretagne]]
    [[Camille Guérini]][[Portail:Morbihan]]
    [[Camille Le Menn]][[Portail:Bretagne]]
    [[Camille Robida]][[Portail:Nantes]]
    [[Canal B]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Canoë Kayak Club Acigné]][[Portail:Rennes]]
    [[Canton de Brest-Saint-Marc]][[Portail:Finistère]]
    [[Canton de Lanvollon]][[Portail:Côtes-d'Armor]]
    [[Canton de Rezé]][[Portail:Loire-Atlantique]]
    [[Cap Sizun]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Caradoc Freichfras]][[Portail:Vannes]]
    [[Cartopole]][[Portail:Bretagne]], [[Portail:Morbihan]]
    [[Cathédrale Saint-Étienne de Saint-Brieuc]][[Portail:Saint-Brieuc]]
    [[Celtigel]][[Portail:Côtes-d'Armor]]
    [[Centre d’étude et de valorisation des algues]][[Portail:Bretagne]]
    [[Centre hospitalier universitaire de Nantes]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Centre nautique municipal de Douarnenez]][[Portail:Finistère]]
    [[Centre sportif et culturel Laetitia]][[Portail:Nantes]]
    [[Championnat de Bretagne de cross-country]][[Portail:Bretagne]]
    [[Championnats d'Europe de char à voile 1969]][[Portail:Ille-et-Vilaine]]
    [[Championnats du monde de char à voile 2012]][[Portail:Ille-et-Vilaine]]
    [[Championnats du monde de cyclo-cross 2004]][[Portail:Loire-Atlantique]]
    [[Chantez la vie, l'amour et la mort]][[Portail:Musique bretonne]]
    [[Chantier Krebs]][[Portail:Bretagne]]
    [[Chantiers de la Loire]][[Portail:Nantes]]
    [[Chapelle de Lochrist]][[Portail:Morbihan]]
    [[Chapelle de Prigny]][[Portail:Loire-Atlantique]]
    [[Chapelle des Ursulines (Ancenis)]][[Portail:Loire-Atlantique]]
    [[Charles Brunellière]][[Portail:Bretagne]], [[Portail:Nantes]]
    [[Charles Daniélou]][[Portail:Finistère]]
    [[Charles Gwennou]][[Portail:Bretagne]]
    [[Charles Géniaux]][[Portail:Bretagne]]
    [[Charles Harouys]][[Portail:Nantes]]
    [[Charles Huon de Penanster]][[Portail:Côtes-d'Armor]]
    [[Charles Joseph Lenoir]][[Portail:Rennes]]
    [[Charles Kérivel]][[Portail:Bretagne]]
    [[Charles Le Quintrec]][[Portail:Vannes]]
    [[Charles Meunier-Surcouf]][[Portail:Saint-Brieuc]]
    [[Charles Millardet]][[Portail:Rennes]]
    [[Charles de Gaulle (écrivain)]][[Portail:Bretagne]]
    [[Charles de La Monneraye]][[Portail:Morbihan]]
    [[Charles de La Noue]][[Portail:Côtes-d'Armor]]
    [[Charles de Rosmadec]][[Portail:Vannes]]
    [[Charles-Ange Laisant]][[Portail:Nantes]]
    [[Charles-Eutrope de La Laurencie]][[Portail:Nantes]]
    [[Charles-Marie de Faucigny-Lucinge]][[Portail:Côtes-d'Armor]]
    [[Charles-René Collin]][[Portail:Bretagne]]
    [[Charles-Tanguy Le Roux]][[Portail:Bretagne]]
    [[Chasse-marée (magazine)]][[Portail:Bretagne]]
    [[Chaumeré]][[Portail:Ille-et-Vilaine]]
    [[Chenal du Four]][[Portail:Bretagne]]
    [[Christian Troadec]][[Portail:Bretagne]]
    [[Christophe Coué]][[Portail:Morbihan]]
    [[Christophe Revel]][[Portail:Bretagne]]
    [[Christophe Rouxel]][[Portail:Morbihan]]
    [[Christophe-Louis Turpin de Crissé de Sanzay]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Château de Champtocé]][[Portail:Duché de Bretagne]]
    [[Château de Clairvaux]][[Portail:Ille-et-Vilaine]]
    [[Château de Lambilly]][[Portail:Morbihan]]
    [[Château de la Touche-Larcher]][[Portail:Morbihan]]
    [[Château du Pré-Clos]][[Portail:Morbihan]]
    [[Claie (rivière)]][[Portail:Morbihan]]
    [[Claire Huchet-Bishop]][[Portail:Morbihan]]
    [[Claude Vaillant]][[Portail:Bretagne]]
    [[Claude-René Pâris]][[Portail:Bretagne]]
    [[Club olympique briochin]][[Portail:Saint-Brieuc]]
    [[Clément Guillon]][[Portail:Quimper]]
    [[Clément Théaudin]][[Portail:Bretagne]]
    [[Cobac Parc]][[Portail:Bretagne]]
    [[Combat de Lamballe]][[Portail:Bretagne]]
    [[Combat de Vitré]][[Portail:Bretagne]]
    [[Commando Kieffer (marine nationale)]][[Portail:Lorient]]
    [[Communauté d'agglomération Cap Atlantique]][[Portail:Morbihan]], [[Portail:Loire-Atlantique]]
    [[Communauté d'agglomération de Saint-Brieuc]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Arguenon - Hunaudaye]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Callac - Argoat]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Centre Armor Puissance 4]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Guerlédan Mûr-de-Bretagne]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Hardouinais Mené]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Lamballe Communauté]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Paimpol-Goëlo]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Rance - Frémur]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de Dinan]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de Moyenne Vilaine et du Semnon]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes de Plancoët Val d'Arguenon]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de l'Aulne Maritime]][[Portail:Finistère]]
    [[Communauté de communes de la Baie du Kernic]][[Portail:Finistère]]
    [[Communauté de communes de la Baie du Mont Saint-Michel]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes de la Côte de Penthièvre]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de la Côte des Mégalithes]][[Portail:Morbihan]]
    [[Communauté de communes de la Presqu'île de Lézardrieux]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de la Région de Pleyben]][[Portail:Finistère]]
    [[Communauté de communes de la presqu'île de Crozon]][[Portail:Finistère]]
    [[Communauté de communes des Monts d'Arrée]][[Portail:Finistère]]
    [[Communauté de communes des Trois Rivières (Côtes-d'Armor)]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Coglais]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Haut Pays Bigouden]][[Portail:Finistère]]
    [[Communauté de communes du Kreiz-Breizh]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Mené]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays Guerchais]][[Portail:Bretagne]]
    [[Communauté de communes du Pays Léonard]][[Portail:Finistère]]
    [[Communauté de communes du Pays d'Aubigné]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays d'Iroise]][[Portail:Finistère]]
    [[Communauté de communes du Pays d'Uzel-près-l'Oust]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays d'Évran]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Belle-Isle-en-Terre]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Bourbriac]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Bégard]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Caulnes]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Châteaugiron]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Châteaulin et du Porzay]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Châtelaudren - Plouagat]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Corlay]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Dol-de-Bretagne et de la Baie du Mont Saint-Michel]][[Portail:Bretagne]]
    [[Communauté de communes du Pays de Landerneau-Daoulas]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Landivisiau]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Liffré]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Matignon]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Moncontour]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Montauban-de-Bretagne]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Plélan]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Saint-Aubin-du-Cormier]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Saint-Méen-le-Grand]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de la Bretagne romantique]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays du Guesclin]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays rochois (Côtes-d'Armor)]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Val d'Ille]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Yeun Elez]][[Portail:Finistère]]
    [[Communauté de communes du canton d'Antrain]][[Portail:Bretagne]]
    [[Communauté de communes du canton de Guichen]][[Portail:Ille-et-Vilaine]]
    [[Concarneau Cornouaille Agglomération]][[Portail:Finistère]]
    [[Congrès de Nantes]][[Portail:Nantes]]
    [[Congrès de Rennes]][[Portail:Rennes]]
    [[Conseil général des Côtes-d'Armor]][[Portail:Côtes-d'Armor]]
    [[Conseil général du Finistère]][[Portail:Finistère]]
    [[Conservatoire à rayonnement régional de Nantes]][[Portail:Nantes]]
    [[Conserverie Gonidec]][[Portail:Bretagne]]
    [[Coopagri Bretagne]][[Portail:Bretagne]]
    [[Corentin (voilier)]][[Portail:Bretagne]]
    [[Corentin Canevet]][[Portail:Bretagne]]
    [[Corn Bihan]][[Portail:Vannes]]
    [[Cour administrative d'appel de Nantes]][[Portail:Nantes]]
    [[Cour d'appel de Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Couvre-feu (festival)]][[Portail:Loire-Atlantique]]
    [[Crash de Quiberon]][[Portail:Morbihan]]
    [[Crialeïs]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Crédit mutuel Arkéa]][[Portail:Bretagne]]
    [[Crêpe bretonne]][[Portail:Bretagne]]
    [[Crêperie]][[Portail:Bretagne]]
    [[Cyndyddan]][[Portail:Bretagne]]
    [[Cynwyd ap Cynfelyn]][[Portail:Bretagne]]
    [[Cyril Yapi]][[Portail:Morbihan]]
    [[Cédric Morgan]][[Portail:Vannes]]
    [[Côte sauvage de la Presqu'île guérandaise]][[Portail:Loire-Atlantique]]
    [[Côtes d'Armor Cyclisme]][[Portail:Bretagne]]
    [[DGA Maîtrise de l'information]][[Portail:Rennes]]
    [[Dalh-Mad]][[Portail:Bretagne]]
    [[Daniel Lebée]][[Portail:Bretagne]]
    [[Darerca]][[Portail:Bretagne]]
    [[David Bouard]][[Portail:Bretagne]]
    [[David Chauvel]][[Portail:Rennes]]
    [[David Nal-Vad]][[Portail:Bretagne]]
    [[De sang, de sueur et d'amour]][[Portail:Musique bretonne]]
    [[Denis Moutel]][[Portail:Saint-Brieuc]]
    [[Denise Le Dantec]][[Portail:Bretagne]]
    [[Derby de l'Atlantique]][[Portail:Nantes]]
    [[Deskiñ d’an oadourien]][[Portail:Bretagne]]
    [[Deuxième bataille de Landévant (1795)]][[Portail:Morbihan]]
    [[Dialogues (librairie)]][[Portail:Bretagne]]
    [[Diboular]][[Portail:Bretagne]]
    [[Didier Chouat]][[Portail:Côtes-d'Armor]]
    [[Dieu a besoin des hommes]][[Portail:Finistère]]
    [[Diocèse de Quimper et Léon]][[Portail:Bretagne]], [[Portail:Quimper]]
    [[Diocèse de Saint-Brieuc et Tréguier]][[Portail:Bretagne]], [[Portail:Saint-Brieuc]]
    [[Diocèse de Vannes]][[Portail:Morbihan]]
    [[Discussion Wikipédia:Prise de décision/Bandeaux de portail]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Dix ans, dix filles]][[Portail:Musique bretonne]]
    [[Dom Louis Le Pelletier]][[Portail:Bretagne]]
    [[Domaine mégalithique des Pierres droites]][[Portail:Morbihan]]
    [[Dominique Irvoas-Dantec]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Dominique de Legge]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Dourduff (Rivière de Morlaix)]][[Portail:Bretagne]]
    [[Dremmwel]][[Portail:Bretagne]]
    [[Ecorurb]][[Portail:Rennes]]
    [[Edme Fouquet]][[Portail:Nantes]]
    [[Edmond Bertreux]][[Portail:Loire-Atlantique]]
    [[Edmond-Pierre Doré-Graslin]][[Portail:Loire-Atlantique]]
    [[Enez Koalen]][[Portail:Bretagne]]
    [[Enez Sun 3]][[Portail:Bretagne]]
    [[Enézy]][[Portail:Vannes]]
    [[Eon (rivière)]][[Portail:Bretagne]]
    [[Er Runio]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Ernest Guibourd de Luzinais]][[Portail:Nantes]]
    [[Ernest Le Barzic]][[Portail:Bretagne]]
    [[Ernest Rannou]][[Portail:Finistère]]
    [[Erwan]][[Portail:Bretagne]]
    [[Erwan Quintin]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Erwan Tabarly]][[Portail:Bretagne]]
    [[Escales (album)]][[Portail:Musique bretonne]]
    [[Estuaire de la Loire]][[Portail:Loire-Atlantique]]
    [[Estuaire de la Vilaine]][[Portail:Morbihan]]
    [[Eugène Brager de La Ville-Moysan]][[Portail:Rennes]]
    [[Eugène Cornu]][[Portail:Morbihan]]
    [[Eugène Hélary]][[Portail:Bretagne]]
    [[Eugène Lageat]][[Portail:Bretagne]]
    [[Eurofins Scientific]][[Portail:Nantes]]
    [[Evialis]][[Portail:Bretagne]]
    [[Fabrice Garin]][[Portail:Bretagne]]
    [[Famille O'Riordan]][[Portail:Bretagne]]
    [[Famille du Bot]][[Portail:Bretagne]]
    [[Fanch Stephan]][[Portail:Bretagne]]
    [[Fanch Vidament]][[Portail:Bretagne]]
    [[Fañch Peru]][[Portail:Bretagne]]
    [[Fañch Postic]][[Portail:Bretagne]]
    [[Ferdinand Baston de La Riboisière]][[Portail:Ille-et-Vilaine]]
    [[Ferdinand Le Drogo]][[Portail:Morbihan]]
    [[Fernand Crouan]][[Portail:Nantes]]
    [[Fernand Dauchot]][[Portail:Bretagne]]
    [[Fernand Guériff]][[Portail:Histoire de Bretagne]]
    [[Fernand Picot]][[Portail:Morbihan]]
    [[Fernand Rauzena]][[Portail:Rennes]]
    [[Fest Noz de Paname]][[Portail:Musique bretonne]]
    [[Festival Agrock]][[Portail:Rennes]]
    [[Festival Scopitone]][[Portail:Nantes]]
    [[Festival de Saint-Nolff]][[Portail:Vannes]]
    [[Festival de cinéma de Douarnenez]][[Portail:Finistère]]
    [[Firmin Le Bourhis]][[Portail:Bretagne]]
    [[Fleur de Mai (bateau)]][[Portail:Saint-Malo]]
    [[Flora (rivière)]][[Portail:Bretagne]]
    [[Florian Le Roy]][[Portail:Bretagne]]
    [[Fonderie d'Indret]][[Portail:Loire-Atlantique]]
    [[Forges des Salles]][[Portail:Bretagne]], [[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Fort Cigogne]][[Portail:Bretagne]]
    [[Fort National]][[Portail:Bretagne]]
    [[Forêt du Gâvre]][[Portail:Loire-Atlantique]]
    [[Fouace nantaise]][[Portail:Nantes]]
    [[Fougères communauté]][[Portail:Bretagne]]
    [[Foulques de Laval]][[Portail:Duché de Bretagne]]
    [[Foulées Briochines]][[Portail:Saint-Brieuc]]
    [[Francesco Buanomici]][[Portail:Nantes]]
    [[Francis Barbu]][[Portail:Quimper]]
    [[Francis Blin]][[Portail:Bretagne]]
    [[Francis Le Blé]][[Portail:Brest]], [[Portail:Morbihan]]
    [[Francis Pellerin]][[Portail:Bretagne]]
    [[Francis Portais]][[Portail:Nantes]]
    [[François André (homme politique)]][[Portail:Ille-et-Vilaine]]
    [[François Autain]][[Portail:Loire-Atlantique]]
    [[François Cuillandre]][[Portail:Brest]]
    [[François Erlenbach]][[Portail:Bretagne]]
    [[François Fellonneau]][[Portail:Nantes]]
    [[François Hippolyte Lalaisse]][[Portail:Bretagne]]
    [[François L'Archiver]][[Portail:Rennes]]
    [[François Le Douarec]][[Portail:Bretagne]]
    [[François Le Lay]][[Portail:Bretagne]]
    [[François Mellinet]][[Portail:Nantes]]
    [[François Mevellec]][[Portail:Bretagne]]
    [[François Valentin (peintre)]][[Portail:Bretagne]]
    [[François Vallée]][[Portail:Bretagne]]
    [[François-Charles Blacque-Belair]][[Portail:Finistère]]
    [[François-Charles Oberthur Fiduciaire]][[Portail:Rennes]]
    [[François-Marie-Bonaventure du Fou]][[Portail:Nantes]]
    [[François-Virgile Dubillard]][[Portail:Quimper]]
    [[Françoise Le Mer]][[Portail:Bretagne]]
    [[Frañsez Kervella]][[Portail:Bretagne]]
    [[Frugy]][[Portail:Quimper]]
    [[Frères de l'instruction chrétienne de Ploërmel]][[Portail:Bretagne]]
    [[Frédéric Adam]][[Portail:Bretagne]]
    [[Frédéric Cailliaud]][[Portail:Nantes]]
    [[Félix Fournier]][[Portail:Nantes]]
    [[Félix Martin-Feuillée]][[Portail:Ille-et-Vilaine]]
    [[Félix Pol Jobbé-Duval]][[Portail:Bretagne]]
    [[Fête du lait de mai]][[Portail:Nantes]]
    [[Gabriel Deshayes]][[Portail:Bretagne]]
    [[Gabriel Milin]][[Portail:Bretagne]]
    [[Gabrielle B.]][[Portail:Bretagne]]
    [[Gare de Beslé]][[Portail:Loire-Atlantique]]
    [[Gare de Massérac]][[Portail:Loire-Atlantique]]
    [[Gare de Sainte-Pazanne]][[Portail:Loire-Atlantique]]
    [[Gaston Veil]][[Portail:Nantes]]
    [[Gautier de Bentley]][[Portail:Duché de Bretagne]]
    [[Gaël Danic]][[Portail:Vannes]]
    [[Gaëtan Rondeau]][[Portail:Nantes]]
    [[Geneviève Asse]][[Portail:Vannes]]
    [[Geoffroi II de Rohan]][[Portail:Bretagne]]
    [[Geoffroy Drouet]][[Portail:Nantes]]
    [[Georges Arnoux]][[Portail:Musique bretonne]]
    [[Georges Maillols]][[Portail:Rennes]]
    [[Georges Talbourdet]][[Portail:Bretagne]]
    [[Georges-Robert Lefort]][[Portail:Bretagne]]
    [[Georges-Évariste Colombel]][[Portail:Nantes]]
    [[Gilbert Beaufranchet]][[Portail:Nantes]]
    [[Gilbert Le Chenadec]][[Portail:Morbihan]]
    [[Gilles Barbedette]][[Portail:Bretagne]]
    [[Gilles Servat en public]][[Portail:Musique bretonne]]
    [[Gireg]][[Portail:Bretagne]]
    [[Gouessant]][[Portail:Bretagne]]
    [[Goulven (prénom)]][[Portail:Bretagne]]
    [[Goulven Morvan]][[Portail:Bretagne]]
    [[Goulwen]][[Portail:Bretagne]]
    [[Goulwena an Henaff]][[Portail:Bretagne]]
    [[Govihan]][[Portail:Vannes]]
    [[Goélette paimpolaise]][[Portail:Côtes-d'Armor]]
    [[Grand Norven]][[Portail:Bretagne]]
    [[Grand Prix de Plumelec-Morbihan]][[Portail:Morbihan]]
    [[Grand Veïzit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Grand menhir brisé d'Er Grah]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Grand réservoir de Vioreau]][[Portail:Loire-Atlantique]]
    [[Groupama 3]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Groupe Beaumanoir]][[Portail:Bretagne]]
    [[Groupe CECAB]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Groupe Roullier]][[Portail:Saint-Malo]]
    [[Groupe Régional Indépendant]][[Portail:Nantes]]
    [[Groupe SIPA - Ouest-France]][[Portail:Rennes]]
    [[Groupe Yves Rocher]][[Portail:Bretagne]]
    [[Groupement de soutien de la base de défense de Rennes]][[Portail:Rennes]]
    [[Guillaume François Laennec]][[Portail:Nantes]]
    [[Guillaume Le Breton]][[Portail:Duché de Bretagne]]
    [[Guillaume Moullec]][[Portail:Bretagne]]
    [[Guillaume Ouvrouin (évêque de Léon)]][[Portail:Bretagne]]
    [[Guillaume Seignac]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Guillaume de Saint-André]][[Portail:Duché de Bretagne]]
    [[Guillaume-Marie-Joseph Labouré]][[Portail:Rennes]]
    [[Guillec]][[Portail:Bretagne]]
    [[Guingamp Communauté]][[Portail:Côtes-d'Armor]]
    [[Gustave Le Borgne de La Tour]][[Portail:Côtes-d'Armor]]
    [[Gustave de Closmadeuc]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Guy Bellay]][[Portail:Bretagne]]
    [[Guy de Penthièvre]][[Portail:Duché de Bretagne]]
    [[Guy de Salvaing de Boissieu]][[Portail:Morbihan]]
    [[Guy Étienne]][[Portail:Bretagne]]
    [[Guénane Cade]][[Portail:Morbihan]]
    [[Guérin de Rougé]][[Portail:Duché de Bretagne]]
    [[Gwenaël Kerléo]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Gwenaël Leduc]][[Portail:Bretagne]]
    [[Gwenegan Bui]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Gwilherm Dubourg]][[Portail:Bretagne]]
    [[Gwir Vretoned]][[Portail:Musique bretonne]]
    [[Gérard Le Cam]][[Portail:Côtes-d'Armor]]
    [[Gérard Rué]][[Portail:Bretagne]]
    [[HBC Nantes]][[Portail:Nantes]]
    [[Havoise de Normandie]][[Portail:Duché de Bretagne]]
    [[Havre de Rothéneuf]][[Portail:Bretagne]]
    [[Henri Anger]][[Portail:Bretagne]]
    [[Henri Battais]][[Portail:Bretagne]]
    [[Henri Bourgeois (militaire)]][[Portail:Morbihan]]
    [[Henri Lassourd]][[Portail:Bretagne]]
    [[Henri Le Breton]][[Portail:Bretagne]]
    [[Henri Maho]][[Portail:Bretagne]]
    [[Henri Marie Auguste Ferron de la Ferronnays]][[Portail:Loire-Atlantique]]
    [[Henri Poisson]][[Portail:Histoire de Bretagne]]
    [[Henri Quilgars]][[Portail:Histoire de Bretagne]]
    [[Henri de La Ferronnays (1876-1946)]][[Portail:Loire-Atlantique]]
    [[Henri-Marie Dubreil de Pontbriand]][[Portail:Vannes]]
    [[Henri-Marie-Claude de Bruc-Montplaisir]][[Portail:Vannes]]
    [[Hervé Budes de Guébriant]][[Portail:Bretagne]]
    [[Hervé Burillier]][[Portail:Vannes]]
    [[Hervé Le Boterf]][[Portail:Histoire de Bretagne]]
    [[Hervé Phélippeau]][[Portail:Morbihan]]
    [[Hippolyte Tréhiou]][[Portail:Vannes]]
    [[Hippolyte-Étienne Etiennez]][[Portail:Nantes]]
    [[Hirvoudou]][[Portail:Musique bretonne]]
    [[Historique du parcours européen du Football Club de Nantes]][[Portail:Nantes]]
    [[Hockey Club de Nantes]][[Portail:Nantes]]
    [[Holavre]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Hommage à René Guy Cadou]][[Portail:Musique bretonne]]
    [[Honoré-Charles Baston de La Riboisière]][[Portail:Ille-et-Vilaine]]
    [[Horn (Léon)]][[Portail:Bretagne]]
    [[Hotié de Viviane]][[Portail:Ille-et-Vilaine]]
    [[Hubert Guillotel]][[Portail:Histoire de Bretagne]]
    [[Hugues de Montrelais]][[Portail:Saint-Brieuc]], [[Portail:Duché de Bretagne]]
    [[Hélène Tanguy]][[Portail:Vannes]]
    [[Hélène de Laval]][[Portail:Bretagne]]
    [[Hémérica]][[Portail:Bretagne]]
    [[Hêtre de Ponthus]][[Portail:Bretagne]]
    [[Hôtel d'Asfeld]][[Portail:Saint-Malo]]
    [[Imbourc'h]][[Portail:Bretagne]]
    [[Institut de recherche en informatique et systèmes aléatoires]][[Portail:Rennes]]
    [[Inézic]][[Portail:Vannes]]
    [[Ise (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Ivona Martin]][[Portail:Bretagne]]
    [[Jacky Le Menn]][[Portail:Bretagne]]
    [[Jacqueline Chevé]][[Portail:Bretagne]]
    [[Jacqueline Lazard]][[Portail:Finistère]]
    [[Jacques Bonsergent]][[Portail:Morbihan]]
    [[Jacques Chazot]][[Portail:Lorient]]
    [[Jacques Cressard]][[Portail:Bretagne]]
    [[Jacques Fleurent]][[Portail:Bretagne]]
    [[Jacques Fournier (poète)]][[Portail:Bretagne]]
    [[Jacques Jullien]][[Portail:Rennes]]
    [[Jacques Le Cann]][[Portail:Bretagne]]
    [[Jacques Pellen]][[Portail:Musique bretonne]]
    [[Jacques Viot]][[Portail:Nantes]]
    [[Jacques de Menou (homme politique)]][[Portail:Finistère]]
    [[Jakez Cornou]][[Portail:Bretagne]]
    [[Janig Corlay]][[Portail:Bretagne]]
    [[Jazz à l'Ouest]][[Portail:Rennes]]
    [[Je ne hurlerai pas avec les loups]][[Portail:Musique bretonne]]
    [[Je vous emporte dans mon cœur (35 ans - 35 titres)]][[Portail:Musique bretonne]]
    [[Jean Allard de Grandmaison]][[Portail:Loire-Atlantique]]
    [[Jean Bothorel]][[Portail:Bretagne]]
    [[Jean Choleau]][[Portail:Bretagne]]
    [[Jean Clerfeuille]][[Portail:Nantes]]
    [[Jean Corne]][[Portail:Morbihan]]
    [[Jean Failler]][[Portail:Bretagne]]
    [[Jean Fourché]][[Portail:Nantes]]
    [[Jean Gainche]][[Portail:Bretagne]]
    [[Jean Guegueniat]][[Portail:Bretagne]]
    [[Jean Hamelin (politique)]][[Portail:Bretagne]]
    [[Jean II de Rougé]][[Portail:Duché de Bretagne]]
    [[Jean IV de Beaumanoir]][[Portail:Duché de Bretagne]]
    [[Jean IV de Brosse]][[Portail:Duché de Bretagne]]
    [[Jean Kerlévéo]][[Portail:Bretagne]]
    [[Jean Le Cour-Grandmaison]][[Portail:Loire-Atlantique]]
    [[Jean Le Guillou]][[Portail:Nantes]]
    [[Jean Le Guilly]][[Portail:Bretagne]]
    [[Jean Markale]][[Portail:Bretagne]]
    [[Jean Ollivro]][[Portail:Bretagne]]
    [[Jean Robic]][[Portail:Bretagne]]
    [[Jean Rouxel (chimiste)]][[Portail:Morbihan]]
    [[Jean Stalaven (Entreprise)]][[Portail:Bretagne]]
    [[Jean Tirilly]][[Portail:Finistère]]
    [[Jean Tricoire (médecin)]][[Portail:Bretagne]]
    [[Jean de Derval]][[Portail:Duché de Bretagne]]
    [[Jean de Laval-Châteaubriant]][[Portail:Duché de Bretagne]]
    [[Jean de Malestroit (cardinal)]][[Portail:Saint-Brieuc]], [[Portail:Nantes]]
    [[Jean de Samois]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Jean de la Grille]][[Portail:Duché de Bretagne]]
    [[Jean et Joël Martel]][[Portail:Loire-Atlantique]]
    [[Jean-Baptiste Barré]][[Portail:Rennes]]
    [[Jean-Baptiste Bompard]][[Portail:Bretagne]]
    [[Jean-Baptiste Corlobé]][[Portail:Bretagne]]
    [[Jean-Baptiste Duvoisin]][[Portail:Nantes]]
    [[Jean-Baptiste Martenot]][[Portail:Rennes]]
    [[Jean-Charles Chevillote]][[Portail:Bretagne]]
    [[Jean-Charles Perazzi]][[Portail:Bretagne]]
    [[Jean-Claude Andro]][[Portail:Bretagne]]
    [[Jean-Claude Caër]][[Portail:Bretagne]]
    [[Jean-Claude Le Chevère]][[Portail:Bretagne]]
    [[Jean-Claude Petit (politique)]][[Portail:Finistère]]
    [[Jean-François Dubois]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Jean-François Roger (musicien)]][[Portail:Musique bretonne]]
    [[Jean-François de Hercé]][[Portail:Nantes]]
    [[Jean-Joseph Lucas de Bourgerel]][[Portail:Bretagne]]
    [[Jean-Louis Aven]][[Portail:Bretagne]]
    [[Jean-Louis Goasduff]][[Portail:Bretagne]]
    [[Jean-Luc Istin]][[Portail:Morbihan]]
    [[Jean-Marie Corre]][[Portail:Bretagne]]
    [[Jean-Marie Goasmat]][[Portail:Morbihan]]
    [[Jean-Marie Le Vert]][[Portail:Quimper]]
    [[Jean-Marie Écorchard]][[Portail:Nantes]]
    [[Jean-Michel Boucheron (1948)]][[Portail:Bretagne]]
    [[Jean-Noël Kerdraon]][[Portail:Finistère]]
    [[Jean-Pascal Dubost]][[Portail:Bretagne]]
    [[Jean-Paul Hameury]][[Portail:Bretagne]]
    [[Jean-Paul James]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Jean-Paul Parayre]][[Portail:Morbihan]]
    [[Jean-Pierre Bosser]][[Portail:Bretagne]]
    [[Jean-Pierre Le Ridant]][[Portail:Loire-Atlantique]]
    [[Jean-René Bolloré]][[Portail:Finistère]]
    [[Jean-René Toumelin]][[Portail:Nantes]]
    [[Jean-Yves Guiomar]][[Portail:Histoire de Bretagne]]
    [[Jean-Yves Veillard]][[Portail:Rennes]], [[Portail:Histoire de Bretagne]]
    [[Jeanine Baude]][[Portail:Bretagne]]
    [[Jef Le Penven]][[Portail:Morbihan]], [[Portail:Musique bretonne]]
    [[Jeffrey Shaw (écrivain)]][[Portail:Bretagne]]
    [[Joachim Darquistade]][[Portail:Nantes]]
    [[Joachim-Pierre Buléon]][[Portail:Bretagne]]
    [[Joseph Abasq]][[Portail:Bretagne]]
    [[Joseph Bigot]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Joseph Canal]][[Portail:Nantes]]
    [[Joseph Du Baudory]][[Portail:Vannes]]
    [[Joseph Duchauchix]][[Portail:Bretagne]]
    [[Joseph Halléguen]][[Portail:Bretagne]]
    [[Joseph Paris (industriel)]][[Portail:Nantes]]
    [[Joseph-Marie-Prudent Lucas de Bourgerel]][[Portail:Morbihan]]
    [[Joseph-Michel-Jean-Baptiste-Paul-Augustin Micolon de Guérines]][[Portail:Nantes]]
    [[Joël Cloarec]][[Portail:Bretagne]]
    [[Joël Labbé]][[Portail:Morbihan]]
    [[Joël Quiniou]][[Portail:Bretagne]]
    [[Jules Hippolyte Masson]][[Portail:Bretagne]]
    [[Jules-Albert de Dion]][[Portail:Loire-Atlantique]]
    [[Jules-François Le Coq]][[Portail:Nantes]]
    [[Julien Gourdel]][[Portail:Rennes]]
    [[Julien Guillemot]][[Portail:Bretagne]]
    [[Julien Lachuer]][[Portail:Bretagne]]
    [[Julien-Charles Lechat]][[Portail:Nantes]]
    [[Kamp Etrekeltiek ar Vrezhonegerien]][[Portail:Bretagne]]
    [[Keiichirō Kume]][[Portail:Bretagne]]
    [[Kelenn (maison d'édition)]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Keolis Brest]][[Portail:Brest]]
    [[Keraluc]][[Portail:Finistère]]
    [[Kerichen 72]][[Portail:Musique bretonne]]
    [[Kernews]][[Portail:Loire-Atlantique]]
    [[Ki Du]][[Portail:Musique bretonne]]
    [[Kléber Bobin]][[Portail:Nantes]]
    [[Kreiz Breizh]][[Portail:Bretagne]]
    [[Kreiz Breizh Elites]][[Portail:Bretagne]]
    [[Kristen]][[Portail:Bretagne]]
    [[Kristof Jezegou]][[Portail:Bretagne]]
    [[L'Hirondelle (album de Gilles Servat)]][[Portail:Musique bretonne]]
    [[L'Hôtel de la plage]][[Portail:Bretagne]]
    [[L'Or des mers]][[Portail:Bretagne]]
    [[L'Or et le Cuivre]][[Portail:Musique bretonne]]
    [[L'Éclaireur]][[Portail:Loire-Atlantique]]
    [[La Blanche Hermine (album de Gilles Servat)]][[Portail:Musique bretonne]]
    [[La Bretagne (journal)]][[Portail:Bretagne]]
    [[La Bretagne (revue)]][[Portail:Bretagne]]
    [[La Bretagne communiste]][[Portail:Bretagne]]
    [[La Bretagne réelle]][[Portail:Bretagne]]
    [[La Chronique Républicaine]][[Portail:Bretagne]]
    [[La Dervenn]][[Portail:Vannes]]
    [[La Douleur d'aimer]][[Portail:Musique bretonne]]
    [[La Découverte ou l'Ignorance]][[Portail:Musique bretonne]]
    [[La Dépêche de Brest et de l'Ouest]][[Portail:Bretagne]]
    [[La Gazette du Centre Morbihan]][[Portail:Bretagne]]
    [[La Liberté brille dans la nuit]][[Portail:Musique bretonne]]
    [[La Ouache]][[Portail:Musique bretonne]]
    [[La Pensée bretonne]][[Portail:Bretagne]]
    [[La Presse d'Armor]][[Portail:Côtes-d'Armor]]
    [[La Tradition symphonique]][[Portail:Musique bretonne]]
    [[La Tradition symphonique 2]][[Portail:Musique bretonne]]
    [[La Veillée du troisième millénaire]][[Portail:Musique bretonne]]
    [[La Vitréenne football club]][[Portail:Ille-et-Vilaine]]
    [[Lady Maud]][[Portail:Bretagne]]
    [[Laetitia Nantes Handball]][[Portail:Nantes]]
    [[Laiterie de Saint-Malo]][[Portail:Saint-Malo]]
    [[Landes de Lanvaux]][[Portail:Morbihan]]
    [[Laurent Guyot]][[Portail:Bretagne]]
    [[Laurent Hervé]][[Portail:Bretagne]]
    [[Laurent Huard]][[Portail:Bretagne]]
    [[Laurent Viaud]][[Portail:Bretagne]]
    [[Laëtitia Payet]][[Portail:Morbihan]]
    [[Le Beau Voyage (album)]][[Portail:Musique bretonne]]
    [[Le Cheval d'orgueil (livre)]][[Portail:Bretagne]]
    [[Le Christ sur la croix]][[Portail:Vannes]]
    [[Le Cohty]][[Portail:Vannes]]
    [[Le Comptoir Irlandais]][[Portail:Finistère]]
    [[Le Courrier Indépendant]][[Portail:Bretagne]]
    [[Le Courrier du Pays de Retz]][[Portail:Loire-Atlantique]]
    [[Le Cours des Glénans]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Le Gouessant]][[Portail:Bretagne]]
    [[Le Grand Huernic]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Grégan]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Mensuel de Rennes]][[Portail:Rennes]]
    [[Le Mensuel du Golfe du Morbihan]][[Portail:Vannes]]
    [[Le Pain des rêves]][[Portail:Bretagne]]
    [[Le Pays Malouin]][[Portail:Bretagne]]
    [[Le Pays de Fougères]][[Portail:Bretagne]]
    [[Le Perenno]][[Portail:Vannes]]
    [[Le Petit Bleu]][[Portail:Bretagne]]
    [[Le Petit Huernic]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Ploërmelais]][[Portail:Bretagne]]
    [[Le Pouvoir des mots]][[Portail:Musique bretonne]]
    [[Le Pélégrin]][[Portail:Musique bretonne]]
    [[Le Trégor]][[Portail:Bretagne]]
    [[Le Vaisseau de pierre]][[Portail:Musique bretonne]]
    [[Leier Eusa]][[Portail:Finistère]]
    [[Les Armes de Bretagne]][[Portail:Musique bretonne]]
    [[Les Clam's]][[Portail:Bretagne]]
    [[Les Enfants de Néant]][[Portail:Bretagne]]
    [[Les Seigneurs]][[Portail:Bretagne]]
    [[Les Trois Frères (sinago)]][[Portail:Vannes]]
    [[Ligne de Carhaix à Loudéac]][[Portail:Bretagne]]
    [[Ligne de Clisson à Cholet]][[Portail:Loire-Atlantique]]
    [[Ligne de Commequiers à Saint-Gilles-Croix-de-Vie]][[Portail:Loire-Atlantique]]
    [[Ligne de Morlaix à Carhaix]][[Portail:Finistère]]
    [[Ligne de Nantes à Saint-Gilles-Croix-de-Vie]][[Portail:Loire-Atlantique]]
    [[Ligne de Nantes-État à La Roche-sur-Yon par Sainte-Pazanne]][[Portail:Loire-Atlantique]]
    [[Ligne de Navibus - Erdre]][[Portail:Nantes]]
    [[Ligne de Navibus - Loire]][[Portail:Nantes]]
    [[Ligne de Navibus - Passeur de l'Erdre]][[Portail:Nantes]]
    [[Ligne de Perros-Saint-Fiacre au Fret]][[Portail:Finistère]]
    [[Ligne de Saint-Hilaire-de-Chaléons à Paimbœuf]][[Portail:Loire-Atlantique]]
    [[Ligne de Saint-Méen à Loudéac]][[Portail:Bretagne]]
    [[Lionel Jaffredo]][[Portail:Vannes]]
    [[Lionel Rouxel]][[Portail:Bretagne]]
    [[Liste des cours d'eau de Bretagne]][[Portail:Bretagne]]
    [[Liste des députés des Côtes-d'Armor]][[Portail:Bretagne]]
    [[Liste des députés du Finistère]][[Portail:Finistère]]
    [[Liste des députés du Morbihan]][[Portail:Morbihan]]
    [[Liste des intercommunalités du Finistère]][[Portail:Finistère]]
    [[Liste des joueurs d'En Avant Guingamp]][[Portail:Bretagne]]
    [[Liste des évêques de Nantes]][[Portail:Duché de Bretagne]], [[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Liste des évêques de Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Liste des évêques de Saint-Brieuc]][[Portail:Saint-Brieuc]]
    [[Liste des évêques de Tréguier]][[Portail:Côtes-d'Armor]]
    [[Litanies pour l'an 2000]][[Portail:Musique bretonne]]
    [[Littoral Média]][[Portail:Bretagne]]
    [[Littérature en breton]][[Portail:Bretagne]]
    [[Lié (rivière)]][[Portail:Morbihan]]
    [[Lou Raoul]][[Portail:Bretagne]]
    [[Louis Chopier]][[Portail:Bretagne]]
    [[Louis Dio]][[Portail:Vannes]]
    [[Louis Grivart]][[Portail:Ille-et-Vilaine]]
    [[Louis Guillois]][[Portail:Morbihan]]
    [[Louis Harel de la Noë]][[Portail:Bretagne]]
    [[Louis II de Rohan-Chabot (1679-1738)]][[Portail:Bretagne]]
    [[Louis Jules Trochu]][[Portail:Bretagne]]
    [[Louis Orvoën]][[Portail:Finistère]]
    [[Louis Picquet du Boisguy]][[Portail:Bretagne]]
    [[Louis Rousseau de Saint-Aignan]][[Portail:Nantes]]
    [[Louis de Cossé de Brissac (1625-1661)]][[Portail:Bretagne]]
    [[Louis-Alphonse de Gouzillon de Bélizal]][[Portail:Côtes-d'Armor]]
    [[Louis-François Papin]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Louis-Hyacinthe Levesque]][[Portail:Nantes]]
    [[Louis-Jules-François-Joseph d'Andigné de Mayneuf]][[Portail:Nantes]]
    [[Louis-Marie Saget]][[Portail:Nantes]]
    [[Louise de Kergariou]][[Portail:Bretagne]]
    [[Loulotte]][[Portail:Bretagne]]
    [[Loïc Druon]][[Portail:Bretagne]]
    [[Loïc Taillebrest]][[Portail:Musique bretonne]]
    [[Lucien Fruchaud]][[Portail:Saint-Brieuc]]
    [[Lucien Raoul]][[Portail:Bretagne]]
    [[Luna Park (St-Brieuc)]][[Portail:Côtes-d'Armor]], [[Portail:Saint-Brieuc]]
    [[Lycée Chateaubriand]][[Portail:Rennes]]
    [[Lycée Saint-François-Xavier]][[Portail:Vannes]]
    [[Léon Trégor Basket 29]][[Portail:Finistère]]
    [[Léopold Cassegrain]][[Portail:Nantes]]
    [[Léopold Follioley]][[Portail:Nantes]]
    [[Macario Vitalis]][[Portail:Bretagne]]
    [[Mad in Sérénité]][[Portail:Musique bretonne]]
    [[Madeleine Desroseaux]][[Portail:Bretagne]]
    [[Madelynn]][[Portail:Bretagne]]
    [[Maison de Coëtlogon]][[Portail:Bretagne]]
    [[Maison de la poésie de Rennes]][[Portail:Rennes]]
    [[Manoir de l'automobile]][[Portail:Bretagne]]
    [[Maodez Glanndour]][[Portail:Bretagne]]
    [[Marathon de la Côte d'Amour]][[Portail:Loire-Atlantique]]
    [[Marc Simon]][[Portail:Bretagne]]
    [[Marcel Carfantan]][[Portail:Bretagne]]
    [[Marcel Rupied]][[Portail:Bretagne]]
    [[Marcel Saupin]][[Portail:Nantes]]
    [[Marche-Avec]][[Portail:Bretagne]]
    [[Marguerite Gourlaouen]][[Portail:Bretagne]]
    [[Marguerite de Foix (morte en 1486)]][[Portail:Duché de Bretagne]]
    [[Mari-Lizig]][[Portail:Bretagne]]
    [[Marianna Abgrall]][[Portail:Bretagne]]
    [[Marie Allo]][[Portail:Bretagne]]
    [[Marie Le Drian]][[Portail:Bretagne]], [[Portail:Finistère]], [[Portail:Lorient]]
    [[Marie Le Franc]][[Portail:Vannes]]
    [[Marie d'Angleterre (1344-1362)]][[Portail:Duché de Bretagne]]
    [[Marie de Limoges]][[Portail:Duché de Bretagne]]
    [[Marie-Anne Chapdelaine]][[Portail:Ille-et-Vilaine]]
    [[Marines (album)]][[Portail:Musique bretonne]]
    [[Marmohec]][[Portail:Bretagne]]
    [[Marquis de Sade (groupe)]][[Portail:Rennes]]
    [[Maryannick]][[Portail:Bretagne]]
    [[Maryvonne Quéméré-Jaouen]][[Portail:Finistère]]
    [[Mask ha gazh]][[Portail:Musique bretonne]]
    [[Mathieu Berson]][[Portail:Vannes]]
    [[Mathurin Henrio]][[Portail:Morbihan]]
    [[Maure de Bretagne communauté]][[Portail:Ille-et-Vilaine]]
    [[Maurice Delarue]][[Portail:Bretagne]]
    [[Maurice Halna du Fretay (archéologue)]][[Portail:Finistère]]
    [[Maurice Le Lannou]][[Portail:Bretagne]]
    [[Maurice Polard]][[Portail:Bretagne]]
    [[Maurice Étiennez]][[Portail:Nantes]]
    [[Maxime Maufra]][[Portail:Bretagne]]
    [[Maîtrise de la Perverie]][[Portail:Nantes]]
    [[Menhir de Kergadiou]][[Portail:Bretagne]]
    [[Menhir de Kerloas]][[Portail:Bretagne]]
    [[Menhir de Lanvar]][[Portail:Finistère]]
    [[Mer des Faluns]][[Portail:Bretagne]]
    [[Meu (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Michel Esneu]][[Portail:Bretagne]]
    [[Michel Guibé]][[Portail:Rennes]], [[Portail:Duché de Bretagne]]
    [[Michel Le Bris]][[Portail:Bretagne]]
    [[Michel Le Scouarnec]][[Portail:Morbihan]]
    [[Michel Luneau]][[Portail:Bretagne]]
    [[Michel Manoll]][[Portail:Loire-Atlantique]]
    [[Michel Moreau-Grandmaison]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Michel Nicolas (historien)]][[Portail:Bretagne]]
    [[Michel Santangelli]][[Portail:Musique bretonne]]
    [[Michel Sauvageau]][[Portail:Bretagne]]
    [[Michel Scouarnec]][[Portail:Finistère]]
    [[Michelle Meunier]][[Portail:Loire-Atlantique]]
    [[Michèle Wargnier]][[Portail:Bretagne]]
    [[Mickaël Buzaré]][[Portail:Bretagne]]
    [[Minihi]][[Portail:Bretagne]]
    [[Mon pays t'attend]][[Portail:Musique bretonne]]
    [[Monique Lemaire]][[Portail:Bretagne]]
    [[Morgan (illustrateur)]][[Portail:Bretagne]]
    [[Motte castrale du Roc'h]][[Portail:Finistère]]
    [[Mouchiouse]][[Portail:Vannes]]
    [[Mouladurioù Hor Yezh]][[Portail:Bretagne]]
    [[Moyen breton]][[Portail:Bretagne]]
    [[Musée de la pêche de Concarneau]][[Portail:Bretagne]]
    [[Musée international du Long-Cours Cap-Hornier]][[Portail:Saint-Malo]]
    [[Méaban]][[Portail:Morbihan]]
    [[Ménez Kador]][[Portail:Finistère]]
    [[Nanaloricus mysticus]][[Portail:Finistère]]
    [[Nantes Atlantique Baseball]][[Portail:Nantes]]
    [[Nantes Atlantique Hockey Glace]][[Portail:Nantes]]
    [[Nantes Loire Atlantique Handball]][[Portail:Nantes]]
    [[Nantes Rezé Métropole Volley]][[Portail:Nantes]]
    [[Nantes Volley Féminin]][[Portail:Nantes]]
    [[Nantes-Rezé Basket 44]][[Portail:Nantes]]
    [[Narcisse Chaillou]][[Portail:Nantes]]
    [[Narcisse Quellien]][[Portail:Bretagne]]
    [[Naître]][[Portail:Bretagne]]
    [[Niccolò Caetani]][[Portail:Quimper]]
    [[Nicolas Joseph Marie Le Gall]][[Portail:Bretagne]]
    [[Nicolas Lunven]][[Portail:Vannes]]
    [[Nicole Laurent-Catrice]][[Portail:Bretagne]]
    [[Nos premières années]][[Portail:Musique bretonne]]
    [[Noémie Dondel du Faouëdic]][[Portail:Bretagne]]
    [[Nébuleuse (voilier)]][[Portail:Bretagne]]
    [[Océanopolis]][[Portail:Brest]]
    [[Odile Caradec]][[Portail:Bretagne]]
    [[Oignon de Roscoff]][[Portail:Finistère]]
    [[Olivier Cousin (écrivain)]][[Portail:Bretagne]]
    [[Olivier de Blois]][[Portail:Duché de Bretagne]]
    [[On peut tous rêver]][[Portail:Musique bretonne]]
    [[Orange II]][[Portail:Vannes]]
    [[Orchestre symphonique de Bretagne]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Ordre de la Cordelière]][[Portail:Duché de Bretagne]]
    [[Osismes]][[Portail:Bretagne]]
    [[Ouvrages d'art des chemins de fer des Côtes-du-Nord]][[Portail:Bretagne]]
    [[Paille d'or]][[Portail:Nantes]]
    [[Palais des Sports de la Valette]][[Portail:Rennes]]
    [[Panique celtique]][[Portail:Musique bretonne]]
    [[Panique celtique II, le village]][[Portail:Bretagne]]
    [[Paol Keineg]][[Portail:Bretagne]]
    [[Paolig Combot]][[Portail:Bretagne]]
    [[Papa Poydenot]][[Portail:Finistère]]
    [[Pariz - Breizh]][[Portail:Musique bretonne]]
    [[Pascal Mandart]][[Portail:Vannes]]
    [[Pascal Quintin]][[Portail:Bretagne]]
    [[Pascal Robert]][[Portail:Bretagne]]
    [[Passage de la Teignouse]][[Portail:Morbihan]]
    [[Passage du Fromveur]][[Portail:Bretagne]]
    [[Passerelle du Croaë]][[Portail:Finistère]]
    [[Patrice Kervarrec]][[Portail:Morbihan]]
    [[Patrick Colleter]][[Portail:Bretagne]]
    [[Patrick Le Mercier]][[Portail:Musique bretonne]]
    [[Paul Carron de La Carrière]][[Portail:Ille-et-Vilaine]]
    [[Paul Gury]][[Portail:Vannes]]
    [[Paul Ihuel]][[Portail:Morbihan]]
    [[Paul Le Drogo]][[Portail:Morbihan]]
    [[Paul Lotz]][[Portail:Morbihan]]
    [[Paul Louis Rossi]][[Portail:Nantes]]
    [[Paul du Chatellier]][[Portail:Finistère]]
    [[Paul-Alexis Robic]][[Portail:Bretagne]]
    [[Paul-Yves Sébillot]][[Portail:Bretagne]]
    [[Penn Bleï]][[Portail:Vannes]]
    [[Percubaba]][[Portail:Rennes]]
    [[Petit Veïzit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Phare de la Balue]][[Portail:Saint-Malo]]
    [[Philippe Brinquin]][[Portail:Bretagne]]
    [[Philippe Celdran]][[Portail:Morbihan]]
    [[Philippe Charzay]][[Portail:Bretagne]]
    [[Philippe Mouazan]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Philippe Rault]][[Portail:Bretagne]]
    [[Philippe Tibeuf]][[Portail:Bretagne]]
    [[Philippe Tourault]][[Portail:Histoire de Bretagne]]
    [[Philippe-René Soubzmain]][[Portail:Nantes]]
    [[Philomène Cadoret]][[Portail:Bretagne]]
    [[Pierre Belordeau]][[Portail:Bretagne]]
    [[Pierre Cloarec]][[Portail:Bretagne]]
    [[Pierre Coustard]][[Portail:Nantes]]
    [[Pierre Guillemot]][[Portail:Bretagne]]
    [[Pierre Landais]][[Portail:Duché de Bretagne]]
    [[Pierre Laurent (poète)]][[Portail:Morbihan]]
    [[Pierre Lelong (homme politique)]][[Portail:Finistère]]
    [[Pierre Maille]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Pierre Martin (poète)]][[Portail:Bretagne]]
    [[Pierre Mourain]][[Portail:Loire-Atlantique]]
    [[Pierre Nourry]][[Portail:Vannes]]
    [[Pierre Piédru]][[Portail:Bretagne]]
    [[Pierre Pronost]][[Portail:Bretagne]]
    [[Pierre Péron]][[Portail:Bretagne]], [[Portail:Brest]]
    [[Pierre Savigny de Belay]][[Portail:Bretagne]]
    [[Pierre Tal Coat]][[Portail:Bretagne]]
    [[Pierre Talmont]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Pierre Toulhoat]][[Portail:Bretagne]]
    [[Pierre de Rohan-Guéméné]][[Portail:Bretagne]]
    [[Pierre de Rostrenen]][[Portail:Duché de Bretagne]]
    [[Pierre de l'Hôpital]][[Portail:Duché de Bretagne]]
    [[Pierre de l'Isle]][[Portail:Bretagne]]
    [[Pierre-Ferdinand de Bausset-Roquefort]][[Portail:Vannes]]
    [[Pierre-Marie Le Provost de Launay]][[Portail:Côtes-d'Armor]]
    [[Pierre-Yves Moign]][[Portail:Musique bretonne]]
    [[Pipriac communauté]][[Portail:Ille-et-Vilaine]]
    [[Piren]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Piriou]][[Portail:Finistère]]
    [[Place de la Liberté (Brest)]][[Portail:Brest]]
    [[Pladic]][[Portail:Vannes]]
    [[Plessis-Bellière]][[Portail:Histoire de Bretagne]]
    [[Pont de l'Ouen]][[Portail:Loire-Atlantique]]
    [[Pont de la Jonelière]][[Portail:Nantes]]
    [[Pont du Guildo]][[Portail:Bretagne]]
    [[Pont ferroviaire de Pirmil]][[Portail:Nantes]]
    [[Pontivy Journal]][[Portail:Bretagne]]
    [[Port-la-Forêt]][[Portail:Bretagne]]
    [[Port-musée de Douarnenez]][[Portail:Finistère]]
    [[Portraits (album)]][[Portail:Musique bretonne]]
    [[Première bataille de Landévant (1795)]][[Portail:Morbihan]]
    [[Première bordée]][[Portail:Musique bretonne]]
    [[Presqu'île de Rhuys]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Prix Xavier de Langlais]][[Portail:Bretagne]]
    [[Projet Saint Michel]][[Portail:Bretagne]]
    [[Projet:Bretagne]][[Portail:Bretagne]]
    [[Projet:Bretagne/Modèles]][[Portail:Bretagne]]
    [[Projet:Finistère]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Projet:Finistère/Modèles]][[Portail:Finistère]]
    [[Promessa]][[Portail:Bretagne]]
    [[Prosper Chubert]][[Portail:Vannes]]
    [[Pêr Loisel]][[Portail:Bretagne]]
    [[Quai des Bulles]][[Portail:Saint-Malo]]
    [[Quartier des Oiseaux (La Baule)]][[Portail:Loire-Atlantique]]
    [[Qub]][[Portail:Quimper]]
    [[Queffleut]][[Portail:Bretagne]]
    [[Quimper Communauté]][[Portail:Bretagne]], [[Portail:Quimper]]
    [[Quimper Cornouaille Tennis de Table]][[Portail:Quimper]]
    [[Quimper Kerfeunteun Football Club]][[Portail:Quimper]]
    [[Quyên Ngo-Dinh-Phu]][[Portail:Bretagne]]
    [[Racing Club d'Ancenis]][[Portail:Loire-Atlantique]]
    [[Radenec]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Radio Campus Rennes]][[Portail:Rennes]]
    [[Radio Côte d'amour]][[Portail:Loire-Atlantique]]
    [[Radio Kerne]][[Portail:Finistère]], [[Portail:Musique bretonne]]
    [[Radio Morbihan Sud]][[Portail:Vannes]]
    [[Radio Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Radio en breton]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Raoul du Bouchet]][[Portail:Bretagne]]
    [[Raphaël Corre]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Rasta Bigoud]][[Portail:Musique bretonne]]
    [[Raymonde Allain]][[Portail:Bretagne]]
    [[Raz de Sein]][[Portail:Finistère]]
    [[Recherche généalogique en Bretagne]][[Portail:Bretagne]]
    [[Record SNSM]][[Portail:Bretagne]]
    [[Records du Football Club de Nantes]][[Portail:Nantes]]
    [[Red Ar Mor]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Redones]][[Portail:Bretagne]]
    [[Regional Airlines (France)]][[Portail:Loire-Atlantique]]
    [[Remparts de Vitré]][[Portail:Duché de Bretagne]]
    [[Rencontres du film documentaire]][[Portail:Côtes-d'Armor]]
    [[René Cardaliaguet]][[Portail:Bretagne]]
    [[René Constant Le Marant de Kerdaniel]][[Portail:Bretagne]]
    [[René Le Corre]][[Portail:Bretagne]]
    [[René Le Lamer]][[Portail:Morbihan]]
    [[René Waldeck-Rousseau]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[René de Cornulier]][[Portail:Nantes]]
    [[René de Rais]][[Portail:Bretagne]]
    [[Représentations d'Anne de Bretagne]][[Portail:Histoire de Bretagne]], [[Portail:Duché de Bretagne]]
    [[Rivière d'Auray]][[Portail:Morbihan]]
    [[Robert Le Masson]][[Portail:Bretagne]]
    [[Roc'h Ruz]][[Portail:Finistère]]
    [[Roc'h Trevezel]][[Portail:Finistère]]
    [[Roc'h Trédudon]][[Portail:Finistère]]
    [[Rock a Vista]][[Portail:Morbihan]]
    [[Rodolphe Bresdin]][[Portail:Loire-Atlantique]]
    [[Roger Flouriot]][[Portail:Bretagne]]
    [[Roger Laouenan]][[Portail:Bretagne]]
    [[Roland Guillas]][[Portail:Morbihan]]
    [[Rolland (cardinal, 1185)]][[Portail:Bretagne]]
    [[Roller Armor Club Saint-Brieuc]][[Portail:Côtes-d'Armor]]
    [[Ronan Kerdraon]][[Portail:Côtes-d'Armor]]
    [[Ronan Larvor]][[Portail:Bretagne]]
    [[Ronan Le Coadic]][[Portail:Bretagne]]
    [[Ronan Leprohon]][[Portail:Bretagne]]
    [[Ronan Pichery]][[Portail:Bretagne]]
    [[Ronan Salaün]][[Portail:Bretagne]]
    [[Ronan Trémel]][[Portail:Bretagne]]
    [[Roselyne Lefrançois]][[Portail:Bretagne]]
    [[Route départementale 213 (Loire-Atlantique)]][[Portail:Loire-Atlantique]]
    [[Route nationale 136]][[Portail:Bretagne]]
    [[Route nationale 137]][[Portail:Rennes]]
    [[Route nationale 155]][[Portail:Bretagne]]
    [[Route nationale 155a]][[Portail:Bretagne]]
    [[Route nationale 157]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Route nationale 163]][[Portail:Bretagne]]
    [[Route nationale 163bis]][[Portail:Bretagne]]
    [[Route nationale 164]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Route nationale 164bis]][[Portail:Bretagne]]
    [[Route nationale 165]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Route nationale 166]][[Portail:Bretagne]]
    [[Route nationale 166a]][[Portail:Bretagne]]
    [[Route nationale 167]][[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Route nationale 168]][[Portail:Bretagne]]
    [[Route nationale 168a]][[Portail:Bretagne]]
    [[Route nationale 169]][[Portail:Bretagne]]
    [[Route nationale 170]][[Portail:Bretagne]]
    [[Route nationale 171]][[Portail:Loire-Atlantique]]
    [[Route nationale 175]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Route nationale 176]][[Portail:Bretagne]]
    [[Route nationale 177]][[Portail:Bretagne]]
    [[Route nationale 178]][[Portail:Loire-Atlantique]]
    [[Route nationale 23b]][[Portail:Loire-Atlantique]]
    [[Route nationale 23bis]][[Portail:Loire-Atlantique]]
    [[Route nationale 265]][[Portail:Brest]]
    [[Route nationale 365]][[Portail:Bretagne]]
    [[Route nationale 444]][[Portail:Loire-Atlantique]]
    [[Route nationale 465]][[Portail:Bretagne]]
    [[Route nationale 772]][[Portail:Bretagne]]
    [[Route nationale 773]][[Portail:Bretagne]]
    [[Route nationale 774]][[Portail:Bretagne]]
    [[Route nationale 775]][[Portail:Bretagne]]
    [[Route nationale 776]][[Portail:Bretagne]]
    [[Route nationale 777]][[Portail:Bretagne]]
    [[Route nationale 778]][[Portail:Bretagne]]
    [[Route nationale 779]][[Portail:Bretagne]]
    [[Route nationale 780]][[Portail:Bretagne]]
    [[Route nationale 781]][[Portail:Bretagne]]
    [[Route nationale 782]][[Portail:Bretagne]]
    [[Route nationale 783]][[Portail:Bretagne]]
    [[Route nationale 784]][[Portail:Bretagne]]
    [[Route nationale 785]][[Portail:Bretagne]]
    [[Route nationale 786]][[Portail:Bretagne]]
    [[Route nationale 786a]][[Portail:Bretagne]]
    [[Route nationale 786b]][[Portail:Bretagne]]
    [[Route nationale 786c]][[Portail:Bretagne]]
    [[Route nationale 786d]][[Portail:Bretagne]]
    [[Route nationale 787]][[Portail:Bretagne]]
    [[Route nationale 788]][[Portail:Bretagne]]
    [[Route nationale 789]][[Portail:Bretagne]]
    [[Route nationale 790]][[Portail:Bretagne]]
    [[Route nationale 791]][[Portail:Bretagne]]
    [[Route nationale 792]][[Portail:Bretagne]]
    [[Route nationale 793]][[Portail:Bretagne]]
    [[Route nationale 794]][[Portail:Bretagne]]
    [[Route nationale 795]][[Portail:Bretagne]]
    [[Route nationale 796]][[Portail:Bretagne]]
    [[Route nationale 797]][[Portail:Bretagne]]
    [[Route nationale 798]][[Portail:Bretagne]]
    [[Route nationale 801]][[Portail:Loire-Atlantique]]
    [[Route nationale 805]][[Portail:Bretagne]]
    [[Route nationale 806]][[Portail:Bretagne]]
    [[Route nationale 844]][[Portail:Nantes]]
    [[Rozenn Milin]][[Portail:Bretagne]]
    [[Régional (compagnie aérienne européenne)]][[Portail:Loire-Atlantique]]
    [[Régis-Marie-Joseph de L'Estourbeillon de La Garnache]][[Portail:Bretagne]]
    [[Réseau interurbain du Morbihan]][[Portail:Morbihan]]
    [[Résistants du lycée Anatole-Le-Braz]][[Portail:Saint-Brieuc]]
    [[Résultats du Football Club de Nantes en coupe de France]][[Portail:Nantes]]
    [[Sablé (biscuit)]][[Portail:Bretagne]]
    [[Saint Tudy (navire)]][[Portail:Bretagne]]
    [[Saint-Brieuc Côtes-d'Armor Volley-Ball]][[Portail:Saint-Brieuc]]
    [[Saint-Malo à la Hune]][[Portail:Saint-Malo]]
    [[Saint-Michel II (navire)]][[Portail:Bretagne]]
    [[Saint-Nazaire Volley-Ball Atlantique]][[Portail:Saint-Nazaire]]
    [[Saint-gildas-des-bois (fromage)]][[Portail:Loire-Atlantique]]
    [[Sainte Tryphine et le Roi Arthur]][[Portail:Bretagne]]
    [[Saison 1963-1964 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1978-1979 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1992-1993 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1993-1994 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1994-1995 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1996-1997 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1997-1998 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1998-1999 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1999-2000 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2001-2002 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2002-2003 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2003-2004 de l'Étendard de Brest]][[Portail:Bretagne]]
    [[Salle Omnisport Laetitia Nantes]][[Portail:Nantes]]
    [[Salle des sports de Saint-Nazaire]][[Portail:Saint-Nazaire]]
    [[Salva du Béal]][[Portail:Finistère]]
    [[Sarre (Morbihan)]][[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Saupiquet (marque)]][[Portail:Nantes]]
    [[Sedrenn]][[Portail:Musique bretonne]]
    [[Serge Kerval]][[Portail:Musique bretonne]]
    [[Shane Cough]][[Portail:Rennes]]
    [[Silky Shai]][[Portail:Nantes]]
    [[Sillon de Bretagne]][[Portail:Bretagne]]
    [[Sinago]][[Portail:Vannes]]
    [[Sing Sing (radio)]][[Portail:Saint-Malo]]
    [[Siège de Fort Sans-Culotte]][[Portail:Morbihan]]
    [[Skolaj Penn-ar-Bed]][[Portail:Musique bretonne]]
    [[Société d'histoire et d'archéologie de l'arrondissement de Saint-Malo]][[Portail:Bretagne]]
    [[Société d'émulation des Côtes-d'Armor]][[Portail:Bretagne]]
    [[Société d'études historiques et archéologiques du Goëlo]][[Portail:Côtes-d'Armor]]
    [[Sodeb'O (voilier)]][[Portail:Vannes]]
    [[Spi Ouest-France]][[Portail:Morbihan]]
    [[Stade Fred-Aubert]][[Portail:Saint-Brieuc]]
    [[Stade Yves-Jaguin]][[Portail:Côtes-d'Armor]]
    [[Stade briochin]][[Portail:Saint-Brieuc]]
    [[Stade de la Rabine]][[Portail:Vannes]]
    [[Stade du Roudourou]][[Portail:Côtes-d'Armor]]
    [[Stade lamballais]][[Portail:Bretagne]]
    [[Stade rennais rugby]][[Portail:Rennes]]
    [[Stibiden]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Stone Age (Stone Age)]][[Portail:Bretagne]]
    [[Stunfest]][[Portail:Rennes]]
    [[Stur (presse)]][[Portail:Bretagne]]
    [[Stéphane Cueff]][[Portail:Bretagne]]
    [[Stéphane Le Mignan]][[Portail:Vannes]]
    [[Suite gallaise]][[Portail:Musique bretonne]]
    [[Supporters du Stade rennais football club]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Suzanne Creston]][[Portail:Bretagne]]
    [[Sœurs de la Charité de Saint-Louis]][[Portail:Vannes]]
    [[TVR (Bretagne)]][[Portail:Rennes]]
    [[Templiers dans le Finistère]][[Portail:Finistère]]
    [[Tempo (radio)]][[Portail:Finistère]]
    [[Thierry Le Pennec]][[Portail:Bretagne]]
    [[Thomas Deniaud]][[Portail:Bretagne]]
    [[Théodore Nau]][[Portail:Loire-Atlantique]]
    [[Théodore Roussel]][[Portail:Morbihan]]
    [[Théophile Briant]][[Portail:Bretagne]]
    [[Thérèse Fantou]][[Portail:Bretagne]]
    [[Tilly (réalisateur)]][[Portail:Bretagne]]
    [[Tipiak]][[Portail:Bretagne]]
    [[Tombeau de Merlin]][[Portail:Bretagne]]
    [[Tommy Senger]][[Portail:Bretagne]]
    [[Tonnerre de Brest (brasserie)]][[Portail:Brest]]
    [[Tony Heurtebis]][[Portail:Bretagne]]
    [[TornaoD]][[Portail:Musique bretonne]]
    [[Totems d'Armorique]][[Portail:Bretagne]]
    [[Tour de Bretagne (cyclisme)]][[Portail:Bretagne]]
    [[Tour-modèle type 1811]][[Portail:Bretagne]]
    [[Tourisme en Loire-Atlantique]][[Portail:Loire-Atlantique]]
    [[Tragédie (groupe)]][[Portail:Nantes]]
    [[Traité de Westminster (1353)]][[Portail:Duché de Bretagne]]
    [[Tramway de Saint-Briac à Dinard]][[Portail:Bretagne]]
    [[Tramways d'Ille-et-Vilaine]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Tri Bleiz Die]][[Portail:Musique bretonne]], [[Portail:Nantes]]
    [[Tri Yann an Naoned]][[Portail:Musique bretonne]]
    [[Triangle (métro rennais)]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Triskalia]][[Portail:Bretagne]]
    [[Tristan Mordrelle]][[Portail:Bretagne]]
    [[Tristan Nihouarn]][[Portail:Bretagne]]
    [[Trohennec]][[Portail:Vannes]]
    [[Troilus de Mesgouez]][[Portail:Bretagne]]
    [[Trophée Centre Morbihan]][[Portail:Morbihan]]
    [[Trophée des champions 2002]][[Portail:Lorient]]
    [[Trégornan-en-Glomel]][[Portail:Côtes-d'Armor]]
    [[Tudual Huon]][[Portail:Bretagne]]
    [[Tuilage (musique)]][[Portail:Bretagne]]
    [[Téviec]][[Portail:Morbihan]]
    [[Un recteur de l'Île de Sein]][[Portail:Bretagne]]
    [[Université de Nantes Aviron]][[Portail:Nantes]]
    [[Urba (album)]][[Portail:Musique bretonne]]
    [[Urielle de Trémeur]][[Portail:Bretagne]]
    [[Utilisateur:GwenofGwened/Sociologie de Vannes]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Utilisateur:Mouche35120/brouillon]][[Portail:Bretagne]]
    [[Va Zi Bihan]][[Portail:Musique bretonne]]
    [[Va pas trop vite]][[Portail:Loire-Atlantique]]
    [[Val sans retour]][[Portail:Ille-et-Vilaine]]
    [[Valentin Vignard]][[Portail:Morbihan]]
    [[Vannes Volley-Ball]][[Portail:Vannes]]
    [[Vannes agglo - Golfe du Morbihan]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Variation (radio)]][[Portail:Côtes-d'Armor]]
    [[Vatar]][[Portail:Bretagne]]
    [[Viaduc de Blanchardeau]][[Portail:Bretagne]]
    [[Viaduc de Morlaix]][[Portail:Bretagne]]
    [[Viaduc de Ponto]][[Portail:Bretagne]]
    [[Viaduc de Toupin]][[Portail:Côtes-d'Armor]]
    [[Viaduc des Pourrhis]][[Portail:Bretagne]]
    [[Viaduc du Parfond du Gouët]][[Portail:Bretagne]]
    [[Viaduc du Préto]][[Portail:Côtes-d'Armor]]
    [[Victor Boner]][[Portail:Bretagne]]
    [[Victor-Alain Berto]][[Portail:Morbihan]]
    [[Viens dans ma maison]][[Portail:Musique bretonne]]
    [[Ville de Saint-Nazaire]][[Portail:Saint-Nazaire]]
    [[Vincent-Jean-Marie Caradec]][[Portail:Morbihan]]
    [[Virginie Klès]][[Portail:Bretagne]]
    [[Viviane Le Dissez]][[Portail:Côtes-d'Armor]]
    [[Vol 5672 Air France]][[Portail:Finistère]]
    [[Voltigeurs de Châteaubriant]][[Portail:Loire-Atlantique]]
    [[Vorganium]][[Portail:Finistère]]
    [[Wikipédia en breton]][[Portail:Bretagne]]
    [[Xavier Haas]][[Portail:Bretagne]]
    [[Yann Bourven]][[Portail:Bretagne]]
    [[Yann-Ber Piriou]][[Portail:Bretagne]]
    [[Yann-Fanch Kaba]][[Portail:Bretagne]]
    [[Yannick Botrel]][[Portail:Côtes-d'Armor]]
    [[Yannick Le Bourdonnec]][[Portail:Bretagne]]
    [[Yannick Pelletier]][[Portail:Bretagne]]
    [[Yannick Vaugrenard]][[Portail:Loire-Atlantique]]
    [[Yolande de Dreux (reine d'Écosse)]][[Portail:Duché de Bretagne]]
    [[Youenn]][[Portail:Bretagne]]
    [[Yves Bodiguel]][[Portail:Nantes]]
    [[Yves Coativy]][[Portail:Histoire de Bretagne]]
    [[Yves Fréville]][[Portail:Bretagne]]
    [[Yves Guillemot]][[Portail:Morbihan]]
    [[Yves Le Febvre]][[Portail:Bretagne]]
    [[Yves Monot]][[Portail:Bretagne]]
    [[Yves Rocher (entreprise)]][[Portail:Bretagne]]
    [[Yves du Halgouët]][[Portail:Bretagne]]
    [[Yvo Jacquier]][[Portail:Morbihan]]
    [[Yvon Abiven]][[Portail:Finistère]]
    [[Yvon Le Men]][[Portail:Bretagne]]
    [[Yvon Mauffret]][[Portail:Morbihan]]
    [[ZAP (journal)]][[Portail:Rennes]]
    [[Zo (groupe)]][[Portail:Nantes]]
    [[Zénith FM]][[Portail:Ille-et-Vilaine]], [[Portail:Loire-Atlantique]]
    [[École des transmissions]][[Portail:Rennes]]
    [[École européenne supérieure d'art de Bretagne]][[Portail:Bretagne]]
    [[École nationale d'ingénieurs de Brest]][[Portail:Finistère]]
    [[École nationale de la Marine marchande de Saint-Malo]][[Portail:Saint-Malo]]
    [[Écoles de Saint-Cyr Coëtquidan]][[Portail:Morbihan]]
    [[Éditions An-Tour-tan embannadurioù]][[Portail:Bretagne]]
    [[Éditions Apogée]][[Portail:Rennes]]
    [[Éditions Terre de Brume]][[Portail:Bretagne]]
    [[Édmond Puyo]][[Portail:Finistère]]
    [[Édouard Jolin]][[Portail:Nantes]]
    [[Édouard Le Jeune]][[Portail:Finistère]]
    [[Édouard Normand]][[Portail:Nantes]]
    [[Église Notre-Dame de Brennilis]][[Portail:Bretagne]]
    [[Église Notre-Dame du Cloître Saint-Thégonnec]][[Portail:Bretagne]]
    [[Église Saint-Edern de Lannédern]][[Portail:Finistère]]
    [[Église Saint-Hervé de Lanhouarneau]][[Portail:Bretagne]]
    [[Église Saint-Jean-Baptiste de la Feuillée]][[Portail:Bretagne]]
    [[Église Saint-Pierre d'Irvillac]][[Portail:Bretagne]]
    [[Église Saint-Pierre de Guiclan]][[Portail:Bretagne]]
    [[Église Saint-Yves de Plounéour-Ménez]][[Portail:Finistère]]
    [[Église Sainte-Nonne de Dirinon]][[Portail:Bretagne]]
    [[Église Sainte-Pitère]][[Portail:Finistère]]
    [[Église Sainte-Thérèse (Nantes)]][[Portail:Nantes]]
    [[Élections législatives de 2007 en Bretagne]][[Portail:Bretagne]]
    [[Émile Durand (musicien)]][[Portail:Musique bretonne]]
    [[Émile Ernault]][[Portail:Bretagne]]
    [[Émile Gabory]][[Portail:Bretagne]]
    [[Émile Le Beller]][[Portail:Morbihan]]
    [[Émile Mouette]][[Portail:Bretagne]]
    [[Équipe cycliste Bretagne-Schuller]][[Portail:Bretagne]]
    [[Éric Digaire]][[Portail:Musique bretonne]]
    [[État-major de force n° 2]][[Portail:Nantes]]
    [[Étienne Blandin]][[Portail:Bretagne]]
    [[Étienne Bouillé]][[Portail:Bretagne]]
    [[Étienne Célestin Enoch]][[Portail:Rennes]]
    [[Étoile Molène]][[Portail:Saint-Malo]]
    [[Évariste Colombel]][[Portail:Nantes]]
    [[Éven]][[Portail:Bretagne]]
    [[Île Batailleuse]][[Portail:Loire-Atlantique]]
    [[Île Bernardeau-Boire-Rousse]][[Portail:Loire-Atlantique]]
    [[Île Béniguet]][[Portail:Bretagne]]
    [[Île Carn]][[Portail:Finistère]]
    [[Île Clémentine]][[Portail:Loire-Atlantique]]
    [[Île Coton]][[Portail:Loire-Atlantique]]
    [[Île Creïzic]][[Portail:Vannes]]
    [[Île Delage]][[Portail:Loire-Atlantique]]
    [[Île Dorelle]][[Portail:Loire-Atlantique]]
    [[Île Drenec]][[Portail:Vannes]]
    [[Île Forget]][[Portail:Loire-Atlantique]]
    [[Île Godec]][[Portail:Vannes]]
    [[Île Kerguelen (Loire)]][[Portail:Loire-Atlantique]]
    [[Île Meslet]][[Portail:Loire-Atlantique]]
    [[Île Moquart]][[Portail:Loire-Atlantique]]
    [[Île Neuve]][[Portail:Loire-Atlantique]]
    [[Île Neuve-Macrière]][[Portail:Loire-Atlantique]]
    [[Île Perdue]][[Portail:Finistère]]
    [[Île Perdue (Loire)]][[Portail:Loire-Atlantique]]
    [[Île Pinette]][[Portail:Loire-Atlantique]]
    [[Île Quistinic]][[Portail:Vannes]]
    [[Île Ripoche]][[Portail:Loire-Atlantique]]
    [[Île Ronde (rade de Brest)]][[Portail:Finistère]]
    [[Île Saint-Nicolas]][[Portail:Loire-Atlantique]]
    [[Île aux Moines (Loire)]][[Portail:Loire-Atlantique]]
    [[Île aux Oiseaux (Morbihan)]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Île d'Arrouix]][[Portail:Loire-Atlantique]]
    [[Île d'Arun]][[Portail:Finistère]]
    [[Île de Béchit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Île de Monty]][[Portail:Loire-Atlantique]]
    [[Île de Petite Biesse]][[Portail:Nantes]]
    [[Île de Térénez]][[Portail:Finistère]]
    [[Île de la Chênaie]][[Portail:Loire-Atlantique]]
    [[Île de la Pointe]][[Portail:Vannes]]
    [[Île de la Prairie au Duc]][[Portail:Nantes]]
    [[Île des Œufs]][[Portail:Vannes]]
    [[Île du Charles]][[Portail:Vannes]]
    [[Île du Renard]][[Portail:Bretagne]]
    [[Île-Grande]][[Portail:Bretagne]]
    [[Îles de Brouel]][[Portail:Vannes]]
    [[Ôbrée Alie]][[Portail:Bretagne]]
    [[Ꝃ]][[Portail:Bretagne]]
    raw-Talk%3AArundel+Castle.wikitext000066400000000000000000000114631335270560400513770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext{{WikiProjectBannerShell|1= {{WikiProject Sussex|class=start|importance=Mid|unref=}} {{WikiProject Architecture|class=start|importance=mid}} {{WPMILHIST |class=start |B-Class-1=no |B-Class-2= |B-Class-3= |B-Class-4= |B-Class-5=no infobox, no plan or map |British-task-force=yes |Fortifications-task-force=yes |Medieval-task-force=yes |Technology-task-force=yes|Early-Modern-task-force=yes}} }} ---- Okay, what's the problem? Zvesoulis put a {{cleanup}} tag on the article, but I've read the thing through several times and don't see a problem warranting the tag. Moreover, this is the very first entry in the talk page which strikes me as meaning we have a ways to go before we start throwing tags around. I removed the tag and made a couple of other edits. If anyone has any thoughts on what needs to be ''cleaned up'' please say something here and/or let me know. Thanks. [[User:Duckecho|Duckecho]] ([[User talk:Duckecho|Talk)]] 7 July 2005 19:52 (UTC) The history section states that the castle was first built in 1068 and that it was built during Edward the Confessor's reign. Which is correct? == Ghosts == What about the 4 ghosts living in the castle? there should be some reference —Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/88.17.252.156|88.17.252.156]] ([[User talk:88.17.252.156|talk]]) 00:33, 8 March 2010 (UTC) == Automated peer review == {{#ifeq:{{{name}}}|Arundel Castle|[[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC)}}The following suggestions were generated by a semi-automatic [[User:AndyZ/peerreviewer|javascript program]], and might not be applicable for the article in question. *{{Done}} Per [[Wikipedia:Only make links that are relevant to the context|Wikipedia:Context]] and [[Wikipedia:Manual of Style (dates and numbers)|Wikipedia:Manual of Style (dates)]], months and days of the week generally should not be linked. Years, decades, and centuries can be linked if they provide [[WP:CONTEXT|context]] for the article.[[User:AndyZ/G#contxt|[?]]] *{{Not done}} Per [[Wikipedia:What is a featured article?]], [[WP:IMAGE|Images]] should have concise captions.[[User:AndyZ/G#caption|[?]]] *'''NA''' You may wish to consider adding an appropriate [[WP:INFOBOX|infobox]] for this article, if one exists relating to the topic of the article. [[User:AndyZ/G#infobox|[?]]] (Note that there might not be an applicable infobox; remember that these suggestions are not generated manually) *{{Done}} As per [[Wikipedia:Manual of Style (dates and numbers)|Wikipedia:Manual of Style (dates)]], dates shouldn't use th; for example, instead of (if such appeared in the article) using ''[[January 30|January 30th]] was a great day'', use ''[[January 30]] was a great day''.[[User:AndyZ/G#dateth|[?]]] *{{Done}} Per [[Wikipedia:Manual of Style (headings)]], headings generally do not start with articles ('the', 'a(n)'). For example, if there was a section called ''==The Biography=='', it should be changed to ''==Biography==''.[[User:AndyZ/G#headingthe|[?]]] *{{Not done}} Watch for [[User:Tony1/How_to_satisfy_Criterion_2a#Redundancy|redundancies]] that make the article too wordy instead of being crisp and concise. (You may wish to try Tony1's [[User:Tony1/How to satisfy Criterion 1a: redundancy exercises|redundancy exercises]].) **Vague terms of size often are unnecessary and redundant - “some”, “a variety/number/majority of”, “several”, “a few”, “many”, “any”, and “all”. For example, “All pigs are pink, so we thought of a number of ways to turn them green.” **“In the year [of] 1138” *Please ensure that the article has gone through a thorough copyediting so that it exemplifies some of [[WP:WIAFA|Wikipedia's best work]]. See also [[User:Tony1/How to satisfy Criterion 1a]].[[User:AndyZ/G#copyedit|[?]]] You may wish to browse through [[User:AndyZ/Suggestions]] for further ideas. Thanks, [[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC) raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext000066400000000000000000002572301335270560400555240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext{{talkarchive}} '''Archive 1''' ==The Irish connection == Mmmm, it is very similar to Irish football, I wonder - was there significant Irish immigration in Australia at the time. {end sarcasm} Australian Rules = Irish Football played on a cricket pitch. It's ironic that us Aussie's love to play up AFL's uniqueness, yet it's uniqueness that gives away the fact that it's a bastardisation of an immigrant sport that's only played in one other country in the world. - CS * This sort of comment shows a lack of understanding of the history of all football codes. No one says that Australian Football wasn't influenced by other codes, in fact, the reverse is true. It was codified in 1859, which in the context of all the modern codes of football, is very early indeed. It didn't just appear out of thin air, in fact, we know a lot about the people that first played it and who first formulated the rudimentary rules. Almost without exception, they had had exposure to the English public school system - which is where we are to find the roots of almost all the modern football codes. However, during the 1840s and 1850s, they all had their own separate and different rules. So Australian Football is unique in that it was codified so early in the piece and that it was an amalgam of the experience of various wealthy Australians in the English public school system. The biggest influence was clearly the Rugby school (and those who know both sports well will also be familiar with a lot of the shared terminology that is used that is not to be found in the other codes). However, all these different school rules can be categorised roughly into two groups: those that relied predominantly on kicking the ball (precursor to Association Football) and those that relied predominantly on running with the ball (Rugby). Both Australian and Gaelic football share the characteristic that they are a combination of both groups - but that doesn't mean that one influenced the other - it's simply what they both got out of the various rules that were doing the rounds at the time. It is worth mentioning that the modern version of Gaelic Football was codified a good 30 years after Australian Football. All football historians have found no evidence of Gaelic football being an influence on Australian football. This is unsurprising - remembering that the first ones to play the game all had an English public school background - how many of them were going to put their hand up and say let's play this Irish game I know! This is not a partisan view, it is simply what we know of the history of the game. Remember also that the first recorded game of Australian Football was between two wealthy protestant private schools - it is unlikely that any Catholics took the field that day! --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 07:11, 15 November 2005 (UTC) ps I am Catholic. ** Some have suggested that the influence was more in the other direction, i.e. that Gaelic was based on Aussie rules! There is some evidence for this, e.g. the [[GAA]] was not founded until the late 1880s and I know that Archbishop [[Thomas Croke]], one of the founders, was in New Zealand in the 1870s, where he had the opportunity to see "Australasian rules" being played. So maybe it was a "two way street". I will have to get hold of a history of Gaelic football one of these days. [[User:Grant65|Grant65]] [[User talk: Grant65| (Talk)]] 09:44, 15 November 2005 (UTC) I appreciate both your points. Am I driven by a partisan viewpoint? Perhaps, though to be honest I don't really enjoy either game being mainly a follower of rugby league. I'm just dumbfounded by the vehemence towards the idea that the game has Irish roots. And I can't help but think this was driven historically by the very real Irish/English divisions that existed in Australia up until the first wave of Southern European migration last century. The rules of Irish football may not have been codified until 30 years after Aussie Rules, but the game was played 100's of years previously. To dismiss out of hand, that a game familiar to a large (ethnic) part of a new society, had no influence on the development of a game with practically identical rules within that society is laughable. And then to "draw a long bow" to claim that the game is "originally" Australian because the natives were sometimes seen to kick a stuffed wombat around is ludicrous. Would you also deny the influence of African music on rock and roll because europeans played string instruments before exposure to African rhythms? *But...we can trace the influences of rock and roll directly to African music (or afro-american at least) - but the evidence for an Irish influence just isn't there. Please note, I am not saying there were no influences from other codes, I have already stated that the Rugby School provided the greatest influence, but there is zero, I repeat, zero evidence of a Gaelic influence. Lastly, the rules of both Aussie rules and Gaelic football are not similar at all. The pig skin gets moved around the park in a similar manner, but that is where the similarity ends. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 09:00, 17 November 2005 (UTC) :: Zero evidence except our eyes, Pippu ;-) I blame Geoff Blainey for perpetuating this idea that Tom Wills wasn't influenced by Irish football (or Marn Grook). The fact is, no one knows what rules were used in the game that Blainey pushes as the "first" game (between Melbourne Grammar and Scotch College on August 7, 1858,) and they may had bugger all to do with the ones that the Melbourne FC devised the following year. I know those two schools have played ever since, but that doesn't mean they still use the same rules they did in 1858. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 14:28, 22 November 2005 (UTC) *"the rules of both Aussie rules and Gaelic football are not similar at all" Let me assure you, my friend, that the games are closer in rules and style than the two rugby codes that people from the southern and western states seem to commonly lump together. "zero evidence of a Gaelic influence" - again I can only shake my head, it is amazing that a code of football can generate such a fierce and defensive parochialism. **It's funny that I should be accused of parochialism when I am trying to direct everyone to the available evidence - rather than simpy relying on the superficial similarity between Gaelic Football and aussie rules. I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities. And it's not just Geoff Blainey, even as a kid growing up in the 60s I was aware that the first game of footy took place in 1858 between Melb Grammar and Scotch, and that a letter had appeared in the paper around the same time imploring cricketers to take up footy over the winter to keep fit. As I have said before, we know a fair bit about how and why footy came to be played in Melbourne, and the personalities involved - but it is equally true that we do not know all that much about that first game. What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays (was that his name? you know what I mean). And it is instructive that I should refer to him, because that book is set in the English public schools of the 1840s and without doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s - all the main pioneers of aussie rules had attended these schools. In other words, like all the different rules of football at that time, there was a constant tension between running with the ball and kicking the ball - so it should not surprise any of us that '''all''' the codes have an element of each to varying degrees. You might say that soccer doesn't (i.e. running with the ball) - but in fact the goalkeeper is allowed to run a short distance with the ball and kick it from his hand a la Gaelic/Australian style. What is the significance of that? Because the precursors of Soccer allowed that to happen to a far greater degree. Read the [[Cambridge Rules]] and [[Sheffield Rules]]. These are basically the rules of Aussie rules as they were codified in 1859! So don't just rely on the superficial similarity of Gaelic football and aussie rules - dig a little deeper and look at the prevailing environment of the 1840s and 1850s - aussie rules, indeed all the modern football codes, can only be truly understood in that context. [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 00:16, 25 November 2005 (UTC) ::Pippu, you say: "I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities." But rules on paper are just that, rules on paper; the two games are clearly similar in the way they are played. Can you imagine a compromise/hybrid (like International rules) between Aussie rules and either code of rugby? Or soccer and rugby? I'm sorry, I know it's an institution, but the 1858 game between Melb Grammar and Scotch was ''not'' the first time any kind of football was played in Melbourne, and since we don't know what rules they used, it has as much to do with Aussie rules as a game of rugby (codified in 1845) or soccer. IMO, Wills' letter to ''Bell's Life'' is the beginning, as was the experimental game played in the Richmond Paddock (Yarra Park) as a result, three weeks later. The same day Melbourne Grammar played a St Kilda team. This was ''one week before'' the Grammar-Scotch game was played (with Wills as referee). "What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays...." Agreed. "[W]ithout doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s..." It is ''one'' of the sources, yes. For example rugby and Aussie rules in the 1850s both had 20 players per team. ::"[T]he precursors of Soccer allowed that to happen to a far greater degree. Read the Cambridge Rules and Sheffield Rules. These are basically the rules of Aussie rules as they were codified in 1859!" Sheffield, yes. IMO, the key is not "kicking v running"; it is the lack of an offside rule, which is what sets the Sheffield rules, Aussie rules and Gaelic apart. That is a very Irish thing — it was in [[hurling]] before any of these codes of football exited. Cambridge had an offside rule. And not quite enough time elapsed between the Sheffield rules (1857) and Wills' experiments of 1858, for the former to have influenced the latter. So I suspect that it was either a case of parallel evolution or they were both influenced by a common "ancestor". [[Image:NonFreeImageRemoved.svg|30px]] [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 16:27, 20 December 2005 (UTC) :::Are we in disagreement on any of these points? All I am saying is that the Gaelic influence on aussie rules is inconclusive (at best!) and that '''all''' the modern football games can be traced back to the various english public school games of the 1840s and 1850s. Funny you should mention composite rules of aussie rules/rugby - I believe that in 2008, to mark the 150th anniversary of the first recorded game of our national game (however it may have been played back then), we should try and recreate the rules of 1858, and it would basically be a composite aussie rules/rugby game, and the AFL should challenge the Wallabies (or anyone else for that matter) playing these composite rules. You first read the idea here folks, don't forget it! Re a hybrid soccer/rugby game - I am all for it, because the end result would undoubtedly look better than either of them! [[Image:Flag of Sicily.svg|40px]] [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 22:09, 20 December 2005 (UTC) ps one of our compatriots told me to stop using the western bulldogs logo, so hopefully my new icon is more acceptable. ==Miscellaneous== Are there really no older professional teams? I have found some older cricket teams but don't know if they are professional or not. ---rmhermen well, its older than soccer. thats good enough for me. In fact, professionalism was not allowed by the VFL until its Rule 29 of 1911 (although under-the-table payments may well have occurred), and Melbourne FC was famous for being amateur for many years afterwards, so I don't think this can be justified. [[User:Grant65|Grant65]] 10:28, 14 Mar 2004 (UTC) ---- I understand and appreciate the writer's enthusiasm for the sport, but the last sentence in partciular needs to be rephrased to be less partisan about its alleged superiority over other variants of football. ---- No, I agree with the author of the article. Where he says there are other ''leagues'' in Australia, he is not referring to variants of the sport, he is referring to other groups of teams who play each other- other divisions, so to speak. For instance, in Western Australia, there is the WAFL- the ''West'' Australian Football League. More people are interested in the AFL than regional leagues like WAFL, therefore AFL is more popular. I don't think the author's comment at the end is unjustified, or biased at all. -- [[User:Mark Ryan|Mark Ryan]] ----- By the way, I wrote a bunch more stuff for this article months ago that seems to have been lost by somebody's errant revision. I hope the new wikipedia software will support a complete revision history. . . [[User:Robert Merkel|Robert Merkel]] ---- I saw some games on TV in the US. Who's the guy in the white suit who waves around flags when a goal is scored? Shouldn't this be mentioned in the article somewhere? :The Goal Umipre ----- I like the diagrams, but the font is much too small. [[User:Daniel Quinlan|Daniel Quinlan]] 08:31, Aug 2, 2003 (UTC) ---- ==Winter== What is the difference between summer and winter in Australia, that the same fields are used but for different sports? -- [[User:Error|Error]] ::um... the weather! You are obviously from a small country like england where the climate is basically the same in every location within the country. Australia is a big country. In melbourne you may be able to get away with playing in summer, most of the time, but in Brisbane you'd be carried off the field in a coffin! Summer is hot (avg 29 degrees C but it reaches 40) winter is cold (avg 20 degrees C). That's the difference. [[User:Factoid Killer|Factoid Killer]] 14:06, 21 November 2005 (UTC) :::No way in Melbourne - plenty of days over 30 and one or two up to 40. That's why the players train in ice vests when they're training in summer, even in Melbourne. Now, Hobart on the other hand...--[[User:Stevage|Stevage]] 16:36, 24 November 2005 (UTC) ::::You can have as many extreme days as you like but the average summer temperature for melbourne is still 22 degrees which is only 2 degrees warmer than the average winter temp for Brisbane. :::::Indeed, even [http://www.bom.gov.au/climate/averages/tables/cw_070282.shtml Canberra] is has hotter summers than [http://www.bom.gov.au/climate/averages/tables/cw_086071.shtml Melbourne]. Nearly as hot as [http://www.bom.gov.au/climate/averages/tables/cw_040214.shtml Brissie]. ---- I have to take issue with the following - "All of the original VFL clubs are still in existence, with the exception of South Melbourne Football Club who in 1982 relocated to Sydney and became known as the Sydney Swans and the Fitzroy which merged with the Brisbane in 1996 due to financial difficulties." Does "exist" mean the club no longer plays in the VFL/AFL, or no longer exists? Fitzroy still exists as an amateur club. [[User:RoyalDave|RoyalDave]] ==History== The history section on this page needs to be corrected to bring it into line with the information on this site http://www.fullpointsfooty.net/melbourne.htm, but I'l leave that to the Aussies. [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 14:21, 9 Mar 2004 (UTC) Mintguy has a point, although I've said to him elsewhere [[Talk:Football]], I think fullpointsfooty.net is wrong on the early history. In fact, a lot of the histories of Aussie rules available on the web seem to be terrible and contradictory. We have a great opportunity to do better :-) Anyway, I've expanded and updated the history section. In particular, I've addressed some inaccuracies, such as (1) the role of H.C.A. Harrison, which seems to be exaggerated by almost everyone except serious historians; (2) the previous omission of the experiments at the Richmond Paddock, and (3) the "significance" of the game between Melbourne Grammar and Scotch College in 1858. To name a few. [[User:Grant65|Grant65]] 18:10, 12 Mar 2004 (UTC) ---- I just had another look at Blainey's ''A Game of Our Own'' (1990; there is a 2003 edition, which I haven't seen yet), and Rob Hess & Bob Stewart's ''More Than A Game'' (1998). The latter book provides a few more details: they say that "a rugby ball" was used in the experimental game on July 31, 1858; that people of various backgrounds were involved, and; that rules were supposed to have been formulated afterwards, although these have not survived. Hess & Stewart barely mention the Melbourne Grammar v. Scotch College match on August 7. Blainey is a prolific promoter of that game (cynics might say because of his own background), but he doesn't discuss the rules either. (However, it is known that Wills did umpire that game.) Re. the other drafters of the 1859 rules, Hess & Stewart say that, like Wills, Hammersley and Thompson were ex-Cambridge University, and Smith was Irish and had attended Trinity College in Dublin. (There are some similarities between the Cambridge rules and Aussie rules, see [[Football#The Establishment of Modern Codes of Football]].) Hess & Stewart say Harrison was not involved. They also cite a letter to a Melbourne newspaper in 1864, suggesting that the English [[Football Association]] rules of 1863 had been by influenced by the Melbourne FC rules! [[User:Grant65|Grant65]] 10:28, 14 Mar 2004 (UTC) Grant. You've just reminded me of something with that last sentence. Some time ago I tried to find out about early proponents of Association football in Australia but I found virtually no information about this. I did find out that early bodies subscribing to the FA rules included the Southern British Football Association in New South Wales, the Anglo-Australian Football Association in Victoria and the British Football Associations of Queensland, South Australia and Tasmania. But I couldn't find any dates relating to the establishment and/or demise of these organisations. [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 10:56, 14 Mar 2004 (UTC) Mintguy, see the latest comments on my talk page. [[User:Grant65|Grant65]] 13:19, 14 Mar 2004 (UTC)~ ---- The article states that the VFA was formed in 1877, but the list of teams is incorrect. For example, Essendon is not listed as a team in the VFA in 1877, but they finished fourth in that year. There is also no mention of the earlier Victorian competition that preceded the VFA. [[User:B.d.mills|B.d.mills]] 12:54, 28 Sep 2004 (UTC) ==Rules== I think the section on the rules could be expanded. Basic information like the number of players is lacking, and can only be deduced from studying the images. [[User:Abigail-II|Abigail]] 10:48, Mar 11, 2004 (UTC) It seems that I am far from the only one who has mixed up the various games played in 1858. [http://www.statelibrary.vic.gov.au/slv/slvnews/aussierulesonline.pdf] [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 13:13, 14 Mar 2004 (UTC) ===Length of the Game=== Seems an obvious thing to have, yet it's currently missing. As far as I know it's four quarters of thirty minutes, but I don't know who keeps time and whether it can go over thirty, or what happens if the scores are level at full time. Aussie input welcome! [[User:Deadlock|Deadlock]] 19:45, 24 September 2005 (UTC) :Good point - done! Revisions welcome. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 10:09, 25 September 2005 (UTC) ::Thanks - I now understand why when the clock showed 10 minutes the commentator said we were half-way through the final quarter of the GF highlights I saw. The quarter eventually ran to 32 minutes... [[User:Deadlock|Deadlock]] 23:18, 25 September 2005 (UTC) Each quarter runs for 20 minutes. Over time is what causes the game to go past the 20 minute mark. Overtime can be caused by a number of factors such as -the umpire returning the ball to the center to be bounced and resume play (30-40sec. each time) -a player getting injured and needing to be carried off the feild (3-6min) -A player taking a long time to have a shot at goal. (1-2min.) etc. Overtime is usually no more than 10 minutes which may have contributed to confusion about 30 minute quarters. Time is keept by an offical time keeper independent of the players and umpire. Only the umpire can call for the clock to be stoped which is what causes overtime. ==Rugby League== To explain my last edit: it's not accurate to say that Aussie Rules was "developed as an alternative to Rugby", with a link to [[Rugby League]], because Aussie Rules was invented long before there was any such thing as "Rugby League" and before there was even much [[Rugby Football]] outside [[Rugby School]]. Neither would it be accurate to describe Aussie Rules as an offshoot of Rugby. See [[Football#The_Establishment_of_Modern_Codes_of_Football]]. [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 21:09, Apr 12, 2004 (UTC) == [[Australian Rules Football]] <-> [[Australian Football League]] == I added a section today, under the "Future teams" heading. However on re-reading it seems that the entire "teams" section, as well as my additional section, should really go in the [[Australian Football League]] article. However I figured if this was right, someone would have done it already. Ideas anyone? -- [[User:Chuq|Chuq]] 00:16, 20 Jul 2004 (UTC) :Yes, I think it should go on the AFL page.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 18:50, Apr 8, 2005 (UTC) ::I moved both the future teams article, as well as the Hall of Fame section to [[Australian Football League]]. I beleive that the Hall of Fame does not belong because it is the '''AFL''' Hall of Fame. The teams and leagues section needs serious editing and splitting up before it can be moved to other articles - a job for another day. [[User:Bjmurph|Bjmurph]] 09:47, 5 May 2005 (UTC) :::Actually it's the "Australian Football Hall of Fame" (but it's already been moved back in the article). [[Image:Flag_of_Australia.svg|30px]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|talk]] 13:03, May 5, 2005 (UTC) ::::Yes, I accept I was wrong in this assumption, however, it still may not belong in this article. Perhaps it should be removed from both this page and the AFL page, and moved to it's own, to remove the duplicate entries. [[User:Bjmurph|Bjmurph]] 13:17, 5 May 2005 (UTC) :::::Possibly a good idea, assuming there is enough to write about it. If there is a HOF article in its own right, then obviously both the AFL and ARF articles should link to it, but in the meantime it should reside under Australian Rules Football, not the AFL. [[Image:Flag_of_Australia.svg|30px]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|talk]] 15:44, May 5, 2005 (UTC) I would like to see the names of the 12 AHoF "legends" (at least) remain in this article, as there were very few mentions of players when I originally added the HoF section. A separate article on the HoF would still be a good idea, as it has a lot more members than just the 12 legends. By the way, almost none of the legends had article when I added that list and Wikipedia is still short of articles on Aussie rules players. (Except for the fan contributions on current players like [[Chris Tarrant]] etc.) [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 00:17, May 6, 2005 (UTC) It seems silly to have the Hall of Fame information duplicated on both this page and the AFL page. I agree that it needs its own page but perhaps there should be some consensus about where it really should go? My vote, fwiw, is to leave it on this page in preparation for moving it to its own page later.--[[User:The Brain of Morbius|The Brain of Morbius]] 07:45, 9 Jun 2005 (UTC) :There is nothing wrong with having duplicate material on different pages, when appropriate. If anything I think the HoF material should be removed from the AFL page, since the HoF is about the whole history of the game and not just the AFL, but there may be opposition to that. [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 11:48, Jun 10, 2005 (UTC) ::Yup the HoH should be in this article. On the other hand, the "Notable VFL/AFL records" section should be removed from this article if duplication is an issue between the two pages. - [[User:Squilibob|Squilibob]] 07:25, 1 December 2005 (UTC) ==IAFC== The article indicates that the IAFC is the official administrative body for Australian rules football internationally but I think you would get a very different view on that from the AFL, who see themselves as the official international representative body for the sport. If someone can come up with a statement from the AFL that it recognises the IAFC as the official international body though, I'd be happy to retain the reference. --[[User:Roisterer|Roisterer]] 04:05, 10 Oct 2004 (UTC) :The AFL certainly see themselves as the universal governing body, and I don't think I've seen any official AFL statements regarding the IAFC but I can guarantee they wouldn't be positive. [[Image:Flag_of_Australia.svg|30px|]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|is this thing on?]] 18:36, Apr 8, 2005 (UTC) ::The IAFC is not recognised by the AFL. No doubt the IAFC would say "who is the AFL to recognise us or not?" They would have a point since the AFL in recent years has shown itself as strangely reluctant to promote the game in countries such as Denmark where the game has grown of its own accord.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 18:50, Apr 8, 2005 (UTC) == Diagrams == Anyone want to have a go at adding the new centre circle into the diagrams? --[[User:The Brain of Morbius|The Brain of Morbius]] 02:48, 5 May 2005 (UTC) == Footy == Is this section really necessary or appropriate? :Neither - it's vandalism, now reverted.--[[User:The Brain of Morbius|The Brain of Morbius]] 06:32, 21 July 2005 (UTC) == What is a "clearance"? == When I watch AFL football on TV, I often hear the announcers talking about "clearances" and "disposals", which events are also tabulated among the statistics. Unfortunately, no one ever bothers to tell us Americans what those terms mean. I decided that a Web search would provide me the answers. Actually, I have searched extensively; and, though I did find here a definition of "disposal", I am still at a loss for an exact definition of "clearance". I suppose that a clearance has occurred when the ball is kicked a long ways, but I suspect field position has something to do with it. I don't know if a hand pass can count as a clearance. I hope that someone who knows will add to the article a definition of "clearance". [[User:DrHow|DrHow]] 15:17, 26 August 2005 (UTC) :A clearance is more correctly known as a "centre clearance", and refers to when the ball is kicked out of the centre square to the advantage of one team or the other directly from the centre bounce after a goal or at the beginning of a quarter. So if there's a stoppage in play in the centre square leading to an umpire bounce, the ensuing kick out of the square is NOT a clearance; but if it occurs as a direct consequence of the centre bounce it is. :Not sure where exactly to put that in the article as yet, but I'm sure someone will think of a way! --[[User:The Brain of Morbius|The Brain of Morbius]] 05:10, 27 August 2005 (UTC) ::I think that is a pretty good definition, but in modern day commentary I am pretty sure they have extended the term to mean a clearance from any stoppage. In modern day footy, the team that can win the most clearances from all forms of stoppages will nearly always win the game and thus the frequency of the use of the term. Also, it can mean a handball if it has effectively cleared the area of the stoppage to the team's advantage, so a handball that went nowhere and resulted in another ball up would not be counted as a stat. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'coz!)]] 12:03, 7 September 2005 (UTC) == Latest edit == The latest anonimous edit looks like a bit of POV mischief from a banana bender with taped back ears and no neck who doesn't mind sniffing the odd backside. Anyone with sufficient powers out there agree on a roll back? --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'coz!)]] 08:53, 14 September 2005 (UTC) :Pippu, absolutely agree to that. [[Wikipedia:Be bold in updating pages|Be bold]]. You don't need special powers to roll-back, just go to the edit history and select the previous edit (the good one) and press edit and save. You will get a warning that you're going to overwrite the current version but just say OK to that. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 12:59, 14 September 2005 (UTC) == ACT == Re the Brain's most recent edit, that wasn't me that deleted that line that he has restored, but I always thought that it was inaccurate in relation to the ACT (i.e. Canberra). In fact, Canberra was an aussie rules stronghold until at least 1982 because the first two generations of public servants came predominantly from Melbourne. With time this balance swung more to Sydney and then around 1982 the Canberra Raiders joined the then NSWRL. Rugby league certainly has overtaken aussie rules in general popularity (if you are counting TV ratings) but in terms of participation I would think that it would be roughly on par with aussie rules and rugby union, and all three are likely to be behind soccer. In terms spectators attending games, I imagine the ACT Brumbies currently outstrip all, the Canberra Raiders only get about half, and for some of the three or four games the Kangaroos play in Canberra, they will often get more than the average Raiders game. All in all - I think it is not an accurate statement about Canberra (not to mention that in souther NSW, aussie rules is stronger than rugby league). --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 06:53, 27 September 2005 (UTC) ps I am a Canberran. :This was the passage I restored (in '''bold'''): ::''Australian rules which was invented in [[Melbourne]], is the predominant [[winter sport]] in all states of [[Australia]] in which it is played''' with the exception of [[Queensland]], [[New South Wales]] and the [[Australian Capital Territory|ACT]], where [[Rugby league]] is the predominant sport'''.'' :I think that's fair enough Pippu. I've not spent much time in Canberra but my understanding of Aussie rules history there is much as you describe. However it must be said that the AFL match crowds in Canberra in recent years have been very small in comparison to the Raiders' and Brumbies'. Whether or not that would change if an AFL side was based there is a matter for conjecture but not in a WP article. About the only thing disputable about the passage is whether union or league is more popular in the ACT. :Without the bold section above, the passage reads as though Aussie rules is predominant in all states of Australia, which is of course not the case, despite recent progress. :Perhaps the par could be rewritten to note Aussie rules' predominance in southern NSW but I'm not convinced that's warranted; to all intents and purposes the par is fine for mine. --[[User:The Brain of Morbius|The Brain of Morbius]] 07:07, 27 September 2005 (UTC) :::Brains - thanks for the reply - perhaps it's ok as it is but I wasn't suggesting that aussie rules was bigger than league or on par, but that even one of the other two codes may have been just as big (depending on the criterion you are using) - I'm just not sure that league is way out ahead of the other three in Canberra. The interest in the raiders has really waned since the Brumbies came on the scene - but that needs to be tested over a long period because I am not sure the average Canberran would suffer say 5 or 6 years in the bottom 4. Correct also in saying that it is too early to judge the Kangaroos experiment. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 09:58, 27 September 2005 (UTC) p.s. check out our main page at [[:scn:pàggina principali]]! All invited! The crowd at the last Raiders match (v Manly) was 10,366;[http://foxsports.news.com.au/story/0,8659,16485151-23214,00.html] the AFL Kangaroos biggest crowd this year was 13,481:[http://canberra.yourguide.com.au/detail.asp?class=sport&subclass=local&category=general%20sport&story_id=421562&y=2005&m=9] :''Record crowd figures at Canberra's 2005 AFL games have virtually guaranteed the ACT will remain the Kangaroos' interstate home beyond next year.'' :''An average 12,180 fans attended the Kangaroos' three premiership games this season, boosted by a 13,481 gate at the annual blockbuster against Sydney in round two.'' :''Manuka Oval's 2005 AFL attendance total was 36,538, breaking the previous record of 34,105 set in 2001.'' On that basis you I think it have to be said that Aussies rules is at least equal to rugby league, and is growing at the moment. When the [[Western Force]] smash the Brumbies, expect union to decline in the ACT as well ;-) Seriously, with a population of 300,000, it's not a bad effort to get 10,000+ to both league and AFL games. According to the Governor-General the Brumbies get an average crowd of 22,500.[http://www.gg.gov.au/speeches/html/speeches/2005/050202.html] A competitive AFL team based there would come close to that I think.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 22:27, 27 September 2005 (UTC) :Fair enough, Grant, but are you aware that one of those matches was entirely bought out by Foxtel, who supplied free tickets to anyone who wanted one as part of a Foxtel/Fox Footy/AFL promotion in Canberra? :Perhaps we'd better take this discussion to BigFooty ;) --[[User:The Brain of Morbius|The Brain of Morbius]] 23:20, 27 September 2005 (UTC) ::'''BigFooty''' oh yeah, you'll get some bipartisan discourse there... In my experience, as a 1971-1982 Canberra schoolboy (neatly the pre-Raiders period) AR was non-existant. But that was just our school, I'm sure some schools played it. But I'd agree with Grant, an AFL team would outdraw than the Raiders, as league fans are notorious for their unwillingness to show up at games, and AR fans the exact opposite. Doesn't help the Raiders have played a crappy brand of football for about 8 years either. On the Brumbies, they're only playing a six game season, probably more people showed up at Raiders games this year, despite their pitiful form.--[[User:*Paul*|Paul]] 10:01, 29 October 2005 (UTC) ::I confirm what Brains says about the free game. All in all, I think it is a reasonable rewrite - but re the ACT - we might revisit it this time next year! --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 03:02, 28 September 2005 (UTC) ::The average 2005 crowds for comparison. Rugby Union 22,895; Rugby League 12,404; Aussie Rules 12,149. Based on crowds alone, Union should rightly be most popular in ACT. League gets good TV ratings but this may also be because the games are broadcast more regularly (Super 14 matches are not held as often). Aussie Rules may be catching up, but by average crowds and ratings it is still 3rd overall. Canberra memberships for both the Kangaroos and Sydney Swans may have nearly doubled in 2006, but still total less than 1,000 [http://kangaroos.com.au/default.asp?pg=canberra&spg=display&articleid=242973] [http://sydneyswans.com.au/default.asp?pg=news&spg=display&articleid=237653]. I think a lot of people confuse Aussie Rules long-time strong presence in southern NSW/Riverina as extending to Canberra. It is more the case that Canberra's proximity to Sydney holds sway. --[[User:Biatch|Biatch]] == Aussie rules in Australia == The [[Sport in Australia]] article is the current [[Wikipedia:Australian Collaboration of the Fortnight]] - just wondering if anyone here would be interested in adding to the [[Sport_in_Australia#Australian rules football|Aussie rules]] section? (or any other section) thanks --- [[User:Astrokey44|Astrokey44]] 04:32, 18 October 2005 (UTC) == Rules == The Rules section is getting rather long and unwieldly, especially the holding the ball subsection (which I started, when it actually was "easily summarised"), so moving it to another article seems like a good idea. But the name of such an article is an interesting topic - I would suggest "Australian Football Rules", just to confuse people (and to make User 139.132.1.1 happy). Possible alternatives are "Australian Rules Football Rules", or "Rules of Australian Rules Football", or even "Australian Rules". Seriously, probably the best name would be "Rules of Australian Football", regardless of whether you think that Australian Football is a good name. Incidentally, my copy of the rulebook has on the cover "Laws of Australian Football", so maybe thats an even better one (or "Laws of Australian Rules Football" come to think of it). If someone else wants to actually move the stuff, that would be good, or I'll probably do it in a week or two when I have more time. Of course the alternative is to just delete half the stuff, but that's probably not a good idea. On an unrelated note, exactly how high is "elbow height"? [[User:Bjmurph|Bjmurph]] 17:39, 9 November 2005 (UTC) :If you can get hold of an old video of Dipper playing, that will give you a pretty good idea - the range is from throat level to black eye level. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 22:10, 9 November 2005 (UTC) ::Actually, I was refering to the thing about the goal umpire signalling with hands at elbow height, but you've illustrated my point anyway. Maybe Belly-button height is a better description? [[User:Bjmurph|Bjmurph]] 06:37, 10 November 2005 (UTC) :::As a formerly accredited goal umpire, I can tell you that the upper arms should be vertical and the lower arms horizontal, making it the height of the elbow when standing with arms by your sides. [[User:JPD|JPD]] [[User talk:JPD|(talk)]] 08:58, 10 November 2005 (UTC) :Laws of Australian Football sounds good to me, since that's what they're called. Law of Australian Rules Football if anyone really wants to kick up a stink. [[User:JPD|JPD]] [[User talk:JPD|(talk)]] 17:58, 9 November 2005 (UTC) ::ok I moved it across to [[Laws of Australian Football]]. Probably still needs a good short paragraph in this article [[User:Astrokey44|Astrokey44]] 23:21, 9 November 2005 (UTC) == Attendance Record Cop-Outs and Factoids == Aussie Rules fans go to games. Rugby league fans watch games on tv. Using attendance records as a means to determine popularity is severely flawed. Put simply, it's a cop out. Another copout is the state count. Try adding up the populations of the AFL states in comparison to the non-AFL states! You have more than 50% of the entire country's population when you aggregate NSW and Qld populations alone. I'm not suggesting that RL has higher popularity, just that AFL popularity in comparison is incredibly overstated by the non-NPOV wording in this article. Now for the backup stats. This is from the Australian Bureau of Statistics. State populations as of june 30 2003... I've even given you the benefit of the doubt on NT being an AFL zone! I'm not convinced. Non AFL States and Territories... NSW: 668 6644 Qld: 379 6775 ACT: 322 850 Total: 10 806 269 AFL States and Territories... Vic: 4 917 394 SA: 1 527 421 WA: 1 952 286 Tas: 477 094 NT: 198 351 Total: 9 072 546 Sorry to Burst your bubble AFL Fans! [[User:Factoid Killer|Factoid Killer]] 13:53, 21 November 2005 (UTC) I'm not really sure what you're trying to say, since your arguments are as dodgy as the ones you are apparaently debunking, not to mention noone ever used a state count to prove anything. Aussie Rules is the most popular code of football in Australia, by any measure (eg [http://www.smh.com.au/articles/2003/05/22/1053196670542.html]). I tend to agree that stating it is the most popular sport is probably going a bit far, but the rest of the paragraph is fine. If anything, it understates the popularity of Aussie Rules in the NSW Riverina. Keep in mind also, that this article is about the sport, not about the AFL. [[User:JPD|JPD]] 14:37, 21 November 2005 (UTC) ::The standard measurement of popularity used by the ABS is game attendance and participation. This doesn't accurately measure the popularity of a sport. It's perfectly valid to refer to the AFL alone in this argument since QAFL, NSWAFL, WAFL etc are not telecasted nationally if at all. The popularity section boasts the # of states where the game is the most popular sport and mentions attendance. That's fine except it doesn't mention anything about television viewership nor the populations of those states and territories mentioned. In this respect, the reader has no way to quantify the popularity accurately and the article implies that the sport is phenomenally more popular than it is. I know AFL fans can become extremely obsessive so we can't really expect an truely NPOV article on the subject without outside help. In a few weeks i'm going to be back in australia. I intend to do some research and provide an NPOV article based on cited sources. Wikipedia's NPOV policy is not negotiable in any article. Furthermore, this article is loaded with original material and lacks the appropriate citations expected from a Wikipedia article. These rules apply to AFL fans too! [[User:Factoid Killer|Factoid Killer]] 09:49, 22 November 2005 (UTC) :::The paragraph describes the geographical spread of the popularity of Aussie Rules. ::::That's right it does and it stops short of actually providing any evidence of the sports popularity at a national level leaving the reader believing that an extremely large majority of people follow the sport in comparison to other sports.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::It does not "boast the # of states where the game is the most popular sport". ::::It implies it! Show me where the term 'Geographical spread' is used in the article![[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::If you read the paragraph as a description of the game's popularity, rather than assuming it was trying to make ridiculous claims, it might make more sense to you. ::::I did read it as a description of the games popularity. That's the problem![[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::Your argument about other leagues is nonsense. ::::My argument regarding other leagues validates my legitimate claim to use the term AFL and to limit my research to AFL whilst investigating the popularity of the sport of Australian Rules Football. Unless you believe there are a significant number of followers who only follow the local state level games and bear no interest in the AFL then my argument is still valid.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::I didn't mention the ABS, so I'm not sure what you are referring to. ::::I'm referring to the governing body that is usually considered to be the authority on statistics in Australia and dismissing their statistics as invalid. Not everything I have to say is necessarily an argument debunking you. Get over yourself.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::The Sweeny Report that I mentioned uses as a criteria simply whether a person claims to be interested in the sport. ::::Where is that mentioned?[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::Is that broad enough for you? There is more to life than television, ::::Nice [[Straw Man Fallacy|Straw Man]]! [[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) ::: but if you want to add information on the viewing figures, then do that. ::::Television viewership is far more valid than game attendance since viewership represents a much higher number of followers. I think it would be a very valid statistic to add if you're going to make a comparison between the popularity of AFL in comparison to followers of other sporting bodies.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::The fact that the SANFL and WAFL are not telecast nationally doesn't mean that they don't show evidence of the popularity of the code. [[User:JPD|JPD]] 10:17, 22 November 2005 (UTC) ::::See my previous comment regarding that particular argument.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) By the way, I noticed you didn't comment on my suggestion that this article is loaded with Non-NPov original material with little or no source citation to back it up.[[User:Factoid Killer|Factoid Killer]] 13:01, 22 November 2005 (UTC) :Sources should definitely be added. If you have any more examples of POV sections, then please point them out, but please try to avoid reading things that aren't there. I have agreed with you that the wording "most popular spectator sport" is possibly misleading, and regarded as the national sport is dodgy, and have changed the article accordingly. I'm not sure what you are getting at with the rest of your comments. You do seem to think television audiences are important, so if you have some sources about them, please tell us, rather than complaining about the existence of other statistics. No one at all has implied that the ABS figures give an overall indicator of the popularity of the sport, they have simply used them for what they ''are'' valid for, so I am still not sure what you are referring to. I will say again that the ''main'' purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has. This means stating where it is and isn't dominant and mentioning attendance rates, participation rates and television audiences without trying to draw conclusions about which figures are most relevant. The reader can do that for themselves. Lastly, please don't try to break up my comments, as how you did it last time obscured the points I was making. [[User:JPD|JPD]] 13:32, 22 November 2005 (UTC) '''I will say again that the main purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has.''' I have to disagree with you there. How can you demonstrate the popularity of a sport without benchmarking it against other sports. Saying Austrlian rules is very popular, or even the 'most' popular sport is like saying, 'my piece of string is very long' or 'I have the longest piece of string'. As someone reading the article I want to see how much more popular the sport is overall and in comparison to the sport that comes second in the popularity contest. Having said that, nothing annoys me more than when Aussie Rules fans pull out their pencil and eraser on a rugby league article and insert the term 'Aussie Rules' in as many places as they can get away with! That's not what i'm trying to do here and generally speaking, I like to discuss potential edits prior to making changes to a page. I will, as you suggest, add some sources, citable statistics and non-npov wording to the article.[[User:Factoid Killer|Factoid Killer]] 13:44, 22 November 2005 (UTC) :Please don't post comments in other people's posts, it makes it hard to tell who's said what. :Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example: :Total viewers (in thousands) and broken down by five largest cities. :STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 1ST GAME. Total 1,733. Syd 813; Mel 128; Bris 726; Ade 32; Perth 34. :STATE OF ORIGIN RUGBY LEAGUE NSW V QLD 2ND GAME: Total 1,758. Syd 959; Mel 106; Bris 652; Ade 22; Perth 19 :STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 3RD GAME: Total: 1,863. Syd 952; Mel 251; Bris 593; Ade 32; Per 35 :2005 NRL GRAND FINAL Total: 2,563. Syd 1,188; Mel 506; Bris 778; Ade 49; Per 42 :2005 AFL GRAND FINAL Total: 3,386. Syd 991; Mel 1,202; Bris 341; Ade 341; Per 511 :source: http://www.oztam.com.au/archives.aspx?Year=2005 : Interesting to note that almost as many people in Sydney watched the AFL grand final as watched the NRL event. You could argue that it was because the Swans were playing, but that doesn't explain the lacklustre figures for league outside of Sydney and Brisbane, e.g. the relative figures in figures in Perth and Adelaide for Origin 2 and the AFL GF. :That site doesn't have stats yet for the last Socceroos game. Every source I have seen says that soccer is the biggest sport in terms of ''participation'' (probably because because of the number of kids, including girls playing), but Aussie rules is second and it also gets the biggest attendances and TV audiences, by a significant margin. :Oh, by the way, official attendance at the WAFL grand final was 22,570.[http://www.claremontfc.com/2005season/modules.php?name=News&file=article&sid=87] ;-) [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 14:28, 22 November 2005 (UTC) '''Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example: ''' Didn't suggest we do but your suggestion reinforces the meaningless nature of the state based stats when trying to draw a conclusion from a national standpoint. If you'd read my comments you'd see I actually suggested using viewership as the main component of such an argument. So thanks for backing my argument and supplying some usefull stats. I'd like to see some of the viewership stats in the article. '''Every source I have seen says that soccer is the biggest sport in terms of participation (probably because because of the number of kids, including girls playing), but Aussie rules is second ''' Well the ABS disagrees. This link includes all forms of exercise as well as sports. Aussie rules doesn't even rank in the top 10. Soccer is number 10... http://www.abs.gov.au/Ausstats/abs@.nsf/0/DAAADA81176E2F89CA256F7200833023?Open This article is limited to organised sports and shows stats for children alone. Aussie Rules is ranked 6th after swimming, soccer, netball, tennis and basketball http://search.abs.gov.au/servlet/SearchDocuments?query=Australian+rules+football+soccer+rugby+league&docID=CA256FE8004F86D9&docURL=HTTP://www.abs.gov.au/Ausstats/abs%40.nsf/0/57E1C764BFA85942CA256F7200832FBC%3FOpen '''Oh, by the way, official attendance at the WAFL grand final was 22,570.[6] ;-) Grant65 | Talk 14:28, 22 November 2005 (UTC) ''' Perhaps you can explain the relevance of this point. I don't get it. [[User:Factoid Killer|Factoid Killer]] 15:03, 22 November 2005 (UTC) You are being extremely inconsistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. The most recent version of the sweeney report, mentioned above, which uses participation as well as watching and attending, gives swimming as the most popular sport, with tennis, cricket and AF tied on second. Taking only TV (your favourite statistic) AF is the highest. Again, it contains many forms of exercise as well. If you want to read it - http://www.sweeneyresearch.com.au/PDF/Interest.pdf. And please stop editing other peoples comments, it's just confuses things. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 15:22, 22 November 2005 (UTC) :::Posting bits of other peoples things to reply to is confusing too. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:12, 22 November 2005 (UTC) :Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand. (The WAFL games are telecast, by the way, live on the ABC. I would guess the SANFL and VFL games are as well.) :I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport: ::MAIN SPORTS ATTENDED, 12 months ending April 1999 ::Sport; Persons ('000); Attendance rate % ::Australian rules: 2,509.2; 16.8 ::Horse racing: 1,756.4; 11.8 ::Motor sports: 1,574.3; 10.6 ::Rugby league: 1,501.1; 10.1 ::Cricket: 942.5 6.3 ::Soccer: 621.2; 4.2 ::Harness racing: 534.8; 3.6 ::Basketball: 526.0; 3.5 ::Rugby union: 446.2; 3.0 ::Tennis: 444.0; 3.0 ::Dog racing: 276.4; 1.9 ::Netball: 248.7; 1.7 ::http://www.abs.gov.au/Ausstats/abs@.nsf/0/e298cee24565c911ca256def007248ff?OpenDocument : ...unless we accept the "argument" that league fans would rather watch it on TV. But I don't buy it. Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union, which was established first and (I'm guessing) has been growing in popularity since professionalism was (officially) allowed. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 15:33, 22 November 2005 (UTC) ::I think that the League people watching TV is a moot point, because I'm yet to see a statistic that shows the NRL TV viewing greater than the AFL TV viewing. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:12, 22 November 2005 (UTC) :::I haven't at any point suggested that Rugby League has higher ratings or is more popular. All I have suggested is, if you are going to say Australian Rules is more popular, this should be correctly sourced and sourced in a way that shows how much more popular it is in comparison to other sports. To BJMurph '''You are being extremely incosistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. ''' OK feel free to quote me out of context! What I said was that the ABS doesn't provide statistics that will tell us which sport is more popular or how popular Australian sports are in comparison to one another. Where i've used abs stats it has been specifically in relation to participation in sport. '''The most recent version of the sweeney report''' If you'd bothered to read my comments you'd see that I do view the sweeny report as a solid source and that my only gripe is with the fact that none of the stats from said report are included in the article! '''gives swimming as the most popular sport, with tennis cricket and AF tied on second''' Ah. So are you now saying that Aussie Rules isn't the most popular sport in Australia? Or have I misunderstood your point? '''And please stop editing other peoples comments, it's just confuses things''' Well firstly, I didn't edit anyone elses comments. I merely inserted my comments amongst theirs so it would be obvious which point i'm addressing. After doing that ONCE I was asked not to so I didn't do it again. Your statement implies that i've continued to do this. This is a false accusation and a clear attempt at the ad hominen fallacy. A dirty debating trick. If what you're actually referring to me copying and pasting the arguments i'm commenting on, I fail to see how that makes it more confusing. In fact i'd say it's making it more difficult for yout to confuse the issue. You sure are trying hard though aren't you? To Grant65 '''Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand.''' My comments suggesting that it's ok to look at AFL popularity alone to get an idea of the popularity of the sport as a whole? Again I will say, unless you think a significant number of those WAFL supporters don't support the AFL, there is no need to look at those numbers. This is yet another attempt at a straw man argument. '''I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport: ''' I don't dispute these stats at all. Only the context in which they are used. These stats don't in any way conclusively suggest that Aussies rules is 'more popular' than every other sport in Australia. They merely show that Aussie rules gets more attendence at its games. Any level headed person can see that. If you can't i'd suggest your judgement is clouded by the love of the game to the extent that you are incapable of taking a pragmatic approach to the subject. '''Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union''' And yet another straw man argument. This discussion has nothing to do with rugby league. This discussion relates to the non-npov way in which Aussie Rules is represented in this article as Australia's most 'popular' sport. Please read the prior discussion before adding anything further to this discussion. And please cease using dirty debating tactics. I'm familiar with all of the logical fallacies. We might even improve this article as a result! [[User:Factoid Killer|Factoid Killer]] 16:28, 22 November 2005 (UTC) :You'll notice I had already struck out the comment about editing other peoples comments, I wasn't reading it properly. And I will now say the same about the ABS comment, but with your interjections and stuff, I was finding the page hard to read. Perhaps if you made sure your comments were on a new line after the person you're quoting (maybe indented)(bold is good though). :You have indeed misunderstood my point, I beleive the article claims that Australian Football is the most popular ''spectator'' sport (or if it doesn't, it did, and should). The Sweeney report includes participation. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:49, 22 November 2005 (UTC) == Another example of out of control non-NPOV == '''Cricket is the most common summer spectator sport in Australia, and is usually played on the same grounds as Australian Football. In the past, many elite-level footballers played representative cricket, but the increasingly professional nature of the game made this impossible by the 1980s. Of the other organised sports or physical activities played by aussie rules footballers in Australia, outdoor cricket is the most popular.''' I think we're forgetting what the CG part of MCG stands for![[User:Factoid Killer|Factoid Killer]] 10:01, 22 November 2005 (UTC) :I think you're forgetting what the article is about. [[User:JPD|JPD]] 10:20, 22 November 2005 (UTC) ::You must be pretty desperate for a valid argument if, in order to gain one, you have to resurect a comment I already admitted was incorrect and subsequently deleted in order to gain one! :::I did not see that you had deleted your comment, as it edit conflicted with my edit to the previous section and was quite confusing. At any rate, it is not normal to delete comments from the talk page. To avoid confusion, you might like admit on the talk page that you misread the sentence, rather than just deleting your comment. [[User:JPD|JPD]] 13:12, 22 November 2005 (UTC) ::::I admitted it in the history where the deletion was recorded. The entire section became pointless but since you're not going to let it die I decided to take some time to go through the first part of the article. I'm not finished yet... :::::Could you please [[WP:FAITH|assume good faith]]? The edit conflict was quite confusing and I did not realise that you had deleted it. I did not imply that you did not admit it, I simply suggested that it would have been less confusing to admit on the talk page. I am perfectly happy to let it die now that I understand you retracted the comment. I am not perfectly happy to accept your accusation that I deliberately resurrected it. [[User:JPD|JPD]] 13:40, 22 November 2005 (UTC) ::::OK good faith it is. I even deleted the accusation.... well i thought that was funny. I originally thought the sentence was suggesting that cricket is played on an Aussie Rules field. That would qualify as non-NPOV. Saying they're played on the same field is not. :::::It seem that you added this paragraph just before I clicked edit, so I hadn't read it when I wrote the above. The explanation for the 6 minutes, if you want it, is that I clicked submit when I had finished my edit to the earlier section, and then worked on something else. When I came back to the window, I saw that it had not been submitted due to an edit conflict. How much of the six minutes was between your edits and my original submission and how much was between my first submission and my second one, I don't know. You can see that my "resurrection" of your comment was part of the edit I made to the earlier section. [[User:JPD|JPD]] 13:53, 22 November 2005 (UTC) This was a response to your now deleted accusation - I am still having trouble keeping up with you, but I think we understand the original problem now, so let's leave it at that. [[User:JPD|JPD]] 13:56, 22 November 2005 (UTC) OUT OF CONTROL NON-NPOV ===Openning Paragraph=== '''Spectacular high marks ("speccies") are regarded as one of the game's main attributes as a spectator sport.''' From who's 'point of view' is it spectacular? :Spectators. That's why it says "...as a spectator sport". If this is "POV", then you presumably believe that some other attribute of the game is more important to spectators. Which? [[User Talk:Stevage|Stevage]] 14:52, 16 December 2005 (UTC) ===Popularity=== '''Domestic Migration''' I'm a northerner and a rugby league fan, experientially I can't deny that AFL seems to be Australia's most popular winter sport and is growing in popularity. This point should be made though: *In the states that support AFL pre-dominantly, that sport is followed with an unmatched level of passion, akin to a religion or way of life for many. It is not only accepted, but expected that you follow an AFL team, and it does not matter whether you are a truck driver or a lawyer the game is loved by everyone. In NSW on the other hand, following rugby league can sometimes be considered low-brow by your intellectual types, uncool by your hip types and thuggish brutality by your vegan types. Factor in the class divide where your elite private schools play rugby union only, and breed staunch union supporters and you can see you're behind the eight ball already. And then there is domestic migration, which in Australia tends to move in a north eastern direction meaning people brought up speaking the language of AFL move into NSW and Queensland and increase the supporter base for the code in those states. *With relation to the above, this affects media coverage of the respective sports in Sydney. There are two reasons for this, the average union and AFL fan in NSW has a higher expendable income than the average rugby league fan (sorry no references), leading to these sports being able to attract 'high-end' sponsors and advertisers. In a vicious cycle, these 'high end' company's are often run at the highest levels by graduates from the aforementioned elite schools and we know where their loyalties lie. (In a quick aside, my personal opinion is that in Australia, rugby union would be as much of an anachronism as royal tennis, if it weren't for the elite private schools keeping it alive all these years.) Good sponsorship like this leads to greater exposure, even if the actual level of support doesn't warrant it. The Sydney Morning Herald is a prime example. This paper concentrates on union and AFL at the expense of rugby league, it also has a very poor circulation compared to the other major Sydney paper, the Daily Telegraph. --[[User:220.245.178.140|220.245.178.140]] 00:54, 25 November 2005 (UTC)Regards CS-----[[User:220.245.178.140|220.245.178.140]] 00:54, 25 November 2005 (UTC) Very true. And i'm happy to admit I came to this page knowing it would be loaded with non-npov statments due to the incredible level of fanaticism with the sport. The level of fanaticism can only be compared to sports such as soccer in europe and GAA sports in country areas of Ireland (GAA sports are not popular in dublin where everyone just follows british soccer). When visiting Melbourne many a cab driver has become upset with me when my response to the question 'which team do you follow?' is the Brisbane Broncos [[User:Factoid Killer|Factoid Killer]] 09:28, 25 November 2005 (UTC) :In doing so, you managed to find several "non-npov statements" that were perfectly npov when they were read sensibly. You might have understood what was being said better if you didn't start with the assumption that it would be inappropriate. I agree with you that there are several vague unsourced statements, but that is not the same as POV-pushing. [[User:JPD|JPD]] 10:45, 25 November 2005 (UTC) ::That may be the case but either way, my presumption has allowed me to play devils advocate to the benefit of the article. [[User:Factoid Killer|Factoid Killer]] 11:41, 25 November 2005 (UTC) '''attracts more interest than any other winter sport''' This comment is backed up by an excellent citation. The citation has a great deal of information that could aid the reader to quantify the popularity of Australian rules football in comparison to other sports. However, none of that information is included in the article! '''In the Australian Capital Territory (ACT) rugby union is arguably more popular.''' Arguable by whom? Who is being quoted here? Where's the source to back this up? Looks like heresay to me. :I am not a rugby fan but I live in Canberra and I can tell you that Rugby Union (at the elite level) easily attracts, on average, more spectators per game. It's a non contest so drop it. ::Sorry not good enough. I expect more than anecdotal evidience to back a claim like this. Where are the numbers? Who are you quoting?[[User:62.254.168.102|62.254.168.102]] 09:13, 23 November 2005 (UTC) :::It's probably true, it does need to be sourced, but more to the point, does it really need to be in the article? The point is that in most of NSW, Qld and ACT, AF is not the obviously dominant code as it is in other areas. For this context, it doesn't matter what the dominant code is. [[User:JPD|JPD]] 09:48, 23 November 2005 (UTC) '''In recent years, there has been a boom in Australian Football in Brisbane, and this appears to be closely linked to the success of the Brisbane Lions, who won three premierships in a row (2001-2003), and were runners-up in 2004.''' Who is being quoted here? Where is the citation and stats to back up the claim? Looks like an assumption based on anecdotal evidence to me. :We can look at Brisbane Lions membership and crowd attendance (through the roof), and participation rates of school-age children in the Brisbane metropolitan area, especially in the Auskick program. ::That would be a good start. In addition, can we find out the rise in television ratings? Since the first premiership win? Maybe the immigration stats. I'm originally from Brisbane and recall a time when the only attendance the Brisbane Bears received consisted of southern immigrants who were there to see the opposition play. It has been suggested that those AFL fans had children and their children follow the Brisbane Lions. This largely accounts for the grown in support for the sport in Brisbane prior to the first premiership win. I'll see if I can track down a quote or source for this.[[User:62.254.168.102|62.254.168.102]] 09:13, 23 November 2005 (UTC) '''In both the ACT and south-western NSW, Australian Football has rivalled the two varieties of rugby in popularity over many decades.''' Over many decades? I find that difficult to believe. And again I ask, where's the source of this information? :This is a stupid question, it is common knowledge, like the sky is blue. Southern NSW has alsways been Aussie rules territory, some of the best players in history have come from Albury and Wagga. In fact in the 1996 grand final, the two captains of the opposing teams both came from Wagga. As for the ACT, only someone who doesn't know the history of Canberra would query this fact. ::This is a stupid suggestion. It doesn't matter if it is common knowledge. You are breaking wikipedia's rules by including original material and not providing a source. Having said that, I did misread the quote and thought it was suggesting all of NSW. I agree it is common knowledge. I've been to wagga wagga and albury. However, I stand by my comment that this needs to be sourced. '''With nearly 400,000 participants, Australian Football is also one of the most played sports in the Australia.''' Great. Now the participation section. Easily verifiable by the Australian Bureau of statistics web site. One problem. It's a pretty vague comment. '''One of the most played sports''' and successfully manages to leave people assuming certain things. How about stating the its rank? It might be interesting for people to know that soccer, netball and basketball all have higher participation rates and Australian Rules football. And that in adults, sports such as golf, darts,billiards and pool have higher participation rates. This is exactly how i'd word an article if I were expressing point of view and pushing an agenda. '''Australian Football is also now played in more than 20 countries around the world.''' This fails to express how unpopular the sport is in those 20 countries? :: Does it really need to address popularity (surely general popularity was covered in a previous section that mentions the game is only popular in Nauru and PNG ? In any case it is a simple statement of fact - no more, no less. --[[User:Biatch|Biatch]] ===Leagues=== '''The most powerful organisation and competition within the game is the elite, professional Australian Football League (AFL)''' Oh they're elite. Is that another non-NPOV comment? how about quoting somebody saying that? #Stating a rank is completley meaningless when there is so much of an argument over what that rank is. The very fact your arguing illustrates that "one of the most popular" is the ''most'' neutral thing we can say. #It does not matter how unpopular it is, it is saying how many countries it is played in. Does it say, "AF is the best sport ever, with national leagues in 20 countries"? #We don't need a quote to prove the AFL is the elite league - to quote Macquarie, "a group of people with the most power, money, education etc." elite is just an adjective. Would you argue the AFL does not have the most money of any organisation of the game? And they set the rules, how much more power can you have? I notice that all your arguments come from the sections that were removed from the intro. They are terefore summarising what should have been further into the article. I was not a fan of the leagues section, seeing as there is a teams and leagues section further in. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 15:38, 22 November 2005 (UTC) ::No I merely read through the first few paragraphs looking for non-npov statements. I stopped at the leagues section due to time constraints. I intend to go through the remainder of the article. I don't want to go making changes without discussing them first. That sort of thing leads to reversion and wasted time. #With regards to rank, there is no dispute regarding the ranking as a participant sport. The ABS provides these figures and even if we disputed it, it wouldn't matter. You can still say "the ABS says...". #How popular it is in those countries is very interesting and usefull information. The absence of this information can be interpreted as non-npov writing. #As for your 'elite' comment, there should be nothing in this article that can be interpreted as 'original material'. Everything in this article is supposed to be sourced from somewhere. This rule applies to all wikipedia articles. This one is not an exception. [[User:Factoid Killer|Factoid Killer]] 16:41, 22 November 2005 (UTC) I just took a look at the article for the first time since writing this and see that the issues i brought up have been addressed. I'm impressed. I think the article is better as a result. Still needs more verifiable citations and quotations.[[User:Factoid Killer|Factoid Killer]] 17:01, 22 November 2005 (UTC) I wasn't trying to say anything about your comments, rather that until a few weeks ago, everything up to and including the leagues section was in the intro. I haven't liked it is(or like it was), and have felt it sub par, but not quite sure how to go about fixing it. #Fair enough #I still think that this is ok— perhaps your use of the word unpopular got my back up (fails to mention the degree of popularity...?) My understanding is that it is quite popular in some countries, esp. the US. Shouldn't be too hard to find references #And I still think you're taking this one too far— Everything in the article must be sourced, but that does not mean that everything in the article must be directly quoted from somewhere (granted, "elite" is possibly not the best word) [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 17:08, 22 November 2005 (UTC) (stop editing the page while i'm trying to post!!!!) #The participation information should not have been removed from the page. I think it is fair enough to say it is one of the most played sports, as the definition of sport differs from survey to survey. (A lot of people swim, a lot less swim compeititively), but we should definitely give the figures from the ABS. The emphasis should be on the nubmers, not the comparison. #Including "amateur" probably makes enough difference, but you were being a bit fussy to start with - don't read too much into a sentence. At any rate, more detail is given later in the article. #I think the relevant definition of elite here is “The best or most skilled members of a group: the football team's elite.” It would be POV to declare individual players elite, or possibly even to call the VFL the elite league in the past, but in modern days the structure of the game is such that saying the AFL is the elite league is as undisputable as calling the Premier League the elite competition in English soccer. We don't need to have sources for the word "elite", simply for the fact that it is the top-level competition. [[User:JPD|JPD]] 09:48, 23 November 2005 (UTC) #Re: the word elite. OK I agree that the word elite can be used in a non-npov context. However, in the sentence it's being used here, it is redundant. It becomes POV at the point that the same point is repeated a multiple number of times in the same sentence. I'm happy for them to be called either the most powerful organisation or the elite organisation, but not both. What if instead of saying 'The NRL is the elite governing body for the sport of rugby leage in Australia' I decided to say this 'The NRL is the most powerful, vigorously supreme, almighty and elite governing body of the sport of rugby league in Australia'?[[User:Factoid Killer|Factoid Killer]] 14:47, 23 November 2005 (UTC) You have a good point. I guess I feel that the meaning of elite being used here is the one that refers to the skill level of the competition, rather than the power and money of the organisation (governing body). It would be good to rewrite/split the sentence to that it adequately reflects both aspects. [[User:JPD|JPD]] 14:54, 23 November 2005 (UTC) #Re: the word elite. Geez, if you really want one, the NAB (sponsors) obviously think it is elite, because they drop the word about 5 times in this article [http://www.national.com.au/Sponsorships/0,,66975,00.html]. If guess if it wasn't elite, you could probably walk up and get a game, which is obviously not the case. --[[User:Biatch]] == Rename? == Should this article be renamed from "Australian rules football" to "Australian Rules Football"? It seems to be that the former sounds like a statement about a person in charge of football :) But in all seriousness, the latter is the correct title, is it not? The history in the redirect appears to show the reverse was done on 11 November 2004, I but cannot think why. "rules" (uncapitalised) implies something other than a title. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 02:27, 25 November 2005 (UTC) :Hi Ian - I agree it needs to be looked at, I don't understand either why it was changed to lower case. It has to be either Australian Rules Football, or simply Australian Football (remembering that the league is called the [[Australian Football League]]). [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 03:06, 25 November 2005 (UTC) ::Hi Pippu - long time no speak! Definitely not "Australian Football"! I always played "Aussie Rules" or "Australian Rules Football". Regards -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 04:18, 25 November 2005 (UTC) :::I too played "Aussie Rules" or "Australian Rules Football" (in amongst kick-to-kick, waxing, going for speccies and having pot shots at goal from impossible angles). All I can add is that I have noticed a trend over the last 10 to 15 years to use the term "Australian Football", and indeed some of the major leagues around the country (and maybe even some club names), that may have once had the term "Rules" in them, have dropped it of late. I accept that this is just a gut-feel and I have not surveyed anyone - either way, ''Australian rules football'' is not acceptable. --[[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 04:50, 25 November 2005 (UTC) :::I don't understand why it's not acceptable. The "Australian" part is the only part that refers to a proper noun, the rest should be uncapitalised in the same way we refer to "American football", "Association football", etc. We don't play "Netball and Basketball", we play netball and basketball. There's nothing about the name of the sport that demands capitalisation except for the bit that is named after a country, even if only for consistency's sake. Whatever our own opinions surely we should follow WP convention at least.--[[User:The Brain of Morbius|The Brain of Morbius]] 05:07, 25 November 2005 (UTC) #When I was playing in the junior ranks (rare for a queenslander) our sport was referred to as 'Australian Footy' which was a cut down version where you couldn't kick the ball off the ground. The senior players played a game called 'Australian Football'. That's how it was officially termed. #It doesn't matter how you want the capitalisation to work, it is a wikipedia standard to capitalise only the first letter of the first word.[[User:Factoid Killer|Factoid Killer]] 09:20, 25 November 2005 (UTC) :Not quite true - if the title as a whole is a proper noun (eg New South Wales), then obviously each word has a capital letter. However, the convention is (correctly) that names of sports are not proper nouns, hence rugby league and Australian rules football. It is true that the game is often called simply Australian football, but the version with "rules" is at least as common and less ambiguous. The name of the AFL is irrelevant, as I'm fairly sure that there the sport is simply refered to as "football", with "Australian" referring to the league. [[User:JPD|JPD]] 10:04, 25 November 2005 (UTC) ::if it's a wikipedia convention - fair enough - but I still maintain there has been a big push over the last 10 to 15 years to call it simply Australian football, also, I can't help thinking that that is the normal encyclopaedic entry - but I'm definitely not going to die in a ditch over it! [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 11:28, 25 November 2005 (UTC) :::There may have been 'a push', but I don't think that's the standard term yet. I call it "Australian football" when explaining it to foreigners, but that's still a bit of a neologism. ::*I've done a bit of research and thought this through a bit more and have to backtrack and agree with [[User:JPD]]. ie. leave as is. I apologise for bringing this up. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 18:26, 25 November 2005 (UTC) == External links == I notice that some of the lists in the article have been columnised, drawing attention to something I was planning to raise earlier - should we really have that many external links listed? Most of them seem to be fairly good sites, but we aren't meant to be a link directory. The links at [[cricket]] have been deliberately kept at a much smaller number, so maybe someone should do a bit of a cull here? [[User:JPD|JPD]] 17:40, 26 November 2005 (UTC) I don't think it's too bad. I agree it's as long as it should be, and maybe could be tightened slightly, but don't think a drastic cull is necessary.--[[User:Cinephobia|Cinephobia]] 11:20, 29 November 2005 (UTC) Bah :p Many links, but none to [http://stats.rleague.com/afl/afl_index.html me] --[[User:*Paul*|Paul]] 14:36, 29 November 2005 (UTC) : I recommend doing what they do at [[Association football]]: have only high-level links in the main article, and place other links in more relevant articles (e.g. the articles on the actual organisations the refer to). --[[User:Daveb|Daveb]] 09:17, 30 November 2005 (UTC) == Padding == :''The lengthy discussion regarding padding has been moved to [[Talk:Australian rules football/padding]]; to see it in its original context prior to the move [http://en.wikipedia.org/w/index.php?title=Talk:Australian_rules_football&oldid=32944830#padding click here]'' ==Piccies== I ask again: are these the very best photos we can get our hands on of the great Australian game? The one photo we show, looks more like the old Sun "Spot the Ball" competition. C'mon, let's lift our game! [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 22:57, 8 February 2006 (UTC) :Don't worry mate, footy season coming up soon, plenty of opportunities coming up. Cheers, [[WP:AFL|R]][[Special:Contributions/Rogerthat|o]][[User:Rogerthat|gerthat]] ''[[User_talk:Rogerthat|Talk]]'' 08:07, 9 February 2006 (UTC) ::I've uploaded some pictures I took at a match between Essendon and the Lions in June last year. They're not great, but are better than what is there now. I haven't added them in yet, I'll leave that for someone else to do. They could also possibly be re-cropped and resized, I can do this if someone asks. Locations: [http://en.wikipedia.org/wiki/Image:Australian_rules_01.jpg Australian_rules_01.jpg], [http://en.wikipedia.org/wiki/Image:Australian_rules_02.jpg Australian_rules_02.jpg], [http://en.wikipedia.org/wiki/Image:Australian_rules_03.jpg Australian_rules_03.jpg] --[[User:Joshd|Joshd]] 15:25, 1 March 2006 (UTC) :::I've cropped the one with the banner, uploaded it as [[:Image:Footybanner.jpg]] and put it in the section of this article mentioning the banners. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:09, 2 March 2006 (UTC) ==POV== Well, this article is pretty good, so congrats to the people involved. I do feel however, that it glorifies the sport a bit much, I know it is popular, but this article is a tad misleading, reading through it, it reads as if AFL is the be all and end all of Australian sport. Im not here to bag AFL by any means, and I know that there are sources provided and so on, but I do feel the article is not really written in a NPOV. [[User:Forever young|Forever young]] 03:51, 19 February 2006 (UTC) :About once every few months, someone comes along questioning the stats about the TV audiences, participation, live crowds, membership, etc. Rather than go through all of it a gain in tedious detail, could you please highight a few areas that are POV, especially via direct quotes from the article. [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 05:20, 19 February 2006 (UTC) ::I wouldn't call it non-NPOV, but the Popularity section, particularly with it positioned as the lead item (in front of what the game actually is, and its history) and its length, reads more like a fan site than a encyclopaedia --[[User:*Paul*|Paul]] 09:31, 19 February 2006 (UTC) :::that's a fair point - I am wondering whether it has always been there at the start, or whether it snuck in there during some of the many reorgs of the article...[[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 11:54, 19 February 2006 (UTC) :::in fact I just checked a version I edited on 25 September 2005 and noticed that there was no section on the popularity of the game - so clearly it has been added in since - nothing wrong with that, but as you correctly point out, it may be best appearing after the game is actually described - I have to agree with you on that one - anyone else? [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 11:57, 19 February 2006 (UTC) ::::I believe the intro understandably said something about where the game was played, which then became a lengthy explanation of it's popularity in Australia, etc, which became so long it was correctly made a separate section from the intro. I agree that it shouldn't really be at the beginning. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 19:17, 19 February 2006 (UTC) ==Help!== A few soccer fundamentalists are hijacking the term football in Australian articles. See, for example, [[Category:Football_in_Australia]]. We need concerted action to stop this. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 10:16, 22 February 2006 (UTC) :Put the category up for renaming. That name can't really be justified, so you should get support. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:40, 22 February 2006 (UTC) ==Tactics/Terminology== I propose a section in the article on some of the tactics and terminology used in the game, drawing from [[Australian Rules slang]] and [[:Category:Australian rules football terminology]]. Any thoughts or suggestions on this? [[WP:AFL|R]][[Special:Contributions/Rogerthat|o]][[User:Rogerthat|gerthat]] ''[[User_talk:Rogerthat|Talk]]'' 11:18, 22 February 2006 (UTC) :The article is already quite long. If we were to add anything like this, we'd have to prune the rest of it, I think. If things are covered in another article, they don't need to have too much detail here - the attendance records could be removed, for example. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:44, 22 February 2006 (UTC) ==Please vote== ...in a [[Talk:Football#Poll_on_content_relating_to_Australian_rules_football.2Frugby|poll on references to Aussie rules in the '''Football''']] article. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 03:37, 4 March 2006 (UTC) == External links == I've just reverted the additional of a generic football forum a couple of times. Could someone more knowledgeable go through and trim the external links? -- [[User:Chuq|Chuq]] 06:45, 31 March 2006 (UTC) :All the links that you have removed were definitely aussie rules specific, so I don't understand your edit summary. However, there were way too many links. I have cut quite a few, but there are still more than there should be going by [[Wikipedia:External links]]. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 09:45, 31 March 2006 (UTC) ::Well, one was SANFL, one was North Melbourne, one appeared to be a Coke promotional site.. and one other. -- [[User:Chuq|Chuq]] 12:47, 31 March 2006 (UTC) I've added the following text in a comment in the external links section - feel free to change if you don't think it is appropriate: ''Please DO NOT add other external links here unless they offer something specific that isn't available at any other site. There are hundreds of unofficial fan sites and they can not all be listed here. Preference will be given to links added by editors who contribute content, as opposed to editors who sign up specifically to promote a particular website.'' -- [[User:Chuq|Chuq]] 00:32, 3 April 2006 (UTC) raw-Wikipedia%3AWikirreto+2008%2FNoviembre%2FLucien+leGrey.wikitext000066400000000000000000002102201335270560400570710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/input.wikitext {{Wikipedia:Wikirreto 2008/Avisos}} ==Tabla== {| class="sortable wikitable" ! Nº ! Nombre de artículo ! Tipo de trabajo ! Kb finales ! Puntuación |----- | 1 | [[Buergeria buergeri]] | Ca | <2 Kb | 0,5 |----- | 2 | [[Buergeria japonica]] | Ca | <2 Kb | 0,5 |----- | 3 | [[Buergeria oxycephalus]] | Ca | <2 Kb | 0,5 |----- | 4 | [[Buergeria robusta]] | Ca | <2 Kb | 0,5 |----- | 5 | [[Buergeriinae]] | Ca | <2 Kb | 0,5 |----- | 6 | [[Chirixalus]] | Ca | <2 Kb | 0,5 |----- | 7 | [[Chirixalus ananjevae]] | Ca | <2 Kb | 0,5 |----- | 8 | [[Chirixalus cherrapunjiae]] | Ca | <2 Kb | 0,5 |----- | 9 | [[Chirixalus doriae]] | Ca | <2 Kb | 0,5 |----- | 10 | [[Chirixalus dudhwaensis]] | Ca | <2 Kb | 0,5 |----- | 11 | [[Chirixalus hansenae]] | Ca | <2 Kb | 0,5 |----- | 12 | [[Chirixalus laevis]] | Ca | <2 Kb | 0,5 |----- | 13 | [[Chirixalus nongkhorensis]] | Ca | <2 Kb | 0,5 |----- | 14 | [[Chirixalus palpebralis]] | Ca | <2 Kb | 0,5 |----- | 15 | [[Chirixalus punctatus]] | Ca | <2 Kb | 0,5 |----- | 16 | [[Chirixalus shyamrupus]] | Ca | <2 Kb | 0,5 |----- | 17 | [[Chirixalus simus]] | Ca | <2 Kb | 0,5 |----- | 18 | [[Chirixalus vittatus]] | Ca | <2 Kb | 0,5 |----- | 19 | [[Chiromantis]] | Ca | <2 Kb | 0,5 |----- | 20 | [[Chiromantis kelleri]] | Ca | <2 Kb | 0,5 |----- | 21 | [[Chiromantis petersii]] | Ca | <2 Kb | 0,5 |----- | 22 | [[Chiromantis rufescens]] | Ca | <2 Kb | 0,5 |----- | 23 | [[Chiromantis xerampelina]] | Ca | <2 Kb | 0,5 |----- | 24 | [[Kurixalus]] | Ca | <2 Kb | 0,5 |----- | 25 | [[Kurixalus eiffingeri]] | Ca | <2 Kb | 0,5 |----- | 26 | [[Kurixalus idiootocus]] | Ca | <2 Kb | 0,5 |----- | 27 | [[Nyctixalus]] | Ca | <2 Kb | 0,5 |----- | 28 | [[Nyctixalus margaritifer]] | Ca | <2 Kb | 0,5 |----- | 29 | [[Nyctixalus moloch]] | Ca | <2 Kb | 0,5 |----- | 30 | [[Nyctixalus pictus]] | Ca | <2 Kb | 0,5 |----- | 31 | [[Nyctixalus spinosus]] | Ca | <2 Kb | 0,5 |----- | 32 | [[Philautus]] | Ca | <2 Kb | 0,5 |----- | 33 | [[Philautus abditus]] | Ca | <2 Kb | 0,5 |----- | 34 | [[Philautus abundus]] | Ca | <2 Kb | 0,5 |----- | 35 | [[Philautus acutirostris]] | Ca | <2 Kb | 0,5 |----- | 36 | [[Philautus acutus]] | Ca | <2 Kb | 0,5 |----- | 37 | [[Philautus adspersus]] | Ca | <2 Kb | 0,5 |----- | 38 | [[Philautus albopunctatus]] | Ca | <2 Kb | 0,5 |----- | 39 | [[Philautus alto]] | Ca | <2 Kb | 0,5 |----- | 40 | [[Philautus amoenus]] | Ca | <2 Kb | 0,5 |----- | 41 | [[Philautus andersoni]] | Ca | <2 Kb | 0,5 |----- | 42 | [[Philautus annandalii]] | Ca | <2 Kb | 0,5 |----- | 43 | [[Philautus asankai]] | Ca | <2 Kb | 0,5 |----- | 44 | [[Philautus aurantium]] | Ca | <2 Kb | 0,5 |----- | 45 | [[Philautus auratus]] | Ca | <2 Kb | 0,5 |----- | 46 | [[Philautus aurifasciatus]] | Ca | <2 Kb | 0,5 |----- | 47 | [[Philautus banaensis]] | Ca | <2 Kb | 0,5 |----- | 48 | [[Philautus beddomii]] | Ca | <2 Kb | 0,5 |----- | 49 | [[Philautus bombayensis]] | Ca | <2 Kb | 0,5 |----- | 50 | [[Philautus bunitus]] | Ca | <2 Kb | 0,5 |----- | 51 | [[Philautus caeruleus]] | Ca | <2 Kb | 0,5 |----- | 52 | [[Philautus cardamonus]] | Ca | <2 Kb | 0,5 |----- | 53 | [[Philautus carinensis]] | Ca | <2 Kb | 0,5 |----- | 54 | [[Philautus cavirostris]] | Ca | <2 Kb | 0,5 |----- | 55 | [[Philautus chalazodes]] | Ca | <2 Kb | 0,5 |----- | 56 | [[Philautus charius]] | Ca | <2 Kb | 0,5 |----- | 57 | [[Philautus cinerascens]] | Ca | <2 Kb | 0,5 |----- | 58 | [[Philautus cornutus]] | Ca | <2 Kb | 0,5 |----- | 59 | [[Philautus cuspis]] | Ca | <2 Kb | 0,5 |----- | 60 | [[Philautus decoris]] | Ca | <2 Kb | 0,5 |----- | 61 | [[Philautus dimbullae]] | Ca | <2 Kb | 0,5 |----- | 62 | [[Philautus disgregus]] | Ca | <2 Kb | 0,5 |----- | 63 | [[Philautus dubius]] | Ca | <2 Kb | 0,5 |----- | 64 | [[Philautus erythrophthalmus]] | Ca | <2 Kb | 0,5 |----- | 65 | [[Philautus eximius]] | Ca | <2 Kb | 0,5 |----- | 66 | [[Philautus extirpo]] | Ca | <2 Kb | 0,5 |----- | 67 | [[Philautus femoralis]] | Ca | <2 Kb | 0,5 |----- | 68 | [[Philautus fergusonianus]] | Ca | <2 Kb | 0,5 |----- | 69 | [[Philautus flaviventris]] | Ca | <2 Kb | 0,5 |----- | 70 | [[Philautus folicola]] | Ca | <2 Kb | 0,5 |----- | 71 | [[Philautus frankenbergi]] | Ca | <2 Kb | 0,5 |----- | 72 | [[Philautus fulvus]] | Ca | <2 Kb | 0,5 |----- | 73 | [[Philautus garo]] | Ca | <2 Kb | 0,5 |----- | 74 | [[Philautus glandulosus]] | Ca | <2 Kb | 0,5 |----- | 75 | [[Philautus gracilipes]] | Ca | <2 Kb | 0,5 |----- | 76 | [[Philautus griet]] | Ca | <2 Kb | 0,5 |----- | 77 | [[Philautus gryllus]] | Ca | <2 Kb | 0,5 |----- | 78 | [[Philautus gunungensis]] | Ca | <2 Kb | 0,5 |----- | 79 | [[Philautus hallidayi]] | Ca | <2 Kb | 0,5 |----- | 80 | [[Philautus halyi]] | Ca | <2 Kb | 0,5 |----- | 81 | [[Philautus hoffmanni]] | Ca | <2 Kb | 0,5 |----- | 82 | [[Philautus hoipolloi]] | Ca | <2 Kb | 0,5 |----- | 83 | [[Philautus hosii]] | Ca | <2 Kb | 0,5 |----- | 84 | [[Philautus hypomelas]] | Ca | <2 Kb | 0,5 |----- | 85 | [[Philautus ingeri]] | Ca | <2 Kb | 0,5 |----- | 86 | [[Philautus jacobsoni]] | Ca | <2 Kb | 0,5 |----- | 87 | [[Philautus jerdonii]] | Ca | <2 Kb | 0,5 |----- | 88 | [[Philautus jinxiuensis]] | Ca | <2 Kb | 0,5 |----- | 89 | [[Philautus kempiae]] | Ca | <2 Kb | 0,5 |----- | 90 | [[Philautus kerangae]] | Ca | <2 Kb | 0,5 |----- | 91 | [[Philautus leitensis]] | Ca | <2 Kb | 0,5 |----- | 92 | [[Philautus leucorhinus]] | Ca | <2 Kb | 0,5 |----- | 93 | [[Philautus limbus]] | Ca | <2 Kb | 0,5 |----- | 94 | [[Philautus longchuanensis]] | Ca | <2 Kb | 0,5 |----- | 95 | [[Philautus longicrus]] | Ca | <2 Kb | 0,5 |----- | 96 | [[Philautus lunatus]] | Ca | <2 Kb | 0,5 |----- | 97 | [[Philautus luteolus]] | Ca | <2 Kb | 0,5 |----- | 98 | [[Philautus macropus]] | Ca | <2 Kb | 0,5 |----- | 99 | [[Philautus malcolmsmithi]] | Ca | <2 Kb | 0,5 |----- | 100 | [[Philautus maosonensis]] | Ca | <2 Kb | 0,5 |----- | 101 | [[Philautus medogensis]] | Ca | <2 Kb | 0,5 |----- | 102 | [[Philautus menglaensis]] | Ca | <2 Kb | 0,5 |----- | 103 | [[Philautus microdiscus]] | Ca | <2 Kb | 0,5 |----- | 104 | [[Philautus microtympanum]] | Ca | <2 Kb | 0,5 |----- | 105 | [[Philautus mittermeieri]] | Ca | <2 Kb | 0,5 |----- | 106 | [[Philautus mjobergi]] | Ca | <2 Kb | 0,5 |----- | 107 | [[Philautus mooreorum]] | Ca | <2 Kb | 0,5 |----- | 108 | [[Philautus namdaphaensis]] | Ca | <2 Kb | 0,5 |----- | 109 | [[Philautus nanus]] | Ca | <2 Kb | 0,5 |----- | 110 | [[Philautus nasutus]] | Ca | <2 Kb | 0,5 |----- | 111 | [[Philautus nemus]] | Ca | <2 Kb | 0,5 |----- | 112 | [[Philautus ocellatus]] | Ca | <2 Kb | 0,5 |----- | 113 | [[Philautus ocularis]] | Ca | <2 Kb | 0,5 |----- | 114 | [[Philautus odontotarsus]] | Ca | <2 Kb | 0,5 |----- | 115 | [[Philautus oxyrhynchus]] | Ca | <2 Kb | 0,5 |----- | 116 | [[Philautus pallidipes]] | Ca | <2 Kb | 0,5 |----- | 117 | [[Philautus papillosus]] | Ca | <2 Kb | 0,5 |----- | 118 | [[Philautus parvulus]] | Ca | <2 Kb | 0,5 |----- | 119 | [[Philautus petersi]] | Ca | <2 Kb | 0,5 |----- | 120 | [[Philautus petilus]] | Ca | <2 Kb | 0,5 |----- | 121 | [[Philautus pleurotaenia]] | Ca | <2 Kb | 0,5 |----- | 122 | [[Philautus poecilius]] | Ca | <2 Kb | 0,5 |----- | 123 | [[Philautus poppiae]] | Ca | <2 Kb | 0,5 |----- | 124 | [[Philautus popularis]] | Ca | <2 Kb | 0,5 |----- | 125 | [[Philautus procax]] | Ca | <2 Kb | 0,5 |----- | 126 | [[Philautus refugii]] | Ca | <2 Kb | 0,5 |----- | 127 | [[Philautus regius]] | Ca | <2 Kb | 0,5 |----- | 128 | [[Philautus reticulatus]] | Ca | <2 Kb | 0,5 |----- | 129 | [[Philautus rhododiscus]] | Ca | <2 Kb | 0,5 |----- | 130 | [[Philautus rugatus]] | Ca | <2 Kb | 0,5 |----- | 131 | [[Philautus rus]] | Ca | <2 Kb | 0,5 |----- | 132 | [[Philautus sanctisilvaticus]] | Ca | <2 Kb | 0,5 |----- | 133 | [[Philautus sarasinorum]] | Ca | <2 Kb | 0,5 |----- | 134 | [[Philautus saueri]] | Ca | <2 Kb | 0,5 |----- | 135 | [[Philautus schmackeri]] | Ca | <2 Kb | 0,5 |----- | 136 | [[Philautus schmarda]] | Ca | <2 Kb | 0,5 |----- | 137 | [[Philautus semiruber]] | Ca | <2 Kb | 0,5 |----- | 138 | [[Philautus shillongensis]] | Ca | <2 Kb | 0,5 |----- | 139 | [[Philautus signatus]] | Ca | <2 Kb | 0,5 |----- | 140 | [[Philautus silus]] | Ca | <2 Kb | 0,5 |----- | 141 | [[Philautus silvaticus]] | Ca | <2 Kb | 0,5 |----- | 142 | [[Philautus simba]] | Ca | <2 Kb | 0,5 |----- | 143 | [[Philautus similipalensis]] | Ca | <2 Kb | 0,5 |----- | 144 | [[Philautus similis]] | Ca | <2 Kb | 0,5 |----- | 145 | [[Philautus sordidus]] | Ca | <2 Kb | 0,5 |----- | 146 | [[Philautus steineri]] | Ca | <2 Kb | 0,5 |----- | 147 | [[Philautus stellatus]] | Ca | <2 Kb | 0,5 |----- | 148 | [[Philautus stictomerus]] | Ca | <2 Kb | 0,5 |----- | 149 | [[Philautus stuarti]] | Ca | <2 Kb | 0,5 |----- | 150 | [[Philautus supercornutus]] | Ca | <2 Kb | 0,5 |----- | 151 | [[Philautus surdus]] | Ca | <2 Kb | 0,5 |----- | 152 | [[Philautus surrufus]] | Ca | <2 Kb | 0,5 |----- | 153 | [[Philautus tectus]] | Ca | <2 Kb | 0,5 |----- | 154 | [[Philautus temporalis]] | Ca | <2 Kb | 0,5 |----- | 155 | [[Philautus terebrans]] | Ca | <2 Kb | 0,5 |----- | 156 | [[Philautus tinniens]] | Ca | <2 Kb | 0,5 |----- | 157 | [[Philautus travancoricus]] | Ca | <2 Kb | 0,5 |----- | 158 | [[Philautus tuberohumerus]] | Ca | <2 Kb | 0,5 |----- | 159 | [[Philautus tytthus]] | Ca | <2 Kb | 0,5 |----- | 160 | [[Philautus umbra]] | Ca | <2 Kb | 0,5 |----- | 161 | [[Philautus variabilis]] | Ca | <2 Kb | 0,5 |----- | 162 | [[Philautus vermiculatus]] | Ca | <2 Kb | 0,5 |----- | 163 | [[Philautus viridis]] | Ca | <2 Kb | 0,5 |----- | 164 | [[Philautus vittiger]] | Ca | <2 Kb | 0,5 |----- | 165 | [[Philautus worcesteri]] | Ca | <2 Kb | 0,5 |----- | 166 | [[Philautus wynaadensis]] | Ca | <2 Kb | 0,5 |----- | 167 | [[Philautus zal]] | Ca | <2 Kb | 0,5 |----- | 168 | [[Philautus zimmeri]] | Ca | <2 Kb | 0,5 |----- | 169 | [[Philautus zorro]] | Ca | <2 Kb | 0,5 |----- | 170 | [[Polypedates]] | Ca | <2 Kb | 0,5 |----- | 171 | [[Polypedates chenfui]] | Ca | <2 Kb | 0,5 |----- | 172 | [[Polypedates colletti]] | Ca | <2 Kb | 0,5 |----- | 173 | [[Polypedates cruciger]] | Ca | <2 Kb | 0,5 |----- | 174 | [[Polypedates dorsoviridis]] | Ca | <2 Kb | 0,5 |----- | 175 | [[Polypedates dugritei]] | Ca | <2 Kb | 0,5 |----- | 176 | [[Polypedates eques]] | Ca | <2 Kb | 0,5 |----- | 177 | [[Polypedates fastigo]] | Ca | <2 Kb | 0,5 |----- | 178 | [[Polypedates gongshanensis]] | Ca | <2 Kb | 0,5 |----- | 179 | [[Polypedates hecticus]] | Ca | <2 Kb | 0,5 |----- | 180 | [[Polypedates hungfuensis]] | Ca | <2 Kb | 0,5 |----- | 181 | [[Polypedates insularis]] | Ca | <2 Kb | 0,5 |----- | 182 | [[Polypedates leucomystax]] | Ca | <2 Kb | 0,5 |----- | 183 | [[Polypedates longinasus]] | Ca | <2 Kb | 0,5 |----- | 184 | [[Polypedates macrotis]] | Ca | <2 Kb | 0,5 |----- | 185 | [[Polypedates maculatus]] | Ca | <2 Kb | 0,5 |----- | 186 | [[Polypedates megacephalus]] | Ca | <2 Kb | 0,5 |----- | 187 | [[Polypedates mutus]] | Ca | <2 Kb | 0,5 |----- | 188 | [[Polypedates naso]] | Ca | <2 Kb | 0,5 |----- | 189 | [[Polypedates nigropunctatus]] | Ca | <2 Kb | 0,5 |----- | 190 | [[Polypedates omeimontis]] | Ca | <2 Kb | 0,5 |----- | 191 | [[Polypedates otilophus]] | Ca | <2 Kb | 0,5 |----- | 192 | [[Polypedates pseudocruciger]] | Ca | <2 Kb | 0,5 |----- | 193 | [[Polypedates puerensis]] | Ca | <2 Kb | 0,5 |----- | 194 | [[Polypedates taeniatus]] | Ca | <2 Kb | 0,5 |----- | 195 | [[Polypedates yaoshanensis]] | Ca | <2 Kb | 0,5 |----- | 196 | [[Polypedates zed]] | Ca | <2 Kb | 0,5 |----- | 197 | [[Polypedates zhaojuensis]] | Ca | <2 Kb | 0,5 |----- | 198 | [[Rhacophorinae]] | Ca | <2 Kb | 0,5 |----- | 199 | [[Rhacophorus]] | Ca | <2 Kb | 0,5 |----- | 200 | [[Rhacophorus achantharrhena]] | Ca | <2 Kb | 0,5 |----- | 201 | [[Rhacophorus angulirostris]] | Ca | <2 Kb | 0,5 |----- | 202 | [[Rhacophorus annamensis]] | Ca | <2 Kb | 0,5 |----- | 203 | [[Rhacophorus appendiculatus]] | Ca | <2 Kb | 0,5 |----- | 204 | [[Rhacophorus arboreus]] | Ca | <2 Kb | 0,5 |----- | 205 | [[Rhacophorus arvalis]] | Ca | <2 Kb | 0,5 |----- | 206 | [[Rhacophorus aurantiventris]] | Ca | <2 Kb | 0,5 |----- | 207 | [[Rhacophorus baliogaster]] | Ca | <2 Kb | 0,5 |----- | 208 | [[Rhacophorus baluensis]] | Ca | <2 Kb | 0,5 |----- | 209 | [[Rhacophorus barisani]] | Ca | <2 Kb | 0,5 |----- | 210 | [[Rhacophorus bifasciatus]] | Ca | <2 Kb | 0,5 |----- | 211 | [[Rhacophorus bimaculatus]] | Ca | <2 Kb | 0,5 |----- | 212 | [[Rhacophorus bipunctatus]] | Ca | <2 Kb | 0,5 |----- | 213 | [[Rhacophorus bisacculus]] | Ca | <2 Kb | 0,5 |----- | 214 | [[Rhacophorus calcadensis]] | Ca | <2 Kb | 0,5 |----- | 215 | [[Rhacophorus calcaneus]] | Ca | <2 Kb | 0,5 |----- | 216 | [[Rhacophorus catamitus]] | Ca | <2 Kb | 0,5 |----- | 217 | [[Rhacophorus cyanopunctatus]] | Ca | <2 Kb | 0,5 |----- | 218 | [[Rhacophorus dennysi]] | Ca | <2 Kb | 0,5 |----- | 219 | [[Rhacophorus depressus]] | Ca | <2 Kb | 0,5 |----- | 220 | [[Rhacophorus duboisi]] | Ca | <2 Kb | 0,5 |----- | 221 | [[Rhacophorus dulitensis]] | Ca | <2 Kb | 0,5 |----- | 222 | [[Rhacophorus edentulus]] | Ca | <2 Kb | 0,5 |----- | 223 | [[Rhacophorus everetti]] | Ca | <2 Kb | 0,5 |----- | 224 | [[Rhacophorus exechopygus]] | Ca | <2 Kb | 0,5 |----- | 225 | [[Rhacophorus fasciatus]] | Ca | <2 Kb | 0,5 |----- | 226 | [[Rhacophorus gauni]] | Ca | <2 Kb | 0,5 |----- | 227 | [[Rhacophorus georgii]] | Ca | <2 Kb | 0,5 |----- | 228 | [[Rhacophorus hainanus]] | Ca | <2 Kb | 0,5 |----- | 229 | [[Rhacophorus harrissoni]] | Ca | <2 Kb | 0,5 |----- | 230 | [[Rhacophorus hoanglienensis]] | Ca | <2 Kb | 0,5 |----- | 231 | [[Rhacophorus htunwini]] | Ca | <2 Kb | 0,5 |----- | 232 | [[Rhacophorus kajau]] | Ca | <2 Kb | 0,5 |----- | 233 | [[Rhacophorus lateralis]] | Ca | <2 Kb | 0,5 |----- | 234 | [[Rhacophorus malabaricus]] | Ca | <2 Kb | 0,5 |----- | 235 | [[Rhacophorus margaritifer]] | Ca | <2 Kb | 0,5 |----- | 236 | [[Rhacophorus maximus]] | Ca | <2 Kb | 0,5 |----- | 237 | [[Rhacophorus modestus]] | Ca | <2 Kb | 0,5 |----- | 238 | [[Rhacophorus moltrechti]] | Ca | <2 Kb | 0,5 |----- | 239 | [[Rhacophorus monticola]] | Ca | <2 Kb | 0,5 |----- | 240 | [[Rhacophorus nigropalmatus]] | Ca | <2 Kb | 0,5 |----- | 241 | [[Rhacophorus notater]] | Ca | <2 Kb | 0,5 |----- | 242 | [[Rhacophorus orlovi]] | Ca | <2 Kb | 0,5 |----- | 243 | [[Rhacophorus owstoni]] | Ca | <2 Kb | 0,5 |----- | 244 | [[Rhacophorus pardalis]] | Ca | <2 Kb | 0,5 |----- | 245 | [[Rhacophorus poecilonotus]] | Ca | <2 Kb | 0,5 |----- | 246 | [[Rhacophorus prasinatus]] | Ca | <2 Kb | 0,5 |----- | 247 | [[Rhacophorus prominanus]] | Ca | <2 Kb | 0,5 |----- | 248 | [[Rhacophorus pseudomalabaricus]] | Ca | <2 Kb | 0,5 |----- | 249 | [[Rhacophorus reinwardtii]] | Ca | <2 Kb | 0,5 |----- | 250 | [[Rhacophorus rhodopus]] | Ca | <2 Kb | 0,5 |----- | 251 | [[Rhacophorus rhyssocephalus]] | Ca | <2 Kb | 0,5 |----- | 252 | [[Rhacophorus robinsonii]] | Ca | <2 Kb | 0,5 |----- | 253 | [[Rhacophorus rufipes]] | Ca | <2 Kb | 0,5 |----- | 254 | [[Rhacophorus schlegelii]] | Ca | <2 Kb | 0,5 |----- | 255 | [[Rhacophorus taipeianus]] | Ca | <2 Kb | 0,5 |----- | 256 | [[Rhacophorus taronensis]] | Ca | <2 Kb | 0,5 |----- | 257 | [[Rhacophorus translineatus]] | Ca | <2 Kb | 0,5 |----- | 258 | [[Rhacophorus tuberculatus]] | Ca | <2 Kb | 0,5 |----- | 259 | [[Rhacophorus turpes]] | Ca | <2 Kb | 0,5 |----- | 260 | [[Rhacophorus variabilis]] | Ca | <2 Kb | 0,5 |----- | 261 | [[Rhacophorus verrucopus]] | Ca | <2 Kb | 0,5 |----- | 262 | [[Rhacophorus verrucosus]] | Ca | <2 Kb | 0,5 |----- | 263 | [[Rhacophorus viridis]] | Ca | <2 Kb | 0,5 |----- | 264 | [[Theloderma]] | Ca | <2 Kb | 0,5 |----- | 265 | [[Theloderma bicolor]] | Ca | <2 Kb | 0,5 |----- | 266 | [[Theloderma corticale]] | Ca | <2 Kb | 0,5 |----- | 267 | [[Theloderma gordoni]] | Ca | <2 Kb | 0,5 |----- | 268 | [[Theloderma horridum]] | Ca | <2 Kb | 0,5 |----- | 269 | [[Theloderma kwangsiense]] | Ca | <2 Kb | 0,5 |----- | 270 | [[Theloderma leporosum]] | Ca | <2 Kb | 0,5 |----- | 271 | [[Theloderma phrynoderma]] | Ca | <2 Kb | 0,5 |----- | 272 | [[Theloderma stellatum]] | Ca | <2 Kb | 0,5 |----- | 273 | [[Arthroleptis]] | Ca | <2 Kb | 0,5 |----- | 274 | [[Arthroleptis adelphus]] | Ca | <2 Kb | 0,5 |----- | 275 | [[Arthroleptis adolfifriederici]] | Ca | <2 Kb | 0,5 |----- | 276 | [[Arthroleptis affinis]] | Ca | <2 Kb | 0,5 |----- | 277 | [[Arthroleptis bivittatus]] | Ca | <2 Kb | 0,5 |----- | 278 | [[Arthroleptis brevipes]] | Ca | <2 Kb | 0,5 |----- | 279 | [[Arthroleptis carquejai]] | Ca | <2 Kb | 0,5 |----- | 280 | [[Arthroleptis crusculum]] | Ca | <2 Kb | 0,5 |----- | 281 | [[Arthroleptis discodactyla]] | Ca | <2 Kb | 0,5 |----- | 282 | [[Arthroleptis francei]] | Ca | <2 Kb | 0,5 |----- | 283 | [[Arthroleptis hematogaster]] | Ca | <2 Kb | 0,5 |----- | 284 | [[Arthroleptis lameerei]] | Ca | <2 Kb | 0,5 |----- | 285 | [[Arthroleptis loveridgei]] | Ca | <2 Kb | 0,5 |----- | 286 | [[Arthroleptis milletihorsini]] | Ca | <2 Kb | 0,5 |----- | 287 | [[Arthroleptis mossoensis]] | Ca | <2 Kb | 0,5 |----- | 288 | [[Arthroleptis nikeae]] | Ca | <2 Kb | 0,5 |----- | 289 | [[Arthroleptis nimbaensis]] | Ca | <2 Kb | 0,5 |----- | 290 | [[Arthroleptis phrynoides]] | Ca | <2 Kb | 0,5 |----- | 291 | [[Arthroleptis poecilonotus]] | Ca | <2 Kb | 0,5 |----- | 292 | [[Arthroleptis pyrrhoscelis]] | Ca | <2 Kb | 0,5 |----- | 293 | [[Arthroleptis reichei]] | Ca | <2 Kb | 0,5 |----- | 294 | [[Arthroleptis schubotzi]] | Ca | <2 Kb | 0,5 |----- | 295 | [[Arthroleptis spinalis]] | Ca | <2 Kb | 0,5 |----- | 296 | [[Arthroleptis stenodactylus]] | Ca | <2 Kb | 0,5 |----- | 297 | [[Arthroleptis sylvatica]] | Ca | <2 Kb | 0,5 |----- | 298 | [[Arthroleptis taeniatus]] | Ca | <2 Kb | 0,5 |----- | 299 | [[Arthroleptis tanneri]] | Ca | <2 Kb | 0,5 |----- | 300 | [[Arthroleptis troglodytes]] | Ca | <2 Kb | 0,5 |----- | 301 | [[Arthroleptis tuberosus]] | Ca | <2 Kb | 0,5 |----- | 302 | [[Arthroleptis variabilis]] | Ca | <2 Kb | 0,5 |----- | 303 | [[Arthroleptis vercammeni]] | Ca | <2 Kb | 0,5 |----- | 304 | [[Arthroleptis wahlbergii]] | Ca | <2 Kb | 0,5 |----- | 305 | [[Arthroleptis xenochirus]] | Ca | <2 Kb | 0,5 |----- | 306 | [[Arthroleptis xenodactyla]] | Ca | <2 Kb | 0,5 |----- | 307 | [[Arthroleptis xenodactyloides]] | Ca | <2 Kb | 0,5 |----- | 308 | [[Arthroleptis zimmeri]] | Ca | <2 Kb | 0,5 |----- | 309 | [[Astylosternus]] | Ca | <2 Kb | 0,5 |----- | 310 | [[Astylosternus batesi]] | Ca | <2 Kb | 0,5 |----- | 311 | [[Astylosternus diadematus]] | Ca | <2 Kb | 0,5 |----- | 312 | [[Astylosternus fallax]] | Ca | <2 Kb | 0,5 |----- | 313 | [[Astylosternus laurenti]] | Ca | <2 Kb | 0,5 |----- | 314 | [[Astylosternus montanus]] | Ca | <2 Kb | 0,5 |----- | 315 | [[Astylosternus nganhanus]] | Ca | <2 Kb | 0,5 |----- | 316 | [[Astylosternus occidentalis]] | Ca | <2 Kb | 0,5 |----- | 317 | [[Astylosternus perreti]] | Ca | <2 Kb | 0,5 |----- | 318 | [[Astylosternus ranoides]] | Ca | <2 Kb | 0,5 |----- | 319 | [[Astylosternus rheophilus]] | Ca | <2 Kb | 0,5 |----- | 320 | [[Astylosternus schioetzi]] | Ca | <2 Kb | 0,5 |----- | 321 | [[Cardioglossa]] | Ca | <2 Kb | 0,5 |----- | 322 | [[Cardioglossa alsco]] | Ca | <2 Kb | 0,5 |----- | 323 | [[Cardioglossa aureoli]] | Ca | <2 Kb | 0,5 |----- | 324 | [[Cardioglossa cyaneospila]] | Ca | <2 Kb | 0,5 |----- | 325 | [[Cardioglossa dorsalis]] | Ca | <2 Kb | 0,5 |----- | 326 | [[Cardioglossa elegans]] | Ca | <2 Kb | 0,5 |----- | 327 | [[Cardioglossa escalerae]] | Ca | <2 Kb | 0,5 |----- | 328 | [[Cardioglossa gracilis]] | Ca | <2 Kb | 0,5 |----- | 329 | [[Cardioglossa gratiosa]] | Ca | <2 Kb | 0,5 |----- | 330 | [[Cardioglossa leucomystax]] | Ca | <2 Kb | 0,5 |----- | 331 | [[Cardioglossa melanogaster]] | Ca | <2 Kb | 0,5 |----- | 332 | [[Cardioglossa nigromaculata]] | Ca | <2 Kb | 0,5 |----- | 333 | [[Cardioglossa oreas]] | Ca | <2 Kb | 0,5 |----- | 334 | [[Cardioglossa pulchra]] | Ca | <2 Kb | 0,5 |----- | 335 | [[Cardioglossa schioetzi]] | Ca | <2 Kb | 0,5 |----- | 336 | [[Cardioglossa trifasciata]] | Ca | <2 Kb | 0,5 |----- | 337 | [[Cardioglossa venusta]] | Ca | <2 Kb | 0,5 |----- | 338 | [[Leptodactylodon]] | Ca | <2 Kb | 0,5 |----- | 339 | [[Leptodactylodon albiventris]] | Ca | <2 Kb | 0,5 |----- | 340 | [[Leptodactylodon axillaris]] | Ca | <2 Kb | 0,5 |----- | 341 | [[Leptodactylodon bicolor]] | Ca | <2 Kb | 0,5 |----- | 342 | [[Leptodactylodon blanci]] | Ca | <2 Kb | 0,5 |----- | 343 | [[Leptodactylodon boulengeri]] | Ca | <2 Kb | 0,5 |----- | 344 | [[Leptodactylodon bueanus]] | Ca | <2 Kb | 0,5 |----- | 345 | [[Leptodactylodon erythrogaster]] | Ca | <2 Kb | 0,5 |----- | 346 | [[Leptodactylodon mertensi]] | Ca | <2 Kb | 0,5 |----- | 347 | [[Leptodactylodon ornatus]] | Ca | <2 Kb | 0,5 |----- | 348 | [[Leptodactylodon ovatus]] | Ca | <2 Kb | 0,5 |----- | 349 | [[Leptodactylodon perreti]] | Ca | <2 Kb | 0,5 |----- | 350 | [[Leptodactylodon polyacanthus]] | Ca | <2 Kb | 0,5 |----- | 351 | [[Leptodactylodon stevarti]] | Ca | <2 Kb | 0,5 |----- | 352 | [[Leptodactylodon ventrimarmoratus]] | Ca | <2 Kb | 0,5 |----- | 353 | [[Leptodactylodon wildi]] | Ca | <2 Kb | 0,5 |----- | 354 | [[Nyctibates corrugatus]] | Ca | <2 Kb | 0,5 |----- | 355 | [[Scotobleps gabonicus]] | Ca | <2 Kb | 0,5 |----- | 356 | [[Leptopelis]] | Ca | <2 Kb | 0,5 |----- | 357 | [[Leptopelis anchietae]] | Ca | <2 Kb | 0,5 |----- | 358 | [[Leptopelis argenteus]] | Ca | <2 Kb | 0,5 |----- | 359 | [[Leptopelis aubryi]] | Ca | <2 Kb | 0,5 |----- | 360 | [[Leptopelis barbouri]] | Ca | <2 Kb | 0,5 |----- | 361 | [[Leptopelis bequaerti]] | Ca | <2 Kb | 0,5 |----- | 362 | [[Leptopelis bocagii]] | Ca | <2 Kb | 0,5 |----- | 363 | [[Leptopelis boulengeri]] | Ca | <2 Kb | 0,5 |----- | 364 | [[Leptopelis brevipes]] | Ca | <2 Kb | 0,5 |----- | 365 | [[Leptopelis brevirostris]] | Ca | <2 Kb | 0,5 |----- | 366 | [[Leptopelis broadleyi]] | Ca | <2 Kb | 0,5 |----- | 367 | [[Leptopelis bufonides]] | Ca | <2 Kb | 0,5 |----- | 368 | [[Leptopelis calcaratus]] | Ca | <2 Kb | 0,5 |----- | 369 | [[Leptopelis christyi]] | Ca | <2 Kb | 0,5 |----- | 370 | [[Leptopelis concolor]] | Ca | <2 Kb | 0,5 |----- | 371 | [[Leptopelis crystallinoron]] | Ca | <2 Kb | 0,5 |----- | 372 | [[Leptopelis cynnamomeus]] | Ca | <2 Kb | 0,5 |----- | 373 | [[Leptopelis fenestratus]] | Ca | <2 Kb | 0,5 |----- | 374 | [[Leptopelis fiziensis]] | Ca | <2 Kb | 0,5 |----- | 375 | [[Leptopelis flavomaculatus]] | Ca | <2 Kb | 0,5 |----- | 376 | [[Leptopelis gramineus]] | Ca | <2 Kb | 0,5 |----- | 377 | [[Leptopelis hyloides]] | Ca | <2 Kb | 0,5 |----- | 378 | [[Leptopelis jordani]] | Ca | <2 Kb | 0,5 |----- | 379 | [[Leptopelis karissimbensis]] | Ca | <2 Kb | 0,5 |----- | 380 | [[Leptopelis kivuensis]] | Ca | <2 Kb | 0,5 |----- | 381 | [[Leptopelis lebeaui]] | Ca | <2 Kb | 0,5 |----- | 382 | [[Leptopelis macrotis]] | Ca | <2 Kb | 0,5 |----- | 383 | [[Leptopelis marginatus]] | Ca | <2 Kb | 0,5 |----- | 384 | [[Leptopelis millsoni]] | Ca | <2 Kb | 0,5 |----- | 385 | [[Leptopelis modestus]] | Ca | <2 Kb | 0,5 |----- | 386 | [[Leptopelis mossambicus]] | Ca | <2 Kb | 0,5 |----- | 387 | [[Leptopelis natalensis]] | Ca | <2 Kb | 0,5 |----- | 388 | [[Leptopelis nordequatorialis]] | Ca | <2 Kb | 0,5 |----- | 389 | [[Leptopelis notatus]] | Ca | <2 Kb | 0,5 |----- | 390 | [[Leptopelis ocellatus]] | Ca | <2 Kb | 0,5 |----- | 391 | [[Leptopelis omissus]] | Ca | <2 Kb | 0,5 |----- | 392 | [[Leptopelis oryi]] | Ca | <2 Kb | 0,5 |----- | 393 | [[Leptopelis palmatus]] | Ca | <2 Kb | 0,5 |----- | 394 | [[Leptopelis parbocagii]] | Ca | <2 Kb | 0,5 |----- | 395 | [[Leptopelis parkeri]] | Ca | <2 Kb | 0,5 |----- | 396 | [[Leptopelis parvus]] | Ca | <2 Kb | 0,5 |----- | 397 | [[Leptopelis ragazzii]] | Ca | <2 Kb | 0,5 |----- | 398 | [[Leptopelis rufus]] | Ca | <2 Kb | 0,5 |----- | 399 | [[Leptopelis susanae]] | Ca | <2 Kb | 0,5 |----- | 400 | [[Leptopelis uluguruensis]] | Ca | <2 Kb | 0,5 |----- | 401 | [[Leptopelis vannutellii]] | Ca | <2 Kb | 0,5 |----- | 402 | [[Leptopelis vermiculatus]] | Ca | <2 Kb | 0,5 |----- | 403 | [[Leptopelis viridis]] | Ca | <2 Kb | 0,5 |----- | 404 | [[Leptopelis xenodactylus]] | Ca | <2 Kb | 0,5 |----- | 405 | [[Leptopelis yaldeni]] | Ca | <2 Kb | 0,5 |----- | 406 | [[Leptopelis zebra]] | Ca | <2 Kb | 0,5 |----- | 407 | [[Leptopelis occidentalis]] | Ca | <2 Kb | 0,5 |----- | 408 | [[Hyperolius]] | Ca | <2 Kb | 0,5 |----- | 409 | [[Hyperolius acuticephalus]] | Ca | <2 Kb | 0,5 |----- | 410 | [[Hyperolius acuticeps]] | Ca | <2 Kb | 0,5 |----- | 411 | [[Hyperolius acutirostris]] | Ca | <2 Kb | 0,5 |----- | 412 | [[Hyperolius ademetzi]] | Ca | <2 Kb | 0,5 |----- | 413 | [[Hyperolius adspersus]] | Ca | <2 Kb | 0,5 |----- | 414 | [[Hyperolius albofrenatus]] | Ca | <2 Kb | 0,5 |----- | 415 | [[Hyperolius argus]] | Ca | <2 Kb | 0,5 |----- | 416 | [[Hyperolius atrigularis]] | Ca | <2 Kb | 0,5 |----- | 417 | [[Hyperolius balfouri]] | Ca | <2 Kb | 0,5 |----- | 418 | [[Hyperolius baumanni]] | Ca | <2 Kb | 0,5 |----- | 419 | [[Hyperolius benguellensis]] | Ca | <2 Kb | 0,5 |----- | 420 | [[Hyperolius bicolor]] | Ca | <2 Kb | 0,5 |----- | 421 | [[Hyperolius bobirensis]] | Ca | <2 Kb | 0,5 |----- | 422 | [[Hyperolius bolifambae]] | Ca | <2 Kb | 0,5 |----- | 423 | [[Hyperolius bopeleti]] | Ca | <2 Kb | 0,5 |----- | 424 | [[Hyperolius brachiofasciatus]] | Ca | <2 Kb | 0,5 |----- | 425 | [[Hyperolius camerunensis]] | Ca | <2 Kb | 0,5 |----- | 426 | [[Hyperolius castaneus]] | Ca | <2 Kb | 0,5 |----- | 427 | [[Hyperolius chlorosteus]] | Ca | <2 Kb | 0,5 |----- | 428 | [[Hyperolius chrysogaster]] | Ca | <2 Kb | 0,5 |----- | 429 | [[Hyperolius cinereus]] | Ca | <2 Kb | 0,5 |----- | 430 | [[Hyperolius cinnamomeoventris]] | Ca | <2 Kb | 0,5 |----- | 431 | [[Hyperolius concolor]] | Ca | <2 Kb | 0,5 |----- | 432 | [[Hyperolius cystocandicans]] | Ca | <2 Kb | 0,5 |----- | 433 | [[Hyperolius diaphanus]] | Ca | <2 Kb | 0,5 |----- | 434 | [[Hyperolius dintelmanni]] | Ca | <2 Kb | 0,5 |----- | 435 | [[Hyperolius discodactylus]] | Ca | <2 Kb | 0,5 |----- | 436 | [[Hyperolius endjami]] | Ca | <2 Kb | 0,5 |----- | 437 | [[Hyperolius fasciatus]] | Ca | <2 Kb | 0,5 |----- | 438 | [[Hyperolius ferreirai]] | Ca | <2 Kb | 0,5 |----- | 439 | [[Hyperolius ferrugineus]] | Ca | <2 Kb | 0,5 |----- | 440 | [[Hyperolius frontalis]] | Ca | <2 Kb | 0,5 |----- | 441 | [[Hyperolius fuscigula]] | Ca | <2 Kb | 0,5 |----- | 442 | [[Hyperolius fusciventris]] | Ca | <2 Kb | 0,5 |----- | 443 | [[Hyperolius ghesquieri]] | Ca | <2 Kb | 0,5 |----- | 444 | [[Hyperolius glandicolor]] | Ca | <2 Kb | 0,5 |----- | 445 | [[Hyperolius gularis]] | Ca | <2 Kb | 0,5 |----- | 446 | [[Hyperolius guttulatus]] | Ca | <2 Kb | 0,5 |----- | 447 | [[Hyperolius horstockii]] | Ca | <2 Kb | 0,5 |----- | 448 | [[Hyperolius houyi]] | Ca | <2 Kb | 0,5 |----- | 449 | [[Hyperolius hutsebauti]] | Ca | <2 Kb | 0,5 |----- | 450 | [[Hyperolius igbettensis]] | Ca | <2 Kb | 0,5 |----- | 451 | [[Hyperolius inornatus]] | Ca | <2 Kb | 0,5 |----- | 452 | [[Hyperolius kachalolae]] | Ca | <2 Kb | 0,5 |----- | 453 | [[Hyperolius kibarae]] | Ca | <2 Kb | 0,5 |----- | 454 | [[Hyperolius kihangensis]] | Ca | <2 Kb | 0,5 |----- | 455 | [[Hyperolius kivuensis]] | Ca | <2 Kb | 0,5 |----- | 456 | [[Hyperolius kuligae]] | Ca | <2 Kb | 0,5 |----- | 457 | [[Hyperolius lamottei]] | Ca | <2 Kb | 0,5 |----- | 458 | [[Hyperolius langi]] | Ca | <2 Kb | 0,5 |----- | 459 | [[Hyperolius lateralis]] | Ca | <2 Kb | 0,5 |----- | 460 | [[Hyperolius laticeps]] | Ca | <2 Kb | 0,5 |----- | 461 | [[Hyperolius laurenti]] | Ca | <2 Kb | 0,5 |----- | 462 | [[Hyperolius leleupi]] | Ca | <2 Kb | 0,5 |----- | 463 | [[Hyperolius leucotaenius]] | Ca | <2 Kb | 0,5 |----- | 464 | [[Hyperolius lucani]] | Ca | <2 Kb | 0,5 |----- | 465 | [[Hyperolius maestus]] | Ca | <2 Kb | 0,5 |----- | 466 | [[Hyperolius major]] | Ca | <2 Kb | 0,5 |----- | 467 | [[Hyperolius marginatus]] | Ca | <2 Kb | 0,5 |----- | 468 | [[Hyperolius mariae]] | Ca | <2 Kb | 0,5 |----- | 469 | [[Hyperolius marmoratus]] | Ca | <2 Kb | 0,5 |----- | 470 | [[Hyperolius minutissimus]] | Ca | <2 Kb | 0,5 |----- | 471 | [[Hyperolius mitchelli]] | Ca | <2 Kb | 0,5 |----- | 472 | [[Hyperolius molleri]] | Ca | <2 Kb | 0,5 |----- | 473 | [[Hyperolius montanus]] | Ca | <2 Kb | 0,5 |----- | 474 | [[Hyperolius mosaicus]] | Ca | <2 Kb | 0,5 |----- | 475 | [[Hyperolius nasutus]] | Ca | <2 Kb | 0,5 |----- | 476 | [[Hyperolius nienokouensis]] | Ca | <2 Kb | 0,5 |----- | 477 | [[Hyperolius nimbae]] | Ca | <2 Kb | 0,5 |----- | 478 | [[Hyperolius nitidulus]] | Ca | <2 Kb | 0,5 |----- | 479 | [[Hyperolius obscurus]] | Ca | <2 Kb | 0,5 |----- | 480 | [[Hyperolius occidentalis]] | Ca | <2 Kb | 0,5 |----- | 481 | [[Hyperolius ocellatus]] | Ca | <2 Kb | 0,5 |----- | 482 | [[Hyperolius orkarkarri]] | Ca | <2 Kb | 0,5 |----- | 483 | [[Hyperolius parallelus]] | Ca | <2 Kb | 0,5 |----- | 484 | [[Hyperolius pardalis]] | Ca | <2 Kb | 0,5 |----- | 485 | [[Hyperolius parkeri]] | Ca | <2 Kb | 0,5 |----- | 486 | [[Hyperolius phantasticus]] | Ca | <2 Kb | 0,5 |----- | 487 | [[Hyperolius pickersgilli]] | Ca | <2 Kb | 0,5 |----- | 488 | [[Hyperolius picturatus]] | Ca | <2 Kb | 0,5 |----- | 489 | [[Hyperolius pictus]] | Ca | <2 Kb | 0,5 |----- | 490 | [[Hyperolius platyceps]] | Ca | <2 Kb | 0,5 |----- | 491 | [[Hyperolius polli]] | Ca | <2 Kb | 0,5 |----- | 492 | [[Hyperolius polystictus]] | Ca | <2 Kb | 0,5 |----- | 493 | [[Hyperolius protchei]] | Ca | <2 Kb | 0,5 |----- | 494 | [[Hyperolius pseudargus]] | Ca | <2 Kb | 0,5 |----- | 495 | [[Hyperolius puncticulatus]] | Ca | <2 Kb | 0,5 |----- | 496 | [[Hyperolius punctulatus]] | Ca | <2 Kb | 0,5 |----- | 497 | [[Hyperolius pusillus]] | Ca | <2 Kb | 0,5 |----- | 498 | [[Hyperolius pustulifer]] | Ca | <2 Kb | 0,5 |----- | 499 | [[Hyperolius pyrrhodictyon]] | Ca | <2 Kb | 0,5 |----- | 500 | [[Hyperolius quadratomaculatus]] | Ca | <2 Kb | 0,5 |----- | 501 | [[Hyperolius quinquevittatus]] | Ca | <2 Kb | 0,5 |----- | 502 | [[Hyperolius raveni]] | Ca | <2 Kb | 0,5 |----- | 503 | [[Hyperolius reesi]] | Ca | <2 Kb | 0,5 |----- | 504 | [[Hyperolius rhizophilus]] | Ca | <2 Kb | 0,5 |----- | 505 | [[Hyperolius rhodesianus]] | Ca | <2 Kb | 0,5 |----- | 506 | [[Hyperolius riggenbachi]] | Ca | <2 Kb | 0,5 |----- | 507 | [[Hyperolius robustus]] | Ca | <2 Kb | 0,5 |----- | 508 | [[Hyperolius rubrovermiculatus]] | Ca | <2 Kb | 0,5 |----- | 509 | [[Hyperolius sankuruensis]] | Ca | <2 Kb | 0,5 |----- | 510 | [[Hyperolius schoutedeni]] | Ca | <2 Kb | 0,5 |----- | 511 | [[Hyperolius seabrai]] | Ca | <2 Kb | 0,5 |----- | 512 | [[Hyperolius semidiscus]] | Ca | <2 Kb | 0,5 |----- | 513 | [[Hyperolius sheldricki]] | Ca | <2 Kb | 0,5 |----- | 514 | [[Hyperolius soror]] | Ca | <2 Kb | 0,5 |----- | 515 | [[Hyperolius spinigularis]] | Ca | <2 Kb | 0,5 |----- | 516 | [[Hyperolius steindachneri]] | Ca | <2 Kb | 0,5 |----- | 517 | [[Hyperolius stenodactylus]] | Ca | <2 Kb | 0,5 |----- | 518 | [[Hyperolius swynnertoni]] | Ca | <2 Kb | 0,5 |----- | 519 | [[Hyperolius sylvaticus]] | Ca | <2 Kb | 0,5 |----- | 520 | [[Hyperolius tannerorum]] | Ca | <2 Kb | 0,5 |----- | 521 | [[Hyperolius thomensis]] | Ca | <2 Kb | 0,5 |----- | 522 | [[Hyperolius thoracotuberculatus]] | Ca | <2 Kb | 0,5 |----- | 523 | [[Hyperolius tornieri]] | Ca | <2 Kb | 0,5 |----- | 524 | [[Hyperolius torrentis]] | Ca | <2 Kb | 0,5 |----- | 525 | [[Hyperolius tuberculatus]] | Ca | <2 Kb | 0,5 |----- | 526 | [[Hyperolius tuberilinguis]] | Ca | <2 Kb | 0,5 |----- | 527 | [[Hyperolius vilhenai]] | Ca | <2 Kb | 0,5 |----- | 528 | [[Hyperolius viridiflavus]] | Ca | <2 Kb | 0,5 |----- | 529 | [[Hyperolius viridigulosus]] | Ca | <2 Kb | 0,5 |----- | 530 | [[Hyperolius viridis]] | Ca | <2 Kb | 0,5 |----- | 531 | [[Hyperolius wermuthi]] | Ca | <2 Kb | 0,5 |----- | 532 | [[Hyperolius xenorhinus]] | Ca | <2 Kb | 0,5 |----- | 533 | [[Hyperolius zonatus]] | Ca | <2 Kb | 0,5 |----- | 534 | [[Hyperolius bocagei]] | Ca | <2 Kb | 0,5 |----- | 535 | [[Afrixalus]] | Ca | <2 Kb | 0,5 |----- | 536 | [[Afrixalus aureus]] | Ca | <2 Kb | 0,5 |----- | 537 | [[Afrixalus brachycnemis]] | Ca | <2 Kb | 0,5 |----- | 538 | [[Afrixalus clarkeorum]] | Ca | <2 Kb | 0,5 |----- | 539 | [[Afrixalus crotalus]] | Ca | <2 Kb | 0,5 |----- | 540 | [[Afrixalus dorsalis]] | Ca | <2 Kb | 0,5 |----- | 541 | [[Afrixalus equatorialis]] | Ca | <2 Kb | 0,5 |----- | 542 | [[Afrixalus fornasini]] | Ca | <2 Kb | 0,5 |----- | 543 | [[Afrixalus fulvovittatus]] | Ca | <2 Kb | 0,5 |----- | 544 | [[Afrixalus knysnae]] | Ca | <2 Kb | 0,5 |----- | 545 | [[Afrixalus lacteus]] | Ca | <2 Kb | 0,5 |----- | 546 | [[Afrixalus laevis]] | Ca | <2 Kb | 0,5 |----- | 547 | [[Afrixalus leucostictus]] | Ca | <2 Kb | 0,5 |----- | 548 | [[Afrixalus lindholmi]] | Ca | <2 Kb | 0,5 |----- | 549 | [[Afrixalus morerei]] | Ca | <2 Kb | 0,5 |----- | 550 | [[Afrixalus nigeriensis]] | Ca | <2 Kb | 0,5 |----- | 551 | [[Afrixalus orophilus]] | Ca | <2 Kb | 0,5 |----- | 552 | [[Afrixalus osorioi]] | Ca | <2 Kb | 0,5 |----- | 553 | [[Afrixalus paradorsalis]] | Ca | <2 Kb | 0,5 |----- | 554 | [[Afrixalus quadrivittatus]] | Ca | <2 Kb | 0,5 |----- | 555 | [[Afrixalus schneideri]] | Ca | <2 Kb | 0,5 |----- | 556 | [[Afrixalus septentrionalis]] | Ca | <2 Kb | 0,5 |----- | 557 | [[Afrixalus spinifrons]] | Ca | <2 Kb | 0,5 |----- | 558 | [[Afrixalus stuhlmanni]] | Ca | <2 Kb | 0,5 |----- | 559 | [[Afrixalus sylvaticus]] | Ca | <2 Kb | 0,5 |----- | 560 | [[Afrixalus uluguruensis]] | Ca | <2 Kb | 0,5 |----- | 561 | [[Afrixalus upembae]] | Ca | <2 Kb | 0,5 |----- | 562 | [[Afrixalus vibekensis]] | Ca | <2 Kb | 0,5 |----- | 563 | [[Afrixalus weidholzi]] | Ca | <2 Kb | 0,5 |----- | 564 | [[Afrixalus wittei]] | Ca | <2 Kb | 0,5 |----- | 565 | [[Heterixalus]] | Ca | <2 Kb | 0,5 |----- | 566 | [[Heterixalus alboguttatus]] | Ca | <2 Kb | 0,5 |----- | 567 | [[Heterixalus andrakata]] | Ca | <2 Kb | 0,5 |----- | 568 | [[Heterixalus betsileo]] | Ca | <2 Kb | 0,5 |----- | 569 | [[Heterixalus boettgeri]] | Ca | <2 Kb | 0,5 |----- | 570 | [[Heterixalus carbonei]] | Ca | <2 Kb | 0,5 |----- | 571 | [[Heterixalus luteostriatus]] | Ca | <2 Kb | 0,5 |----- | 572 | [[Heterixalus madagascariensis]] | Ca | <2 Kb | 0,5 |----- | 573 | [[Heterixalus punctatus]] | Ca | <2 Kb | 0,5 |----- | 574 | [[Heterixalus rutenbergi]] | Ca | <2 Kb | 0,5 |----- | 575 | [[Heterixalus tricolor]] | Ca | <2 Kb | 0,5 |----- | 576 | [[Heterixalus variabilis]] | Ca | <2 Kb | 0,5 |----- | 577 | [[Kassina]] | Ca | <2 Kb | 0,5 |----- | 578 | [[Kassina arboricola]] | Ca | <2 Kb | 0,5 |----- | 579 | [[Kassina cassinoides]] | Ca | <2 Kb | 0,5 |----- | 580 | [[Kassina cochranae]] | Ca | <2 Kb | 0,5 |----- | 581 | [[Kassina fusca]] | Ca | <2 Kb | 0,5 |----- | 582 | [[Kassina jozani]] | Ca | <2 Kb | 0,5 |----- | 583 | [[Kassina kuvangensis]] | Ca | <2 Kb | 0,5 |----- | 584 | [[Kassina lamottei]] | Ca | <2 Kb | 0,5 |----- | 585 | [[Kassina maculata]] | Ca | <2 Kb | 0,5 |----- | 586 | [[Kassina maculifer]] | Ca | <2 Kb | 0,5 |----- | 587 | [[Kassina maculosa]] | Ca | <2 Kb | 0,5 |----- | 588 | [[Kassina mertensi]] | Ca | <2 Kb | 0,5 |----- | 589 | [[Kassina schioetzi]] | Ca | <2 Kb | 0,5 |----- | 590 | [[Kassina somalica]] | Ca | <2 Kb | 0,5 |----- | 591 | [[Acanthixalus]] | Ca | <2 Kb | 0,5 |----- | 592 | [[Acanthixalus sonjae]] | Ca | <2 Kb | 0,5 |----- | 593 | [[Acanthixalus spinosus]] | Ca | <2 Kb | 0,5 |----- | 594 | [[Alexteroon]] | Ca | <2 Kb | 0,5 |----- | 595 | [[Alexteroon hypsiphonus]] | Ca | <2 Kb | 0,5 |----- | 596 | [[Alexteroon jynx]] | Ca | <2 Kb | 0,5 |----- | 597 | [[Alexteroon obstetricans]] | Ca | <2 Kb | 0,5 |----- | 598 | [[Callixalus pictus]] | Ca | <2 Kb | 0,5 |----- | 599 | [[Arlequinus krebsi]] | Ca | <2 Kb | 0,5 |----- | 600 | [[Chlorolius koehleri]] | Ca | <2 Kb | 0,5 |----- | 601 | [[Chrysobatrachus cupreonitens]] | Ca | <2 Kb | 0,5 |----- | 602 | [[Cryptothylax]] | Ca | <2 Kb | 0,5 |----- | 603 | [[Cryptothylax greshoffii]] | Ca | <2 Kb | 0,5 |----- | 604 | [[Paracassina]] | Ca | <2 Kb | 0,5 |----- | 605 | [[Paracassina kounhiensis]] | Ca | <2 Kb | 0,5 |----- | 606 | [[Paracassina obscura]] | Ca | <2 Kb | 0,5 |----- | 607 | [[Cryptothylax minutus]] | Ca | <2 Kb | 0,5 |----- | 608 | [[Phlyctimantis]] | Ca | <2 Kb | 0,5 |----- | 609 | [[Phlyctimantis boulengeri]] | Ca | <2 Kb | 0,5 |----- | 610 | [[Phlyctimantis keithae]] | Ca | <2 Kb | 0,5 |----- | 611 | [[Phlyctimantis leonardi]] | Ca | <2 Kb | 0,5 |----- | 612 | [[Tachycnemis seychellensis]] | Ca | <2 Kb | 0,5 |----- | 613 | [[Semnodactylus wealii]] | Ca | <2 Kb | 0,5 |----- | 614 | [[Phlyctimantis verrucosus]] | Ca | <2 Kb | 0,5 |----- | 615 | [[Atelopus andinus]] | Ca | <2 Kb | 0,5 |----- | 616 | [[Atelopus angelito]] | Ca | <2 Kb | 0,5 |----- | 617 | [[Atelopus arsyecue]] | Ca | <2 Kb | 0,5 |----- | 618 | [[Atelopus arthuri]] | Ca | <2 Kb | 0,5 |----- | 619 | [[Atelopus balios]] | Ca | <2 Kb | 0,5 |----- | 620 | [[Atelopus bomolochos]] | Ca | <2 Kb | 0,5 |----- | 621 | [[Atelopus boulengeri]] | Ca | <2 Kb | 0,5 |----- | 622 | [[Atelopus carauta]] | Ca | <2 Kb | 0,5 |----- | 623 | [[Atelopus carrikeri]] | Ca | <2 Kb | 0,5 |----- | 624 | [[Atelopus certus]] | Ca | <2 Kb | 0,5 |----- | 625 | [[Atelopus chiriquiensis]] | Ca | <2 Kb | 0,5 |----- | 626 | [[Atelopus chocoensis]] | Ca | <2 Kb | 0,5 |----- | 627 | [[Atelopus chrysocorallus]] | Ca | <2 Kb | 0,5 |----- | 628 | [[Atelopus coynei]] | Ca | <2 Kb | 0,5 |----- | 629 | [[Atelopus cruciger]] | Ca | <2 Kb | 0,5 |----- | 630 | [[Atelopus dimorphus]] | Ca | <2 Kb | 0,5 |----- | 631 | [[Atelopus elegans]] | Ca | <2 Kb | 0,5 |----- | 632 | [[Atelopus erythropus]] | Ca | <2 Kb | 0,5 |----- | 633 | [[Atelopus eusebianus]] | Ca | <2 Kb | 0,5 |----- | 634 | [[Atelopus exiguus]] | Ca | <2 Kb | 0,5 |----- | 635 | [[Atelopus famelicus]] | Ca | <2 Kb | 0,5 |----- | 636 | [[Atelopus farci]] | Ca | <2 Kb | 0,5 |----- | 637 | [[Atelopus flavescens]] | Ca | <2 Kb | 0,5 |----- | 638 | [[Atelopus franciscus]] | Ca | <2 Kb | 0,5 |----- | 639 | [[Atelopus galactogaster]] | Ca | <2 Kb | 0,5 |----- | 640 | [[Atelopus glyphus]] | Ca | <2 Kb | 0,5 |----- | 641 | [[Atelopus guanujo]] | Ca | <2 Kb | 0,5 |----- | 642 | [[Atelopus guitarraensis]] | Ca | <2 Kb | 0,5 |----- | 643 | [[Atelopus halihelos]] | Ca | <2 Kb | 0,5 |----- | 644 | [[Atelopus laetissimus]] | Ca | <2 Kb | 0,5 |----- | 645 | [[Atelopus limosus]] | Ca | <2 Kb | 0,5 |----- | 646 | [[Atelopus longibrachius]] | Ca | <2 Kb | 0,5 |----- | 647 | [[Atelopus longirostris]] | Ca | <2 Kb | 0,5 |----- | 648 | [[Atelopus lozanoi]] | Ca | <2 Kb | 0,5 |----- | 649 | [[Atelopus lynchi]] | Ca | <2 Kb | 0,5 |----- | 650 | [[Atelopus mandingues]] | Ca | <2 Kb | 0,5 |----- | 651 | [[Atelopus mindoensis]] | Ca | <2 Kb | 0,5 |----- | 652 | [[Atelopus minutulus]] | Ca | <2 Kb | 0,5 |----- | 653 | [[Atelopus monohernandezii]] | Ca | <2 Kb | 0,5 |----- | 654 | [[Atelopus mucubajiensis]] | Ca | <2 Kb | 0,5 |----- | 655 | [[Atelopus muisca]] | Ca | <2 Kb | 0,5 |----- | 656 | [[Atelopus nahumae]] | Ca | <2 Kb | 0,5 |----- | 657 | [[Atelopus nanay]] | Ca | <2 Kb | 0,5 |----- | 658 | [[Atelopus nepiozomus]] | Ca | <2 Kb | 0,5 |----- | 659 | [[Atelopus nicefori]] | Ca | <2 Kb | 0,5 |----- | 660 | [[Atelopus oxyrhynchus]] | Ca | <2 Kb | 0,5 |----- | 661 | [[Atelopus pachydermus]] | Ca | <2 Kb | 0,5 |----- | 662 | [[Atelopus palmatus]] | Ca | <2 Kb | 0,5 |----- | 663 | [[Atelopus pedimarmoratus]] | Ca | <2 Kb | 0,5 |----- | 664 | [[Atelopus peruensis]] | Ca | <2 Kb | 0,5 |----- | 665 | [[Atelopus petersi]] | Ca | <2 Kb | 0,5 |----- | 666 | [[Atelopus petriruizi]] | Ca | <2 Kb | 0,5 |----- | 667 | [[Atelopus pictiventris]] | Ca | <2 Kb | 0,5 |----- | 668 | [[Atelopus pinangoi]] | Ca | <2 Kb | 0,5 |----- | 669 | [[Atelopus planispina]] | Ca | <2 Kb | 0,5 |----- | 670 | [[Atelopus pulcher]] | Ca | <2 Kb | 0,5 |----- | 671 | [[Atelopus quimbaya]] | Ca | <2 Kb | 0,5 |----- | 672 | [[Atelopus reticulatus]] | Ca | <2 Kb | 0,5 |----- | 673 | [[Atelopus sanjosei]] | Ca | <2 Kb | 0,5 |----- | 674 | [[Atelopus seminiferus]] | Ca | <2 Kb | 0,5 |----- | 675 | [[Atelopus senex]] | Ca | <2 Kb | 0,5 |----- | 676 | [[Atelopus sernai]] | Ca | <2 Kb | 0,5 |----- | 677 | [[Atelopus simulatus]] | Ca | <2 Kb | 0,5 |----- | 678 | [[Atelopus siranus]] | Ca | <2 Kb | 0,5 |----- | 679 | [[Atelopus sonsonensis]] | Ca | <2 Kb | 0,5 |----- | 680 | [[Atelopus sorianoi]] | Ca | <2 Kb | 0,5 |----- | 681 | [[Atelopus spumarius]] | Ca | <2 Kb | 0,5 |----- | 682 | [[Atelopus spurrelli]] | Ca | <2 Kb | 0,5 |----- | 683 | [[Atelopus subornatus]] | Ca | <2 Kb | 0,5 |----- | 684 | [[Atelopus tamaensis]] | Ca | <2 Kb | 0,5 |----- | 685 | [[Atelopus tricolor]] | Ca | <2 Kb | 0,5 |----- | 686 | [[Atelopus varius]] | Ca | <2 Kb | 0,5 |----- | 687 | [[Atelopus vogli]] | Ca | <2 Kb | 0,5 |----- | 688 | [[Atelopus walkeri]] | Ca | <2 Kb | 0,5 |----- | 689 | [[Atelopus zeteki]] | Ca | <2 Kb | 0,5 |----- | 690 | [[Ansonia albomaculata]] | Ca | <2 Kb | 0,5 |----- | 691 | [[Ansonia anotis]] | Ca | <2 Kb | 0,5 |----- | 692 | [[Ansonia endauensis]] | Ca | <2 Kb | 0,5 |----- | 693 | [[Ansonia fuliginea]] | Ca | <2 Kb | 0,5 |----- | 694 | [[Ansonia glandulosa]] | Ca | <2 Kb | 0,5 |----- | 695 | [[Ansonia guibei]] | Ca | <2 Kb | 0,5 |----- | 696 | [[Ansonia hanitschi]] | Ca | <2 Kb | 0,5 |----- | 697 | [[Ansonia inthanon]] | Ca | <2 Kb | 0,5 |----- | 698 | [[Ansonia kraensis]] | Ca | <2 Kb | 0,5 |----- | 699 | [[Ansonia latidisca]] | Ca | <2 Kb | 0,5 |----- | 700 | [[Ansonia leptopus]] | Ca | <2 Kb | 0,5 |----- | 701 | [[Ansonia longidigita]] | Ca | <2 Kb | 0,5 |----- | 702 | [[Ansonia malayana]] | Ca | <2 Kb | 0,5 |----- | 703 | [[Ansonia mcgregori]] | Ca | <2 Kb | 0,5 |----- | 704 | [[Ansonia minuta]] | Ca | <2 Kb | 0,5 |----- | 705 | [[Ansonia muelleri]] | Ca | <2 Kb | 0,5 |----- | 706 | [[Ansonia penangensis]] | Ca | <2 Kb | 0,5 |----- | 707 | [[Ansonia platysoma]] | Ca | <2 Kb | 0,5 |----- | 708 | [[Ansonia rubigina]] | Ca | <2 Kb | 0,5 |----- | 709 | [[Ansonia siamensis]] | Ca | <2 Kb | 0,5 |----- | 710 | [[Ansonia spinulifer]] | Ca | <2 Kb | 0,5 |----- | 711 | [[Ansonia tiomanica]] | Ca | <2 Kb | 0,5 |----- | 712 | [[Ansonia torrentis]] | Ca | <2 Kb | 0,5 |----- | 713 | [[Amietophrynus]] | Ca | <2 Kb | 0,5 |----- | 714 | [[Amietophrynus asmarae]] | Ca | <2 Kb | 0,5 |----- | 715 | [[Amietophrynus blanfordii]] | Ca | <2 Kb | 0,5 |----- | 716 | [[Amietophrynus brauni]] | Ca | <2 Kb | 0,5 |----- | 717 | [[Amietophrynus buchneri]] | Ca | <2 Kb | 0,5 |----- | 718 | [[Amietophrynus camerunensis]] | Ca | <2 Kb | 0,5 |----- | 719 | [[Amietophrynus chudeaui]] | Ca | <2 Kb | 0,5 |----- | 720 | [[Amietophrynus cristiglans]] | Ca | <2 Kb | 0,5 |----- | 721 | [[Amietophrynus danielae]] | Ca | <2 Kb | 0,5 |----- | 722 | [[Amietophrynus djohongensis]] | Ca | <2 Kb | 0,5 |----- | 723 | [[Amietophrynus fuliginatus]] | Ca | <2 Kb | 0,5 |----- | 724 | [[Amietophrynus funereus]] | Ca | <2 Kb | 0,5 |----- | 725 | [[Amietophrynus garmani]] | Ca | <2 Kb | 0,5 |----- | 726 | [[Amietophrynus gracilipes]] | Ca | <2 Kb | 0,5 |----- | 727 | [[Amietophrynus gutturalis]] | Ca | <2 Kb | 0,5 |----- | 728 | [[Amietophrynus kassasii]] | Ca | <2 Kb | 0,5 |----- | 729 | [[Amietophrynus kerinyagae]] | Ca | <2 Kb | 0,5 |----- | 730 | [[Amietophrynus kisoloensis]] | Ca | <2 Kb | 0,5 |----- | 731 | [[Amietophrynus langanoensis]] | Ca | <2 Kb | 0,5 |----- | 732 | [[Amietophrynus latifrons]] | Ca | <2 Kb | 0,5 |----- | 733 | [[Amietophrynus lemairii]] | Ca | <2 Kb | 0,5 |----- | 734 | [[Amietophrynus maculatus]] | Ca | <2 Kb | 0,5 |----- | 735 | [[Amietophrynus pantherinus]] | Ca | <2 Kb | 0,5 |----- | 736 | [[Amietophrynus pardalis]] | Ca | <2 Kb | 0,5 |----- | 737 | [[Amietophrynus perreti]] | Ca | <2 Kb | 0,5 |----- | 738 | [[Amietophrynus poweri]] | Ca | <2 Kb | 0,5 |----- | 739 | [[Amietophrynus rangeri]] | Ca | <2 Kb | 0,5 |----- | 740 | [[Amietophrynus reesi]] | Ca | <2 Kb | 0,5 |----- | 741 | [[Amietophrynus regularis]] | Ca | <2 Kb | 0,5 |----- | 742 | [[Amietophrynus steindachneri]] | Ca | <2 Kb | 0,5 |----- | 743 | [[Amietophrynus superciliaris]] | Ca | <2 Kb | 0,5 |----- | 744 | [[Amietophrynus taiensis]] | Ca | <2 Kb | 0,5 |----- | 745 | [[Amietophrynus togoensis]] | Ca | <2 Kb | 0,5 |----- | 746 | [[Amietophrynus tuberosus]] | Ca | <2 Kb | 0,5 |----- | 747 | [[Amietophrynus turkanae]] | Ca | <2 Kb | 0,5 |----- | 748 | [[Amietophrynus urunguensis]] | Ca | <2 Kb | 0,5 |----- | 749 | [[Amietophrynus villiersi]] | Ca | <2 Kb | 0,5 |----- | 750 | [[Amietophrynus vittatus]] | Ca | <2 Kb | 0,5 |----- | 751 | [[Amietophrynus xeros]] | Ca | <2 Kb | 0,5 |----- | 752 | [[Gastrotheca abdita]] | Ca | <2 Kb | 0,5 |----- | 753 | [[Gastrotheca albolineata]] | Ca | <2 Kb | 0,5 |----- | 754 | [[Gastrotheca andaquiensis]] | Ca | <2 Kb | 0,5 |----- | 755 | [[Gastrotheca angustifrons]] | Ca | <2 Kb | 0,5 |----- | 756 | [[Gastrotheca antomia]] | Ca | <2 Kb | 0,5 |----- | 757 | [[Gastrotheca argenteovirens]] | Ca | <2 Kb | 0,5 |----- | 758 | [[Gastrotheca atympana]] | Ca | <2 Kb | 0,5 |----- | 759 | [[Gastrotheca aureomaculata]] | Ca | <2 Kb | 0,5 |----- | 760 | [[Gastrotheca bufona]] | Ca | <2 Kb | 0,5 |----- | 761 | [[Gastrotheca christiani]] | Ca | <2 Kb | 0,5 |----- | 762 | [[Gastrotheca chrysosticta]] | Ca | <2 Kb | 0,5 |----- | 763 | [[Gastrotheca cornuta]] | Ca | <2 Kb | 0,5 |----- | 764 | [[Gastrotheca dendronastes]] | Ca | <2 Kb | 0,5 |----- | 765 | [[Gastrotheca dunni]] | Ca | <2 Kb | 0,5 |----- | 766 | [[Gastrotheca espeletia]] | Ca | <2 Kb | 0,5 |----- | 767 | [[Gastrotheca excubitor]] | Ca | <2 Kb | 0,5 |----- | 768 | [[Gastrotheca fissipes]] | Ca | <2 Kb | 0,5 |----- | 769 | [[Gastrotheca galeata]] | Ca | <2 Kb | 0,5 |----- | 770 | [[Gastrotheca gracilis]] | Ca | <2 Kb | 0,5 |----- | 771 | [[Gastrotheca griswoldi]] " | Ca | <2 Kb | 0,5 |----- | 772 | [[Gastrotheca guentheri]] | Ca | <2 Kb | 0,5 |----- | 773 | [[Gastrotheca helenae]] | Ca | <2 Kb | 0,5 |----- | 774 | [[Gastrotheca lateonota]] | Ca | <2 Kb | 0,5 |----- | 775 | [[Gastrotheca lauzuricae]] | Ca | <2 Kb | 0,5 |----- | 776 | [[Gastrotheca litonedis]] | Ca | <2 Kb | 0,5 |----- | 777 | [[Gastrotheca longipes]] | Ca | <2 Kb | 0,5 |----- | 778 | [[Gastrotheca marsupiata]] | Ca | <2 Kb | 0,5 |----- | 779 | [[Gastrotheca microdiscus]] | Ca | <2 Kb | 0,5 |----- | 780 | [[Gastrotheca monticola]] | Ca | <2 Kb | 0,5 |----- | 781 | [[Gastrotheca nicefori]] | Ca | <2 Kb | 0,5 |----- | 782 | [[Gastrotheca ochoai]] | Ca | <2 Kb | 0,5 |----- | 783 | [[Gastrotheca orophylax]] | Ca | <2 Kb | 0,5 |----- | 784 | [[Gastrotheca ossilaginis]] | Ca | <2 Kb | 0,5 |----- | 785 | [[Gastrotheca ovifera]] | Ca | <2 Kb | 0,5 |----- | 786 | [[Gastrotheca pacchamama]] | Ca | <2 Kb | 0,5 |----- | 787 | [[Gastrotheca peruana]] | Ca | <2 Kb | 0,5 |----- | 788 | [[Gastrotheca phalarosa]] | Ca | <2 Kb | 0,5 |----- | 789 | [[Gastrotheca piperata]] | Ca | <2 Kb | 0,5 |----- | 790 | [[Gastrotheca plumbea]] | Ca | <2 Kb | 0,5 |----- | 791 | [[Gastrotheca pseustes]] " | Ca | <2 Kb | 0,5 |----- | 792 | [[Gastrotheca psychrophila]] | Ca | <2 Kb | 0,5 |----- | 793 | [[Gastrotheca rebeccae]] | Ca | <2 Kb | 0,5 |----- | 794 | [[Gastrotheca riobambae]] | Ca | <2 Kb | 0,5 |----- | 795 | [[Gastrotheca ruizi]] | Ca | <2 Kb | 0,5 |----- | 796 | [[Gastrotheca splendens]] | Ca | <2 Kb | 0,5 |----- | 797 | [[Gastrotheca stictopleura]] | Ca | <2 Kb | 0,5 |----- | 798 | [[Gastrotheca testudinea]] | Ca | <2 Kb | 0,5 |----- | 799 | [[Gastrotheca trachyceps]] | Ca | <2 Kb | 0,5 |----- | 800 | [[Gastrotheca walkeri]] | Ca | <2 Kb | 0,5 |----- | 801 | [[Gastrotheca weinlandii]] | Ca | <2 Kb | 0,5 |----- | 802 | [[Gastrotheca williamsoni]] | Ca | <2 Kb | 0,5 |----- | 803 | [[Gastrotheca zeugocystis]] | Ca | <2 Kb | 0,5 |----- | 804 | [[Mantidactylus]] | Ca | <2 Kb | 0,5 |----- | 805 | [[Mantidactylus aerumnalis]] | Ca | <2 Kb | 0,5 |----- | 806 | [[Mantidactylus aglavei]] | Ca | <2 Kb | 0,5 |----- | 807 | [[Mantidactylus albofrenatus]] | Ca | <2 Kb | 0,5 |----- | 808 | [[Mantidactylus albolineatus]] | Ca | <2 Kb | 0,5 |----- | 809 | [[Mantidactylus alutus]] | Ca | <2 Kb | 0,5 |----- | 810 | [[Mantidactylus ambohimitombi]] | Ca | <2 Kb | 0,5 |----- | 811 | [[Mantidactylus ambohitra]] | Ca | <2 Kb | 0,5 |----- | 812 | [[Mantidactylus ambreensis]] | Ca | <2 Kb | 0,5 |----- | 813 | [[Mantidactylus argenteus]] | Ca | <2 Kb | 0,5 |----- | 814 | [[Mantidactylus asper]] | Ca | <2 Kb | 0,5 |----- | 815 | [[Mantidactylus bertini]] | Ca | <2 Kb | 0,5 |----- | 816 | [[Mantidactylus betsileanus]] | Ca | <2 Kb | 0,5 |----- | 817 | [[Mantidactylus bicalcaratus]] | Ca | <2 Kb | 0,5 |----- | 818 | [[Mantidactylus biporus]] | Ca | <2 Kb | 0,5 |----- | 819 | [[Mantidactylus blanci]] | Ca | <2 Kb | 0,5 |----- | 820 | [[Mantidactylus blommersae]] | Ca | <2 Kb | 0,5 |----- | 821 | [[Mantidactylus boulengeri]] | Ca | <2 Kb | 0,5 |----- | 822 | [[Mantidactylus brevipalmatus]] | Ca | <2 Kb | 0,5 |----- | 823 | [[Mantidactylus brunae]] | Ca | <2 Kb | 0,5 |----- | 824 | [[Mantidactylus charlotteae]] | Ca | <2 Kb | 0,5 |----- | 825 | [[Mantidactylus cornutus]] | Ca | <2 Kb | 0,5 |----- | 826 | [[Mantidactylus corvus]] | Ca | <2 Kb | 0,5 |----- | 827 | [[Mantidactylus curtus]] | Ca | <2 Kb | 0,5 |----- | 828 | [[Mantidactylus decaryi]] | Ca | <2 Kb | 0,5 |----- | 829 | [[Mantidactylus depressiceps]] | Ca | <2 Kb | 0,5 |----- | 830 | [[Mantidactylus domerguei]] | Ca | <2 Kb | 0,5 |----- | 831 | [[Mantidactylus eiselti]] | Ca | <2 Kb | 0,5 |----- | 832 | [[Mantidactylus elegans]] | Ca | <2 Kb | 0,5 |----- | 833 | [[Mantidactylus enki]] | Ca | <2 Kb | 0,5 |----- | 834 | [[Mantidactylus femoralis]] | Ca | <2 Kb | 0,5 |----- | 835 | [[Mantidactylus fimbriatus]] | Ca | <2 Kb | 0,5 |----- | 836 | [[Mantidactylus flavobrunneus]] | Ca | <2 Kb | 0,5 |----- | 837 | [[Mantidactylus grandidieri]] | Ca | <2 Kb | 0,5 |----- | 838 | [[Mantidactylus grandisonae]] | Ca | <2 Kb | 0,5 |----- | 839 | [[Mantidactylus granulatus]] | Ca | <2 Kb | 0,5 |----- | 840 | [[Mantidactylus guibei]] | Ca | <2 Kb | 0,5 |----- | 841 | [[Mantidactylus guttulatus]] | Ca | <2 Kb | 0,5 |----- | 842 | [[Mantidactylus horridus]] | Ca | <2 Kb | 0,5 |----- | 843 | [[Mantidactylus kathrinae]] | Ca | <2 Kb | 0,5 |----- | 844 | [[Mantidactylus kely]] | Ca | <2 Kb | 0,5 |----- | 845 | [[Mantidactylus klemmeri]] | Ca | <2 Kb | 0,5 |----- | 846 | [[Mantidactylus leucocephalus]] | Ca | <2 Kb | 0,5 |----- | 847 | [[Mantidactylus leucomaculatus]] | Ca | <2 Kb | 0,5 |----- | 848 | [[Mantidactylus liber]] | Ca | <2 Kb | 0,5 |----- | 849 | [[Mantidactylus lugubris]] | Ca | <2 Kb | 0,5 |----- | 850 | [[Mantidactylus luteus]] | Ca | <2 Kb | 0,5 |----- | 851 | [[Mantidactylus madecassus]] | Ca | <2 Kb | 0,5 |----- | 852 | [[Mantidactylus madinika]] | Ca | <2 Kb | 0,5 |----- | 853 | [[Mantidactylus majori]] | Ca | <2 Kb | 0,5 |----- | 854 | [[Mantidactylus malagasius]] | Ca | <2 Kb | 0,5 |----- | 855 | [[Mantidactylus massorum]] | Ca | <2 Kb | 0,5 |----- | 856 | [[Mantidactylus melanopleura]] | Ca | <2 Kb | 0,5 |----- | 857 | [[Mantidactylus microtis]] | Ca | <2 Kb | 0,5 |----- | 858 | [[Mantidactylus microtympanum]] | Ca | <2 Kb | 0,5 |----- | 859 | [[Mantidactylus mocquardi]] | Ca | <2 Kb | 0,5 |----- | 860 | [[Mantidactylus moseri]] | Ca | <2 Kb | 0,5 |----- | 861 | [[Mantidactylus opiparis]] | Ca | <2 Kb | 0,5 |----- | 862 | [[Mantidactylus pauliani]] | Ca | <2 Kb | 0,5 |----- | 863 | [[Mantidactylus peraccae]] | Ca | <2 Kb | 0,5 |----- | 864 | [[Mantidactylus phantasticus]] | Ca | <2 Kb | 0,5 |----- | 865 | [[Mantidactylus plicifer]] | Ca | <2 Kb | 0,5 |----- | 866 | [[Mantidactylus pseudoasper]] | Ca | <2 Kb | 0,5 |----- | 867 | [[Mantidactylus pulcher]] | Ca | <2 Kb | 0,5 |----- | 868 | [[Mantidactylus punctatus]] | Ca | <2 Kb | 0,5 |----- | 869 | [[Mantidactylus redimitus]] | Ca | <2 Kb | 0,5 |----- | 870 | [[Mantidactylus rivicola]] | Ca | <2 Kb | 0,5 |----- | 871 | [[Mantidactylus salegy]] | Ca | <2 Kb | 0,5 |----- | 872 | [[Mantidactylus sarotra]] | Ca | <2 Kb | 0,5 |----- | 873 | [[Mantidactylus schilfi]] | Ca | <2 Kb | 0,5 |----- | 874 | [[Mantidactylus sculpturatus]] | Ca | <2 Kb | 0,5 |----- | 875 | [[Mantidactylus silvanus]] | Ca | <2 Kb | 0,5 |----- | 876 | [[Mantidactylus spiniferus]] | Ca | <2 Kb | 0,5 |----- | 877 | [[Mantidactylus striatus]] | Ca | <2 Kb | 0,5 |----- | 878 | [[Mantidactylus tandroka]] | Ca | <2 Kb | 0,5 |----- | 879 | [[Mantidactylus thelenae]] | Ca | <2 Kb | 0,5 |----- | 880 | [[Mantidactylus timidus]] | Ca | <2 Kb | 0,5 |----- | 881 | [[Mantidactylus tornieri]] | Ca | <2 Kb | 0,5 |----- | 882 | [[Mantidactylus tricinctus]] | Ca | <2 Kb | 0,5 |----- | 883 | [[Mantidactylus tschenki]] | Ca | <2 Kb | 0,5 |----- | 884 | [[Mantidactylus ulcerosus]] | Ca | <2 Kb | 0,5 |----- | 885 | [[Mantidactylus ventrimaculatus]] | Ca | <2 Kb | 0,5 |----- | 886 | [[Mantidactylus webbi]] | Ca | <2 Kb | 0,5 |----- | 887 | [[Mantidactylus wittei]] | Ca | <2 Kb | 0,5 |----- | 888 | [[Mantidactylus zavona]] | Ca | <2 Kb | 0,5 |----- | 889 | [[Mantidactylus zipperi]] | Ca | <2 Kb | 0,5 |----- | 890 | [[Mantidactylus zolitschka]] | Ca | <2 Kb | 0,5 |----- | 891 | [[Boophis]] | Ca | <2 Kb | 0,5 |----- | 892 | [[Boophis albilabris]] | Ca | <2 Kb | 0,5 |----- | 893 | [[Boophis albipunctatus]] | Ca | <2 Kb | 0,5 |----- | 894 | [[Boophis andohahela]] | Ca | <2 Kb | 0,5 |----- | 895 | [[Boophis andreonei]] | Ca | <2 Kb | 0,5 |----- | 896 | [[Boophis anjanaharibeensis]] | Ca | <2 Kb | 0,5 |----- | 897 | [[Boophis ankaratra]] | Ca | <2 Kb | 0,5 |----- | 898 | [[Boophis blommersae]] | Ca | <2 Kb | 0,5 |----- | 899 | [[Boophis boehmei]] | Ca | <2 Kb | 0,5 |----- | 900 | [[Boophis bottae]] | Ca | <2 Kb | 0,5 |----- | 901 | [[Boophis brachychir]] | Ca | <2 Kb | 0,5 |----- | 902 | [[Boophis burgeri]] | Ca | <2 Kb | 0,5 |----- | 903 | [[Boophis doulioti]] | Ca | <2 Kb | 0,5 |----- | 904 | [[Boophis elenae]] | Ca | <2 Kb | 0,5 |----- | 905 | [[Boophis englaenderi]] | Ca | <2 Kb | 0,5 |----- | 906 | [[Boophis erythrodactylus]] | Ca | <2 Kb | 0,5 |----- | 907 | [[Boophis feonnyala]] | Ca | <2 Kb | 0,5 |----- | 908 | [[Boophis goudotii]] | Ca | <2 Kb | 0,5 |----- | 909 | [[Boophis guibei]] | Ca | <2 Kb | 0,5 |----- | 910 | [[Boophis haematopus]] | Ca | <2 Kb | 0,5 |----- | 911 | [[Boophis hillenii]] | Ca | <2 Kb | 0,5 |----- | 912 | [[Boophis idae]] | Ca | <2 Kb | 0,5 |----- | 913 | [[Boophis jaegeri]] | Ca | <2 Kb | 0,5 |----- | 914 | [[Boophis laurenti]] | Ca | <2 Kb | 0,5 |----- | 915 | [[Boophis liami]] | Ca | <2 Kb | 0,5 |----- | 916 | [[Boophis lichenoides]] | Ca | <2 Kb | 0,5 |----- | 917 | [[Boophis luteus]] | Ca | <2 Kb | 0,5 |----- | 918 | [[Boophis madagascariensis]] | Ca | <2 Kb | 0,5 |----- | 919 | [[Boophis majori]] | Ca | <2 Kb | 0,5 |----- | 920 | [[Boophis mandraka]] | Ca | <2 Kb | 0,5 |----- | 921 | [[Boophis marojezensis]] | Ca | <2 Kb | 0,5 |----- | 922 | [[Boophis microtympanum]] | Ca | <2 Kb | 0,5 |----- | 923 | [[Boophis miniatus]] | Ca | <2 Kb | 0,5 |----- | 924 | [[Boophis occidentalis]] | Ca | <2 Kb | 0,5 |----- | 925 | [[Boophis opisthodon]] | Ca | <2 Kb | 0,5 |----- | 926 | [[Boophis pauliani]] | Ca | <2 Kb | 0,5 |----- | 927 | [[Boophis periegetes]] | Ca | <2 Kb | 0,5 |----- | 928 | [[Boophis picturatus]] | Ca | <2 Kb | 0,5 |----- | 929 | [[Boophis pyrrhus]] | Ca | <2 Kb | 0,5 |----- | 930 | [[Boophis rappiodes]] | Ca | <2 Kb | 0,5 |----- | 931 | [[Boophis reticulatus]] | Ca | <2 Kb | 0,5 |----- | 932 | [[Boophis rhodoscelis]] | Ca | <2 Kb | 0,5 |----- | 933 | [[Boophis rufioculis]] | Ca | <2 Kb | 0,5 |----- | 934 | [[Boophis sambirano]] | Ca | <2 Kb | 0,5 |----- | 935 | [[Boophis schuboeae]] | Ca | <2 Kb | 0,5 |----- | 936 | [[Boophis septentrionalis]] | Ca | <2 Kb | 0,5 |----- | 937 | [[Boophis sibilans]] | Ca | <2 Kb | 0,5 |----- | 938 | [[Boophis solomaso]] | Ca | <2 Kb | 0,5 |----- | 939 | [[Boophis tasymena]] | Ca | <2 Kb | 0,5 |----- | 940 | [[Boophis tephraeomystax]] | Ca | <2 Kb | 0,5 |----- | 941 | [[Boophis viridis]] | Ca | <2 Kb | 0,5 |----- | 942 | [[Boophis vittatus]] | Ca | <2 Kb | 0,5 |----- | 943 | [[Boophis williamsi]] | Ca | <2 Kb | 0,5 |----- | 944 | [[Boophis xerophilus]] | Ca | <2 Kb | 0,5 |----- | 945 | [[Rhacophoridae]] | Ca | 1.728 bytes | 0,5 |----- | 946 | [[Vigilante]] | Cp (desamb) | 908 bytes | 0,5 |----- | 947 | [[Sooglossidae]] | C | 3.161 bytes | 1 |} ==Resumen== {| class="sortable wikitable" ! Icono ! Tipo ! # de Art. ! Puntuación |----- | [[Imagen:N write green black.svg|30px]] | '''Wikificados''' | 00 | 00 puntos |----- | [[Imagen:N write.svg|30px]] | '''Wikificados especiales''' | 00 | 00 puntos |----- | [[Imagen:Quill and ink.svg|30px]] | '''Creados''' | 01 | 01 puntos |----- | [[Imagen:Pencil.svg|30px]] | '''C. Pequeños''' | 01 | 0,5 puntos |----- | [[Imagen:Redhat-office.png|30px]] | '''C. Automáticos''' | 945 | 472,5 puntos |----- | [[Imagen:Artículo_bueno.svg|30px]] | '''AB's''' | 00 | 00 puntos |----- | [[Imagen:Cscr-featured.svg|30px]] | '''AD's''' | 00 | 00 puntos |----- | [[Imagen:Crystal Clear app List manager.png|30px]] | '''Revisión SAB''' | 00 | 00 puntos |----- | '''Total''' | >>>>>>>>>>>>>>>> | 947 | '''474 puntos''' |} ==Tabla rápida== *Entre 2 y 5 kb: '''1 punto'''. *Entre 5 y 7 kb: '''2 puntos'''. *Entre 7 y 13 kb: '''3 puntos'''. *Entre 13 y 19 kb: '''4 puntos'''. *Entre 19 y 31 kb: '''5 puntos'''. *Más de 31 kb: '''6 puntos'''. [[Categoría:Wikipedia:Wikirreto 2008/Noviembre|Lucien leGrey]] pretty-printed.ast/000077500000000000000000000000001335270560400437155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complexexp-Help%3ATable.ast000066400000000000000000012503631335270560400473230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "dablink" ] ) ], body = WtBody[ [0] = "For a basic introduction, see", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Wikitable" ], title = - ), [2] = ". For style considerations, see", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Manual of Style (tables)" ], title = - ), [4] = "." ] ), [1] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0.3em; float:right; margin-left:15px; margin-bottom:8px; border:1px solid #A3B1BF; background:#f5faff; text-align:center; font-size:95%; line-height:1.5em;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cee0f2; padding:0.3em; font-size:1.1em;" ] ) ], body = WtBody[ [0] = "Wiki markup" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Cheatsheet" ], title = WtLinkTitle[ [0] = "Basic markup" ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Wiki markup" ], title = WtLinkTitle[ [0] = "Text, links, and talk pages" ] ), [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Visual file markup" ], title = WtLinkTitle[ [0] = "Visual files" ] ), [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Sound file markup" ], title = WtLinkTitle[ [0] = "Sound files" ] ), [7] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Table" ], title = WtLinkTitle[ [0] = "Tables" ] ), [9] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Template" ], title = WtLinkTitle[ [0] = "Template editing" ] ), [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:HTML in wikitext" ], title = WtLinkTitle[ [0] = "Using HTML" ] ) ] ) ] ) ] ) ] ), [2] = "A", [3] = WtBold[ [0] = "wikitable" ], [4] = "is an arrangement of columns and rows used to organize and position data. Tables are useful for this purpose and there are many different styles and tricks that can be used to customise each. This page gives you information about syntax to build wikitables in Wikipedia.", [5] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Using the toolbar" ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = FRAME {P} hAlign = CENTER {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Advanced toolbar of vector skin.png" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "frame" ), [1] = WtLinkOptionKeyword( {P} keyword = "center" ), [2] = WtLinkTitle[ [0] = "Vector toolbar - default" ] ] ), [1] = WtImageLink( {P} border = false {P} format = FRAME {P} hAlign = CENTER {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Toolbar2.PNG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "frame" ), [1] = WtLinkOptionKeyword( {P} keyword = "center" ), [2] = WtLinkTitle[ [0] = "Monobook toolbar" ] ] ), [2] = "To automatically insert a table, click", [3] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Vector toolbar insert table button.png" ], options = WtLinkOptions[] ), [4] = "or", [5] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Button insert table.png" ], options = WtLinkOptions[] ), [6] = "(Insert a table) on the", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Edit toolbar" ], title = WtLinkTitle[ [0] = "edit toolbar" ] ), [8] = ". If \"Insert a table\" is not on the toolbar follow", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "mw:Customizing edit toolbar" ], title = WtLinkTitle[ [0] = "these directions" ] ), [10] = "to add it.", [11] = "The following text is inserted when", [12] = WtBold[ [0] = "Insert a table" ], [13] = "is clicked:", [14] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|-\n! Header 1\n! Header 2\n! Header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3\n|-\n| row 3, cell 1\n| row 3, cell 2\n| row 3, cell 3\n|}\n") ), [15] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Header 1" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Header 2" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Header 3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 1, cell 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 1, cell 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 1, cell 3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 2, cell 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 2, cell 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 2, cell 3" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 3, cell 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 3, cell 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row 3, cell 3" ] ) ] ) ] ) ] ), [16] = "The sample text (\"Header 1\" or \"row 1, cell 1\") is to be replaced with actual data.", [17] = WtXmlEndTag( {P} name = "div" ) ] ), [6] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Pipe syntax tutorial" ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin-left: 3em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 1" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 2" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell 3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading A" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell B" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell C" ] ) ] ) ] ) ] ), [1] = "Although HTML table syntax also works, special", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "wikicode" ], title = - ), [3] = "can be used as a shortcut to create a table. The pipe (", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:vertical bar" ], title = WtLinkTitle[ [0] = "vertical bar" ] ), [5] = ") codes function exactly the same as", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:HTML table" ], title = WtLinkTitle[ [0] = "HTML table" ] ), [7] = "markup, so a knowledge of HTML table code will help in understanding pipe code. The shortcuts are as follows:", [8] = WtUnorderedList[ [0] = WtListItem[ [0] = "The entire table is encased with curly brackets and a vertical bar character (a pipe). So use", [1] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "{|" ] ] ), [2] = "to begin a table, and", [3] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "|}" ] ] ), [4] = "to end it. Each one needs to be on its own line:" ] ], [9] = WtSemiPre[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ) ] ] ), [1] = WtItalics[ [0] = "table code goes here" ], [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ] ] ) ], [10] = WtUnorderedList[ [0] = WtListItem[ [0] = "An optional", [1] = WtBold[ [0] = "table caption" ], [2] = "is included with a line starting with a vertical bar and plus sign \"", [3] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "|+" ] ] ), [4] = "\" and the caption after it:" ] ], [11] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [1] = WtItalics[ [0] = "caption" ] ] ] ), [2] = WtItalics[ [0] = "table code goes here" ], [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [12] = WtUnorderedList[ [0] = WtListItem[ [0] = "To start a new", [1] = WtBold[ [0] = "table", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "row" ], title = - ) ], [2] = ", type a vertical bar and a", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:hyphen" ], title = WtLinkTitle[ [0] = "hyphen" ] ), [4] = "on its own line: \"", [5] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "|-" ] ] ), [6] = "\". The codes for the cells in that row will start on the next line." ] ], [13] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [2] = "The table's caption", [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ] ] ), [4] = WtItalics[ [0] = "row code goes here" ], [5] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ] ] ), [6] = WtItalics[ [0] = "row code goes here" ], [7] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [14] = WtUnorderedList[ [0] = WtListItem[ [0] = "Type the codes for each", [1] = WtItalics[ [0] = "table", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:cell" ], title = WtLinkTitle[ [0] = "cell" ] ) ], [2] = "in the next row, starting with a bar:" ] ], [15] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [2] = "The table's caption", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [5] = WtItalics[ [0] = "cell codes go here" ], [6] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [7] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [8] = WtItalics[ [0] = "cells in the next row go here" ], [9] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [10] = WtItalics[ [0] = "more cells in the same row here" ], [11] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [16] = WtUnorderedList[ [0] = WtListItem[ [0] = "Cells can be separated with either a new line and new bar, or by a double bar \"", [1] = WtBold[ [0] = "||" ], [2] = "\" on the same line. Both produce the same output:" ] ], [17] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [2] = "The table's caption", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|Cell 1 || Cell 2 || Cell 3" ] ] ), [5] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [6] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|Cell A" ] ] ), [7] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|Cell B" ] ] ), [8] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|Cell C" ] ] ), [9] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [18] = WtUnorderedList[ [0] = WtListItem[ [0] = "If you use single bars, then what might appear to be the first cell is in fact a format modifier applied to the cell, and the rest of your \"cells\" will be merged into one:" ] ], [19] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [2] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|format modifier (not displayed)") ), [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [4] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("These all ") ), [5] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [6] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(including the pipes)") ), [7] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [8] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("go into ") ), [9] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "|" ] ] ), [10] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("the first cell") ), [11] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [20] = "which is probably not what you want:", [21] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "format" ], value = - ), [1] = WtXmlAttribute( name = WtName[ [0] = "modifier" ], value = - ) ], body = WtBody[ [0] = "These all |(including the pipes)|go into |the first cell" ] ) ] ) ] ) ] ), [22] = "However, the format modifier is useful:", [23] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| border=\"1\"") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [2] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| Cell 1 (no modifier \u2014 not aligned)") ), [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| align=\"right\" | Cell 2 (right aligned)") ), [5] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [24] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell 1 (no modifier", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "\u2014 not aligned)" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right;" ] ) ], body = WtBody[ [0] = "Cell 2 (right aligned)" ] ) ] ) ] ) ] ), [25] = "Just remember: no more than 2 single pipes on a line!", [26] = WtUnorderedList[ [0] = WtListItem[ [0] = "a row of", [1] = WtBold[ [0] = "column headings" ], [2] = "is identified by using \"! scope=\"col\" |\" instead of \"|\", and using \"!! scope=\"col\" |\" instead of \"||\". Header cells typically render differently from regular cells, depending on the browser. They are often rendered in a bold font and centered." ] ], [27] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [2] = "The table's caption", [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "! scope=\"col\" | Column heading 1" ], [1] = WtBold[ [0] = "! scope=\"col\" | Column heading 2" ], [2] = WtBold[ [0] = "! scope=\"col\" | Column heading 3" ] ] ), [4] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [5] = "| Cell 1 || Cell 2 || Cell 3", [6] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [7] = "| Cell A\n | Cell B\n | Cell C", [8] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [28] = WtUnorderedList[ [0] = WtListItem[ [0] = "the first cell of a row is identified as a", [1] = WtBold[ [0] = "row heading" ], [2] = "by starting the line with \"! scope=\"row\" |\" instead of \"|\", and starting subsequent data cells on a new line." ] ], [29] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [2] = "The table's caption\n ! scope=\"col\" | Column heading 1 \n ! scope=\"col\" | Column heading 2 \n ! scope=\"col\" | Column heading 3", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "! scope=\"row\" | Row heading 1" ] ] ), [5] = "| Cell 2 || Cell 3", [6] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [7] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "! scope=\"row\" | Row heading A" ] ] ), [8] = "| Cell B\n | Cell C", [9] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [30] = WtUnorderedList[ [0] = WtListItem[ [0] = "Optional", [1] = WtBold[ [0] = "parameters" ], [2] = "can modify the behavior of cells, rows, or the entire table. For instance, a border could be added to the table:" ] ], [31] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #a63;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "border=\"1\"" ] ] ), [2] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+") ), [3] = "The table's caption\n ! scope=\"col\" | Column heading 1 \n ! scope=\"col\" | Column heading 2 \n ! scope=\"col\" | Column heading 3", [4] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [5] = "! scope=\"row\" | Row heading 1\n | Cell 2 || Cell 3", [6] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ), [7] = "! scope=\"row\" | Row heading A\n | Cell B\n | Cell C", [8] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [32] = "The final table would display like this:", [33] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "The table's caption" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 1" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 2" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Column heading 3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell 3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading A" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell B" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cell C" ] ) ] ) ] ) ] ) ] ), [34] = "The table parameters and cell parameters are the same as in", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:HTML" ], title = WtLinkTitle[ [0] = "HTML" ] ), [36] = ", see", [37] = WtUrl( {P} path = "//www.w3.org/TR/html401/struct/tables.html#edef-TABLE" {P} protocol = "http" ), [38] = "and", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:Table (HTML)" ], title = WtLinkTitle[ [0] = "Table (HTML)" ] ), [40] = ". However, the", [41] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "thead" ] ), [42] = ",", [43] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tbody" ] ), [44] = ",", [45] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tfoot" ] ), [46] = ",", [47] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "colgroup" ] ), [48] = ", and", [49] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "col" ] ), [50] = "elements are currently not", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:HTML in wikitext#Permitted HTML" ], title = WtLinkTitle[ [0] = "supported in MediaWiki" ] ), [52] = ".", [53] = "A table can be useful even if none of the cells have content. For example, the background colors of cells can be changed with cell parameters, making the table into a diagram, like", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "meta:Template talk:Square 8x8 pentomino example" ], title = - ), [55] = ". An \"image\" in the form of a table is much more convenient to edit than an uploaded image.", [56] = "Each row must have the same number of cells as the other rows, so that the number of columns in the table remains consistent. For empty cells, use the non-breaking space", [57] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [1] = "nbsp;" ] ), [58] = "as content to ensure that the cells are displayed. To show a visible pipe in a cell, use", [59] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [1] = "nowiki>|", [2] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [3] = "/nowiki>" ] ), [60] = "or", [61] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [1] = "#124;" ] ), [62] = ".", [63] = "With colspan and rowspan cells can span several columns or rows, see the", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Table#M\u00E9lange" ], title = WtLinkTitle[ [0] = "M\u00E9lange" ] ), [65] = "example below. However, this has the disadvantage that", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "help:sorting" ], title = WtLinkTitle[ [0] = "sorting" ] ), [67] = "does not work properly anymore." ] ), [7] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Examples" ], body = WtBody[ [0] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Simple example" ], body = WtBody[ [0] = "Both of these generate the same output. Choose a style based on the number of cells in each row and the total text inside each cell.", [1] = "The wiki markup code:", [2] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A\n| B\n|-\n| C\n| D\n|}\n") ), [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{|\n| A || B\n|-\n| C || D\n|}\n") ), [4] = "As it appears in a browser (note that there are no borders):", [5] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "A" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "B" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "C" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D" ] ) ] ) ] ) ] ) ] ) ] ), [1] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Multiplication table" ], body = WtBody[ [0] = "Here is the wiki markup code:", [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow: auto;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"text-align: center; width: 200px; height: 200px;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | \u00D7 \n! scope=\"col\" | 1 \n! scope=\"col\" | 2 \n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ), [2] = "As it appears in a browser (see", [3] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:User style" ], title = - ) ], [4] = "):", [5] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; width: 200px; height: 200px;" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Multiplication table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "\u00D7" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "1" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "2" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "2" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "3" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "9" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "12" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "5" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "5" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "10" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "15" ] ) ] ) ] ) ] ) ] ) ] ), [2] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Color; scope of parameters" ], body = WtBody[ [0] = "Two ways of specifying", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Colours" ], title = WtLinkTitle[ [0] = "color" ] ), [2] = "of text and background for a single cell are as follows. The first form is preferred because the second form uses deprecated HTML:", [3] = "The wiki markup code:", [4] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{|\n| style=\"background: red; color: white\" | abc\n| def\n| bgcolor=\"red\" | ghi \n| jkl\n|}\n") ), [5] = "As it appears in a browser:", [6] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red; color: white" ] ) ], body = WtBody[ [0] = "abc" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "def" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: white;" ] ) ], body = WtBody[ [0] = "ghi" ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "jkl" ] ) ] ) ] ) ] ) ] ), [7] = "Like other parameters, colors can also be specified for a whole row or the whole table; parameters for a row override the value for the table, and those for a cell override those for a row. (Note that there is no easy way to specify a color for a whole column\u2014each cell in the column must be individually specified. Tools can make it easier.):", [8] = "The wiki markup code:", [9] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: yellow; color: green\"\n|-\n| abc || def || ghi\n|- style=\"background: red; color: white\"\n| jkl || mno || pqr\n|-\n| stu || style=\"background: silver\" | vwx || yz\n|}\n") ), [10] = "As it appears in a browser:", [11] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: yellow; color: green" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "abc" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "def" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "ghi" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: red; color: white" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "jkl" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "mno" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "pqr" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "stu" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: silver" ] ) ], body = WtBody[ [0] = "vwx" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "yz" ] ) ] ) ] ) ] ) ] ), [12] = "To make the table blend in with the background, use", [13] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: none;\"" ] ), [14] = "or", [15] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: transparent;\"" ] ), [16] = ". (Warning:", [17] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: inherit;\"" ] ), [18] = ", does not work with some browsers, including IE6!)", [19] = "To force a cell to match one of the default colors of the", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:User style" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"wikitable\"" ] ), [1] = "template" ] ), [21] = ", use", [22] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: #f2f2f2\"" ] ), [23] = "for the darker header, and", [24] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"background: #f9f9f9\"" ] ), [25] = "for the lighter body.", [26] = "See :", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:style" ], title = WtLinkTitle[ [0] = "style" ] ), [28] = ",", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:background" ], title = WtLinkTitle[ [0] = "background" ] ), [30] = ",", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:list of colors" ], title = WtLinkTitle[ [0] = "list of colors" ] ), [32] = ",", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:web colors" ], title = WtLinkTitle[ [0] = "web colors" ] ) ] ), [3] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Width, height" ], body = WtBody[ [0] = "The width and height of the whole table can be specified, as well as the height of a row. To specify the width of a column one can specify the width of an arbitrary cell in it. If the width is not specified for all columns, and/or the height is not specified for all rows, then there is some ambiguity, and the result depends on the browser.", [1] = "The wiki markup code:", [2] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"width: 75%; height: 200px\" border=\"1\"\n|-\n| abc || def || ghi\n|- style=\"height: 100px;\"\n| jkl || style=\"width: 200px;\" | mno || pqr\n|-\n| stu || vwx || yz\n|}\n") ), [3] = "As it appears in a browser:", [4] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:75%; height:200px" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "abc" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "def" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "ghi" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height: 100px;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "jkl" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 200px;" ] ) ], body = WtBody[ [0] = "mno" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "pqr" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "stu" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "vwx" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "yz" ] ) ] ) ] ) ] ) ] ), [5] = "Note that", [6] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=\"" ] ), [7] = "inline CSS", [8] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"" ] ), [9] = "has no effect with some browsers. If compatibility is important, equivalent older constructs like", [10] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "width=\"75%\"" ] ), [11] = "should work on more browsers.", [12] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "Setting column widths" ], body = WtBody[ [0] = "To force column widths to specific requirements, rather than accepting the width of the widest text element in a column's cells, follow this example. Note that", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "word wrap" ], title = WtLinkTitle[ [0] = "wrap-around of text" ] ), [2] = "is forced.", [3] = "The wiki markup code:", [4] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n! scope=\"col\" width=\"50\" | Name\n! scope=\"col\" width=\"225\" | Effect\n! scope=\"col\" width=\"225\" | Games Found In\n|-\n| Pok\u00E9 Ball || Regular Pok\u00E9 Ball || All Versions\n|-\n| Great Ball || Better than a Pok\u00E9 Ball || All Versions\n|}\n") ), [5] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid black; padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "50" ] ) ], body = WtBody[ [0] = "Name" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = "Effect" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = "Games Found In" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pok\u00E9 Ball" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Regular Pok\u00E9 Ball" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "All Versions" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Great Ball" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Better than a Pok\u00E9 Ball" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "All Versions" ] ) ] ) ] ) ] ) ] ), [6] = "To set column widths in a table without headers, specify the width in the first cell for each column, like this:", [7] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\"\n|-\n| width=\"100pt\" | This column is 100 points wide\n| width=\"200pt\" | This column is 200 points wide\n| width=\"300pt\" | This column is 300 points wide\n|-\n| blah || blih || bluh\n|}\n") ), [8] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid black; padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100pt;" ] ) ], body = WtBody[ [0] = "This column is 100 points wide" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 200pt;" ] ) ], body = WtBody[ [0] = "This column is 200 points wide" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 300pt;" ] ) ], body = WtBody[ [0] = "This column is 300 points wide" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "blah" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "blih" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "bluh" ] ) ] ) ] ) ] ) ] ), [9] = "One application of setting the widths is aligning columns of consecutive tables:", [10] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 350px;" ] ) ], body = WtBody[ [0] = "Country" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = "Capital" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "The Netherlands" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Amsterdam" ] ) ] ) ] ) ] ), [11] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 350px;" ] ) ], body = WtBody[ [0] = "Country" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 225px;" ] ) ], body = WtBody[ [0] = "Capital" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "France" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Paris" ] ) ] ) ] ) ] ), [12] = WtSection( {P} level = 5 heading = WtHeading[ [0] = "Nowrap" ], body = WtBody[ [0] = "In a table that spans the entire width of a page, cells narrower than the widest cell tend to wrap. To keep an entire column from wrapping, use", [1] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "style=white-space:nowrap" ] ), [2] = "in a non-header cell on the longest/widest cell to affect the entire column.", [3] = "Before:", [4] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Episode" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Date" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Summary" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"The Journey Begins\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "January 1, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lorem ipsum" ], title = - ), [1] = "dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"When Episodes Attack\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "January 8, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"So Long\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "January 15, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ) ] ) ] ), [5] = "After:", [6] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Episode" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Date" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Summary" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"The Journey Begins\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "January 1, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap" ] ) ], body = WtBody[ [0] = "\"When Episodes Attack\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "January 8, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\"So Long\"" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap" ] ) ], body = WtBody[ [0] = "January 15, 2010" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." ] ) ] ) ] ) ] ) ] ) ] ) ] ), [4] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Setting borders" ], body = WtBody[ [0] = "Table borders default to a complex shaded double-line (the default in HTML); however, those borders can be set to a thin solid line by using a style-parameter (style=\"border: 1px solid darkgray\"), as in the following (", [1] = WtItalics[ [0] = "Note: if you intend to use the 'cellpadding' or 'cellspacing' options along with a border, you MUST use this format" ], [2] = "):", [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- border=\"0\"\n| [[File:StarIconBronze.png|120px]]\n| [[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| [[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n| Bronze star || Gold star || Green star\n|}\n") ), [4] = "Note the bottom-row texts are centered by 'align=\"center\"' while star-images were not centered.", [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid darkgrey; margin-left: 4em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 140px;" ] ) ], body = WtBody[ [0] = "Left" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 150px;" ] ) ], body = WtBody[ [0] = "Middle" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px;" ] ) ], body = WtBody[ [0] = "Right" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconBronze.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGold.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ), [1] = WtLinkTitle[ [0] = "Caption when mouse-over image" ] ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGreen.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ), [1] = WtLinkTitle[ [0] = "Green stellar icon" ] ] ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Bronze star" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Gold star" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Green star" ] ) ] ) ] ) ] ), [6] = "As long as the \"Image:\" specs omit the parameter \"thumb|\" they will not show the caption lines in the table (only during mouse-over). The border color \"darkgray\" matches typical tables or infoboxes in articles; however, it could be any color name (such as style=\"border: 1px solid darkgreen;\") or use a hex-color (such as: #DDCCBB).", [7] = "A column format-specifier (enclosed in \"|...|\") can have a style-parameter to set borders on each cell, as follows:", [8] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"2\" style=\"border: 1px solid darkgray;\"\n! width=\"140\" | Left\n! width=\"150\" | Middle\n! width=\"130\" | Right\n|- align=\"center\"\n| style=\"border: 1px solid blue;\"|\n[[File:StarIconBronze.png|120px]]\n| style=\"border: 1px solid #777777;\"|\n[[File:StarIconGold.png|120px|Caption when mouse-over image]]\n| style=\"border: 1px solid #22AA55;\"|\n[[File:StarIconGreen.png|120px|Green stellar icon]]\n|- align=\"center\"\n|Bronze star || Gold star || Green star\n|}\n") ), [9] = "Note only the image cells, here, have individual borders, not the text.", [10] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid darkgrey; margin-left:4em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:140px;" ] ) ], body = WtBody[ [0] = "Left" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:150px;" ] ) ], body = WtBody[ [0] = "Middle" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:130px;" ] ) ], body = WtBody[ [0] = "Right" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid blue;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconBronze.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid #777;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGold.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ), [1] = WtLinkTitle[ [0] = "Caption when mouse-over image" ] ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid #2a5;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 120 target = WtPageName[ [0] = "File:StarIconGreen.png" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 120 ), [1] = WtLinkTitle[ [0] = "Green stellar icon" ] ] ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Bronze star" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Gold star" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Green star" ] ) ] ) ] ) ] ), [11] = "The lower hex-colors (such as: #616161) are closer to black. Typically, all borders in a table would be one specific color." ] ), [5] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Vertical alignment" ], body = WtBody[ [0] = "By default data in tables is vertically centrally aligned, which results in odd-looking layouts like this:", [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:400px; margin-left:6em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:10%;" ] ) ], body = WtBody[ [0] = "Row heading" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:70%;" ] ) ], body = WtBody[ [0] = "A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:20%;" ] ) ], body = WtBody[ [0] = "short text" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #13a;" ] ) ], body = WtBody[ [0] = "Imagine someone scrolling down the page, seeing the tops of \"empty\" columns, and wondering why they're empty. Use \"", [1] = WtBold[ [0] = "valign=top" ], [2] = "\" to align text at the top of columns." ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "short text" ] ) ] ) ] ) ] ), [2] = "To fix this, apply the valign=\"top\" attribute to the rows (unfortunately it seems to be necessary to apply this individually to every single row). For example:", [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"2\" width=\"400\"\n|- valign=\"top\"\n! scope=\"row\" width=\"10%\" | Row heading\n| width=\"70%\" | A longer piece of text. Lorem ipsum...\n| width=\"20%\" | short text\n|- valign=\"top\"\n! scope=\"row\" | Row heading\n| Excepteur sint occaecat...\n| short text\n|}\n") ), [4] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 400px; margin-left: 6em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 10%;" ] ) ], body = WtBody[ [0] = "Row heading" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 70%;" ] ) ], body = WtBody[ [0] = "A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 20%;" ] ) ], body = WtBody[ [0] = "short text" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row heading" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: #14a;" ] ) ], body = WtBody[ [0] = "Imagine someone scrolling down the page, seeing the tops of \"empty\" columns, and wondering why they're empty. Use \"", [1] = WtBold[ [0] = "valign=top" ], [2] = "\" to align text at the top of columns." ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "short text" ] ) ] ) ] ) ] ) ] ), [6] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Positioning" ], body = WtBody[ [0] = "You can position the table itself, the contents of a row, and the contents of a cell, but not with a single parameter for all the contents of the table. See", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Template talk:Table demo" ], title = - ), [2] = ". Prior to April 2009, using \"float\" to position a table was discouraged; however, it no longer always breaks page rendering at large font sizes. See a floated image, below, under \"", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "#Floating images in the center" ], title = WtLinkTitle[ [0] = "Floating images in the center" ] ), [4] = "\"." ] ), [7] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "M\u00E9lange" ], body = WtBody[ [0] = WtItalics[ [0] = "Note: This example is not", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Manual of Style (accessibility)" ], title = WtLinkTitle[ [0] = "accessible" ] ), [2] = ", and should be avoided as much as possible. For example, nested tables (tables inside tables) should be separated into distinct tables when possible." ], [1] = "Here's a more advanced example, showing some more options available for making up tables. Note however that with colspan and rowspan", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "help:sorting" ], title = WtLinkTitle[ [0] = "sorting" ] ), [3] = "does not work properly anymore.", [4] = "You can play with these settings in your own table to see what effect they have. Not all of these techniques may be appropriate in all cases; just because you can add colored backgrounds, for example, doesn't mean it's always a good idea. Try to keep the markup in your tables relatively simple -- remember, other people are going to be editing the article too! This example should give you an idea of what is possible, though.", [5] = "The wiki markup code:", [6] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\" align=\"center\"\n|+ '''An example table'''\n|-\n! style=\"background: #efefef;\" | First header\n! colspan=\"2\" style=\"background: #ffdead;\" | Second header\n|-\n| upper left\n| &nbsp;\n| rowspan=\"2\" style=\"border-bottom: 3px solid grey;\" valign=\"top\" |\nright side\n|-\n| style=\"border-bottom: 3px solid grey;\" | lower left\n| style=\"border-bottom: 3px solid grey;\" | lower middle\n|-\n| colspan=\"3\" align=\"center\" |\n{| border=\"0\"\n|+ ''A table in a table''\n|-\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n| align=\"center\" width=\"150\" | [[File:Wiki.png]]\n|-\n| align=\"center\" colspan=\"2\" style=\"border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;\" |\nTwo Wikipedia logos\n|}\n|}\n") ), [7] = "As it appears in a browser:", [8] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "An example table" ] ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #efefef;" ] ) ], body = WtBody[ [0] = "First header" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ffdead;" ] ) ], body = WtBody[ [0] = "Second header" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "upper left" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray; vertical-align: top;" ] ) ], body = WtBody[ [0] = "right side" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray;" ] ) ], body = WtBody[ [0] = "lower left" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom: 3px solid gray;" ] ) ], body = WtBody[ [0] = "lower middle" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtItalics[ [0] = "A table in a table" ] ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Wiki.png" ], options = WtLinkOptions[] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 150px;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Wiki.png" ], options = WtLinkOptions[] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" ] ) ], body = WtBody[ [0] = "Two Wikipedia logos" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [8] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Floating table" ], body = WtBody[ [0] = "The wiki markup coding:", [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\nThis paragraph is before the table. Lorem ipsum dolor sit\namet, consectetur adipisicing elit, sed do eiusmod...\n\n{| style=\"float: right;\" border=\"1\"\n| Col 1, row 1\n| rowspan=\"2\" | Col 2, row 1 (and 2)\n| Col 3, row 1\n|-\n| Col 1, row 2\n| Col 3, row 2\n|}\n\nNote the floating-table to the right.\n\nThis paragraph is after the table. The text in column 2\nwill span both rows due to format specifier \"rowspan=2\" so there\nis no coding for \"Col 2\" in the 2nd row, just: Col 1 & Col 3.\n") ), [2] = "As it appears in a browser:", [3] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = "This paragraph is before the table. Lorem ipsum dolor sit\namet, consectetur adipisicing elit, sed do eiusmod...", [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Col 1, row 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "Col 2, row 1 (and 2)" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Col 3, row 1" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Col 1, row 2" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Col 3, row 2" ] ) ] ) ] ) ] ), [2] = "Note the floating-table to the right.", [3] = "This paragraph is after the table. The text in column 2\nwill span both rows due to format specifier \"rowspan=2\" so there\nis no coding for \"Col 2\" in the 2nd row, just: Col 1", [4] = "&", [5] = "Col 3." ] ) ] ), [9] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Floating images in the center" ], body = WtBody[ [0] = "A table can be used to wrap an image, so that the table can float towards the center of the page (such as using: style=\"float: right;\"). However, the table margins, border and font-size must be precisely set to match a typical image display. The Image-spec parameter \"thumb|\" (although auto-thumbnailing to user-preference width) forces a wide left-margin that squeezes the nearby text, so the parameter \"center|\" can be added to suppress the left-margin padding. However, \"center\" sometimes shoves the caption to a 2nd line (under a centered box \"", [1] = "[", [2] = "]\"), so \"thumb|\" could be omitted and just hard-code the image size, adding a gray (#BBB) border. Using precise parameters to match other images, a floating-image table can be coded as follows:", [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;\"\n|- style=\"font-size: 86%;\"\n| valign=\"top\" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating).\n|}\n") ), [4] = "The text inside the floating-table is sized by style=\"font-size: 86%;\". That floating-image table floats a typical image-box, but allows adjusting the left-hand margin of the image (see temple-example floating below).", [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 90px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "Infobox A" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "This sample infobox shows how the floating image-box aligns toward the center." ] ) ] ) ] ) ] ), [6] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 86%;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 180 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 180 ) ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [3] = "Temple of", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bel (mythology)" ], title = WtLinkTitle[ [0] = "Bel" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "(floating)." ] ) ] ) ] ) ] ), [7] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; clear:right; border: 1px solid black;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [1] = WtLinkOptionKeyword( {P} keyword = "right" ), [2] = WtLinkTitle[ [0] = "This table shows the implicit margins of Images using \"right\"." ] ] ) ] ) ] ) ] ) ] ), [8] = "The caption-text can be omitted, or remove the parameter \"thumb|\" so the caption is hidden until \"mouse-over display\". Unfortunately the parameter \"thumb|\" (used for displaying the caption) also controls the auto-thumbnailing to re-size images by user-preferences size. In April 2009, it was not possible to have auto-thumbnail sizing while also concealing the caption: parameter \"thumb|\" triggers both actions and forces the caption to display.", [9] = "An image set with parameter \"left|\" will gain a wide right-side margin (opposite margin of parameter \"right|\"), so floating toward the left would require an image set as \"center|\" inside a table with style=\"float:left; margin:0.46em 0.2em\".", [10] = "Recall that, outside an image-table, the parameter \"right|\" causes an image to align (either) above or below an infobox, but would not float alongside the infobox.", [11] = "Note the", [12] = WtItalics[ [0] = "order of precedence" ], [13] = ": first come infoboxes or images using \"right|\", then come the floating-tables, and lastly, any text will wrap that can still fit. If the first text-word is too long, no text will fit to complete the left-hand side, so beware creating a \"ragged left margin\" when not enough space remains for text to fit alongside floating-tables.", [14] = "If multiple single image-tables are stacked, they will float to align across the page, depending on page-width. The text will be squeezed to allow as many floating-tables as can fit, as auto-aligned, then wrap whatever text (can still fit) at the left-hand side.", [15] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "...by float: right" ] ) ] ) ] ) ] ), [16] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "...images wrap..." ] ) ] ) ] ) ] ), [17] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float: right; margin-left:0.2em; border: 1px solid #BBB;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size: 87%;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "valign" ], value = WtValue[ [0] = "top" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 105 target = WtPageName[ [0] = "File:DuraEuropos-TempleOfBel.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 105 ) ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "All these..." ] ) ] ) ] ) ] ), [18] = "That auto-aligning feature can be used to create a \"floating-gallery\" of images: a set of 20 floating-tables will wrap (backward, right-to-left) as if each table were a word of text to wrap across and down the page. To wrap in the typical direction (wrapping left-to-right) define all those floating-tables, instead, as left-side tables using the top parameter style=\"float:left; margin:0.46em 0.2em\". Multiple floating-images empower more flexible typesetting of images around the text." ] ), [10] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Nested tables" ], body = WtBody[ [0] = WtItalics[ [0] = "Note: because they cause", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Manual_of_Style_(accessibility)#Tables" ], title = WtLinkTitle[ [0] = "accessibility issues" ] ), [2] = ", nested tables should be avoided whenever possible." ], [1] = "Seven different (blue) tables are shown nested inside the cells of a table. Automatically the two tables |A| and |B|B| are vertically aligned instead of the usual side by side of text characters in a cell. \"float\" is used to fix each of tables |C| and |D| to their own position within one cell of the table. This may be used for charts and schemes.", [2] = WtItalics[ [0] = "Nested tables must start on a new line." ], [3] = WtBold[ [0] = "Wiki markup" ], [4] = WtXmlElement( {P} name = "p" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px dashed #2f6fab; background: #f9f9f9; padding: 1em" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"1\"", [2] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [3] = "|", [4] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [5] = "alpha;", [6] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [7] = "| style=\"text-align: center;\"| cell2", [8] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"2\" style=\"background: #ABCDEF;\"" ], [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [4] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [5] = WtBold[ [0] = "| NESTED" ], [6] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [7] = WtBold[ [0] = "|-" ], [8] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtBold[ [0] = "| TABLE" ], [10] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [11] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [12] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ) ] ), [10] = "| style=\"vertical-align:bottom;\"| the original table again", [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = "| style=\"width:100px;\" |", [13] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [14] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"2\" style=\"background: #ABCDEF;\"" ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtBold[ [0] = "| A" ], [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"2\" style=\"background: #ABCDEF;\"" ], [7] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [8] = WtBold[ [0] = "| B || B" ], [9] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [10] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ) ] ), [15] = "| style=\"width:50px;\" |", [16] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [17] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color: navy;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"2\" style=\"background: #ABCDEF; float:left;\"" ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtBold[ [0] = "| C" ], [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|") ), [1] = "border=\"2\" style=\"background: #ABCDEF; float: right;\"" ], [7] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [8] = WtBold[ [0] = "| D" ], [9] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [10] = WtBold[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ], [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ) ] ), [18] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|}") ) ] ) ] ), [5] = WtBold[ [0] = "As it appears in a browser" ], [6] = ":", [7] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\u03B1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "cell2", [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "NESTED" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "TABLE" ] ) ] ) ] ) ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: bottom;" ] ) ], body = WtBody[ [0] = "the original table again" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100px;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "A" ] ) ] ) ] ) ] ), [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "B" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "B" ] ) ] ) ] ) ] ) ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50px;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF; float:left;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "C" ] ) ] ) ] ) ] ), [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ABCDEF; float: right;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [11] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Combined use of COLSPAN and ROWSPAN" ], body = WtBody[ [0] = WtBold[ [0] = "Wiki markup" ], [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"5\" cellspacing=\"0\"\n|-\n| Column 1 || Column 2 || Column 3\n|-\n| rowspan=\"2\" | A\n| colspan=\"2\" style=\"text-align: center;\" | B\n|-\n| C \n| D\n|-\n| E\n| rowspan=\"2\" colspan=\"2\" style=\"text-align: center;\" | F\n|-\n| G \n|-\n| colspan=\"3\" style=\"text-align: center;\" | H\n|}\n") ), [2] = WtBold[ [0] = "As it appears in a browser" ], [3] = ":", [4] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "5" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Column 1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Column 2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Column 3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "A" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "B" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "C" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "E" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "F" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "G" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "H" ] ) ] ) ] ) ] ), [5] = "Note that using", [6] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "rowspan=\"2\"" ] ), [7] = "for cell", [8] = WtBold[ [0] = "G" ], [9] = "combined with", [10] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "rowspan=\"3\"" ] ), [11] = "for cell", [12] = WtBold[ [0] = "F" ], [13] = "to get another row below", [14] = WtBold[ [0] = "G" ], [15] = "and", [16] = WtBold[ [0] = "F" ], [17] = "won't work, because all (implicit) cells would be empty.\nLikewise complete columns are not displayed if all their cells are empty. Borders between non-empty and empty cells might be also not displayed (depending on the browser), use", [18] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [1] = "nbsp;" ] ), [19] = "to fill an empty cell with dummy content." ] ), [12] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Centering tables" ], body = WtBody[ [0] = "Centered tables can be achieved, but they will not \"float\"; that is to say, no text will appear to either side. The trick is", [1] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{| style=\"margin: 1em auto 1em auto;\"") ) ] ), [2] = WtBold[ [0] = "Wiki markup" ], [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"margin: 1em auto 1em auto;\"\n|+ '''Cells left-aligned, table centered'''\n! scope=\"col\" | Duis \n! scope=\"col\" | aute \n! scope=\"col\" | irure\n|-\n| dolor || in reprehenderit || in voluptate velit\n|-\n| esse cillum dolore || eu fugiat nulla || pariatur.\n|}\n") ), [4] = WtBold[ [0] = "As it appears in a browser" ], [5] = ":", [6] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em auto 1em auto;" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = "Cells left-aligned, table centered" ] ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Duis" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "aute" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "irure" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "dolor" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "in reprehenderit" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "in voluptate velit" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "esse cillum dolore" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "eu fugiat nulla" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "pariatur." ] ) ] ) ] ) ] ) ] ), [13] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Setting parameters" ], body = WtBody[ [0] = "At the start of a cell, add your parameter followed by a single pipe. For example", [1] = WtXmlElement( {P} name = "tt" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "width=\"300\"|" ] ), [2] = "will set that cell to a width of 300 pixels. To set more than one parameter, leave a space between each one, as follows:", [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"color:white\"\n|-\n| bgcolor=\"red\"|cell1 || width=\"300\" bgcolor=\"blue\"|cell2\n| bgcolor=\"green\"|cell3\n|}\n") ), [4] = "As it appears in a browser:", [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:white" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:red;" ] ) ], body = WtBody[ [0] = "cell1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:300px; background:blue;" ] ) ], body = WtBody[ [0] = "cell2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:green;" ] ) ], body = WtBody[ [0] = "cell3" ] ) ] ) ] ) ] ) ] ), [14] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Tiny tables within a text line" ], body = WtBody[ [0] = "For years in", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "HTML" ], title = - ), [2] = ", a table has always forced an implicit line-wrap (or", [3] = WtItalics[ [0] = "line-break" ], [4] = "), so to keep a table within a line, the work-around is to put all text into a table, then embed a table-within-a-table, using the outer table to force the whole line to stay together. Consider the following examples:", [5] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = "Wikicode (", [1] = WtItalics[ [0] = "showing table forces line-break" ], [2] = "):", [3] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("* This is a test table here
    HELLO WORLD
    followed by this text afterward.") ) ] ] ], [1] = WtDefinitionListDef[ [0] = "Result:", [1] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "This is a test table here", [1] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid black" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "HELLO WORLD" ] ) ] ) ] ) ] ), [2] = "followed by this text afterward." ] ] ] ] ], [2] = WtDefinitionListDef[ [0] = "Wikicode (", [1] = WtItalics[ [0] = "table-within-table" ], [2] = "):", [3] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.") ) ] ] ], [3] = WtDefinitionListDef[ [0] = "Result:", [1] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #fafeff;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "This is a test table here" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:11px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border: 1px solid black; font-size:60%" ] ) ], body = WtBody[ [0] = "HELLO WORLD" ] ) ] ) ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "followed by this text afterward." ] ) ] ) ] ) ] ), [1] = "This line is more text after the outer table." ] ] ] ] ] ], [6] = "Use style=\"font-size:60%\" to shrink the text within the box. However, the small text could be replaced with small images (aligned inside the inner table). The outer table is for one line only, so to make a 2nd line appear even, the exact length of line 1 must be pre-determined, to match the length of other lines." ] ), [15] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Decimal point alignment" ], body = WtBody[ [0] = "A method to get columns of numbers aligned at the decimal point is as follows:", [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| cellpadding=\"0\" cellspacing=\"0\"\n| align=\"right\" | 432 || .1\n|-\n| align=\"right\" | 43 || .21\n|-\n| align=\"right\" | 4 || .321\n|}\n") ), [2] = "As it appears in a browser:", [3] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border: 1px solid darkgrey;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "432" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = ".1" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "43" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = ".21" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = ".321" ] ) ] ) ] ) ] ) ] ), [4] = "If the column of numbers appears in a table with cell padding or cell spacing, you can still align the decimal points without an unsightly gap in the middle. Embed a table in each number's cell and specify its column widths. Make the embedded tables' column widths the same for each cell in the column. (If decimal points are still misaligned using this method, the main table's column may be too narrow. Add a parameter to increase the column's width.)\nThe wiki markup code:", [5] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| border=\"1\" cellpadding=\"4\" cellspacing=\"2\"\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 432 || width=\"50%\" | .1\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\"| 43 || width=\"50%\" | .21\n|}\n|-\n|\n{| cellpadding=\"0\" cellspacing=\"0\" width=\"100\"\n| align=\"right\" width=\"50%\" | 4 || width=\"50%\" | .321\n|}\n|}\n") ), [6] = "As it appears in a browser:", [7] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border: 1px solid darkgrey;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = "432" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = ".1" ] ) ] ) ] ) ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = "43" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = ".21" ] ) ] ) ] ) ] ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100px;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; width: 50%;" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 50%;" ] ) ], body = WtBody[ [0] = ".321" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [8] = "In the case of preformatted text, you can dispense with the table feature entirely and simply start the lines with a space, and put spaces to position the numbers:", [9] = WtSemiPre[ [0] = "432.1\n 43.21\n 4.321" ], [10] = "However, there should be a good reason to use pre-formatted text in an article." ] ) ] ), [8] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Style classes" ], body = WtBody[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtItalics[ [0] = "See also", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:User style" ], title = - ), [2] = "." ] ] ], [1] = "In the first line of table code, after the \"{|\", instead of specifying a style directly, you can also specify a", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:Cascading Style Sheets" ], title = WtLinkTitle[ [0] = "CSS" ] ), [3] = "class. The style for this class can be specified in various ways:", [4] = WtUnorderedList[ [0] = WtListItem[ [0] = "in the software itself, per skin (for example the class", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "#Sorting" ], title = WtLinkTitle[ [0] = "sortable" ] ), [2] = ")" ], [1] = WtListItem[ [0] = "collectively for all users of one wiki in", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "MediaWiki:Common.css" ], title = - ), [2] = "(for example, on this and some other projects there is or was the class wikitable, later moved to", [3] = WtExternalLink( target = WtUrl( {P} path = "//svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "shared.css" ] ), [4] = ")" ], [2] = WtListItem[ [0] = "separately per skin in", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "MediaWiki:Monobook.css" ], title = - ), [2] = "etc." ], [3] = WtListItem[ [0] = "individually on one wiki in a user subpage" ], [4] = WtListItem[ [0] = "individually, but jointly for tables of the class concerned on all web pages, on the local computer of the user." ] ], [5] = "Instead of remembering table parameters, you just include an appropriate style class after the", [6] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{|" ] ), [7] = ". This helps keep table formatting consistent, and can allow a single change to the class to fix a problem or enhance the look of all the tables that are using it at once. For instance, this:", [8] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:46%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border:0 solid rgb(153, 153, 153); padding:1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| cellpadding=\"2\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:48%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:white; border:0 solid rgb(153, 153, 153); padding:1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Multiplication table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "\u00D7" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "1" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "2" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "2" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "3" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "9" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "12" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "5" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "5" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "10" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "15" ] ) ] ) ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = "becomes this:" ] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:46%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:48%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Multiplication table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "\u00D7" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "1" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "2" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "2" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "3" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "9" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "12" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "5" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "5" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "10" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "15" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [9] = "simply by replacing inline CSS for the table by", [10] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"wikitable\"" ] ), [11] = ". This is because the", [12] = WtItalics[ [0] = "wikitable" ], [13] = "class in", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "MediaWiki:Common.css" ], title = - ), [15] = "contains a number of", [16] = WtItalics[ [0] = "table.wikitable" ], [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:CSS" ], title = WtLinkTitle[ [0] = "CSS" ] ), [18] = "style rules. These are all applied at once when you mark a table with the class. You can then add additional style rules if desired. These override the class's rules, allowing you to use the class style as a base and build up on it:", [19] = WtBold[ [0] = "Wiki markup" ], [20] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable\" style=\"font-style:italic; font-size:120%; border: 3px dashed red;\"\n|+ Multiplication table\n|-\n! scope=\"col\" | &times;\n! scope=\"col\" | 1\n! scope=\"col\" | 2\n! scope=\"col\" | 3\n|-\n! scope=\"row\" | 1\n| 1 || 2 || 3\n|-\n! scope=\"row\" | 2\n| 2 || 4 || 6\n|-\n! scope=\"row\" | 3\n| 3 || 6 || 9\n|-\n! scope=\"row\" | 4\n| 4 || 8 || 12\n|-\n! scope=\"row\" | 5\n| 5 || 10 || 15\n|}\n") ) ] ), [21] = WtBold[ [0] = "As it appears in a browser" ], [22] = ":", [23] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-style:italic; font-size:120%; border: 3px dashed red;" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Multiplication table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "\u00D7" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "1" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "2" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "3" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "1" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "2" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "3" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "9" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "4" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "12" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "5" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "5" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "10" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "15" ] ) ] ) ] ) ] ) ] ), [24] = "Notice that the table retains the gray background of the wikitable class, and the headers are still bold and centered. But now the text formatting has been overridden by the local", [25] = WtItalics[ [0] = "style" ], [26] = "statement; all of the text in the table has been made italic and 120% normal size, and the wikitable border has been replaced by the red dashed border.", [27] = "Of course this works only for browsers supporting inline CSS, if it's important use XHTML markup like", [28] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [1] = "big", [2] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ) ] ), [29] = "instead of \"font-size:120%\", or Wiki markup like", [30] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("''text''") ) ] ), [31] = "instead of \"font-style:italic\".", [32] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Collapsible tables" ], body = WtBody[ [0] = "Classes can also be used to collapse tables, so they are hidden by default. Use the style 'collapsible' to enable collapsing behaviour. By default, a collapsible table will begin expanded. To change this, include the additional class 'collapsed' or 'autocollapse' (i.e. only collapse if 3 other collapsible tables are present). You must include a header row, where the 'hide' option will be displayed. Example:", [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable collapsible collapsed\"\n! Header\n|-\n| Content which starts hidden\n|-\n| more hidden content\n|}\n") ), [2] = "Gives:", [3] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable collapsible collapsed" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Header" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Content which starts hidden" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "more hidden content" ] ) ] ) ] ) ] ) ] ) ] ), [9] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Sorting" ], body = WtBody[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtItalics[ [0] = "Further information", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "meta:Help:Sorting" ], title = WtLinkTitle[ [0] = "Help:Sorting" ] ) ] ] ], [1] = "Tables can be made sortable by adding", [2] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "class=\"sortable\"" ] ), [3] = "; for details see", [4] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Sorting" ], title = - ) ], [5] = ". Since this can be very useful, it is wise to keep the possibilities and limitations of this feature in mind when designing a table. For example:", [6] = WtUnorderedList[ [0] = WtListItem[ [0] = "Do not divide a table into sections by subheaders spanning several rows. Instead, an extra column can be made showing the content of these headers on each row, in a short form." ], [1] = WtListItem[ [0] = "Do not have elements spanning several columns; instead, again, repeat the content on each row, in a short form." ], [2] = WtListItem[ [0] = "In a column of numbers, do not put text such as \"ca.\" in front of a number-it will sort like zero. Do not put text after the number, and do not put a range of numbers (it does not affect the sorting position for numeric sorting mode, and in the case of a range, the first number determines the position, but if, possibly after sorting this or another column, the element is at the top, it will induce alphabetic sorting mode). Instead, put these texts in a separate column. Alternatively, for the greatest flexibility, alphabetic sorting mode with hidden sortkeys can be used." ] ], [7] = "A long form of abbreviated content can be put as legend outside the table.", [8] = WtBold[ [0] = "Wiki markup" ], [9] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|+ Sortable table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ) ] ), [10] = WtBold[ [0] = "As it appears in a browser" ], [11] = ":", [12] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Sortable table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Alphabetic" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Numeric" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Date" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "unsortable" ] ) ], body = WtBody[ [0] = "Unsortable" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "d" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "20" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2008-11-24" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "This" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "b" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2004-03-01" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "column" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "a" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1979-07-23" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "cannot" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1492-12-08" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "be" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "e" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "0" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1601-08-13" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "sorted." ] ) ] ) ] ) ] ) ] ), [13] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Sorting and collapsing" ], body = WtBody[ [0] = "It is possible to collapse a sortable table. To do so, you need to use the code", [1] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible\"" ] ), [2] = ". Taking the above table and making it collapsable gives you this:", [3] = WtBold[ [0] = "Wiki markup" ], [4] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n{| class=\"wikitable sortable collapsible\" border=\"1\"\n|+ Sortable and collapsible table\n|-\n! scope=\"col\" | Alphabetic\n! scope=\"col\" | Numeric\n! scope=\"col\" | Date\n! scope=\"col\" class=\"unsortable\" | Unsortable\n|-\n| d || 20 || 2008-11-24 || This\n|-\n| b || 8 || 2004-03-01 || column\n|-\n| a || 6 || 1979-07-23 || cannot\n|-\n| c || 4 || 1492-12-08 || be\n|-\n| e || 0 || 1601-08-13 || sorted.\n|}\n") ) ] ), [5] = WtBold[ [0] = "As it appears in a browser" ], [6] = ":", [7] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;" ] ) ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable collapsible" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Sortable and collapsible table" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Alphabetic" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Numeric" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Date" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "unsortable" ] ) ], body = WtBody[ [0] = "Unsortable" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "d" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "20" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2008-11-24" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "This" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "b" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2004-03-01" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "column" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "a" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1979-07-23" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "cannot" ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1492-12-08" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "be" ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "e" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "0" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1601-08-13" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "sorted." ] ) ] ) ] ) ] ) ] ), [8] = "If you want the table to default to collapsed state, use the code", [9] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible collapsed\"" ] ), [10] = "in place of", [11] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "{| class=\"wikitable sortable collapsible\"" ] ) ] ) ] ), [10] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Row template" ], body = WtBody[ [0] = "Regardless of whether wikitable format or HTML is used, the wikitext of the rows within a table, and sometimes even within a collection of tables, has much in common, e.g.:", [1] = WtUnorderedList[ [0] = WtListItem[ [0] = "the basic code for a table row" ], [1] = WtListItem[ [0] = "code for color, alignment, and sorting mode" ], [2] = WtListItem[ [0] = "fixed texts such as units" ], [3] = WtListItem[ [0] = "special formats for sorting" ] ], [2] = "In that case it can be useful to create a template that produces the syntax for a table row, with the data as parameters. This can have many advantages:", [3] = WtUnorderedList[ [0] = WtListItem[ [0] = "easily changing the order of columns, or removing a column" ], [1] = WtListItem[ [0] = "easily adding a new column if many elements of the new column are left blank (if the column is inserted and the existing fields are unnamed, use a named parameter for the new field to avoid adding blank parameter values to many template calls)" ], [2] = WtListItem[ [0] = "computing fields from other fields, e.g. population density from population and area" ], [3] = WtListItem[ [0] = "duplicating content and providing span tags with \"display:none\" for the purpose of having one format for", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Sorting" ], title = WtLinkTitle[ [0] = "sorting" ] ), [2] = "and another for display" ], [4] = WtListItem[ [0] = "easy specification of a format for a whole column, such as color and alignment" ] ], [4] = "Example:", [5] = "Using", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:help:table/example row template" ], title = - ), [7] = "(", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:help talk:table/example row template" ], title = WtLinkTitle[ [0] = "talk" ] ), [9] = ",", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Special:Whatlinkshere/help:table/example row template" ], title = WtLinkTitle[ [0] = "backlinks" ] ), [11] = ",", [12] = WtExternalLink( target = WtUrl( {P} path = "//meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "edit" ] ), [13] = ")", [14] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable sortable\" border=\"1\"\n|-\n! scope=\"col\" | a\n! scope=\"col\" | b\n! scope=\"col\" | a/b\n{{help:table/example row template| 50|200}}\n{{help:table/example row template| 8| 11}}\n{{help:table/example row template|1000| 81}}\n|}\n") ), [15] = "gives:", [16] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable sortable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "a" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "b" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "a/b" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "50" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "200" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "0.25" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "8" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "11" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "0.72727272727273" ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1000" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "81" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "12.345679012346" ] ) ] ) ] ) ] ) ] ), [11] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Conditional table row" ], body = WtBody[ [0] = "For a conditional row in a table, we can have:", [1] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| class=\"wikitable\" border=\"1\"\n\t\n\t{{ #if:1|{{!}}-\n\t\t! scope=\"row\" {{!}} row one, column one\n\t\t\n\t\t{{!}}row one, column two}}\n\t\n\t{{ #if: |{{!}}-\n\t\t! scope=\"row\" {{!}} row two, column one\n\t\t{{!}}row two, column two}}\n\t\n\t|-\n\t\t! scope=\"row\" {{!}} row three, column one\n\t\t| row three, column two\n|}\n") ), [2] = "Which gives the following table: (note how the second row is missing)", [3] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "row one, column one" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row one, column two" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "row three, column one" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "row three, column two" ] ) ] ) ] ) ] ) ] ), [12] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Other table syntax" ], body = WtBody[ [0] = "Other types of", [1] = WtBold[ [0] = "table" ], [2] = "syntax that MediaWiki supports:", [3] = WtOrderedList[ [0] = WtListItem[ [0] = "XHTML" ], [1] = WtListItem[ [0] = "HTML", [1] = "&", [2] = "wiki-", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [4] = "syntax (", [5] = WtBold[ [0] = "Do not use" ], [6] = ")" ] ], [4] = "All three are supported by MediaWiki and create (currently) valid HTML output, but the pipe syntax is the simplest. Also, HTML", [5] = "&", [6] = "wiki-", [7] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [8] = "syntax (i.e., unclosed", [9] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [10] = "and", [11] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [12] = "tags) will not necessarily remain browser-supported in the future, especially on handheld internet-accessible devices.", [13] = "See also", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:HTML element#Tables" ], title = WtLinkTitle[ [0] = "HTML element#Tables" ] ), [15] = ". Note however that the", [16] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "thead" ] ), [17] = ",", [18] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tbody" ] ), [19] = ",", [20] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "tfoot" ] ), [21] = ",", [22] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "colgroup" ] ), [23] = ", and", [24] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "col" ] ), [25] = "elements are currently not", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:HTML in wikitext#Permitted HTML" ], title = WtLinkTitle[ [0] = "supported in MediaWiki" ] ), [27] = ".", [28] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Comparison of table syntax" ], body = WtBody[ [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "XHTML" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Wiki-pipe" ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Table" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("
    ") ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n|}") ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Caption" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("caption") ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|+ caption") ) ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Row" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|-") ) ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Data cell" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("cell1cell2\ncell3") ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("| cell1 || cell2\n| cell3") ) ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Header cell" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("column heading") ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("row heading") ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"col\" | column heading") ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("! scope=\"row\" | row heading") ) ] ) ] ), [6] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = "Sample table" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: auto;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "3" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ) ] ) ] ) ] ) ] ) ] ), [7] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n \n \n \n \n \n \n \n \n
    12
    34
    ") ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{|\n| 1 || 2\n|-\n| 3 || 4\n|}") ) ] ) ] ), [8] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: top;" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Pros" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "Can preview or debug with any XHTML editor" ], [1] = WtListItem[ [0] = "Can be indented for easier reading" ], [2] = WtListItem[ [0] = "Well-known" ], [3] = WtListItem[ [0] = "Insensitive to newlines" ], [4] = WtListItem[ [0] = "No characters like \"|\" which can collide with template and parser function syntax" ] ] ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "Easy to write" ], [1] = WtListItem[ [0] = "Easy to read" ], [2] = WtListItem[ [0] = "Takes little space" ], [3] = WtListItem[ [0] = "Can be learned quickly" ] ] ] ) ] ), [9] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: top;" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "row" ] ) ], body = WtBody[ [0] = "Cons" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "Tedious" ], [1] = WtListItem[ [0] = "Takes a lot of space" ], [2] = WtListItem[ [0] = "Difficult to read quickly" ], [3] = WtListItem[ [0] = "Accidentally putting \"tr\" for \"td\" can cause confusion for hours." ], [4] = WtListItem[ [0] = "Indented code might not match nesting." ], [5] = WtListItem[ [0] = "In rare cases, newlines can break cells, causing severe confusion since newlines usually are ok." ] ] ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "Unfamiliar syntax" ], [1] = WtListItem[ [0] = "Rigid structure" ], [2] = WtListItem[ [0] = "Cannot be indented" ], [3] = WtListItem[ [0] = "Text (as in HTML tags) may be easier for some people to read than series of pipes, plus signs, dashes, etc." ], [4] = WtListItem[ [0] = "Requires using", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:!" ], title = - ), [2] = "to pass a \"|\" in a parameter." ], [5] = WtListItem[ [0] = "Sensitive to newlines; see", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Newlines and spaces" ], title = - ), [2] = "." ] ] ] ) ] ), [10] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "XHTML" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "scope" ], value = WtValue[ [0] = "col" ] ) ], body = WtBody[ [0] = "Wiki-pipe" ] ) ] ) ] ) ] ), [1] = "See also", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template talk:For#Tables" ], title = - ), [3] = "." ] ) ] ), [13] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Pipe syntax in terms of the HTML produced" ], body = WtBody[ [0] = "The pipe syntax, developed by", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:User: Magnus Manske" ], title = WtLinkTitle[ [0] = "Magnus Manske" ] ), [2] = ", substitutes pipes (", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("|") ), [4] = ") for HTML. There is an", [5] = WtExternalLink( target = WtUrl( {P} path = "//www.uni-bonn.de/~manfear/html2wiki-tables.php" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "on-line script" ] ), [6] = "which converts html tables to pipe syntax tables.", [7] = "The pipes must start at the beginning of a new line, except when separating parameters from content or when using", [8] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "||" ] ), [9] = "to separate cells on a single line. The parameters are optional.", [10] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Tables" ], body = WtBody[ [0] = "A", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:Table (HTML)" ], title = WtLinkTitle[ [0] = "table" ] ), [2] = "is defined by", [3] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| ''params''\n |}\n") ), [4] = "which generates \"", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [6] = "table", [7] = WtItalics[ [0] = "params" ], [8] = ">", [9] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [10] = "/table>\"." ] ), [11] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Rows" ], body = WtBody[ [0] = "For each table, an HTML", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [2] = "tr", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [4] = "tag will be generated for the first row. To start a new row, use:", [5] = WtSemiPre[ [0] = "|-" ], [6] = "which generates another \"", [7] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [8] = "tr", [9] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [10] = "\".", [11] = "Parameters can be added like this:", [12] = WtSemiPre[ [0] = "|-", [1] = WtItalics[ [0] = "params" ] ], [13] = "which generates \"", [14] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [15] = "tr", [16] = WtItalics[ [0] = "params" ], [17] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [18] = "\".", [19] = "Note:", [20] = WtUnorderedList[ [0] = WtListItem[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [1] = "tr", [2] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [3] = "tags will be automatically opened at the first", [4] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [5] = "td", [6] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [7] = "equivalent" ], [1] = WtListItem[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [1] = "tr", [2] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [3] = "tags will be automatically closed at", [4] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [5] = "tr", [6] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [7] = "and", [8] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [9] = "/table", [10] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [11] = "equivalents" ] ] ] ), [12] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Cells" ], body = WtBody[ [0] = "Cells are generated either like this:", [1] = WtSemiPre[ [0] = "|cell1\n |cell2\n |cell3" ], [2] = "or like this:", [3] = WtSemiPre[ [0] = "|cell1||cell2||cell3" ], [4] = "which both generate \"", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [6] = "td", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [8] = "cell1", [9] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [10] = "/td", [11] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [12] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [13] = "td", [14] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [15] = "cell2", [16] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [17] = "/td", [18] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [19] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [20] = "td", [21] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [22] = "cell3", [23] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [24] = "/td", [25] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [26] = "\". The \"||\" equals \"newline\" + \"|\".", [27] = "Parameters in cells can be used like this:", [28] = WtSemiPre[ [0] = "|", [1] = WtItalics[ [0] = "params" ], [2] = "|cell1||", [3] = WtItalics[ [0] = "params" ], [4] = "|cell2||", [5] = WtItalics[ [0] = "params" ], [6] = "|cell3" ], [29] = "which will result in", [30] = WtSemiPre[ [0] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [1] = "td", [2] = WtItalics[ [0] = "params" ], [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [4] = "cell1", [5] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [6] = "/td", [7] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [8] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [9] = "td", [10] = WtItalics[ [0] = "params" ], [11] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [12] = "cell2", [13] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [14] = "/td", [15] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [16] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [17] = "td", [18] = WtItalics[ [0] = "params" ], [19] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [20] = "cell3", [21] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [22] = "/td", [23] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ) ] ] ), [13] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Headers" ], body = WtBody[ [0] = "Produces a TH, functioning the same way as TD, but with different style. \"!\" is used instead of the opening \"|\". \"!!\" can be used instead of \"||\". Parameters still use \"|\", though. Example:", [1] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("!") ), [1] = WtItalics[ [0] = "params" ], [2] = "|cell1" ] ] ), [14] = WtSection( {P} level = 3 heading = WtHeading[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Table Caption" ], title = WtLinkTitle[ [0] = "Captions" ] ) ], body = WtBody[ [0] = "A", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [2] = "caption", [3] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [4] = "tag is created by", [5] = WtSemiPre[ [0] = "|+ Caption" ], [6] = "which generates the HTML \"", [7] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [8] = "caption", [9] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [10] = "Caption", [11] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [12] = "/caption", [13] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [14] = "\".", [15] = "You can also use parameters:", [16] = WtSemiPre[ [0] = "|+", [1] = WtItalics[ [0] = "params" ], [2] = "|Caption" ], [17] = "which will generate \"", [18] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [19] = "caption", [20] = WtItalics[ [0] = "params" ], [21] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [22] = "Caption", [23] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [24] = "/caption", [25] = WtXmlEntityRef( {P} name = "gt" {P} resolved = ">" ), [26] = "\"." ] ), [15] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Summaries" ], body = WtBody[ [0] = "A summary is produced by adding a summary attribute after the start of the table. It can be used by", [1] = WtInternalLink( {P} postfix = "s" {P} prefix = "" target = WtPageName[ [0] = "screen reader" ], title = - ), [2] = "to give visually impaired readers the overall gist of the table, without having to listen to the entire table. For example:", [3] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "overflow:auto;" ] ) ], body = WtTagExtensionBody("\n{| summary=\"Artistic renderings of Germania became more triumphant and monumental.\"\n| [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834\u201336]]\n| [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]\n| [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871\u201383]]\n|}\n") ), [4] = "produces:", [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "summary" ], value = WtValue[ [0] = "Artistic renderings of Germania became more triumphant and monumental." ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Philipp Veit 008.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" ), [2] = WtLinkOptionAltText[ [0] = "Robed woman, seated, with sword on her lap" ], [3] = WtLinkTitle[ [0] = "Philipp Veit,", [1] = WtItalics[ [0] = "Germania" ], [2] = ", 1834\u201336" ] ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Image Germania (painting).jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" ), [2] = WtLinkOptionAltText[ [0] = "Robed woman, standing, holding a sword" ], [3] = WtLinkTitle[ [0] = "Philipp Veit,", [1] = WtItalics[ [0] = "Germania" ], [2] = ", 1848" ] ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Niederwald memorial 2.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" ), [2] = WtLinkOptionAltText[ [0] = "Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another" ], [3] = WtLinkTitle[ [0] = "Johannes Schilling,", [1] = WtItalics[ [0] = "Germania" ], [2] = ", 1871\u201383" ] ] ) ] ) ] ) ] ) ] ) ] ) ] ), [14] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Square monitors" ], body = WtBody[ [0] = "To format for a square monitor or window, use a tape measure. Determine the height of your rectangular screen. Using that figure measure under the screen to determine the width your monitor\u2019s screen would be if it were square. Mark that location using ink or tape under the screen. Drag the side of your browser\u2019s window to that location so the window is square based on accurate measurements. Square monitors and reading windows are not able to contain tables and galleries made for rectangular and wide screens. When a table or gallery is wider than the monitor, it makes every line of text wider than the screen as well. The px amounts of the following gallery were determined after measuring the window to make sure it was square:", [1] = "Type this:", [2] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]\n| [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]\n| [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]\n| [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]\n|}\n\n{| style=\"background: transparent; margin: auto;\"\n| [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]\n| [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]\n|}\n") ), [3] = "For this:", [4] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Some_window_blinds.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Various window shades" ] ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 170 {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Vert-blinds-2145-rs.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 170 {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Vertical blinds" ] ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Gardine.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "This is not a blind" ] ] ) ] ) ] ) ] ) ] ), [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 155 {P} upright = false {P} vAlign = MIDDLE {P} width = 192 target = WtPageName[ [0] = "File:Vorhang.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 155 {P} width = 192 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Solid shade" ] ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = 55 {P} upright = false {P} vAlign = MIDDLE {P} width = 328 target = WtPageName[ [0] = "File:Jalousie-1.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 55 {P} width = 328 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Horizonal blinds" ] ] ) ] ) ] ) ] ) ] ), [6] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:none; margin: auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 205 target = WtPageName[ [0] = "File:Some window blinds.JPG" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 205 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Shade, shutters; vertical", [1] = "&", [2] = "horizontal blinds." ] ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 388 target = WtPageName[ [0] = "File:Miniblinds detail of mechanism.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 388 ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" ), [2] = WtLinkOptionKeyword( {P} keyword = "left" ), [3] = WtLinkTitle[ [0] = "Detail of turning rod (blind stick) attachment on miniblinds" ] ] ) ] ) ] ) ] ) ] ) ] ), [15] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Vertically oriented column headers" ], body = WtBody[ [0] = "Sometimes it is desirable (such as in a table predominantly made of numbers) to rotate text such that it proceeds from top to bottom or bottom to top instead of from left to right or right to left. Currently, browser support for this type of styling as a component of HTML or CSS is sporadic (Internet Explorer is one of the few browsers that supports this in cascading stylesheets, albeit in a non-standard way). An alternative solution that works in most if not all browsers is to use images in place of the text. For instance, the following table uses SVG images instead of text to produce the rotated column headings:", [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align: bottom;" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_hd_date_page.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = NO_LINK target = - ) ] ) ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_project.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games" ] ) ] ) ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_talk.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia talk:WikiProject Video games" ] ) ] ) ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_portal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Portal:Video games" ] ) ] ) ] ), [4] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_article_guidelines.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Article guidelines" ] ) ] ) ] ), [5] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_templates.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Templates" ] ) ] ) ] ), [6] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_sources.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Sources" ] ) ] ) ] ), [7] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_assessment.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Assessment" ] ) ] ) ] ), [8] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_cleanup.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Cleanup" ] ) ] ) ] ), [9] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:3em;" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:wpvg_vg_requests.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionLinkTarget( {P} targetType = PAGE target = WtPageName[ [0] = "Wikipedia:WikiProject Video games/Requests" ] ) ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "05/08" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4266" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "7828" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "7282" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1105" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "224" ] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "161" ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "916" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "506" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "231" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "04/08" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4127" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6190" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "6487" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1139" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "241" ] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "205" ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1165" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "478" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "301" ] ) ] ) ] ) ] ), [2] = "Normally, one problem with this approach is that readers are directed to different pages when they click on the images. To eliminate this problem\u2014or to direct readers to a", [3] = WtItalics[ [0] = "different" ], [4] = "page\u2014you can use the", [5] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "link" ] ), [6] = "parameter. A column-header can be coded as follows:", [7] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display: inline-block;" ] ) ], body = WtTagExtensionBody("\n\n! style=\"width:3em;\" | [[File:wpvg_vg_project.svg|link=xxxx]]\n\n") ), [8] = "The image will wikilink to article \"xxxx\".", [9] = "By setting the link to an empty string (e.g.", [10] = WtXmlElement( {P} name = "code" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[File:wpvg_hd_date_page.svg|link=]]") ) ] ), [11] = "), no navigation will occur when visitors click on an image. Note that it might also be a good idea to color the image text blue if you are using the images as links. Also, SVG is the preferred image format in this case because it can be re-scaled to any size without producing artifacts." ] ), [16] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Wikitable as image gallery" ], body = WtBody[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtItalics[ [0] = "This section is local to Wikipedia (hard-coded here now)." ] ] ], [1] = "A wikitable can be used to display side-by-side images, in the manner of an image gallery (formatted by \"", [2] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [3] = "gallery>\"), but with larger images and less vacant area around photos.", [4] = "A simple framed gallery can be formatted using class=\"wikitable\" to generate the minimal thin-lines around images/photos within the table:", [5] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|265px]]\n |[[File:Worms Wappen 2005-05-27.jpg|235px]]\n |-\n |Nibelungen Bridge to Worms
    across the [[Rhine]]\n |Worms and its sister cities\n |}") ) ], [6] = "Note the result below (with thin-lined cells):", [7] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 265 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 265 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 235 target = WtPageName[ [0] = "File:Worms Wappen 2005-05-27.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 235 ) ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Nibelungen Bridge to Worms", [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "across the", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Rhine" ], title = - ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Worms and its sister cities" ] ) ] ) ] ) ] ), [8] = "Another issue about the standard \"", [9] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [10] = "gallery>\" tag, in 2007-2008, was that it put 4 images per line, overrunning the right margin of a wiki article displayed in portrait-style width (like 800x600), unless the gallery had only 3 images. However, a wikitable uses typical image-links with sizes, such as", [11] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\"[[") ), [12] = "Image:XXX.jpg|130px]]\" so 4 images could be displayed on a wikitable line within a 600px width (for 800x600 resolution screens).", [13] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Worms 01.jpg|130px]]\n |[[File:Worms Wappen 2005-05-27.jpg|125px]]\n |[[File:Liberty-statue-with-manhattan.jpg|125px]]\n |[[File:New-York-Jan2005.jpg|125px]]\n |-\n |Nibelungen Bridge to Worms\n |Worms and its sister cities\n |Statue of Liberty\n |New York City\n |}") ) ], [14] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 130 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 130 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 125 target = WtPageName[ [0] = "File:Worms Wappen 2005-05-27.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 125 ) ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 125 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 125 ) ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 115 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 115 ) ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Nibelungen Bridge to Worms" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Worms and its sister cities" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Statue of Liberty" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "New York City" ] ) ] ) ] ) ] ), [15] = "Another advantage about wikitable images, compared to \"", [16] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [17] = "gallery>\" formatting, is the ability to \"square\" each image when similar heights are needed, so consider putting 2-number image sizes (such as \"199x95px\"), where the 2nd number limits height:", [18] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x95px]]\n |[[File:New-York-Jan2005.jpg|199x95px]]\n |[[File:Gold star on blue.gif|199x95px]]\n |[[File:Worms 01.jpg|100x95px]]\n |-\n |Statue of Liberty\n |New York City\n |Star on blue\n |Bridge to Worms\n |}") ) ], [19] = "Note the 3 images sized \"199x95px\" appear identical height, of 95px (4th image purposely smaller). The \"95px\" forces height, while \"199x\" fits the various widths (could even be \"999x\"):", [20] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} width = 199 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} width = 199 ) ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} width = 199 ) ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 95 {P} upright = false {P} vAlign = MIDDLE {P} width = 100 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 95 {P} width = 100 ) ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Statue of Liberty" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "New York City" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Star on blue" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Bridge to Worms" ] ) ] ) ] ) ] ), [21] = "Therefore, the use of size \"199x95px\" (or \"999x95px\") produces the auto-height-sizing beyond the \"", [22] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [23] = "gallery>\" tag, and with the option to set taller thumbnails (\"199x105px\"), or even to have some images purposely smaller than other images of \"95px\" height. A very short height (\"70px\") allows many more images across the table:", [24] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Liberty-statue-with-manhattan.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |[[File:New-York-Jan2005.jpg|199x70px]]\n |[[File:Gold star on deep red.gif|199x70px]]\n |[[File:Worms 01.jpg|199x70px]]\n |[[File:Gold star on blue.gif|199x70px]]\n |}") ) ], [25] = "The above wikitable-coding produces the result below, of 6 columns:", [26] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Liberty-statue-with-manhattan.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:New-York-Jan2005.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on deep red.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Worms 01.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 70 {P} upright = false {P} vAlign = MIDDLE {P} width = 199 target = WtPageName[ [0] = "File:Gold star on blue.gif" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 70 {P} width = 199 ) ] ) ] ) ] ) ] ) ] ), [27] = "Once images have been placed in a wikitable, control of formatting can be adjusted when more images are added.", [28] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Shifting/centering" ], body = WtBody[ [0] = "Images within a wikitable can be shifted by inserting non-breaking spaces (\"", [1] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [2] = "nbsp;\") before or after the image-link (\"", [3] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [4] = "nbsp;", [5] = "[", [6] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "[", [1] = "Image:]]\"). However, auto-centering simply requires use of center-tags to be placed around an image-link for centering in a cell", [2] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("(\"
    [[File:..]]
    \")") ), [3] = "." ] ), [7] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [8] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "In the example below, note how Col2 uses", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [2] = "center>, but Col3 uses \"", [3] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" ), [4] = "nbsp;\":", [5] = WtSemiPre[ [0] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n {| class=\"wikitable\" border=\"1\"\n |-\n |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]]\n |
    [[File:Utrecht 003.jpg|299x125px]]
    \n |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp;\n |-\n |Dom tower from Brigittenstraat\n |Cloister garth of the Utrecht Dom Church\n |&nbsp;&nbsp;View from bell tower\n |}") ) ], [6] = "The above coding generates the table below: note the middle garden image is centered (but not the left image), and the right image has 2 spaces before \"", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [8] = "View...\":", [9] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Domtoren vanaf Brigittenstraat.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} width = 299 ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "center" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Utrecht 003.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} width = 299 ) ] ) ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 125 {P} upright = false {P} vAlign = MIDDLE {P} width = 299 target = WtPageName[ [0] = "File:Uitzicht vanaf de Domtoren.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 125 {P} width = 299 ) ] ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Dom tower from Brigittenstraat" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Cloister garth of the Utrecht Dom Church" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "View from bell tower" ] ) ] ) ] ) ] ) ] ), [10] = "Also note that the tag \"", [11] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [12] = "small>\" made a smaller text-size caption. However, fonts also can be sized by percent (style=\"font-size: 87%;\"), where the actual percent-size as displayed depends on the various sizes allowed for a particular font.", [13] = WtTagExtension( {P} name = "pre" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n | style=\"font-size: 87%;\" | View from bell tower\n") ), [14] = "The column attribute, above, uses \"style=\" to set the font-size for the caption, following the 2nd vertical-bar \"|\".", [15] = "A font-size: 65% is very small, while style=\"font-size: 87%;\" is a mid-size font, larger than the tag", [16] = WtItalics[ [0] = "small" ], [17] = "." ] ), [9] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [29] = WtSection( {P} level = 3 heading = WtHeading[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Speed/transfer rates" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Actual transfer/display speeds depend on individual files. In 2007 to March 2009 some serious flaws existed in the thumbnailing process when combined with the gallery-display, making thumbnails sometimes larger than the originals. For this reason some users explicitly used tables instead of the gallery tag. However, these issues are fixed as of March 2009." ] ), [2] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [17] = WtSection( {P} level = 2 heading = WtHeading[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Generate a chart with a table" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article:", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "meta:Visualizer for Wikimedia projects" ], title = WtLinkTitle[ [0] = "meta:Visualizer for Wikimedia projects" ] ) ] ), [1] = "Using", [2] = WtTemplate( {P} precededByNewline = false name = WtName[ [0] = "[[Template:visualizer|visualizer]]" ], args = WtTemplateArguments[] ), [3] = "or another template that uses", [4] = WtTemplate( {P} precededByNewline = false name = WtName[ [0] = "[[Template:metavisualizer|metavisualizer]]" ], args = WtTemplateArguments[] ), [5] = "." ] ) ] ), [18] = WtSection( {P} level = 2 heading = WtHeading[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Converting spreadsheet to wikitable format" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "To convert from spreadsheets such as Gnumeric, MS Excel or OpenOffice.org Calc, you can use the", [1] = WtExternalLink( target = WtUrl( {P} path = "//excel2wiki.net/wikipedia.php" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Copy", [1] = "&", [2] = "Paste Excel-to-Wiki" ] ), [2] = "converter or you can save your spreadsheets as", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ".csv" ], title = - ), [4] = "and use the", [5] = WtExternalLink( target = WtUrl( {P} path = "//toolserver.org/~al/data2mwGenerators/csv2wikitable.php" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "csv2wikitable" ] ), [6] = "converter." ] ), [2] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [19] = WtSection( {P} level = 2 heading = WtHeading[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "See also" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Help:Wikitable" ], title = - ) ], [1] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Manual of Style (tables)" ], title = - ) ], [2] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:How to make a table in Wikipedia" ], title = - ) ], [3] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "mw:Table" ], title = - ) ], [4] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "mw:Simplified table syntax" ], title = - ) ], [5] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Wiki markup tables" ], title = - ) ], [6] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Table background colors" ], title = - ) ], [7] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "User:Dcljr/Tables" ], title = - ) ], [8] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:Table (HTML)" ], title = - ) ], [9] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Help:Template#A parameter value containing a pipe character" ], title = - ) ], [10] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:Category:Table and column templates" ], title = - ) ], [11] = WtListItem[ [0] = "Examples:", [1] = WtUnorderedList[ [0] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:Chess diagram" ], title = WtLinkTitle[ [0] = "Chess board" ] ) ], [1] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:Goban" ], title = WtLinkTitle[ [0] = "Go board" ] ) ], [2] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Monopoly (game)#Board" ], title = WtLinkTitle[ [0] = "Monopoly board" ] ) ], [3] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "m:Template talk:Square 8x8 pentomino example" ], title = WtLinkTitle[ [0] = "Square 8x8 pentomino example" ] ) ] ] ], [12] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "commons:Commons:Convert tables and charts to wiki code" ], title = WtLinkTitle[ [0] = "Commons:Convert tables and charts to wiki code" ] ) ], [13] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "commons:Commons:Chart and graph resources" ], title = WtLinkTitle[ [0] = "Commons:Chart and graph resources" ] ) ], [14] = WtListItem[ [0] = "Cleanup template", [1] = WtTemplate( {P} precededByNewline = false name = WtName[ [0] = "[[Template:Listtable|Listtable]]" ], args = WtTemplateArguments[] ), [2] = "and its category", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":Category:Articles requiring tables" ], title = - ) ] ] ] ), [2] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [20] = WtSection( {P} level = 2 heading = WtHeading[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "External links" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion" ], title = - ), [1] = "published in German-Wikipediaproject (English instructions included)" ], [1] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.cnic.org/html2mediawiki.html" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at cnic.org" ] ) ], [2] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//area23.brightbyte.de/csv2wp.php" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "csv2wp" ] ), [1] = "- converts", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "w:comma-separated values" ], title = WtLinkTitle[ [0] = "comma-separated values" ] ), [3] = "(CSV) format to pipe syntax. You may use this to import tables from Excel etc. (", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":de:Benutzer:Duesentrieb/csv2wp (en)" ], title = WtLinkTitle[ [0] = "more information" ] ), [5] = ")" ], [3] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.uni-bonn.de/~manfear/html2wiki-tables.php" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at uni-bonn.de" ] ) ], [4] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//diberri.dyndns.org/html2wiki.html" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "HTML tables to wiki converter at diberri.dyndns.org" ] ) ], [5] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//pywikipediabot.sourceforge.net/" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "pywikipediabot" ] ), [1] = "(can convert HTML tables to wiki)" ], [6] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//search.cpan.org/~diberri/" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "HTML-WikiConverter" ] ), [1] = "Various versions and languages" ], [7] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//en.wikibooks.org/wiki/Editing_Wikitext/Tables" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Making Wiki Tables" ] ), [1] = "with good examples" ], [8] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Wiki and HTML Tables Ready to Use" ] ), [1] = ": A selection of tables and their Wiki/HTML code" ], [9] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.w3.org/TR/css3-color/" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Table of CSS color names and HEX codes" ] ) ] ], [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Wikipedia how-to" ], title = - ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Wikipedia text help" ], title = - ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ar:\u0645\u0633\u0627\u0639\u062F\u0629:\u062C\u062F\u0648\u0644" ], title = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "bg:\u0423\u0438\u043A\u0438\u043F\u0435\u0434\u0438\u044F:\u0422\u0430\u0431\u043B\u0438\u0446\u0438" ], title = - ), [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ca:Ajuda:Taula" ], title = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "cs:N\u00E1pov\u011Bda:Tabulky" ], title = - ), [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "de:Hilfe:Tabellen" ], title = - ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "dsb:Pomoc:Tabela" ], title = - ), [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "es:Ayuda:Tablas" ], title = - ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "eo:Helpo:Vikitabeloj" ], title = - ), [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "fa:\u0631\u0627\u0647\u0646\u0645\u0627:\u062C\u062F\u0648\u0644\u200C\u0647\u0627" ], title = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "fr:Aide:Les tableaux pour les novices" ], title = - ), [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "hsb:Pomoc:Tabela" ], title = - ), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "hu:Wikip\u00E9dia:T\u00E1bl\u00E1zatok" ], title = - ), [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "id:Bantuan:Tabel" ], title = - ), [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "it:Aiuto:Tabelle" ], title = - ), [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ja:Help:\u8868\u306E\u4F5C\u308A\u65B9" ], title = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ka:\u10D3\u10D0\u10EE\u10DB\u10D0\u10E0\u10D4\u10D1\u10D0:\u10EA\u10EE\u10E0\u10D8\u10DA\u10D8\u10E1 \u10E8\u10D4\u10E5\u10DB\u10DC\u10D0" ], title = - ), [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "km:\u1787\u17C6\u1793\u17BD\u1799:\u178F\u17B6\u179A\u17B6\u1784" ], title = - ), [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ko:\uC704\uD0A4\uBC31\uACFC:\uD45C" ], title = - ), [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "lb:H\u00EBllef:Tabellen" ], title = - ), [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "lt:Pagalba:Lentel\u0117" ], title = - ), [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ml:\u0D38\u0D39\u0D3E\u0D2F\u0D02:\u0D2A\u0D1F\u0D4D\u0D1F\u0D3F\u0D15" ], title = - ), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "mn:\u0422\u0443\u0441\u043B\u0430\u043C\u0436:\u0425\u04AF\u0441\u043D\u044D\u0433\u0442 \u044F\u0430\u0436 \u0445\u0438\u0439\u0445 \u0432\u044D?" ], title = - ), [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "nl:Help:Gebruik van tabellen" ], title = - ), [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "no:Hjelp:Tabeller" ], title = - ), [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "pl:Pomoc:Tabele" ], title = - ), [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "pt:Ajuda:Guia de edi\u00E7\u00E3o/Usar tabelas" ], title = - ), [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ro:Ajutor:Tabele" ], title = - ), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "qu:Yanapa:Tawla" ], title = - ), [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "sq:Ndihm\u00EB:Tabela" ], title = - ), [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "simple:Help:Tables" ], title = - ), [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "sk:Pomoc:Tabu\u013Eky" ], title = - ), [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "sr:\u041F\u043E\u043C\u043E\u045B:\u0422\u0430\u0431\u0435\u043B\u0430" ], title = - ), [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "fi:Ohje:Taulukot" ], title = - ), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "tt:\u042F\u0440\u0434\u04D9\u043C:T\u00FC\u015F\u00E4w" ], title = - ), [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "th:\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49:\u0E15\u0E32\u0E23\u0E32\u0E07" ], title = - ), [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "uk:\u0414\u043E\u0432\u0456\u0434\u043A\u0430:\u0422\u0430\u0431\u043B\u0438\u0446\u0456" ], title = - ), [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "vi:Tr\u1EE3 gi\u00FAp:T\u1EA1o b\u1EA3ng" ], title = - ), [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "zh:Help:\u8868\u683C" ], title = - ) ] ), [2] = WtXmlElement( {P} name = "font" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ) exp-Saxby+Chambliss.ast000066400000000000000000017370571335270560400502330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox vcard" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 22em; font-size: 90%; text-align: left" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "n" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; font-size: 125%; font-weight: bold" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = "Clarence Saxby Chambliss Jr" ] ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 225 ), [1] = WtLinkOptionAltText[], [2] = WtLinkTitle[ [0] = "Saxby Chambliss" ] ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "hr" xmlAttributes = WtXmlAttributes[], body = - ), [1] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle[ [0] = "United States Senator" ] ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "from", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle[ [0] = "Georgia" ] ) ] ) ] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:lavender;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Incumbent" ], title = - ) ] ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Assumed", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "office", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ) ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2003", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = "Serving", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "with", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ] ) ] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Cleland" ], title = - ) ] ) ] ), [6] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [8] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "hr" xmlAttributes = WtXmlAttributes[], body = - ), [1] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = "Member of the", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States House of Representatives" ], title = WtLinkTitle[ [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "Representatives" ] ), [2] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [3] = "from", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle[ [0] = "Georgia" ] ), [5] = "'s", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = WtLinkTitle[ [0] = "8th" ] ), [7] = "district" ] ) ] ) ] ), [9] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "office" ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 1995", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "January 3, 2003" ] ) ] ), [10] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ] ) ] ), [11] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mac Collins" ], title = - ), [1] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ) ] ) ] ), [12] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "hr" xmlAttributes = WtXmlAttributes[], body = - ), [1] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender;" ] ) ], body = WtBody[ [0] = "Chairman of the", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle[ [0] = "Senate Committee on Agriculture, Nutrition and Forestry" ] ) ] ) ] ) ] ), [13] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "office" ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2005", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "January 3, 2007" ] ) ] ), [14] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ] ) ] ), [15] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ] ) ] ), [16] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [17] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [18] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [19] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [20] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [21] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [22] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [23] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [24] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [25] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [26] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [27] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [28] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "hr" xmlAttributes = WtXmlAttributes[], body = - ) ] ) ] ), [29] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Born" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "November 10, 1943", [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display:none" ] ) ], body = WtBody[ [0] = "(", [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "bday" ] ) ], body = WtBody[ [0] = "1943-11-10" ] ), [2] = ")" ] ), [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint" ] ) ], body = WtBody[ [0] = "(age", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "67)" ] ), [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = WtLinkTitle[ [0] = "Warrenton" ] ), [5] = ",", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "North Carolina" ], title = - ) ] ) ] ), [30] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Political", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "party" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle[ [0] = "Republican" ] ) ] ) ] ), [31] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Spouse(s)" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Julianne Chambliss" ] ) ] ), [32] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Residence" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "label" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ) ] ) ] ), [33] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alma mater" ], title = WtLinkTitle[ [0] = "Alma", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "mater" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "University of Georgia" ], title = - ), [1] = ",", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "University of Tennessee" ], title = WtLinkTitle[ [0] = "University of Tennessee College of Law" ] ) ] ) ] ), [34] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Occupation" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Lawyer" ] ) ] ), [35] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Religion" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Episcopal Church in the United States of America" ], title = WtLinkTitle[ [0] = "Episcopalian" ] ) ] ) ] ), [36] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Website" ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "www.Saxby.org" ] ) ] ) ] ), [37] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [1] = WtBold[ [0] = "Clarence Saxby Chambliss" ], [2] = "(born November 10, 1943) is the senior", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle[ [0] = "United States Senator" ] ), [4] = "from", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle[ [0] = "Georgia" ] ), [6] = ". He is a member of the", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. Republican Party" ], title = WtLinkTitle[ [0] = "Republican Party" ] ), [8] = ". In the 110th Congress, Chambliss serves as the ranking Republican member of the", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = - ), [10] = ", chairing the committee during the 109th Congress (2005-2007).", [11] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Early life, education, and family" ], body = WtBody[ [0] = "Chambliss, the son of an", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Episcopalian" ], title = - ), [2] = "minister,", [3] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [4] = "was born in", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = - ), [6] = ". He graduated from", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "C.E. Byrd High School" ], title = - ), [8] = "in", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Shreveport" ], title = - ), [10] = ",", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Louisiana" ], title = - ), [12] = ", in 1961. He attended", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Louisiana Tech University" ], title = - ), [14] = "from 1961-1962 and earned a", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "bachelor's degree" ], title = - ), [16] = "in Business Administration from the", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "University of Georgia" ], title = - ), [18] = "in 1966, working his way through college at a bakery in", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Athens, Georgia" ], title = WtLinkTitle[ [0] = "Athens" ] ), [20] = ".", [21] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [22] = "He received his", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Juris Doctor" ], title = - ), [24] = "from the", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "University of Tennessee" ], title = - ), [26] = "College of Law in 1968. He is a member of the", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Sigma Chi" ], title = - ), [28] = "Fraternity.", [29] = "During the", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Vietnam War" ], title = - ), [31] = ", Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "football" ], title = - ), [33] = "injury.", [34] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ), [35] = "Chambliss is a member of", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "St. John's Episcopal Church (Moultrie, Georgia)" ], title = WtLinkTitle[ [0] = "St. John's Episcopal Church" ] ), [37] = "in", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ), [39] = ". He married Julianne Frohbert in 1966 and they have two children and two grandchildren.", [40] = "Chambliss's son Bo is a registered lobbyist for the", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chicago Mercantile Exchange" ], title = - ), [42] = "and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle[ [0] = "Senate Agriculture Committee" ] ), [44] = ", of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.", [45] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ) ] ), [12] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "House of Representatives, 1995-2003" ], body = WtBody[ [0] = "Chambliss was elected to the", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. House of Representatives" ], title = - ), [2] = "in 1994 as one of the new", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Conservatism" ], title = WtLinkTitle[ [0] = "conservative" ] ), [4] = "Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian,", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Newt Gingrich" ], title = - ), [6] = ", was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Republican Revolution" ], title = WtLinkTitle[ [0] = "Class of '94" ] ), [8] = ".", [9] = "Chambliss was elected from the", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Macon, Georgia" ], title = WtLinkTitle[ [0] = "Macon" ] ), [11] = "-based 8th District, after six-term incumbent", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [13] = "retired. He was elected with 63% of the vote\u2014an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000.", [14] = "During his four terms in the House, Chambliss served on the", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States House of Representatives Permanent Select Committee on Intelligence" ], title = - ), [16] = "and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security.", [17] = "Less than a month after the", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "September 11 attacks" ], title = WtLinkTitle[ [0] = "September 11, 2001, terrorist attacks" ] ), [19] = ", the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.", [20] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ), [21] = "Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Valdosta, Georgia" ], title = - ), [23] = ", where he said that homeland security would be improved by turning the sheriff loose to \"arrest every", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Muslim" ], title = - ), [25] = "that crosses the state line.\" Chambliss apologized for the remarks.", [26] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ), [27] = "In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jack Abramoff" ], title = - ), [29] = ".", [30] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ) ] ), [13] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Senate, 2003-present" ], body = WtBody[ [0] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Committee assignments" ], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle[ [0] = "Committee on Agriculture, Nutrition, and Forestry" ] ) ], [1] = "(Ranking Member)", [2] = WtUnorderedList[ [0] = WtListItem[ [0] = "As Ranking Member of the full committee, Sen. Chambliss may serve as an", [1] = WtItalics[ [0] = "ex officio" ], [2] = "member of all subcommittees." ] ] ], [1] = WtListItem[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle[ [0] = "Committee on Armed Services" ] ) ], [1] = WtUnorderedList[ [0] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Airland" ], title = WtLinkTitle[ [0] = "Subcommittee on Airland" ] ) ], [1] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Personnel" ], title = WtLinkTitle[ [0] = "Subcommittee on Personnel" ] ) ], [2] = WtListItem[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Readiness and Management Support" ], title = WtLinkTitle[ [0] = "Subcommittee on Readiness and Management Support" ] ) ] ] ], [2] = WtListItem[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle[ [0] = "Committee on Rules and Administration" ] ) ] ], [3] = WtListItem[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle[ [0] = "Select Committee on Intelligence" ] ) ] ], [4] = WtListItem[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Commission on Security and Cooperation in Europe" ], title = - ) ] ] ], [1] = "Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee (", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle[ [0] = "Agriculture" ] ), [3] = ") after serving in the Senate for just two years.", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:All articles with unsourced statements" ], title = - ), [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Articles with unsourced statements from December 2008" ], title = - ), [6] = WtXmlElement( {P} name = "sup" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "Template-Fact" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "This claim needs references to reliable sources", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "from December 2008" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 91 ), [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikipedia:Citation needed" ], title = WtLinkTitle[ [0] = "citation needed" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 93 ) ] ), [7] = "In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as \"staggering.\"", [8] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ) ] ), [1] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Caucus memberships" ], body = WtBody[ [0] = WtUnorderedList[ [0] = WtListItem[ [0] = "Congressional Fire Services Caucus" ], [1] = WtListItem[ [0] = "Congressional Sportsmen Foundation" ], [2] = WtListItem[ [0] = "Juvenile Diabetes Caucus" ], [3] = WtListItem[ [0] = "National Guard Caucus" ], [4] = WtListItem[ [0] = "Rural Health Caucus" ], [5] = WtListItem[ [0] = "Senate Caucus on Military Depots, Arsenals and Ammunition Plants" ], [6] = WtListItem[ [0] = "Co-Chair, Senate Reserve Caucus" ], [7] = WtListItem[ [0] = "Steering Committee" ] ] ] ), [2] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Elections" ], body = WtBody[ [0] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "2002 race" ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article:", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate election in Georgia, 2002" ], title = WtLinkTitle[ [0] = "United States Senate election in Georgia, 2002" ] ) ] ), [1] = "Chambliss ran for the Senate in 2002, facing freshman", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle[ [0] = "Democratic" ] ), [3] = "incumbent", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Cleland" ], title = - ), [5] = ". Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia's 1st congressional district" ], title = WtLinkTitle[ [0] = "1st district" ] ), [7] = ", represented by fellow Republican", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [9] = ".", [10] = "Chambliss focused on the issue of", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "national defense" ], title = - ), [12] = "and", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "homeland security" ], title = - ), [14] = "during his campaign, and released an ad that included", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Osama bin Laden" ], title = - ), [16] = "and", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Saddam Hussein" ], title = - ), [18] = ", highlighting Cleland's record on the issues of war and terrorism.", [19] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ), [20] = "Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John McCain" ], title = - ), [22] = "of", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Arizona" ], title = - ), [24] = "said of one ad, \"", [25] = "[", [26] = "I]t's worse than disgraceful, it's reprehensible;\" Senator", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chuck Hagel" ], title = - ), [28] = "of", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Nebraska" ], title = - ), [30] = "said the ads were \"beyond offensive to me.\"", [31] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [32] = "On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.", [33] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [34] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ), [35] = "Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent." ] ), [1] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "2008 race" ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article:", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate election in Georgia, 2008" ], title = WtLinkTitle[ [0] = "United States Senate election in Georgia, 2008" ] ) ] ), [1] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikinews-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText[] ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = "Wikinews has related news:", [1] = WtItalics[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":wikinews:Republican Senator from Georgia wins run-off election" ], title = WtLinkTitle[ [0] = "Republican Senator from Georgia wins run-off election" ] ) ] ] ] ) ] ) ] ) ] ), [2] = "On November 4, 2008, Chambliss received 49.8% of the vote, while", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle[ [0] = "Democratic" ] ), [4] = "challenger", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle[ [0] = "Jim Martin" ] ), [6] = "received 46.8% and", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Libertarian Party" ], title = WtLinkTitle[ [0] = "Libertarian" ] ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Allen Buckley" ], title = - ), [9] = "received 3.4% of the vote.", [10] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [11] = "Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008.", [12] = "Chambliss defeated Martin 57.5% to 42.5% in the runoff election.", [13] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [14] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ) ] ), [2] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "Imperial Sugar" ], body = WtBody[ [0] = "During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Imperial Sugar" ], title = - ), [2] = "that claims that Imperial \"wrongfully\" failed to remove hazards that caused the disaster of a", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Savannah, Georgia" ], title = WtLinkTitle[ [0] = "Savannah" ] ), [4] = "-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of \"harassing\"", [5] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [6] = "a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: \"I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families.\" Savannah attorney Mark Tate, \"an active backer of Democratic candidates,\" insisted that \"there is nothing political\" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed \"legislative immunity.\"", [7] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [8] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [9] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ) ] ) ] ), [3] = WtSection( {P} level = 3 heading = WtHeading[ [0] = "Political positions" ], body = WtBody[ [0] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "Voting Record" ], body = WtBody[ [0] = "Chambliss's voting record is typically that of voting in line with conservative issues.", [1] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [2] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [3] = "He is the primary sponsor in the", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate" ], title = - ), [5] = "of the tax-reform proposal", [6] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "FairTax" ], title = WtLinkTitle[ [0] = "The Fair Tax Act" ] ) ], [7] = "(S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced.", [8] = "Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation\u2014such as the", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Food, Conservation, and Energy Act of 2008" ], title = WtLinkTitle[ [0] = "2007 Farm Bill" ] ), [10] = ", the bi-partisan immigration reform (led by", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John McCain" ], title = - ), [12] = "and", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ted Kennedy" ], title = - ), [14] = ") in 2007", [15] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [16] = "and the", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Emergency Economic Stabilization Act of 2008" ], title = - ), [18] = ",", [19] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [20] = ". He is also the Republican leader of the", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Gang of 10" ], title = - ), [22] = ", a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States." ] ), [1] = WtSection( {P} level = 4 heading = WtHeading[ [0] = "Interest groups ratings" ], body = WtBody[ [0] = "On abortion issues, the ratings given Chambliss as of 2007 by", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Nrlc" ], title = WtLinkTitle[ [0] = "National Right to Life Committee" ] ), [2] = "and", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "NARAL" ], title = WtLinkTitle[ [0] = "NARAL Pro-Choice America" ] ), [4] = "identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.", [5] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [6] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ), [7] = "On", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Second Amendment to the United States Constitution" ], title = WtLinkTitle[ [0] = "2nd Amendment" ] ), [9] = "issues, in 2008, the", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "National Rifle Association" ], title = WtLinkTitle[ [0] = "NRA" ] ), [11] = "gave Chambliss an \"A+\" rating and the NRA also endorsed him.", [12] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [13] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ), [14] = "On agricultural issues, the", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "American Farm Bureau" ], title = - ), [16] = "gave Chambliss its \"Friend of the Farm Bureau\" award throughout his service in the U.S. Senate.", [17] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ), [18] = "On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,", [19] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [20] = "and the group", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Americans for Tax Reform" ], title = - ), [22] = "gave him a 100% rating.", [23] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ), [24] = "On civil liberties and civil rights issues, in 2007, the", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "American Civil Liberties Union" ], title = WtLinkTitle[ [0] = "American Civil Liberties Union (ACLU)" ] ), [26] = "gave him a 17% rating,", [27] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [28] = "and the", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "NAACP" ], title = - ), [30] = "gave him a 27% rating.", [31] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ), [32] = "On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a \"real reformer\",", [33] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [34] = "while the", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "National Education Association" ], title = - ), [36] = "gave him an \"F\" in 2007.", [37] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ), [38] = "On organized labor issues, in 2007 the", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "AFL-CIO" ], title = - ), [40] = "gave Chambliss a 11% rating,", [41] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [42] = "and the", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "International Foodservice Distributors Association" ], title = - ), [44] = "gave him an 85% rating.", [45] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ), [46] = "On environmental issues, in 2003 the", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "LCV" ], title = - ), [48] = "gave Chambliss a 0% rating.", [49] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ) ] ) ] ) ] ), [14] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "Electoral history" ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "boilerplate seealso" ] ) ], body = WtBody[ [0] = "See also:", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":United States Senate election in Georgia, 2008" ], title = WtLinkTitle[ [0] = "United States Senate election in Georgia, 2008" ] ) ] ), [1] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [1] = ": Results 1994\u20132000", [2] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ) ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Year" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Democrat" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Votes" ] ), [4] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pct" ] ), [5] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Republican" ] ), [7] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Votes" ] ), [8] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pct" ] ), [9] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. House election, 1994" ], title = WtLinkTitle[ [0] = "1994" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "Craig Mathis" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "53,408" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "37%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Saxby Chambliss" ] ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "89,591" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = "63%" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. House election, 1996" ], title = WtLinkTitle[ [0] = "1996" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "Jim Wiggins" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "84,506" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "47%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Saxby Chambliss" ] ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "93,619" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = "53%" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. House election, 1998" ], title = WtLinkTitle[ [0] = "1998" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "Ronald L. Cain" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "53,079" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "38%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Saxby Chambliss" ] ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "87,993" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = "62%" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. House election, 2000" ], title = WtLinkTitle[ [0] = "2000" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Marshall (U.S. politician)" ], title = WtLinkTitle[ [0] = "Jim Marshall" ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "79,051" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "41%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Saxby Chambliss" ] ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "113,380" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = "59%" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ) ] ), [2] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle[ [0] = "Georgia Senator (Class II)" ] ), [1] = ": 2002 results", [2] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ) ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Year" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Democrat" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Votes" ] ), [4] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pct" ] ), [5] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Republican" ] ), [7] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Votes" ] ), [8] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pct" ] ), [9] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3rd Party" ] ), [11] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Party" ] ), [12] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Votes" ] ), [13] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Pct" ] ), [14] = WtTableHeader( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "U.S. Senate election, 2002" ], title = WtLinkTitle[ [0] = "2002" ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Cleland" ], title = - ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "932,422" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = "46%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Saxby Chambliss" ] ] ) ] ), [7] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "1,071,352" ] ), [8] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = "53%" ] ), [9] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = "Claude \"Sandy\" Thomas" ] ), [11] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Libertarian Party (United States)" ], title = WtLinkTitle[ [0] = "Libertarian" ] ) ] ), [12] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "27,830" ] ), [13] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = "1%" ] ), [14] = WtTableCell( xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ) ] ), [3] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "6" ] ) ], body = WtBody[ [0] = "2008 Georgia U.S. Senator general election runoff", [1] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = "Party" ] ), [1] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 17em" ] ) ], body = WtBody[ [0] = "Candidate" ] ), [2] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 5em" ] ) ], body = WtBody[ [0] = "Votes" ] ), [3] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = "%" ] ), [4] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = "\u00B1%" ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [2] = "; width: 5px;" ] ) ], body = WtBody[] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle[ [0] = "Republican" ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = "Saxby Chambliss (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "incumbent" ], title = - ), [2] = ")" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "1,226,528" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "57.5%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:", [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [2] = "; width: 5px;" ] ) ], body = WtBody[] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle[ [0] = "Democratic" ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle[ [0] = "Jim Martin" ] ) ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "907,916" ] ), [4] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "42.5%" ] ), [5] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[] ) ] ), [6] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Majority" ] ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "318,612" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "14.9%" ] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[] ) ] ), [8] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [9] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Voter turnout" ], title = WtLinkTitle[ [0] = "Turnout" ] ) ] ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = "2,134,444" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[] ), [3] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[] ) ] ), [10] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ) ] ), [15] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "External links" ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Commons-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText[] ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = "Wikimedia Commons has media related to:", [1] = WtItalics[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":commons:Category:Saxby Chambliss" ], title = WtLinkTitle[ [0] = "Saxby Chambliss" ] ) ] ] ] ) ] ) ] ) ] ), [1] = WtUnorderedList[ [0] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Chambliss for US Senate" ] ), [1] = ",", [2] = WtItalics[ [0] = "official campaign site" ] ], [1] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.youtube.com/saxbychambliss08" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Chambliss For Senate YouTube Channel" ] ), [1] = ", official YouTube Channel" ], [2] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.facebook.com/enjoythego" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Saxby Chambliss Facebook Page" ] ), [1] = ", Facebook Page" ] ], [2] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikiquote-logo-en.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText[] ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wikiquote" ], title = - ), [1] = "has a collection of quotations related to:", [2] = WtItalics[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = ":q:Special:Search/Saxby Chambliss" ], title = WtLinkTitle[ [0] = "Saxby Chambliss" ] ) ] ] ] ) ] ) ] ) ] ), [3] = WtUnorderedList[ [0] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//chambliss.senate.gov/" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "United States Senator Saxby Chambliss" ] ), [1] = ",", [2] = WtItalics[ [0] = "official U.S. Senate site" ] ] ], [4] = WtUnorderedList[ [0] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Biography" ] ), [1] = "at the", [2] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Biographical Directory of the United States Congress" ], title = - ) ] ], [1] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//projects.washingtonpost.com/congress/members/c000286" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Voting record" ] ), [1] = "maintained by", [2] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "The Washington Post" ], title = - ) ] ], [2] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.votesmart.org/bio.php?can_id=CNIP7909" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Biography" ] ), [1] = ",", [2] = WtExternalLink( target = WtUrl( {P} path = "//www.votesmart.org/voting_category.php?can_id=CNIP7909" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "voting record" ] ), [3] = ", and", [4] = WtExternalLink( target = WtUrl( {P} path = "//www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "interest group ratings" ] ), [5] = "at", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Project Vote Smart" ], title = - ) ], [3] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.ontheissues.org/Senate/Saxby_Chambliss.htm" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Issue positions and quotes" ] ), [1] = "at On The Issues" ], [4] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.opensecrets.org/politicians/summary.php?CID=N00002685" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Financial information" ] ), [1] = "at", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Center for Responsive Politics" ], title = WtLinkTitle[ [0] = "OpenSecrets.org" ] ) ], [5] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "Campaign finance reports and data" ] ), [1] = "at the", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Federal Election Commission" ], title = - ) ], [6] = WtListItem[ [0] = WtExternalLink( target = WtUrl( {P} path = "//www.sourcewatch.org/index.php?title=Saxby_Chambliss" {P} protocol = "http" ), title = WtLinkTitle[ [0] = "SourceWatch Congresspedia \u2014 Saxby Chambliss" ] ), [1] = "profile" ] ], [5] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable succession-box" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em auto; font-size:95%;clear:both;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States House of Representatives" ], title = - ) ] ) ] ), [1] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Member", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "of", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [4] = "the", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle[ [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "Representatives" ] ), [7] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [8] = "from", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [10] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "1995 \u2013 2003" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mac Collins" ], title = - ), [1] = WtTagExtension( {P} name = "ref" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ) ] ) ] ) ] ), [2] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate" ], title = - ) ] ) ] ), [4] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Cleland" ], title = - ) ] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle[ [0] = "United States Senator (Class 2) from Georgia" ] ), [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2003", [3] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [4] = "present", [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Served alongside:", [1] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Zell Miller" ], title = - ), [1] = ",", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ] ] ) ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Incumbent" ] ] ) ] ), [6] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccccff;" ] ) ], body = WtBody[ [0] = "Political offices" ] ) ] ), [8] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mississippi" ], title = - ) ] ) ] ), [5] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtBold[ [0] = "Chairman of the", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle[ [0] = "Senate Agriculture Committee" ] ), [2] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ], [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2005 \u2013 2007" ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Iowa" ], title = - ) ] ) ] ), [5] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [9] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccffcc;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States order of precedence" ], title = - ) ] ) ] ), [11] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Frank Lautenberg" ], title = - ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "New Jersey" ], title = - ) ] ) ] ), [5] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [1] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtItalics[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of current United States Senators by seniority" ], title = WtLinkTitle[ [0] = "United States Senators by seniority" ] ), [1] = "'''" ] ], [1] = WtTagExtension( {P} name = "nowiki" xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [2] = WtBold[ [0] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [1] = "61st" ] ] ), [2] = WtTableCell( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = "Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "by", [3] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lindsey Graham" ], title = - ), [1] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "South Carolina" ], title = - ) ] ) ] ) ] ) ] ), [12] = WtTableRow( {P} implicit = false xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [6] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:USSenGA" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template talk:USSenGA" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ] ), [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [4] = WtExternalLink( target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" {P} protocol = "http" ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle[ [0] = "United States Senators from Georgia" ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 2" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William Few" ], title = WtLinkTitle[ [0] = "Few" ] ), [1] = "\u2022", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle[ [0] = "Jackson" ] ), [3] = "\u2022", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "George Walton" ], title = WtLinkTitle[ [0] = "Walton" ] ), [5] = "\u2022", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Josiah Tattnall (Senator)" ], title = WtLinkTitle[ [0] = "Tattnall" ] ), [7] = "\u2022", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Abraham Baldwin" ], title = WtLinkTitle[ [0] = "Baldwin" ] ), [9] = "\u2022", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "George Jones (U.S. Senator)" ], title = WtLinkTitle[ [0] = "Jones" ] ), [11] = "\u2022", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William H. Crawford" ], title = WtLinkTitle[ [0] = "Crawford" ] ), [13] = "\u2022", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William Bellinger Bulloch" ], title = WtLinkTitle[ [0] = "Bulloch" ] ), [15] = "\u2022", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William Wyatt Bibb" ], title = WtLinkTitle[ [0] = "Bibb" ] ), [17] = "\u2022", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle[ [0] = "Troup" ] ), [19] = "\u2022", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle[ [0] = "Forsyth" ] ), [21] = "\u2022", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Freeman Walker" ], title = WtLinkTitle[ [0] = "Walker" ] ), [23] = "\u2022", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Nicholas Ware" ], title = WtLinkTitle[ [0] = "Ware" ] ), [25] = "\u2022", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thomas W. Cobb" ], title = WtLinkTitle[ [0] = "Cobb" ] ), [27] = "\u2022", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Oliver H. Prince" ], title = WtLinkTitle[ [0] = "Prince" ] ), [29] = "\u2022", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle[ [0] = "Troup" ] ), [31] = "\u2022", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Pendleton King" ], title = WtLinkTitle[ [0] = "King" ] ), [33] = "\u2022", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wilson Lumpkin" ], title = WtLinkTitle[ [0] = "Lumpkin" ] ), [35] = "\u2022", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle[ [0] = "Berrien" ] ), [37] = "\u2022", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Robert M. Charlton" ], title = WtLinkTitle[ [0] = "Charlton" ] ), [39] = "\u2022", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Robert Toombs" ], title = WtLinkTitle[ [0] = "Toombs" ] ), [41] = "\u2022", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Homer V. M. Miller" ], title = WtLinkTitle[ [0] = "H. Miller" ] ), [43] = "\u2022", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thomas M. Norwood" ], title = WtLinkTitle[ [0] = "Norwood" ] ), [45] = "\u2022", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Benjamin Harvey Hill" ], title = WtLinkTitle[ [0] = "B. Hill" ] ), [47] = "\u2022", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Middleton P. Barrow" ], title = WtLinkTitle[ [0] = "Barrow" ] ), [49] = "\u2022", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alfred H. Colquitt" ], title = WtLinkTitle[ [0] = "A. Colquitt" ] ), [51] = "\u2022", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Patrick Walsh (politician)" ], title = WtLinkTitle[ [0] = "Walsh" ] ), [53] = "\u2022", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Augustus Octavius Bacon" ], title = WtLinkTitle[ [0] = "Bacon" ] ), [55] = "\u2022", [56] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William Stanley West" ], title = WtLinkTitle[ [0] = "West" ] ), [57] = "\u2022", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thomas W. Hardwick" ], title = WtLinkTitle[ [0] = "Hardwick" ] ), [59] = "\u2022", [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William J. Harris" ], title = WtLinkTitle[ [0] = "Harris" ] ), [61] = "\u2022", [62] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John S. Cohen" ], title = WtLinkTitle[ [0] = "Cohen" ] ), [63] = "\u2022", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Russell, Jr." ], title = WtLinkTitle[ [0] = "Russell" ] ), [65] = "\u2022", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "David H. Gambrell" ], title = WtLinkTitle[ [0] = "Gambrell" ] ), [67] = "\u2022", [68] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Sam Nunn" ], title = WtLinkTitle[ [0] = "Nunn" ] ), [69] = "\u2022", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Cleland" ], title = WtLinkTitle[ [0] = "Cleland" ] ), [71] = "\u2022", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle[ [0] = "Chambliss" ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:0%;padding:0px 0px 0px 2px;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "3" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} upright = false {P} vAlign = MIDDLE {P} width = 80 target = WtPageName[ [0] = "Image:Senate Seal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} width = 80 ), [1] = WtLinkTitle[ [0] = "United States Senate" ] ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 3" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "James Gunn (senator)" ], title = WtLinkTitle[ [0] = "Gunn" ] ), [1] = "\u2022", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle[ [0] = "Jackson" ] ), [3] = "\u2022", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Milledge" ], title = WtLinkTitle[ [0] = "Milledge" ] ), [5] = "\u2022", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Charles Tait" ], title = WtLinkTitle[ [0] = "Tait" ] ), [7] = "\u2022", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Elliott (Georgia)" ], title = WtLinkTitle[ [0] = "Elliott" ] ), [9] = "\u2022", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle[ [0] = "Berrien" ] ), [11] = "\u2022", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle[ [0] = "Forsyth" ] ), [13] = "\u2022", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alfred Cuthbert" ], title = WtLinkTitle[ [0] = "Cuthbert" ] ), [15] = "\u2022", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Walter T. Colquitt" ], title = WtLinkTitle[ [0] = "W. Colquitt" ] ), [17] = "\u2022", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Herschel Vespasian Johnson" ], title = WtLinkTitle[ [0] = "Johnson" ] ), [19] = "\u2022", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "William Crosby Dawson" ], title = WtLinkTitle[ [0] = "Dawson" ] ), [21] = "\u2022", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alfred Iverson, Sr." ], title = WtLinkTitle[ [0] = "Iverson" ] ), [23] = "\u2022", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joshua Hill (politician)" ], title = WtLinkTitle[ [0] = "J. Hill" ] ), [25] = "\u2022", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle[ [0] = "Gordon" ] ), [27] = "\u2022", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joseph E. Brown" ], title = WtLinkTitle[ [0] = "Brown" ] ), [29] = "\u2022", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle[ [0] = "Gordon" ] ), [31] = "\u2022", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alexander S. Clay" ], title = WtLinkTitle[ [0] = "Clay" ] ), [33] = "\u2022", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joseph M. Terrell" ], title = WtLinkTitle[ [0] = "Terrell" ] ), [35] = "\u2022", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "M. Hoke Smith" ], title = WtLinkTitle[ [0] = "Smith" ] ), [37] = "\u2022", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thomas E. Watson" ], title = WtLinkTitle[ [0] = "Watson" ] ), [39] = "\u2022", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Rebecca Latimer Felton" ], title = WtLinkTitle[ [0] = "Felton" ] ), [41] = "\u2022", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Walter F. George" ], title = WtLinkTitle[ [0] = "George" ] ), [43] = "\u2022", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Herman Talmadge" ], title = WtLinkTitle[ [0] = "Talmadge" ] ), [45] = "\u2022", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mack Mattingly" ], title = WtLinkTitle[ [0] = "Mattingly" ] ), [47] = "\u2022", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wyche Fowler" ], title = WtLinkTitle[ [0] = "Fowler" ] ), [49] = "\u2022", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Paul Coverdell" ], title = WtLinkTitle[ [0] = "Coverdell" ] ), [51] = "\u2022", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Zell Miller" ], title = WtLinkTitle[ [0] = "Z. Miller" ] ), [53] = "\u2022", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle[ [0] = "Isakson" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [7] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:GA-FedRep" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template talk:GA-FedRep" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ] ), [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [4] = WtExternalLink( target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" {P} protocol = "http" ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle[ [0] = "Georgia's current delegation" ] ), [1] = "to the", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "112th United States Congress" ], title = WtLinkTitle[ [0] = "United States Congress" ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle[ [0] = "Senators" ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ), [1] = "(R),", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [3] = "(R)" ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle[ [0] = "Representatives" ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [1] = "(R),", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Sanford Bishop" ], title = - ), [3] = "(D),", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lynn Westmoreland" ], title = WtLinkTitle[ [0] = "Lynn", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Westmoreland" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [6] = "(R),", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Hank Johnson" ], title = WtLinkTitle[ [0] = "Hank", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Johnson" ] ), [8] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [9] = "(D),", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Lewis (U.S. politician)" ], title = WtLinkTitle[ [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Lewis" ] ), [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [12] = "(D),", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Price (Georgia)" ], title = WtLinkTitle[ [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Price" ] ), [14] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [15] = "(R),", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Rob Woodall" ], title = WtLinkTitle[ [0] = "Rob", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Woodall" ] ), [17] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [18] = "(R),", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Austin Scott (politician)" ], title = WtLinkTitle[ [0] = "Austin", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Scott" ] ), [20] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [21] = "(R),", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Graves (politician)" ], title = WtLinkTitle[ [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Graves" ] ), [23] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [24] = "(R),", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Paul Broun" ], title = - ), [26] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [27] = "(R),", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Phil Gingrey" ], title = WtLinkTitle[ [0] = "Phil", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Gingrey" ] ), [29] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [30] = "(R),", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Barrow (Georgia)" ], title = WtLinkTitle[ [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Barrow" ] ), [32] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [33] = "(D),", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "David Scott (Georgia)" ], title = WtLinkTitle[ [0] = "David", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "Scott" ] ), [35] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [36] = "(D)" ] ) ] ) ] ), [5] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [6] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = "Other states' delegations" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Alabama" ], title = WtLinkTitle[ [0] = "Alabama" ] ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = "\u2022", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Alaska" ], title = WtLinkTitle[ [0] = "Alaska" ] ), [4] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [5] = "\u2022", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Arizona" ], title = WtLinkTitle[ [0] = "Arizona" ] ), [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [8] = "\u2022", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Arkansas" ], title = WtLinkTitle[ [0] = "Arkansas" ] ), [10] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [11] = "\u2022", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from California" ], title = WtLinkTitle[ [0] = "California" ] ), [13] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [14] = "\u2022", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Colorado" ], title = WtLinkTitle[ [0] = "Colorado" ] ), [16] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [17] = "\u2022", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Connecticut" ], title = WtLinkTitle[ [0] = "Connecticut" ] ), [19] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [20] = "\u2022", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Delaware" ], title = WtLinkTitle[ [0] = "Delaware" ] ), [22] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [23] = "\u2022", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Florida" ], title = WtLinkTitle[ [0] = "Florida" ] ), [25] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [26] = "\u2022", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle[ [0] = "Georgia" ] ), [28] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [29] = "\u2022", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Hawaii" ], title = WtLinkTitle[ [0] = "Hawaii" ] ), [31] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [32] = "\u2022", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Idaho" ], title = WtLinkTitle[ [0] = "Idaho" ] ), [34] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [35] = "\u2022", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Illinois" ], title = WtLinkTitle[ [0] = "Illinois" ] ), [37] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [38] = "\u2022", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Indiana" ], title = WtLinkTitle[ [0] = "Indiana" ] ), [40] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [41] = "\u2022", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Iowa" ], title = WtLinkTitle[ [0] = "Iowa" ] ), [43] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [44] = "\u2022", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Kansas" ], title = WtLinkTitle[ [0] = "Kansas" ] ), [46] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [47] = "\u2022", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Kentucky" ], title = WtLinkTitle[ [0] = "Kentucky" ] ), [49] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [50] = "\u2022", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Louisiana" ], title = WtLinkTitle[ [0] = "Louisiana" ] ), [52] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [53] = "\u2022", [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Maine" ], title = WtLinkTitle[ [0] = "Maine" ] ), [55] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [56] = "\u2022", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Maryland" ], title = WtLinkTitle[ [0] = "Maryland" ] ), [58] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [59] = "\u2022", [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Massachusetts" ], title = WtLinkTitle[ [0] = "Massachusetts" ] ), [61] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [62] = "\u2022", [63] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Michigan" ], title = WtLinkTitle[ [0] = "Michigan" ] ), [64] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [65] = "\u2022", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Minnesota" ], title = WtLinkTitle[ [0] = "Minnesota" ] ), [67] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [68] = "\u2022", [69] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Mississippi" ], title = WtLinkTitle[ [0] = "Mississippi" ] ), [70] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [71] = "\u2022", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Missouri" ], title = WtLinkTitle[ [0] = "Missouri" ] ), [73] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [74] = "\u2022", [75] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Montana" ], title = WtLinkTitle[ [0] = "Montana" ] ), [76] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [77] = "\u2022", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Nebraska" ], title = WtLinkTitle[ [0] = "Nebraska" ] ), [79] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [80] = "\u2022", [81] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Nevada" ], title = WtLinkTitle[ [0] = "Nevada" ] ), [82] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [83] = "\u2022", [84] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from New Hampshire" ], title = WtLinkTitle[ [0] = "New Hampshire" ] ), [85] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [86] = "\u2022", [87] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from New Jersey" ], title = WtLinkTitle[ [0] = "New Jersey" ] ), [88] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [89] = "\u2022", [90] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from New Mexico" ], title = WtLinkTitle[ [0] = "New Mexico" ] ), [91] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [92] = "\u2022", [93] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from New York" ], title = WtLinkTitle[ [0] = "New York" ] ), [94] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [95] = "\u2022", [96] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from North Carolina" ], title = WtLinkTitle[ [0] = "North Carolina" ] ), [97] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [98] = "\u2022", [99] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from North Dakota" ], title = WtLinkTitle[ [0] = "North Dakota" ] ), [100] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [101] = "\u2022", [102] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Ohio" ], title = WtLinkTitle[ [0] = "Ohio" ] ), [103] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [104] = "\u2022", [105] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Oklahoma" ], title = WtLinkTitle[ [0] = "Oklahoma" ] ), [106] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [107] = "\u2022", [108] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Oregon" ], title = WtLinkTitle[ [0] = "Oregon" ] ), [109] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [110] = "\u2022", [111] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Pennsylvania" ], title = WtLinkTitle[ [0] = "Pennsylvania" ] ), [112] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [113] = "\u2022", [114] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Rhode Island" ], title = WtLinkTitle[ [0] = "Rhode Island" ] ), [115] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [116] = "\u2022", [117] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from South Carolina" ], title = WtLinkTitle[ [0] = "South Carolina" ] ), [118] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [119] = "\u2022", [120] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from South Dakota" ], title = WtLinkTitle[ [0] = "South Dakota" ] ), [121] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [122] = "\u2022", [123] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Tennessee" ], title = WtLinkTitle[ [0] = "Tennessee" ] ), [124] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [125] = "\u2022", [126] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Texas" ], title = WtLinkTitle[ [0] = "Texas" ] ), [127] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [128] = "\u2022", [129] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Utah" ], title = WtLinkTitle[ [0] = "Utah" ] ), [130] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [131] = "\u2022", [132] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Vermont" ], title = WtLinkTitle[ [0] = "Vermont" ] ), [133] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [134] = "\u2022", [135] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Virginia" ], title = WtLinkTitle[ [0] = "Virginia" ] ), [136] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [137] = "\u2022", [138] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Washington" ], title = WtLinkTitle[ [0] = "Washington" ] ), [139] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [140] = "\u2022", [141] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from West Virginia" ], title = WtLinkTitle[ [0] = "West Virginia" ] ), [142] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [143] = "\u2022", [144] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Wisconsin" ], title = WtLinkTitle[ [0] = "Wisconsin" ] ), [145] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [146] = "\u2022", [147] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from Wyoming" ], title = WtLinkTitle[ [0] = "Wyoming" ] ), [148] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [149] = "\u2022", [150] = WtXmlElement( {P} name = "small" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtItalics[ [0] = "Non", [1] = WtXmlCharRef( {P} codePoint = 8209 ), [2] = "voting:" ] ] ), [151] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [152] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of Delegates to the United States House of Representatives from American Samoa" ], title = WtLinkTitle[ [0] = "American Samoa" ] ), [153] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [154] = "\u2022", [155] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from the District of Columbia" ], title = WtLinkTitle[ [0] = "District of Columbia" ] ), [156] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [157] = "\u2022", [158] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Guam's At-large congressional district" ], title = WtLinkTitle[ [0] = "Guam" ] ), [159] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [160] = "\u2022", [161] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from the Northern Mariana Islands" ], title = WtLinkTitle[ [0] = "Northern Mariana Islands" ] ), [162] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [163] = "\u2022", [164] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Resident Commissioner of Puerto Rico" ], title = WtLinkTitle[ [0] = "Puerto Rico" ] ), [165] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [166] = "\u2022", [167] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional delegations from the United States Virgin Islands" ], title = WtLinkTitle[ [0] = "U.S. Virgin Islands" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [8] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:USSenChairs" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template talk:USSenChairs" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ] ), [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [4] = WtExternalLink( target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" {P} protocol = "http" ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = "Chairpersons and", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ranking member" ], title = WtLinkTitle[ [0] = "Ranking Members" ] ), [2] = "of", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate" ], title = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States congressional committee" ], title = WtLinkTitle[ [0] = "committees" ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:100%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight:bold;" ] ) ], body = WtBody[ [0] = "Chairpersons (Democratic)" ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;font-weight:bold;" ] ) ], body = WtBody[ [0] = "Ranking Members (Republican)" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Debbie Stabenow" ], title = - ) ], [1] = "(", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Michigan" ], title = - ), [3] = ")", [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [5] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle[ [0] = "Agriculture, Nutrition and Forestry" ] ) ], [6] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [7] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Daniel Inouye" ], title = - ) ], [8] = "(", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Hawaii" ], title = - ), [10] = ")", [11] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [12] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle[ [0] = "Appropriations" ] ) ], [13] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [14] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Carl Levin" ], title = - ) ], [15] = "(", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Michigan" ], title = - ), [17] = ")", [18] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [19] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle[ [0] = "Armed Services" ] ) ], [20] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [21] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle[ [0] = "Tim Johnson" ] ) ], [22] = "(", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "South Dakota" ], title = - ), [24] = ")", [25] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [26] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle[ [0] = "Banking, Housing, and Urban Affairs" ] ) ], [27] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [28] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kent Conrad" ], title = - ) ], [29] = "(", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "North Dakota" ], title = - ), [31] = ")", [32] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [33] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle[ [0] = "Budget" ] ) ], [34] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [35] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jay Rockefeller" ], title = - ) ], [36] = "(", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "West Virginia" ], title = - ), [38] = ")", [39] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [40] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle[ [0] = "Commerce, Science and Transportation" ] ) ], [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeff Bingaman" ], title = - ) ], [43] = "(", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "New Mexico" ], title = - ), [45] = ")", [46] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [47] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle[ [0] = "Energy and Natural Resources" ] ) ], [48] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ], [50] = "(", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "California" ], title = - ), [52] = ")", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [54] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle[ [0] = "Environment and Public Works" ] ) ], [55] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [56] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Baucus" ], title = - ) ], [57] = "(", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Montana" ], title = - ), [59] = ")", [60] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [61] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle[ [0] = "Finance" ] ) ], [62] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [63] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Kerry" ], title = - ) ], [64] = "(", [65] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Massachusetts" ], title = - ), [66] = ")", [67] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [68] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle[ [0] = "Foreign Relations" ] ) ], [69] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [70] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ], [71] = "(", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Iowa" ], title = - ), [73] = ")", [74] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [75] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle[ [0] = "Health, Education, Labor, and Pensions" ] ) ], [76] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [77] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joe Lieberman" ], title = - ) ], [78] = "(", [79] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Connecticut" ], title = - ), [80] = ")", [81] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [82] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle[ [0] = "Homeland Security and Governmental Affairs" ] ) ], [83] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [84] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Daniel Akaka" ], title = - ) ], [85] = "(", [86] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Hawaii" ], title = - ), [87] = ")", [88] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [89] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle[ [0] = "Indian Affairs" ] ) ], [90] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [91] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Patrick Leahy" ], title = - ) ], [92] = "(", [93] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Vermont" ], title = - ), [94] = ")", [95] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [96] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle[ [0] = "Judiciary" ] ) ], [97] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [98] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chuck Schumer" ], title = - ) ], [99] = "(", [100] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "New York" ], title = - ), [101] = ")", [102] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [103] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle[ [0] = "Rules and Administration" ] ) ], [104] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mary Landrieu" ], title = - ) ], [106] = "(", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Louisiana" ], title = - ), [108] = ")", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [110] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle[ [0] = "Small Business and Entrepreneurship" ] ) ], [111] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [112] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Patty Murray" ], title = - ) ], [113] = "(", [114] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Washington (U.S. state)" ], title = WtLinkTitle[ [0] = "Washington" ] ), [115] = ")", [116] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [117] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle[ [0] = "Veterans' Affairs" ] ) ], [118] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [119] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ], [120] = "(", [121] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "California" ], title = - ), [122] = ")", [123] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [124] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle[ [0] = "Ethics" ] ), [1] = "(Select)" ], [125] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [126] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Dianne Feinstein" ], title = - ) ], [127] = "(", [128] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "California" ], title = - ), [129] = ")", [130] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [131] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle[ [0] = "Intelligence" ] ), [1] = "(Select)" ], [132] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [133] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Herb Kohl" ], title = - ) ], [134] = "(", [135] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wisconsin" ], title = - ), [136] = ")", [137] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [138] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle[ [0] = "Aging" ] ), [1] = "(Special)" ] ] ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Pat Roberts" ], title = - ) ], [1] = "(", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kansas" ], title = - ), [3] = ")", [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [5] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle[ [0] = "Agriculture, Nutrition and Forestry" ] ) ], [6] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [7] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ], [8] = "(", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mississippi" ], title = - ), [10] = ")", [11] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [12] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle[ [0] = "Appropriations" ] ) ], [13] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [14] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John McCain" ], title = - ) ], [15] = "(", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Arizona" ], title = - ), [17] = ")", [18] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [19] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle[ [0] = "Armed Services" ] ) ], [20] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [21] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Shelby" ], title = - ) ], [22] = "(", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alabama" ], title = - ), [24] = ")", [25] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [26] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle[ [0] = "Banking, Housing, and Urban Affairs" ] ) ], [27] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [28] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeff Sessions" ], title = - ) ], [29] = "(", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alabama" ], title = - ), [31] = ")", [32] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [33] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle[ [0] = "Budget" ] ) ], [34] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [35] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = - ) ], [36] = "(", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Texas" ], title = - ), [38] = ")", [39] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [40] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle[ [0] = "Commerce, Science and Transportation" ] ) ], [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lisa Murkowski" ], title = - ) ], [43] = "(", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Alaska" ], title = - ), [45] = ")", [46] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [47] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle[ [0] = "Energy and Natural Resources" ] ) ], [48] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Inhofe" ], title = - ) ], [50] = "(", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Oklahoma" ], title = - ), [52] = ")", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [54] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle[ [0] = "Environment and Public Works" ] ) ], [55] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [56] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Orrin Hatch" ], title = - ) ], [57] = "(", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Utah" ], title = - ), [59] = ")", [60] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [61] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle[ [0] = "Finance" ] ) ], [62] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [63] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Lugar" ], title = - ) ], [64] = "(", [65] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Indiana" ], title = - ), [66] = ")", [67] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [68] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle[ [0] = "Foreign Relations" ] ) ], [69] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [70] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mike Enzi" ], title = - ) ], [71] = "(", [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wyoming" ], title = - ), [73] = ")", [74] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [75] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle[ [0] = "Health, Education, Labor, and Pensions" ] ) ], [76] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [77] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Susan Collins" ], title = - ) ], [78] = "(", [79] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Maine" ], title = - ), [80] = ")", [81] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [82] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle[ [0] = "Homeland Security and Governmental Affairs" ] ) ], [83] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [84] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Barrasso" ], title = - ) ], [85] = "(", [86] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Wyoming" ], title = - ), [87] = ")", [88] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [89] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle[ [0] = "Indian Affairs" ] ) ], [90] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [91] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chuck Grassley" ], title = - ) ], [92] = "(", [93] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Iowa" ], title = - ), [94] = ")", [95] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [96] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle[ [0] = "Judiciary" ] ) ], [97] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [98] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lamar Alexander" ], title = - ) ], [99] = "(", [100] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tennessee" ], title = - ), [101] = ")", [102] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [103] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle[ [0] = "Rules and Administration" ] ) ], [104] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Olympia Snowe" ], title = - ) ], [106] = "(", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Maine" ], title = - ), [108] = ")", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [110] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle[ [0] = "Small Business and Entrepreneurship" ] ) ], [111] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [112] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Burr" ], title = - ) ], [113] = "(", [114] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "North Carolina" ], title = - ), [115] = ")", [116] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [117] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle[ [0] = "Veterans' Affairs" ] ) ], [118] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [119] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ], [120] = "(", [121] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle[ [0] = "Georgia" ] ), [122] = ")", [123] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [124] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle[ [0] = "Ethics" ] ), [1] = "(Select)" ], [125] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [126] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ) ], [127] = "(", [128] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle[ [0] = "Georgia" ] ), [129] = ")", [130] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [131] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle[ [0] = "Intelligence" ] ), [1] = "(Select)" ], [132] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [133] = WtBold[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bob Corker" ], title = - ) ], [134] = "(", [135] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tennessee" ], title = - ), [136] = ")", [137] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" ), [138] = WtItalics[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle[ [0] = "Aging" ] ), [1] = "(Special)" ] ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [9] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template:Current U.S. Senators" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Template talk:Current U.S. Senators" ], title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ] ), [3] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 ) ] ), [4] = WtExternalLink( target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" {P} protocol = "http" ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of current United States Senators" ], title = WtLinkTitle[ [0] = "Current members of the United States Senate" ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:auto;margin-left:auto;margin-right:auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:5em;" ] ) ], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" ) ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Alabama" ], title = WtLinkTitle[ [0] = "AL" ] ), [1] = ":", [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Shelby" ], title = WtLinkTitle[ [0] = "Shelby" ] ), [1] = "(R)" ] ), [3] = ",", [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeff Sessions" ], title = WtLinkTitle[ [0] = "Sessions" ] ), [1] = "(R)" ] ), [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Alaska" ], title = WtLinkTitle[ [0] = "AK" ] ), [7] = ":", [8] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lisa Murkowski" ], title = WtLinkTitle[ [0] = "Murkowski" ] ), [1] = "(R)" ] ), [9] = ",", [10] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mark Begich" ], title = WtLinkTitle[ [0] = "Begich" ] ), [1] = "(D)" ] ), [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Arizona" ], title = WtLinkTitle[ [0] = "AZ" ] ), [13] = ":", [14] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John McCain" ], title = WtLinkTitle[ [0] = "McCain" ] ), [1] = "(R)" ] ), [15] = ",", [16] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jon Kyl" ], title = WtLinkTitle[ [0] = "Kyl" ] ), [1] = "(R)" ] ), [17] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Arkansas" ], title = WtLinkTitle[ [0] = "AR" ] ), [19] = ":", [20] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mark Pryor" ], title = WtLinkTitle[ [0] = "Pryor" ] ), [1] = "(D)" ] ), [21] = ",", [22] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Boozman" ], title = WtLinkTitle[ [0] = "Boozman" ] ), [1] = "(R)" ] ), [23] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from California" ], title = WtLinkTitle[ [0] = "CA" ] ), [25] = ":", [26] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Dianne Feinstein" ], title = WtLinkTitle[ [0] = "Feinstein" ] ), [1] = "(D)" ] ), [27] = ",", [28] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Barbara Boxer" ], title = WtLinkTitle[ [0] = "Boxer" ] ), [1] = "(D)" ] ), [29] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Colorado" ], title = WtLinkTitle[ [0] = "CO" ] ), [31] = ":", [32] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mark Udall" ], title = WtLinkTitle[ [0] = "M. Udall" ] ), [1] = "(D)" ] ), [33] = ",", [34] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Michael Bennet" ], title = WtLinkTitle[ [0] = "Bennet" ] ), [1] = "(D)" ] ), [35] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Connecticut" ], title = WtLinkTitle[ [0] = "CT" ] ), [37] = ":", [38] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joe Lieberman" ], title = WtLinkTitle[ [0] = "Lieberman" ] ), [1] = "(I)" ] ), [39] = ",", [40] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Blumenthal" ], title = WtLinkTitle[ [0] = "Blumenthal" ] ), [1] = "(D)" ] ), [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Delaware" ], title = WtLinkTitle[ [0] = "DE" ] ), [43] = ":", [44] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Carper" ], title = WtLinkTitle[ [0] = "Carper" ] ), [1] = "(D)" ] ), [45] = ",", [46] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chris Coons" ], title = WtLinkTitle[ [0] = "Coons" ] ), [1] = "(D)" ] ), [47] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Florida" ], title = WtLinkTitle[ [0] = "FL" ] ), [49] = ":", [50] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bill Nelson" ], title = WtLinkTitle[ [0] = "C.W. Nelson" ] ), [1] = "(D)" ] ), [51] = ",", [52] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Marco Rubio" ], title = WtLinkTitle[ [0] = "Rubio" ] ), [1] = "(R)" ] ), [53] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle[ [0] = "GA" ] ), [55] = ":", [56] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle[ [0] = "Chambliss" ] ), [1] = "(R)" ] ), [57] = ",", [58] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle[ [0] = "Isakson" ] ), [1] = "(R)" ] ), [59] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Hawaii" ], title = WtLinkTitle[ [0] = "HI" ] ), [61] = ":", [62] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Daniel Inouye" ], title = WtLinkTitle[ [0] = "Inouye" ] ), [1] = "(D)" ] ), [63] = ",", [64] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Daniel Akaka" ], title = WtLinkTitle[ [0] = "Akaka" ] ), [1] = "(D)" ] ), [65] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Idaho" ], title = WtLinkTitle[ [0] = "ID" ] ), [67] = ":", [68] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mike Crapo" ], title = WtLinkTitle[ [0] = "Crapo" ] ), [1] = "(R)" ] ), [69] = ",", [70] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Risch" ], title = WtLinkTitle[ [0] = "Risch" ] ), [1] = "(R)" ] ), [71] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Illinois" ], title = WtLinkTitle[ [0] = "IL" ] ), [73] = ":", [74] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Dick Durbin" ], title = WtLinkTitle[ [0] = "Durbin" ] ), [1] = "(D)" ] ), [75] = ",", [76] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mark Kirk" ], title = WtLinkTitle[ [0] = "Kirk" ] ), [1] = "(R)" ] ), [77] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Indiana" ], title = WtLinkTitle[ [0] = "IN" ] ), [1] = ":", [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Lugar" ], title = WtLinkTitle[ [0] = "Lugar" ] ), [1] = "(R)" ] ), [3] = ",", [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Dan Coats" ], title = WtLinkTitle[ [0] = "Coats" ] ), [1] = "(R)" ] ), [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Iowa" ], title = WtLinkTitle[ [0] = "IA" ] ), [7] = ":", [8] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chuck Grassley" ], title = WtLinkTitle[ [0] = "Grassley" ] ), [1] = "(R)" ] ), [9] = ",", [10] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Harkin" ], title = WtLinkTitle[ [0] = "Harkin" ] ), [1] = "(D)" ] ), [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Kansas" ], title = WtLinkTitle[ [0] = "KS" ] ), [13] = ":", [14] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Pat Roberts" ], title = WtLinkTitle[ [0] = "Roberts" ] ), [1] = "(R)" ] ), [15] = ",", [16] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jerry Moran" ], title = WtLinkTitle[ [0] = "Moran" ] ), [1] = "(R)" ] ), [17] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Kentucky" ], title = WtLinkTitle[ [0] = "KY" ] ), [19] = ":", [20] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mitch McConnell" ], title = WtLinkTitle[ [0] = "McConnell" ] ), [1] = "(R)" ] ), [21] = ",", [22] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Rand Paul" ], title = WtLinkTitle[ [0] = "Paul" ] ), [1] = "(R)" ] ), [23] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Louisiana" ], title = WtLinkTitle[ [0] = "LA" ] ), [25] = ":", [26] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mary Landrieu" ], title = WtLinkTitle[ [0] = "Landrieu" ] ), [1] = "(D)" ] ), [27] = ",", [28] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "David Vitter" ], title = WtLinkTitle[ [0] = "Vitter" ] ), [1] = "(R)" ] ), [29] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Maine" ], title = WtLinkTitle[ [0] = "ME" ] ), [31] = ":", [32] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Olympia Snowe" ], title = WtLinkTitle[ [0] = "Snowe" ] ), [1] = "(R)" ] ), [33] = ",", [34] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Susan Collins" ], title = WtLinkTitle[ [0] = "Collins" ] ), [1] = "(R)" ] ), [35] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Maryland" ], title = WtLinkTitle[ [0] = "MD" ] ), [37] = ":", [38] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Barbara Mikulski" ], title = WtLinkTitle[ [0] = "Mikulski" ] ), [1] = "(D)" ] ), [39] = ",", [40] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ben Cardin" ], title = WtLinkTitle[ [0] = "Cardin" ] ), [1] = "(D)" ] ), [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Massachusetts" ], title = WtLinkTitle[ [0] = "MA" ] ), [43] = ":", [44] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Kerry" ], title = WtLinkTitle[ [0] = "Kerry" ] ), [1] = "(D)" ] ), [45] = ",", [46] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Scott Brown" ], title = WtLinkTitle[ [0] = "S.P. Brown" ] ), [1] = "(R)" ] ), [47] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Michigan" ], title = WtLinkTitle[ [0] = "MI" ] ), [49] = ":", [50] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Carl Levin" ], title = WtLinkTitle[ [0] = "Levin" ] ), [1] = "(D)" ] ), [51] = ",", [52] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Debbie Stabenow" ], title = WtLinkTitle[ [0] = "Stabenow" ] ), [1] = "(D)" ] ), [53] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Minnesota" ], title = WtLinkTitle[ [0] = "MN" ] ), [55] = ":", [56] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Amy Klobuchar" ], title = WtLinkTitle[ [0] = "Klobuchar" ] ), [1] = "(D)" ] ), [57] = ",", [58] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Al Franken" ], title = WtLinkTitle[ [0] = "Franken" ] ), [1] = "(D)" ] ), [59] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Mississippi" ], title = WtLinkTitle[ [0] = "MS" ] ), [61] = ":", [62] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Thad Cochran" ], title = WtLinkTitle[ [0] = "Cochran" ] ), [1] = "(R)" ] ), [63] = ",", [64] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Roger Wicker" ], title = WtLinkTitle[ [0] = "Wicker" ] ), [1] = "(R)" ] ), [65] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Missouri" ], title = WtLinkTitle[ [0] = "MO" ] ), [67] = ":", [68] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Claire McCaskill" ], title = WtLinkTitle[ [0] = "McCaskill" ] ), [1] = "(D)" ] ), [69] = ",", [70] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Roy Blunt" ], title = WtLinkTitle[ [0] = "Blunt" ] ), [1] = "(R)" ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Montana" ], title = WtLinkTitle[ [0] = "MT" ] ), [1] = ":", [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Max Baucus" ], title = WtLinkTitle[ [0] = "Baucus" ] ), [1] = "(D)" ] ), [3] = ",", [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jon Tester" ], title = WtLinkTitle[ [0] = "Tester" ] ), [1] = "(D)" ] ), [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Nebraska" ], title = WtLinkTitle[ [0] = "NE" ] ), [7] = ":", [8] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ben Nelson" ], title = WtLinkTitle[ [0] = "E.B. Nelson" ] ), [1] = "(D)" ] ), [9] = ",", [10] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mike Johanns" ], title = WtLinkTitle[ [0] = "Johanns" ] ), [1] = "(R)" ] ), [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Nevada" ], title = WtLinkTitle[ [0] = "NV" ] ), [13] = ":", [14] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Harry Reid" ], title = WtLinkTitle[ [0] = "Reid" ] ), [1] = "(D)" ] ), [15] = ",", [16] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Ensign" ], title = WtLinkTitle[ [0] = "Ensign" ] ), [1] = "(R)" ] ), [17] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from New Hampshire" ], title = WtLinkTitle[ [0] = "NH" ] ), [19] = ":", [20] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeanne Shaheen" ], title = WtLinkTitle[ [0] = "Shaheen" ] ), [1] = "(D)" ] ), [21] = ",", [22] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kelly Ayotte" ], title = WtLinkTitle[ [0] = "Ayotte" ] ), [1] = "(R)" ] ), [23] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from New Jersey" ], title = WtLinkTitle[ [0] = "NJ" ] ), [25] = ":", [26] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Frank Lautenberg" ], title = WtLinkTitle[ [0] = "Lautenberg" ] ), [1] = "(D)" ] ), [27] = ",", [28] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bob Menendez" ], title = WtLinkTitle[ [0] = "Menendez" ] ), [1] = "(D)" ] ), [29] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from New Mexico" ], title = WtLinkTitle[ [0] = "NM" ] ), [31] = ":", [32] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeff Bingaman" ], title = WtLinkTitle[ [0] = "Bingaman" ] ), [1] = "(D)" ] ), [33] = ",", [34] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Udall" ], title = WtLinkTitle[ [0] = "T. Udall" ] ), [1] = "(D)" ] ), [35] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from New York" ], title = WtLinkTitle[ [0] = "NY" ] ), [37] = ":", [38] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Chuck Schumer" ], title = WtLinkTitle[ [0] = "Schumer" ] ), [1] = "(D)" ] ), [39] = ",", [40] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kirsten Gillibrand" ], title = WtLinkTitle[ [0] = "Gillibrand" ] ), [1] = "(D)" ] ), [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from North Carolina" ], title = WtLinkTitle[ [0] = "NC" ] ), [43] = ":", [44] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Richard Burr" ], title = WtLinkTitle[ [0] = "Burr" ] ), [1] = "(R)" ] ), [45] = ",", [46] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kay Hagan" ], title = WtLinkTitle[ [0] = "Hagan" ] ), [1] = "(D)" ] ), [47] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from North Dakota" ], title = WtLinkTitle[ [0] = "ND" ] ), [49] = ":", [50] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kent Conrad" ], title = WtLinkTitle[ [0] = "Conrad" ] ), [1] = "(D)" ] ), [51] = ",", [52] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Hoeven" ], title = WtLinkTitle[ [0] = "Hoeven" ] ), [1] = "(R)" ] ), [53] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Ohio" ], title = WtLinkTitle[ [0] = "OH" ] ), [55] = ":", [56] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Sherrod Brown" ], title = WtLinkTitle[ [0] = "S.C. Brown" ] ), [1] = "(D)" ] ), [57] = ",", [58] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Rob Portman" ], title = WtLinkTitle[ [0] = "Portman" ] ), [1] = "(R)" ] ), [59] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Oklahoma" ], title = WtLinkTitle[ [0] = "OK" ] ), [61] = ":", [62] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Inhofe" ], title = WtLinkTitle[ [0] = "Inhofe" ] ), [1] = "(R)" ] ), [63] = ",", [64] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tom Coburn" ], title = WtLinkTitle[ [0] = "Coburn" ] ), [1] = "(R)" ] ), [65] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Oregon" ], title = WtLinkTitle[ [0] = "OR" ] ), [67] = ":", [68] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ron Wyden" ], title = WtLinkTitle[ [0] = "Wyden" ] ), [1] = "(D)" ] ), [69] = ",", [70] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jeff Merkley" ], title = WtLinkTitle[ [0] = "Merkley" ] ), [1] = "(D)" ] ) ] ) ] ), [4] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Pennsylvania" ], title = WtLinkTitle[ [0] = "PA" ] ), [1] = ":", [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bob Casey, Jr." ], title = WtLinkTitle[ [0] = "Casey" ] ), [1] = "(D)" ] ), [3] = ",", [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Pat Toomey" ], title = WtLinkTitle[ [0] = "Toomey" ] ), [1] = "(R)" ] ), [5] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Rhode Island" ], title = WtLinkTitle[ [0] = "RI" ] ), [7] = ":", [8] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jack Reed (politician)" ], title = WtLinkTitle[ [0] = "Reed" ] ), [1] = "(D)" ] ), [9] = ",", [10] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Sheldon Whitehouse" ], title = WtLinkTitle[ [0] = "Whitehouse" ] ), [1] = "(D)" ] ), [11] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from South Carolina" ], title = WtLinkTitle[ [0] = "SC" ] ), [13] = ":", [14] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lindsey Graham" ], title = WtLinkTitle[ [0] = "Graham" ] ), [1] = "(R)" ] ), [15] = ",", [16] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim DeMint" ], title = WtLinkTitle[ [0] = "DeMint" ] ), [1] = "(R)" ] ), [17] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from South Dakota" ], title = WtLinkTitle[ [0] = "SD" ] ), [19] = ":", [20] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle[ [0] = "T. Johnson" ] ), [1] = "(D)" ] ), [21] = ",", [22] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Thune" ], title = WtLinkTitle[ [0] = "Thune" ] ), [1] = "(R)" ] ), [23] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Tennessee" ], title = WtLinkTitle[ [0] = "TN" ] ), [25] = ":", [26] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Lamar Alexander" ], title = WtLinkTitle[ [0] = "Alexander" ] ), [1] = "(R)" ] ), [27] = ",", [28] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bob Corker" ], title = WtLinkTitle[ [0] = "Corker" ] ), [1] = "(R)" ] ), [29] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Texas" ], title = WtLinkTitle[ [0] = "TX" ] ), [31] = ":", [32] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = WtLinkTitle[ [0] = "Hutchison" ] ), [1] = "(R)" ] ), [33] = ",", [34] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Cornyn" ], title = WtLinkTitle[ [0] = "Cornyn" ] ), [1] = "(R)" ] ), [35] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Utah" ], title = WtLinkTitle[ [0] = "UT" ] ), [37] = ":", [38] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Orrin Hatch" ], title = WtLinkTitle[ [0] = "Hatch" ] ), [1] = "(R)" ] ), [39] = ",", [40] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mike Lee (U.S. politician)" ], title = WtLinkTitle[ [0] = "Lee" ] ), [1] = "(R)" ] ), [41] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Vermont" ], title = WtLinkTitle[ [0] = "VT" ] ), [43] = ":", [44] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Patrick Leahy" ], title = WtLinkTitle[ [0] = "Leahy" ] ), [1] = "(D)" ] ), [45] = ",", [46] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Bernie Sanders" ], title = WtLinkTitle[ [0] = "Sanders" ] ), [1] = "(I)" ] ), [47] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Virginia" ], title = WtLinkTitle[ [0] = "VA" ] ), [49] = ":", [50] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jim Webb" ], title = WtLinkTitle[ [0] = "Webb" ] ), [1] = "(D)" ] ), [51] = ",", [52] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mark Warner" ], title = WtLinkTitle[ [0] = "Warner" ] ), [1] = "(D)" ] ), [53] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [54] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Washington" ], title = WtLinkTitle[ [0] = "WA" ] ), [55] = ":", [56] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Patty Murray" ], title = WtLinkTitle[ [0] = "Murray" ] ), [1] = "(D)" ] ), [57] = ",", [58] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Maria Cantwell" ], title = WtLinkTitle[ [0] = "Cantwell" ] ), [1] = "(D)" ] ), [59] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [60] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from West Virginia" ], title = WtLinkTitle[ [0] = "WV" ] ), [61] = ":", [62] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Jay Rockefeller" ], title = WtLinkTitle[ [0] = "Rockefeller" ] ), [1] = "(D)" ] ), [63] = ",", [64] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Joe Manchin" ], title = WtLinkTitle[ [0] = "Manchin" ] ), [1] = "(D)" ] ), [65] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Wisconsin" ], title = WtLinkTitle[ [0] = "WI" ] ), [67] = ":", [68] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Herb Kohl" ], title = WtLinkTitle[ [0] = "Kohl" ] ), [1] = "(D)" ] ), [69] = ",", [70] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Ron Johnson (Wisconsin politician)" ], title = WtLinkTitle[ [0] = "R. Johnson" ] ), [1] = "(R)" ] ), [71] = WtXmlElement( {P} name = "br" xmlAttributes = WtXmlAttributes[], body = - ), [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "List of United States Senators from Wyoming" ], title = WtLinkTitle[ [0] = "WY" ] ), [73] = ":", [74] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Mike Enzi" ], title = WtLinkTitle[ [0] = "Enzi" ] ), [1] = "(R)" ] ), [75] = ",", [76] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "John Barrasso" ], title = WtLinkTitle[ [0] = "Barrasso" ] ), [1] = "(R)" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [2] = WtXmlAttribute( name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle[ [0] = "Democratic (51)" ] ) ] ), [1] = "\u2022", [2] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle[ [0] = "Republican (47)" ] ) ] ), [3] = "\u2022", [4] = WtXmlElement( {P} name = "span" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Independent (politician)" ], title = WtLinkTitle[ [0] = "Independent (2)" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [16] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "References" ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "class" ], value = WtValue[ [0] = "reflist references-column-count references-column-count-2" ] ), [1] = WtXmlAttribute( name = WtName[ [0] = "style" ], value = WtValue[ [0] = "column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; list-style-type: decimal;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "references" xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "group" ], value = WtValue[] ) ], body = WtBody[] ) ] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:1943 births" ], title = - ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:20th-century American Episcopalians" ], title = - ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:21st-century American Episcopalians" ], title = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Georgia (U.S. state) lawyers" ], title = - ), [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Living people" ], title = - ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Members of the United States House of Representatives from Georgia (U.S. state)" ], title = - ), [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:People from Warren County, North Carolina" ], title = - ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:United States Senators from Georgia (U.S. state)" ], title = - ), [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:University of Georgia alumni" ], title = - ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:University of Tennessee alumni" ], title = - ), [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:C. E. Byrd High School alumni" ], title = - ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:People from Shreveport, Louisiana" ], title = - ), [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "Category:Georgia (U.S. state) Republicans" ], title = - ), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "de:Saxby Chambliss" ], title = - ), [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "fr:Saxby Chambliss" ], title = - ), [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "ga:Saxby Chambliss" ], title = - ), [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "it:Saxby Chambliss" ], title = - ), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "nl:Saxby Chambliss" ], title = - ), [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "no:Saxby Chambliss" ], title = - ), [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "pl:Saxby Chambliss" ], title = - ), [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "fi:Saxby Chambliss" ], title = - ), [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" target = WtPageName[ [0] = "sv:Saxby Chambliss" ], title = - ) ] ) ) pretty-printed.wikitext/000077500000000000000000000000001335270560400447765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complexNOTICE000066400000000000000000000025631335270560400457100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitextThe articles in this directory are taken from the English Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "Help:Table", Revision: 423675315 (Expanded by Wikipedia) http://en.wikipedia.org/w/index.php?oldid=423675315 "Saxby Chambliss", Revision: 341171402 (Expanded by Wikipedia) http://en.wikipedia.org/w/index.php?oldid=341171402 "ASDF", Revision: 416210608 http://en.wikipedia.org/w/index.php?oldid=416210608 "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 "List of high schools in San Diego County, California", Revision: 390643056 http://en.wikipedia.org/w/index.php?oldid=390643056 "List of MythBusters special episodes", Revision: 387019382 http://en.wikipedia.org/w/index.php?oldid=387019382 "Talk:Arundel Castle", Revision: 389259990 http://en.wikipedia.org/w/index.php?oldid=389259990 "Talk:Australian rules football/Archive 1", Revision: 363371937 http://en.wikipedia.org/w/index.php?oldid=363371937 Expansion is done using the script bin/enwp-expand.php. exp-Help%3ATable.wikitext000066400000000000000000002277731335270560400514750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext
    Wiki markup
    [[Wikipedia:Cheatsheet|Basic markup]]
    [[Help:Wiki markup|Text, links, and talk pages]]
    [[Help:Visual file markup|Visual files]]
    [[Help:Sound file markup|Sound files]]
    [[Help:Table|Tables]]
    [[Help:Template|Template editing]]
    [[Help:HTML in wikitext|Using HTML]]
    A '''wikitable''' is an arrangement of columns and rows used to organize and position data. Tables are useful for this purpose and there are many different styles and tricks that can be used to customise each. This page gives you information about syntax to build wikitables in Wikipedia. == Using the toolbar == [[File:Advanced toolbar of vector skin.png|frame|center|Vector toolbar - default]] [[File:Toolbar2.PNG|frame|center|Monobook toolbar]] To automatically insert a table, click [[File:Vector toolbar insert table button.png]] or [[File:Button insert table.png]] (Insert a table) on the [[Help:Edit toolbar|edit toolbar]]. If "Insert a table" is not on the toolbar follow [[mw:Customizing edit toolbar|these directions]] to add it. The following text is inserted when '''Insert a table''' is clicked:
    {| class="wikitable"
    |-
    ! Header 1
    ! Header 2
    ! Header 3
    |-
    | row 1, cell 1
    | row 1, cell 2
    | row 1, cell 3
    |-
    | row 2, cell 1
    | row 2, cell 2
    | row 2, cell 3
    |-
    | row 3, cell 1
    | row 3, cell 2
    | row 3, cell 3
    |}
    
    {| class="wikitable" |- ! Header 1 ! Header 2 ! Header 3 |- | row 1, cell 1 | row 1, cell 2 | row 1, cell 3 |- | row 2, cell 1 | row 2, cell 2 | row 2, cell 3 |- | row 3, cell 1 | row 3, cell 2 | row 3, cell 3 |} The sample text ("Header 1" or "row 1, cell 1") is to be replaced with actual data. == Pipe syntax tutorial == {| border="3" style="margin-left: 3em;" |- ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 | Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} Although HTML table syntax also works, special [[wikicode]] can be used as a shortcut to create a table. The pipe ([[w:vertical bar|vertical bar]]) codes function exactly the same as [[w:HTML table|HTML table]] markup, so a knowledge of HTML table code will help in understanding pipe code. The shortcuts are as follows: * The entire table is encased with curly brackets and a vertical bar character (a pipe). So use '''{|''' to begin a table, and '''|}''' to end it. Each one needs to be on its own line: '''{|''' ''table code goes here'' '''|}''' * An optional '''table caption''' is included with a line starting with a vertical bar and plus sign "'''|+'''" and the caption after it: {| '''|+ ''caption''''' ''table code goes here'' |} * To start a new '''table [[row]]''', type a vertical bar and a [[w:hyphen|hyphen]] on its own line: "'''|-'''". The codes for the cells in that row will start on the next line. {| |+ The table's caption '''|-''' ''row code goes here'' '''|-''' ''row code goes here'' |} * Type the codes for each ''table [[w:cell|cell]]'' in the next row, starting with a bar: {| |+ The table's caption |- '''|''' ''cell codes go here'' |- '''|''' ''cells in the next row go here'' '''|''' ''more cells in the same row here'' |} * Cells can be separated with either a new line and new bar, or by a double bar "'''||'''" on the same line. Both produce the same output: {| |+ The table's caption |- '''|Cell 1 || Cell 2 || Cell 3''' |- '''|Cell A''' '''|Cell B''' '''|Cell C''' |} * If you use single bars, then what might appear to be the first cell is in fact a format modifier applied to the cell, and the rest of your "cells" will be merged into one: {| border="1" |- |format modifier (not displayed) '''|'''These all '''|'''(including the pipes) '''|'''go into '''|'''the first cell |} which is probably not what you want: {| border="1" |- | format modifier |These all |(including the pipes)|go into |the first cell |} However, the format modifier is useful: {| border="1" |- | Cell 1 (no modifier — not aligned) |- | align="right" | Cell 2 (right aligned) |} {| border="1" |- | Cell 1 (no modifier — not aligned) |- | style="text-align: right;" | Cell 2 (right aligned) |} Just remember: no more than 2 single pipes on a line! * a row of '''column headings''' is identified by using "! scope="col" |" instead of "|", and using "!! scope="col" |" instead of "||". Header cells typically render differently from regular cells, depending on the browser. They are often rendered in a bold font and centered. {| |+ The table's caption '''! scope="col" | Column heading 1''' '''! scope="col" | Column heading 2''' '''! scope="col" | Column heading 3''' |- | Cell 1 || Cell 2 || Cell 3 |- | Cell A | Cell B | Cell C |} * the first cell of a row is identified as a '''row heading''' by starting the line with "! scope="row" |" instead of "|", and starting subsequent data cells on a new line. {| |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- '''! scope="row" | Row heading 1''' | Cell 2 || Cell 3 |- '''! scope="row" | Row heading A''' | Cell B | Cell C |} * Optional '''parameters''' can modify the behavior of cells, rows, or the entire table. For instance, a border could be added to the table: {| '''border="1"''' |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 || Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |} The final table would display like this:
    {| border="1" |+ The table's caption ! scope="col" | Column heading 1 ! scope="col" | Column heading 2 ! scope="col" | Column heading 3 |- ! scope="row" | Row heading 1 | Cell 2 | Cell 3 |- ! scope="row" | Row heading A | Cell B | Cell C |}
    The table parameters and cell parameters are the same as in [[w:HTML|HTML]], see http://www.w3.org/TR/html401/struct/tables.html#edef-TABLE and [[w:Table (HTML)|Table (HTML)]]. However, the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. A table can be useful even if none of the cells have content. For example, the background colors of cells can be changed with cell parameters, making the table into a diagram, like [[meta:Template talk:Square 8x8 pentomino example]]. An "image" in the form of a table is much more convenient to edit than an uploaded image. Each row must have the same number of cells as the other rows, so that the number of columns in the table remains consistent. For empty cells, use the non-breaking space &nbsp; as content to ensure that the cells are displayed. To show a visible pipe in a cell, use <nowiki>|</nowiki> or &#124;. With colspan and rowspan cells can span several columns or rows, see the [[Help:Table#Mélange|Mélange]] example below. However, this has the disadvantage that [[help:sorting|sorting]] does not work properly anymore. == Examples == === Simple example === Both of these generate the same output. Choose a style based on the number of cells in each row and the total text inside each cell. The wiki markup code:
    {|
    | A
    | B
    |-
    | C
    | D
    |}
    
    {|
    | A || B
    |-
    | C || D
    |}
    
    As it appears in a browser (note that there are no borders):
    {| |- | A | B |- | C | D |}
    === Multiplication table === Here is the wiki markup code:
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;"
    |+ Multiplication table
    |-
    ! scope="col" | × 
    ! scope="col" | 1 
    ! scope="col" | 2 
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    As it appears in a browser (see ''[[Help:User style]]''):
    {| class="wikitable" style="text-align: center; width: 200px; height: 200px;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 | 2 | 3 |- ! scope="row" | 2 | 2 | 4 | 6 |- ! scope="row" | 3 | 3 | 6 | 9 |- ! scope="row" | 4 | 4 | 8 | 12 |- ! scope="row" | 5 | 5 | 10 | 15 |}
    === Color; scope of parameters === Two ways of specifying [[Wikipedia:Colours|color]] of text and background for a single cell are as follows. The first form is preferred because the second form uses deprecated HTML: The wiki markup code:
    {|
    | style="background: red; color: white" | abc
    | def
    | bgcolor="red" |  ghi 
    | jkl
    |}
    
    As it appears in a browser:
    {| |- | style="background: red; color: white" | abc | def | style="background: red;" | ghi | jkl |}
    Like other parameters, colors can also be specified for a whole row or the whole table; parameters for a row override the value for the table, and those for a cell override those for a row. (Note that there is no easy way to specify a color for a whole column—each cell in the column must be individually specified. Tools can make it easier.): The wiki markup code:
    {| style="background: yellow; color: green"
    |-
    | abc || def || ghi
    |- style="background: red; color: white"
    | jkl || mno || pqr
    |-
    | stu || style="background: silver" | vwx || yz
    |}
    
    As it appears in a browser:
    {| style="background: yellow; color: green" |- | abc | def | ghi |- style="background: red; color: white" | jkl | mno | pqr |- | stu | style="background: silver" | vwx | yz |}
    To make the table blend in with the background, use style="background: none;" or style="background: transparent;". (Warning: style="background: inherit;", does not work with some browsers, including IE6!) To force a cell to match one of the default colors of the [[Help:User style|class="wikitable" template]], use style="background: #f2f2f2" for the darker header, and style="background: #f9f9f9" for the lighter body. See : [[w:style| style]], [[w:background|background]], [[w:list of colors|list of colors]], [[w:web colors|web colors]] === Width, height === The width and height of the whole table can be specified, as well as the height of a row. To specify the width of a column one can specify the width of an arbitrary cell in it. If the width is not specified for all columns, and/or the height is not specified for all rows, then there is some ambiguity, and the result depends on the browser. The wiki markup code:
    {| style="width: 75%; height: 200px" border="1"
    |-
    | abc || def || ghi
    |- style="height: 100px;"
    | jkl || style="width: 200px;" | mno || pqr
    |-
    | stu || vwx || yz
    |}
    
    As it appears in a browser:
    {| style="width:75%; height:200px" border="1" |- | abc | def | ghi |- style="height: 100px;" | jkl | style="width: 200px;" | mno | pqr |- | stu | vwx | yz |}
    Note that style="inline CSS" has no effect with some browsers. If compatibility is important, equivalent older constructs like width="75%" should work on more browsers. ==== Setting column widths ==== To force column widths to specific requirements, rather than accepting the width of the widest text element in a column's cells, follow this example. Note that [[word wrap|wrap-around of text]] is forced. The wiki markup code:
    {| border="1" cellpadding="2"
    ! scope="col" width="50" | Name
    ! scope="col" width="225" | Effect
    ! scope="col" width="225" | Games Found In
    |-
    | Poké Ball || Regular Poké Ball || All Versions
    |-
    | Great Ball || Better than a Poké Ball || All Versions
    |}
    
    {| border="1" cellpadding="2" |- ! scope="col" width="50" | Name ! scope="col" style="width: 225px;" | Effect ! scope="col" style="width: 225px;" | Games Found In |- |Poké Ball | Regular Poké Ball | All Versions |- |Great Ball | Better than a Poké Ball | All Versions |}
    To set column widths in a table without headers, specify the width in the first cell for each column, like this:
    {| border="1" cellpadding="2"
    |-
    | width="100pt" | This column is 100 points wide
    | width="200pt" | This column is 200 points wide
    | width="300pt" | This column is 300 points wide
    |-
    | blah || blih || bluh
    |}
    
    {| border="1" cellpadding="2" |- | style="width: 100pt;" | This column is 100 points wide | style="width: 200pt;" | This column is 200 points wide | style="width: 300pt;" | This column is 300 points wide |- | blah | blih | bluh |}
    One application of setting the widths is aligning columns of consecutive tables: {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | The Netherlands | Amsterdam |} {| border="1" cellpadding="2" |- ! scope="col" style="width: 350px;" | Country ! scope="col" style="width: 225px;" | Capital |- | France | Paris |} =====Nowrap===== In a table that spans the entire width of a page, cells narrower than the widest cell tend to wrap. To keep an entire column from wrapping, use style=white-space:nowrap in a non-header cell on the longest/widest cell to affect the entire column. Before: {| border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |[[Lorem ipsum]] dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" |January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} After: {| border="1" |- ! scope="col" | Episode ! scope="col" | Date ! scope="col" | Summary |- |"The Journey Begins" |January 1, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- | style="white-space:nowrap" |"When Episodes Attack" |January 8, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |- |"So Long" | style="white-space:nowrap" |January 15, 2010 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |} === Setting borders === Table borders default to a complex shaded double-line (the default in HTML); however, those borders can be set to a thin solid line by using a style-parameter (style="border: 1px solid darkgray"), as in the following (''Note: if you intend to use the 'cellpadding' or 'cellspacing' options along with a border, you MUST use this format''):
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- border="0"
    | [[File:StarIconBronze.png|120px]]
    | [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    | Bronze star || Gold star || Green star
    |}
    
    Note the bottom-row texts are centered by 'align="center"' while star-images were not centered. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left: 4em;" |- ! style="width: 140px;" | Left ! style="width: 150px;" | Middle ! style="width: 130px;" | Right |- border="0" | [[File:StarIconBronze.png|120px]] | [[File:StarIconGold.png|120px|Caption when mouse-over image]] | [[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" | Bronze star | Gold star | Green star |} As long as the "Image:" specs omit the parameter "thumb|" they will not show the caption lines in the table (only during mouse-over). The border color "darkgray" matches typical tables or infoboxes in articles; however, it could be any color name (such as style="border: 1px solid darkgreen;") or use a hex-color (such as: #DDCCBB). A column format-specifier (enclosed in "|...|") can have a style-parameter to set borders on each cell, as follows:
    {| cellpadding="2" style="border: 1px solid darkgray;"
    ! width="140" | Left
    ! width="150" | Middle
    ! width="130" | Right
    |- align="center"
    | style="border: 1px solid blue;"|
    [[File:StarIconBronze.png|120px]]
    | style="border: 1px solid #777777;"|
    [[File:StarIconGold.png|120px|Caption when mouse-over image]]
    | style="border: 1px solid #22AA55;"|
    [[File:StarIconGreen.png|120px|Green stellar icon]]
    |- align="center"
    |Bronze star || Gold star || Green star
    |}
    
    Note only the image cells, here, have individual borders, not the text. {| cellpadding="2" style="border: 1px solid darkgrey; margin-left:4em;" |- ! style="width:140px;" |Left ! style="width:150px;" |Middle ! style="width:130px;" |Right |- align="center" | style="border: 1px solid blue;" |[[File:StarIconBronze.png|120px]] | style="border: 1px solid #777;" |[[File:StarIconGold.png|120px|Caption when mouse-over image]] | style="border: 1px solid #2a5;" |[[File:StarIconGreen.png|120px|Green stellar icon]] |- align="center" |Bronze star | Gold star | Green star |} The lower hex-colors (such as: #616161) are closer to black. Typically, all borders in a table would be one specific color. === Vertical alignment === By default data in tables is vertically centrally aligned, which results in odd-looking layouts like this: {| border="1" cellpadding="2" style="width:400px; margin-left:6em;" |- ! scope="row" style="width:10%;" | Row heading | style="width:70%;" |A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width:20%;" |short text |- ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} To fix this, apply the valign="top" attribute to the rows (unfortunately it seems to be necessary to apply this individually to every single row). For example:
    {| border="1" cellpadding="2" width="400"
    |- valign="top"
    ! scope="row" width="10%" | Row heading
    | width="70%" | A longer piece of text. Lorem ipsum...
    | width="20%" | short text
    |- valign="top"
    ! scope="row" | Row heading
    | Excepteur sint occaecat...
    | short text
    |}
    
    {| border="1" cellpadding="2" style="width: 400px; margin-left: 6em;" |- valign="top" ! scope="row" style="width: 10%;" | Row heading | style="width: 70%;" | A longer piece of text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | style="width: 20%;" | short text |- valign="top" ! scope="row" | Row heading | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    Imagine someone scrolling down the page, seeing the tops of "empty" columns, and wondering why they're empty. Use "'''valign=top'''" to align text at the top of columns. | short text |} === Positioning === You can position the table itself, the contents of a row, and the contents of a cell, but not with a single parameter for all the contents of the table. See [[m:Template talk:Table demo]]. Prior to April 2009, using "float" to position a table was discouraged; however, it no longer always breaks page rendering at large font sizes. See a floated image, below, under "[[#Floating images in the center|Floating images in the center]]". === Mélange === ''Note: This example is not [[Wikipedia:Manual of Style (accessibility)|accessible]], and should be avoided as much as possible. For example, nested tables (tables inside tables) should be separated into distinct tables when possible.'' Here's a more advanced example, showing some more options available for making up tables. Note however that with colspan and rowspan [[help:sorting|sorting]] does not work properly anymore. You can play with these settings in your own table to see what effect they have. Not all of these techniques may be appropriate in all cases; just because you can add colored backgrounds, for example, doesn't mean it's always a good idea. Try to keep the markup in your tables relatively simple -- remember, other people are going to be editing the article too! This example should give you an idea of what is possible, though. The wiki markup code:
    {| border="1" cellpadding="5" cellspacing="0" align="center"
    |+ '''An example table'''
    |-
    ! style="background: #efefef;" | First header
    ! colspan="2" style="background: #ffdead;" | Second header
    |-
    | upper left
    | &nbsp;
    | rowspan="2" style="border-bottom: 3px solid grey;" valign="top" |
    right side
    |-
    | style="border-bottom: 3px solid grey;" | lower left
    | style="border-bottom: 3px solid grey;" | lower middle
    |-
    | colspan="3" align="center" |
    {| border="0"
    |+ ''A table in a table''
    |-
    | align="center" width="150" | [[File:Wiki.png]]
    | align="center" width="150" | [[File:Wiki.png]]
    |-
    | align="center" colspan="2" style="border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" |
    Two Wikipedia logos
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="1" cellspacing="0" style="margin: auto;" |+ '''An example table''' |- ! style="background: #efefef;" | First header ! colspan="2" style="background: #ffdead;" | Second header |- | upper left |   | rowspan="2" style="border-bottom: 3px solid gray; vertical-align: top;" |right side |- | style="border-bottom: 3px solid gray;" | lower left | style="border-bottom: 3px solid gray;" | lower middle |- | colspan="3" style="text-align: center;" | {| border="0" |+ ''A table in a table'' |- style="text-align: center;" | [[File:Wiki.png]] | style="width: 150px;" | [[File:Wiki.png]] |- | colspan="2" style="text-align: center; border-top: 1px solid red; border-right: 1px solid red; border-bottom: 2px solid red; border-left: 1px solid red;" |Two Wikipedia logos |} |}
    === Floating table === The wiki markup coding:
    This paragraph is before the table.  Lorem ipsum dolor sit
    amet, consectetur adipisicing elit, sed do eiusmod...
    
    {| style="float: right;" border="1"
    | Col 1, row 1
    | rowspan="2" | Col 2, row 1 (and 2)
    | Col 3, row 1
    |-
    | Col 1, row 2
    | Col 3, row 2
    |}
    
    Note the floating-table to the right.
    
    This paragraph is after the table.  The text in column 2
    will span both rows due to format specifier "rowspan=2" so there
    is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    
    As it appears in a browser:
    This paragraph is before the table. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod... {| style="float: right;" border="1" |- | Col 1, row 1 | rowspan="2" | Col 2, row 1 (and 2) | Col 3, row 1 |- | Col 1, row 2 | Col 3, row 2 |} Note the floating-table to the right. This paragraph is after the table. The text in column 2 will span both rows due to format specifier "rowspan=2" so there is no coding for "Col 2" in the 2nd row, just: Col 1 & Col 3.
    === Floating images in the center === A table can be used to wrap an image, so that the table can float towards the center of the page (such as using: style="float: right;"). However, the table margins, border and font-size must be precisely set to match a typical image display. The Image-spec parameter "thumb|" (although auto-thumbnailing to user-preference width) forces a wide left-margin that squeezes the nearby text, so the parameter "center|" can be added to suppress the left-margin padding. However, "center" sometimes shoves the caption to a 2nd line (under a centered box "[]"), so "thumb|" could be omitted and just hard-code the image size, adding a gray (#BBB) border. Using precise parameters to match other images, a floating-image table can be coded as follows:
    {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;"
    |- style="font-size: 86%;"
    | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
    Temple of [[Bel (mythology)|Bel]] (floating). |}
    The text inside the floating-table is sized by style="font-size: 86%;". That floating-image table floats a typical image-box, but allows adjusting the left-hand margin of the image (see temple-example floating below). {| class="infobox" style="width: 90px;" |- ! colspan="2" | Infobox A |- | colspan="2" | This sample infobox shows how the floating image-box aligns toward the center. |} {| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" |- style="font-size: 86%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]
     Temple of [[Bel (mythology)|Bel]]  (floating). |} {| style="float: right; clear:right; border: 1px solid black;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|thumb|right|This table shows the implicit margins of Images using "right".]] |} The caption-text can be omitted, or remove the parameter "thumb|" so the caption is hidden until "mouse-over display". Unfortunately the parameter "thumb|" (used for displaying the caption) also controls the auto-thumbnailing to re-size images by user-preferences size. In April 2009, it was not possible to have auto-thumbnail sizing while also concealing the caption: parameter "thumb|" triggers both actions and forces the caption to display. An image set with parameter "left|" will gain a wide right-side margin (opposite margin of parameter "right|"), so floating toward the left would require an image set as "center|" inside a table with style="float:left; margin:0.46em 0.2em". Recall that, outside an image-table, the parameter "right|" causes an image to align (either) above or below an infobox, but would not float alongside the infobox. Note the ''order of precedence'': first come infoboxes or images using "right|", then come the floating-tables, and lastly, any text will wrap that can still fit. If the first text-word is too long, no text will fit to complete the left-hand side, so beware creating a "ragged left margin" when not enough space remains for text to fit alongside floating-tables. If multiple single image-tables are stacked, they will float to align across the page, depending on page-width. The text will be squeezed to allow as many floating-tables as can fit, as auto-aligned, then wrap whatever text (can still fit) at the left-hand side. {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...by float: right |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    ...images wrap... |} {| style="float: right; margin-left:0.2em; border: 1px solid #BBB;" |- style="font-size: 87%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|105px]]
    All these... |} That auto-aligning feature can be used to create a "floating-gallery" of images: a set of 20 floating-tables will wrap (backward, right-to-left) as if each table were a word of text to wrap across and down the page. To wrap in the typical direction (wrapping left-to-right) define all those floating-tables, instead, as left-side tables using the top parameter style="float:left; margin:0.46em 0.2em". Multiple floating-images empower more flexible typesetting of images around the text. === Nested tables === ''Note: because they cause [[Wikipedia:Manual_of_Style_(accessibility)#Tables|accessibility issues]], nested tables should be avoided whenever possible.'' Seven different (blue) tables are shown nested inside the cells of a table. Automatically the two tables |A| and |B|B| are vertically aligned instead of the usual side by side of text characters in a cell. "float" is used to fix each of tables |C| and |D| to their own position within one cell of the table. This may be used for charts and schemes. ''Nested tables must start on a new line.'' '''Wiki markup'''

    {| border="1"
    | &alpha;
    | style="text-align: center;"| cell2
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| NESTED'''
    '''|-'''
    '''| TABLE'''
    '''|}'''
    | style="vertical-align:bottom;"| the original table again
    | style="width:100px;" |
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| A'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF;"'''
    '''| B || B'''
    '''|}'''
    | style="width:50px;" |
    '''{| border="2" style="background: #ABCDEF; float:left;"'''
    '''| C'''
    '''|}'''
    '''{| border="2" style="background: #ABCDEF; float: right;"'''
    '''| D'''
    '''|}'''
    |}

    '''As it appears in a browser''': {| border="1" |- | α | style="text-align: center;" | cell2 {| border="2" style="background: #ABCDEF;" |- | NESTED |- | TABLE |} | style="vertical-align: bottom;" | the original table again | style="width: 100px;" | {| border="2" style="background: #ABCDEF;" |- | A |} {| border="2" style="background: #ABCDEF;" |- | B | B |} | style="width: 50px;" | {| border="2" style="background: #ABCDEF; float:left;" |- | C |} {| border="2" style="background: #ABCDEF; float: right;" |- | D |} |} === Combined use of COLSPAN and ROWSPAN === '''Wiki markup'''
    {| border="1" cellpadding="5" cellspacing="0"
    |-
    | Column 1 || Column 2 || Column 3
    |-
    | rowspan="2" | A
    | colspan="2" style="text-align: center;" | B
    |-
    | C 
    | D
    |-
    | E
    | rowspan="2" colspan="2" style="text-align: center;" | F
    |-
    | G 
    |-
    | colspan="3" style="text-align: center;" | H
    |}
    
    '''As it appears in a browser''': {| border="1" cellpadding="5" cellspacing="0" |- | Column 1 | Column 2 | Column 3 |- | rowspan="2" | A | colspan="2" style="text-align: center;" | B |- | C | D |- | E | rowspan="2" colspan="2" style="text-align: center;" | F |- | G |- | colspan="3" style="text-align: center;" | H |} Note that using rowspan="2" for cell '''G''' combined with rowspan="3" for cell '''F''' to get another row below '''G''' and '''F''' won't work, because all (implicit) cells would be empty. Likewise complete columns are not displayed if all their cells are empty. Borders between non-empty and empty cells might be also not displayed (depending on the browser), use &nbsp; to fill an empty cell with dummy content. === Centering tables === Centered tables can be achieved, but they will not "float"; that is to say, no text will appear to either side. The trick is {| style="margin: 1em auto 1em auto;" '''Wiki markup'''
    {| class="wikitable" style="margin: 1em auto 1em auto;"
    |+ '''Cells left-aligned, table centered'''
    ! scope="col" | Duis 
    ! scope="col" | aute 
    ! scope="col" | irure
    |-
    | dolor  || in reprehenderit || in voluptate velit
    |-
    | esse cillum dolore || eu fugiat nulla || pariatur.
    |}
    
    '''As it appears in a browser''': {| class="wikitable" style="margin: 1em auto 1em auto;" |+ '''Cells left-aligned, table centered''' ! Duis ! aute ! irure |- | dolor | in reprehenderit | in voluptate velit |- | esse cillum dolore | eu fugiat nulla | pariatur. |} === Setting parameters === At the start of a cell, add your parameter followed by a single pipe. For example width="300"| will set that cell to a width of 300 pixels. To set more than one parameter, leave a space between each one, as follows:
    {| style="color:white"
    |-
    | bgcolor="red"|cell1 || width="300" bgcolor="blue"|cell2
    | bgcolor="green"|cell3
    |}
    
    As it appears in a browser: {| style="color:white" |- | style="background:red;" |cell1 | style="width:300px; background:blue;" |cell2 | style="background:green;" |cell3 |} === Tiny tables within a text line === For years in [[HTML]], a table has always forced an implicit line-wrap (or ''line-break''), so to keep a table within a line, the work-around is to put all text into a table, then embed a table-within-a-table, using the outer table to force the whole line to stay together. Consider the following examples: : Wikicode (''showing table forces line-break''): :: * This is a test table here
    HELLO WORLD
    followed by this text afterward.
    :Result: ::* This is a test table here
    HELLO WORLD
    followed by this text afterward. : Wikicode (''table-within-table''): :: *
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table.
    :Result: ::*
    This is a test table here
    HELLO WORLD
    followed by this text afterward.
    This line is more text after the outer table. Use style="font-size:60%" to shrink the text within the box. However, the small text could be replaced with small images (aligned inside the inner table). The outer table is for one line only, so to make a 2nd line appear even, the exact length of line 1 must be pre-determined, to match the length of other lines. === Decimal point alignment === A method to get columns of numbers aligned at the decimal point is as follows:
    {| cellpadding="0" cellspacing="0"
    | align="right" | 432 || .1
    |-
    | align="right" | 43 || .21
    |-
    | align="right" | 4 || .321
    |}
    
    As it appears in a browser:
    {| cellpadding="0" cellspacing="0" |- | align="right" | 432 | .1 |- | align="right" | 43 | .21 |- | align="right" | 4 | .321 |}
    If the column of numbers appears in a table with cell padding or cell spacing, you can still align the decimal points without an unsightly gap in the middle. Embed a table in each number's cell and specify its column widths. Make the embedded tables' column widths the same for each cell in the column. (If decimal points are still misaligned using this method, the main table's column may be too narrow. Add a parameter to increase the column's width.) The wiki markup code:
    {| border="1" cellpadding="4" cellspacing="2"
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 432 || width="50%" | .1
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%"| 43 || width="50%" | .21
    |}
    |-
    |
    {| cellpadding="0" cellspacing="0" width="100"
    | align="right" width="50%" | 4 || width="50%" | .321
    |}
    |}
    
    As it appears in a browser:
    {| border="1" cellpadding="4" cellspacing="2" | {| cellpadding="0" cellspacing="0" style="width: 100px;" |- | style="text-align: right; width: 50%;" | 432 | style="width: 50%;" | .1 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 43 | style="width: 50%;" | .21 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align: right; width: 50%;" | 4 | style="width: 50%;" | .321 |} |}
    In the case of preformatted text, you can dispense with the table feature entirely and simply start the lines with a space, and put spaces to position the numbers: 432.1 43.21 4.321 However, there should be a good reason to use pre-formatted text in an article. == Style classes == : ''See also [[Help:User style]].'' In the first line of table code, after the "{|", instead of specifying a style directly, you can also specify a [[w:Cascading Style Sheets|CSS]] class. The style for this class can be specified in various ways: * in the software itself, per skin (for example the class [[#Sorting|sortable]]) * collectively for all users of one wiki in [[MediaWiki:Common.css]] (for example, on this and some other projects there is or was the class wikitable, later moved to [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup shared.css]) * separately per skin in [[MediaWiki:Monobook.css]] etc. * individually on one wiki in a user subpage * individually, but jointly for tables of the class concerned on all web pages, on the local computer of the user. Instead of remembering table parameters, you just include an appropriate style class after the {|. This helps keep table formatting consistent, and can allow a single change to the class to fix a problem or enhance the look of all the tables that are using it at once. For instance, this:
    
    {| cellpadding="2"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| cellpadding="2" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 | 2 | 3 |- ! scope="row" | 2 | 2 | 4 | 6 |- ! scope="row" | 3 | 3 | 6 | 9 |- ! scope="row" | 4 | 4 | 8 | 12 |- ! scope="row" | 5 | 5 | 10 | 15 |}
    becomes this:
    
    {| class="wikitable"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    {| class="wikitable" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 | 2 | 3 |- ! scope="row" | 2 | 2 | 4 | 6 |- ! scope="row" | 3 | 3 | 6 | 9 |- ! scope="row" | 4 | 4 | 8 | 12 |- ! scope="row" | 5 | 5 | 10 | 15 |}
    simply by replacing inline CSS for the table by class="wikitable". This is because the ''wikitable'' class in [[MediaWiki:Common.css]] contains a number of ''table.wikitable'' [[w:CSS|CSS]] style rules. These are all applied at once when you mark a table with the class. You can then add additional style rules if desired. These override the class's rules, allowing you to use the class style as a base and build up on it: '''Wiki markup'''
    
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;"
    |+ Multiplication table
    |-
    ! scope="col" | &times;
    ! scope="col" | 1
    ! scope="col" | 2
    ! scope="col" | 3
    |-
    ! scope="row" | 1
    | 1 || 2 || 3
    |-
    ! scope="row" | 2
    | 2 || 4 || 6
    |-
    ! scope="row" | 3
    | 3 || 6 || 9
    |-
    ! scope="row" | 4
    | 4 || 8 || 12
    |-
    ! scope="row" | 5
    | 5 || 10 || 15
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable" style="font-style:italic; font-size:120%; border: 3px dashed red;" |+ Multiplication table |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 | 2 | 3 |- ! scope="row" | 2 | 2 | 4 | 6 |- ! scope="row" | 3 | 3 | 6 | 9 |- ! scope="row" | 4 | 4 | 8 | 12 |- ! scope="row" | 5 | 5 | 10 | 15 |}
    Notice that the table retains the gray background of the wikitable class, and the headers are still bold and centered. But now the text formatting has been overridden by the local ''style'' statement; all of the text in the table has been made italic and 120% normal size, and the wikitable border has been replaced by the red dashed border. Of course this works only for browsers supporting inline CSS, if it's important use XHTML markup like <big> instead of "font-size:120%", or Wiki markup like ''text'' instead of "font-style:italic". === Collapsible tables === Classes can also be used to collapse tables, so they are hidden by default. Use the style 'collapsible' to enable collapsing behaviour. By default, a collapsible table will begin expanded. To change this, include the additional class 'collapsed' or 'autocollapse' (i.e. only collapse if 3 other collapsible tables are present). You must include a header row, where the 'hide' option will be displayed. Example:
    {| class="wikitable collapsible collapsed"
    ! Header
    |-
    | Content which starts hidden
    |-
    | more hidden content
    |}
    
    Gives: {| class="wikitable collapsible collapsed" |- ! Header |- | Content which starts hidden |- | more hidden content |} == Sorting == :''Further information [[meta:Help:Sorting|Help:Sorting]]'' Tables can be made sortable by adding class="sortable"; for details see '''[[Help:Sorting]]'''. Since this can be very useful, it is wise to keep the possibilities and limitations of this feature in mind when designing a table. For example: * Do not divide a table into sections by subheaders spanning several rows. Instead, an extra column can be made showing the content of these headers on each row, in a short form. * Do not have elements spanning several columns; instead, again, repeat the content on each row, in a short form. * In a column of numbers, do not put text such as "ca." in front of a number-it will sort like zero. Do not put text after the number, and do not put a range of numbers (it does not affect the sorting position for numeric sorting mode, and in the case of a range, the first number determines the position, but if, possibly after sorting this or another column, the element is at the top, it will induce alphabetic sorting mode). Instead, put these texts in a separate column. Alternatively, for the greatest flexibility, alphabetic sorting mode with hidden sortkeys can be used. A long form of abbreviated content can be put as legend outside the table. '''Wiki markup'''
    
    {| class="wikitable sortable" border="1"
    |+ Sortable table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable" |+ Sortable table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d | 20 | 2008-11-24 | This |- | b | 8 | 2004-03-01 | column |- | a | 6 | 1979-07-23 | cannot |- | c | 4 | 1492-12-08 | be |- | e | 0 | 1601-08-13 | sorted. |}
    ===Sorting and collapsing=== It is possible to collapse a sortable table. To do so, you need to use the code {| class="wikitable sortable collapsible". Taking the above table and making it collapsable gives you this: '''Wiki markup'''
    
    {| class="wikitable sortable collapsible" border="1"
    |+ Sortable and collapsible table
    |-
    ! scope="col" | Alphabetic
    ! scope="col" | Numeric
    ! scope="col" | Date
    ! scope="col" class="unsortable" | Unsortable
    |-
    | d || 20 || 2008-11-24 || This
    |-
    | b || 8 || 2004-03-01 || column
    |-
    | a || 6 || 1979-07-23 || cannot
    |-
    | c || 4 || 1492-12-08 || be
    |-
    | e || 0 || 1601-08-13 || sorted.
    |}
    
    '''As it appears in a browser''':
    {| class="wikitable sortable collapsible" |+ Sortable and collapsible table |- ! scope="col" | Alphabetic ! scope="col" | Numeric ! scope="col" | Date ! scope="col" class="unsortable" | Unsortable |- | d | 20 | 2008-11-24 | This |- | b | 8 | 2004-03-01 | column |- | a | 6 | 1979-07-23 | cannot |- | c | 4 | 1492-12-08 | be |- | e | 0 | 1601-08-13 | sorted. |}
    If you want the table to default to collapsed state, use the code {| class="wikitable sortable collapsible collapsed" in place of {| class="wikitable sortable collapsible" == Row template == Regardless of whether wikitable format or HTML is used, the wikitext of the rows within a table, and sometimes even within a collection of tables, has much in common, e.g.: * the basic code for a table row * code for color, alignment, and sorting mode * fixed texts such as units * special formats for sorting In that case it can be useful to create a template that produces the syntax for a table row, with the data as parameters. This can have many advantages: * easily changing the order of columns, or removing a column * easily adding a new column if many elements of the new column are left blank (if the column is inserted and the existing fields are unnamed, use a named parameter for the new field to avoid adding blank parameter values to many template calls) * computing fields from other fields, e.g. population density from population and area * duplicating content and providing span tags with "display:none" for the purpose of having one format for [[Help:Sorting|sorting]] and another for display * easy specification of a format for a whole column, such as color and alignment Example: Using [[m:help:table/example row template]] ([[m:help talk:table/example row template|talk]], [[m:Special:Whatlinkshere/help:table/example row template|backlinks]], [http://meta.wikimedia.org//w/index.php?title=Help:Table/example_row_template&action=edit edit])
    {| class="wikitable sortable" border="1"
    |-
    ! scope="col" | a
    ! scope="col" | b
    ! scope="col" | a/b
    {{help:table/example row template|  50|200}}
    {{help:table/example row template|   8| 11}}
    {{help:table/example row template|1000| 81}}
    |}
    
    gives: {| class="wikitable sortable" |- ! scope="col" | a ! scope="col" | b ! scope="col" | a/b |- | 50 |200 |0.25 |- | 8 | 11 |0.72727272727273 |- |1000 | 81 |12.345679012346 |} == Conditional table row == For a conditional row in a table, we can have:
    {| class="wikitable" border="1"
    	
    	{{ #if:1|{{!}}-
    		! scope="row" {{!}} row one, column one
    		
    		{{!}}row one, column two}}
    	
    	{{ #if: |{{!}}-
    		! scope="row" {{!}}  row two, column one
    		{{!}}row two, column two}}
    	
    	|-
    		! scope="row" {{!}} row three, column one
    		| row three, column two
    |}
    
    Which gives the following table: (note how the second row is missing) {| class="wikitable" |- ! scope="row" | row one, column one |row one, column two |- ! scope="row" | row three, column one | row three, column two |} == Other table syntax == Other types of '''table''' syntax that MediaWiki supports: #XHTML #HTML & wiki- syntax ('''Do not use''') All three are supported by MediaWiki and create (currently) valid HTML output, but the pipe syntax is the simplest. Also, HTML & wiki- syntax (i.e., unclosed and tags) will not necessarily remain browser-supported in the future, especially on handheld internet-accessible devices. See also [[w:HTML element#Tables|HTML element#Tables]]. Note however that the thead, tbody, tfoot, colgroup, and col elements are currently not [[Help:HTML in wikitext#Permitted HTML|supported in MediaWiki]]. === Comparison of table syntax === {| class="wikitable" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |- ! scope="row" | Table |
    |
    {|
    |}
    |- ! scope="row" | Caption |
    caption
    |
    |+ caption
    |- ! scope="row" | Row |
    
     | 
    |-
    |- ! scope="row" | Data cell |
    cell1cell2
    cell3
    |
    | cell1 || cell2
    | cell3
    |- ! scope="row" | Header cell |
    column heading

    row heading
    |
    ! scope="col" | column heading

    ! scope="row" | row heading
    |- ! scope="row" rowspan="2" | Sample table | colspan="2" |
    1 2
    3 4
    |- |
    1 2
    3 4
    |
    {|
    | 1 || 2
    |-
    | 3 || 4
    |}
    |- style="vertical-align: top;" ! scope="row" | Pros | * Can preview or debug with any XHTML editor * Can be indented for easier reading * Well-known * Insensitive to newlines * No characters like "|" which can collide with template and parser function syntax | * Easy to write * Easy to read * Takes little space * Can be learned quickly |- style="vertical-align: top;" ! scope="row" | Cons | * Tedious * Takes a lot of space * Difficult to read quickly * Accidentally putting "tr" for "td" can cause confusion for hours. * Indented code might not match nesting. * In rare cases, newlines can break cells, causing severe confusion since newlines usually are ok. | * Unfamiliar syntax * Rigid structure * Cannot be indented * Text (as in HTML tags) may be easier for some people to read than series of pipes, plus signs, dashes, etc. * Requires using [[Template:!]] to pass a "|" in a parameter. * Sensitive to newlines; see [[Help:Newlines and spaces]]. |- ! scope="col" | ! scope="col" | XHTML ! scope="col" | Wiki-pipe |} See also [[Template talk:For#Tables]]. == Pipe syntax in terms of the HTML produced == The pipe syntax, developed by [[m:User: Magnus Manske| Magnus Manske]], substitutes pipes (|) for HTML. There is an [http://www.uni-bonn.de/~manfear/html2wiki-tables.php on-line script] which converts html tables to pipe syntax tables. The pipes must start at the beginning of a new line, except when separating parameters from content or when using || to separate cells on a single line. The parameters are optional. === Tables === A [[w:Table (HTML)|table]] is defined by {| ''params'' |} which generates "<table ''params''></table>". === Rows === For each table, an HTML <tr> tag will be generated for the first row. To start a new row, use: |- which generates another "<tr>". Parameters can be added like this: |- ''params'' which generates "<tr ''params''>". Note: * <tr> tags will be automatically opened at the first <td> equivalent * <tr> tags will be automatically closed at <tr> and </table> equivalents === Cells === Cells are generated either like this: |cell1 |cell2 |cell3 or like this: |cell1||cell2||cell3 which both generate "<td>cell1</td><td>cell2</td><td>cell3</td>". The "||" equals "newline" + "|". Parameters in cells can be used like this: |''params''|cell1||''params''|cell2||''params''|cell3 which will result in <td ''params''>cell1</td> <td ''params''>cell2</td> <td ''params''>cell3</td> === Headers === Produces a TH, functioning the same way as TD, but with different style. "!" is used instead of the opening "|". "!!" can be used instead of "||". Parameters still use "|", though. Example: !''params''|cell1 === [[Help:Table Caption|Captions]] === A <caption> tag is created by |+ Caption which generates the HTML "<caption>Caption</caption>". You can also use parameters: |+ ''params''|Caption which will generate "<caption ''params''>Caption</caption>". === Summaries === A summary is produced by adding a summary attribute after the start of the table. It can be used by [[screen reader]]s to give visually impaired readers the overall gist of the table, without having to listen to the entire table. For example:
    {| summary="Artistic renderings of Germania became more triumphant and monumental."
    | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]
    | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]]
    | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]]
    |}
    
    produces: {| summary="Artistic renderings of Germania became more triumphant and monumental." | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]] | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]] | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]] |} == Square monitors == To format for a square monitor or window, use a tape measure. Determine the height of your rectangular screen. Using that figure measure under the screen to determine the width your monitor’s screen would be if it were square. Mark that location using ink or tape under the screen. Drag the side of your browser’s window to that location so the window is square based on accurate measurements. Square monitors and reading windows are not able to contain tables and galleries made for rectangular and wide screens. When a table or gallery is wider than the monitor, it makes every line of text wider than the screen as well. The px amounts of the following gallery were determined after measuring the window to make sure it was square: Type this:
    {| style="background: transparent; margin: auto;"
    | [[File:Some window blinds.JPG|192x155px|thumb|left|Various window shades]]
    | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]]
    | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]]
    | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]]
    |}
    
    {| style="background: transparent; margin: auto;"
    | [[File:Some_window_blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]]
    | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]]
    |}
    
    For this: {| style="background:none; margin: auto;" |- | [[File:Some_window_blinds.JPG|192x155px|thumb|left|Various window shades]] | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|Vertical blinds]] | [[File:Gardine.jpg|192x155px|thumb|left|This is not a blind]] |} {| style="background:none; margin: auto;" |- | [[File:Vorhang.jpg|192x155px|thumb|left|Solid shade]] | [[File:Jalousie-1.jpg|328x55px|thumb|left|Horizonal blinds]] |} {| style="background:none; margin: auto;" |- | [[File:Some window blinds.JPG|205px|thumb|left|Shade, shutters; vertical & horizontal blinds.]] | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|Detail of turning rod (blind stick) attachment on miniblinds]] |} == Vertically oriented column headers == Sometimes it is desirable (such as in a table predominantly made of numbers) to rotate text such that it proceeds from top to bottom or bottom to top instead of from left to right or right to left. Currently, browser support for this type of styling as a component of HTML or CSS is sporadic (Internet Explorer is one of the few browsers that supports this in cascading stylesheets, albeit in a non-standard way). An alternative solution that works in most if not all browsers is to use images in place of the text. For instance, the following table uses SVG images instead of text to produce the rotated column headings: {| class="wikitable" style="text-align: center;" |- style="vertical-align: bottom;" ! style="width:3em;" | [[File:wpvg_hd_date_page.svg|link=]] ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=Wikipedia:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_talk.svg|link=Wikipedia talk:WikiProject Video games]] ! style="width:3em;" | [[File:wpvg_vg_portal.svg|link=Portal:Video games]] ! style="width:3em;" | [[File:wpvg_vg_article_guidelines.svg|link=Wikipedia:WikiProject Video games/Article guidelines]] ! style="width:3em;" | [[File:wpvg_vg_templates.svg|link=Wikipedia:WikiProject Video games/Templates]] ! style="width:3em;" | [[File:wpvg_vg_sources.svg|link=Wikipedia:WikiProject Video games/Sources]] ! style="width:3em;" | [[File:wpvg_vg_assessment.svg|link=Wikipedia:WikiProject Video games/Assessment]] ! style="width:3em;" | [[File:wpvg_vg_cleanup.svg|link=Wikipedia:WikiProject Video games/Cleanup]] ! style="width:3em;" | [[File:wpvg_vg_requests.svg|link=Wikipedia:WikiProject Video games/Requests]] |- ! 05/08 | 4266 | 7828 | 7282 | 1105 | 224 | 161 | 916 | 506 | 231 |- ! 04/08 | 4127 | 6190 | 6487 | 1139 | 241 | 205 | 1165 | 478 | 301 |} Normally, one problem with this approach is that readers are directed to different pages when they click on the images. To eliminate this problem—or to direct readers to a ''different'' page—you can use the link parameter. A column-header can be coded as follows:
    
    ! style="width:3em;" | [[File:wpvg_vg_project.svg|link=xxxx]]
    
    
    The image will wikilink to article "xxxx". By setting the link to an empty string (e.g. [[File:wpvg_hd_date_page.svg|link=]]), no navigation will occur when visitors click on an image. Note that it might also be a good idea to color the image text blue if you are using the images as links. Also, SVG is the preferred image format in this case because it can be re-scaled to any size without producing artifacts. == Wikitable as image gallery == :''This section is local to Wikipedia (hard-coded here now).'' A wikitable can be used to display side-by-side images, in the manner of an image gallery (formatted by "<gallery>"), but with larger images and less vacant area around photos. A simple framed gallery can be formatted using class="wikitable" to generate the minimal thin-lines around images/photos within the table: {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |}
    Note the result below (with thin-lined cells): {| class="wikitable" |- |[[File:Worms 01.jpg|265px]] |[[File:Worms Wappen 2005-05-27.jpg|235px]] |- |Nibelungen Bridge to Worms
    across the [[Rhine]] |Worms and its sister cities |} Another issue about the standard "<gallery>" tag, in 2007-2008, was that it put 4 images per line, overrunning the right margin of a wiki article displayed in portrait-style width (like 800x600), unless the gallery had only 3 images. However, a wikitable uses typical image-links with sizes, such as "[[Image:XXX.jpg|130px]]" so 4 images could be displayed on a wikitable line within a 600px width (for 800x600 resolution screens). {| class="wikitable" border="1" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|125px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} {| class="wikitable" |- |[[File:Worms 01.jpg|130px]] |[[File:Worms Wappen 2005-05-27.jpg|125px]] |[[File:Liberty-statue-with-manhattan.jpg|125px]] |[[File:New-York-Jan2005.jpg|115px]] |- |Nibelungen Bridge to Worms |Worms and its sister cities |Statue of Liberty |New York City |} Another advantage about wikitable images, compared to "<gallery>" formatting, is the ability to "square" each image when similar heights are needed, so consider putting 2-number image sizes (such as "199x95px"), where the 2nd number limits height: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Note the 3 images sized "199x95px" appear identical height, of 95px (4th image purposely smaller). The "95px" forces height, while "199x" fits the various widths (could even be "999x"): {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |[[File:New-York-Jan2005.jpg|199x95px]] |[[File:Gold star on blue.gif|199x95px]] |[[File:Worms 01.jpg|100x95px]] |- |Statue of Liberty |New York City |Star on blue |Bridge to Worms |} Therefore, the use of size "199x95px" (or "999x95px") produces the auto-height-sizing beyond the "<gallery>" tag, and with the option to set taller thumbnails ("199x105px"), or even to have some images purposely smaller than other images of "95px" height. A very short height ("70px") allows many more images across the table: {| class="wikitable" border="1" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} The above wikitable-coding produces the result below, of 6 columns: {| class="wikitable" |- |[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |[[File:New-York-Jan2005.jpg|199x70px]] |[[File:Gold star on deep red.gif|199x70px]] |[[File:Worms 01.jpg|199x70px]] |[[File:Gold star on blue.gif|199x70px]] |} Once images have been placed in a wikitable, control of formatting can be adjusted when more images are added. === Shifting/centering === Images within a wikitable can be shifted by inserting non-breaking spaces ("&nbsp;") before or after the image-link ("&nbsp;[[Image:]]"). However, auto-centering simply requires use of center-tags to be placed around an image-link for centering in a cell ("
    [[File:..]]
    ")
    .
    In the example below, note how Col2 uses <center>, but Col3 uses "&nbsp;": {| class="wikitable" border="1" |- |[[File:Domtoren_vanaf_Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    |&nbsp;[[File:Uitzicht--Domtoren.jpg|299x125px]]&nbsp; |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |&nbsp;&nbsp;View from bell tower |}
    The above coding generates the table below: note the middle garden image is centered (but not the left image), and the right image has 2 spaces before "  View...": {| class="wikitable" |- |[[File:Domtoren vanaf Brigittenstraat.jpg|299x125px]] |
    [[File:Utrecht 003.jpg|299x125px]]
    | [[File:Uitzicht vanaf de Domtoren.jpg|299x125px]]  |- |Dom tower from Brigittenstraat |Cloister garth of the Utrecht Dom Church |  View from bell tower |} Also note that the tag "<small>" made a smaller text-size caption. However, fonts also can be sized by percent (style="font-size: 87%;"), where the actual percent-size as displayed depends on the various sizes allowed for a particular font.
     | style="font-size: 87%;" | View from bell tower
    
    The column attribute, above, uses "style=" to set the font-size for the caption, following the 2nd vertical-bar "|". A font-size: 65% is very small, while style="font-size: 87%;" is a mid-size font, larger than the tag ''small''.
    === Speed/transfer rates === Actual transfer/display speeds depend on individual files. In 2007 to March 2009 some serious flaws existed in the thumbnailing process when combined with the gallery-display, making thumbnails sometimes larger than the originals. For this reason some users explicitly used tables instead of the gallery tag. However, these issues are fixed as of March 2009. == Generate a chart with a table ==
    Main article: [[meta:Visualizer for Wikimedia projects|meta:Visualizer for Wikimedia projects]]
    Using {{[[Template:visualizer|visualizer]]}} or another template that uses {{[[Template:metavisualizer|metavisualizer]]}}.
    == Converting spreadsheet to wikitable format == To convert from spreadsheets such as Gnumeric, MS Excel or OpenOffice.org Calc, you can use the [http://excel2wiki.net/wikipedia.php Copy & Paste Excel-to-Wiki] converter or you can save your spreadsheets as [[.csv]] and use the [http://toolserver.org/~al/data2mwGenerators/csv2wikitable.php csv2wikitable] converter. == See also == * [[Help:Wikitable]] * [[Wikipedia:Manual of Style (tables)]] * [[Wikipedia:How to make a table in Wikipedia]] * [[mw:Table]] * [[mw:Simplified table syntax]] * [[m:Wiki markup tables]] * [[m:Table background colors]] * [[User:Dcljr/Tables]] * [[w:Table (HTML)]] * [[m:Help:Template#A parameter value containing a pipe character]] * [[w:Category:Table and column templates]] * Examples: ** [[Template:Chess diagram|Chess board]] ** [[Template:Goban|Go board]] ** [[Monopoly (game)#Board|Monopoly board]] ** [[m:Template talk:Square 8x8 pentomino example|Square 8x8 pentomino example]] * [[commons:Commons:Convert tables and charts to wiki code|Commons:Convert tables and charts to wiki code]] * [[commons:Commons:Chart and graph resources|Commons:Chart and graph resources]] * Cleanup template {{[[Template:Listtable|Listtable]]}} and its category [[:Category:Articles requiring tables]] == External links == * [[:de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion]] published in German-Wikipediaproject (English instructions included) * [http://www.cnic.org/html2mediawiki.html HTML tables to wiki converter at cnic.org] * [http://area23.brightbyte.de/csv2wp.php csv2wp] - converts [[w:comma-separated values|comma-separated values]] (CSV) format to pipe syntax. You may use this to import tables from Excel etc. ([[:de:Benutzer:Duesentrieb/csv2wp (en)|more information]]) * [http://www.uni-bonn.de/~manfear/html2wiki-tables.php HTML tables to wiki converter at uni-bonn.de] * [http://diberri.dyndns.org/html2wiki.html HTML tables to wiki converter at diberri.dyndns.org] * [http://pywikipediabot.sourceforge.net/ pywikipediabot] (can convert HTML tables to wiki) * [http://search.cpan.org/~diberri/ HTML-WikiConverter] Various versions and languages * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables Making Wiki Tables] with good examples * [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use Wiki and HTML Tables Ready to Use]: A selection of tables and their Wiki/HTML code * [http://www.w3.org/TR/css3-color/ Table of CSS color names and HEX codes] [[Category:Wikipedia how-to]] [[Category:Wikipedia text help]] [[ar:مساعدة:جدول]] [[bg:Уикипедия:Таблици]] [[ca:Ajuda:Taula]] [[cs:Nápověda:Tabulky]] [[de:Hilfe:Tabellen]] [[dsb:Pomoc:Tabela]] [[es:Ayuda:Tablas]] [[eo:Helpo:Vikitabeloj]] [[fa:راهنما:جدول‌ها]] [[fr:Aide:Les tableaux pour les novices]] [[hsb:Pomoc:Tabela]] [[hu:Wikipédia:Táblázatok]] [[id:Bantuan:Tabel]] [[it:Aiuto:Tabelle]] [[ja:Help:表の作り方]] [[ka:დახმარება:ცხრილის შექმნა]] [[km:ជំនួយ:តារាង]] [[ko:위키백과:표]] [[lb:Hëllef:Tabellen]] [[lt:Pagalba:Lentelė]] [[ml:സഹായം:പട്ടിക]] [[mn:Тусламж:Хүснэгт яаж хийх вэ?]] [[nl:Help:Gebruik van tabellen]] [[no:Hjelp:Tabeller]] [[pl:Pomoc:Tabele]] [[pt:Ajuda:Guia de edição/Usar tabelas]] [[ro:Ajutor:Tabele]] [[qu:Yanapa:Tawla]] [[sq:Ndihmë:Tabela]] [[simple:Help:Tables]] [[sk:Pomoc:Tabuľky]] [[sr:Помоћ:Табела]] [[fi:Ohje:Taulukot]] [[tt:Ярдәм:Tüşäw]] [[th:วิธีใช้:ตาราง]] [[uk:Довідка:Таблиці]] [[vi:Trợ giúp:Tạo bảng]] [[zh:Help:表格]] exp-Saxby+Chambliss.wikitext000066400000000000000000001746231335270560400523660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan="2" class="n" style="text-align: center; font-size: 125%; font-weight: bold" |Clarence Saxby Chambliss Jr |- | colspan="2" style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- | colspan="2" style="text-align:center; font-size:110%;" |
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- | colspan="2" style="text-align:center; background:lavender;" | '''[[Incumbent]]''' |- | colspan="2" style="text-align:center;" |'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- | colspan="2" style="text-align:center; font-size:110%;" |
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- ! colspan="2" style="text-align:center; font-size:110%;" |
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- | colspan="2" |
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! |- |[[U.S. House election, 1994|1994]] | | style="background:#B0CEFF" |Craig Mathis | style="background:#B0CEFF" align="right" |53,408 | style="background:#B0CEFF" |37% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |89,591 | style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | | style="background:#B0CEFF" |Jim Wiggins | style="background:#B0CEFF" align="right" |84,506 | style="background:#B0CEFF" |47% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |93,619 | style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | | style="background:#B0CEFF" |Ronald L. Cain | style="background:#B0CEFF" align="right" |53,079 | style="background:#B0CEFF" |38% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |87,993 | style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | | style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] | style="background:#B0CEFF" align="right" |79,051 | style="background:#B0CEFF" |41% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |113,380 | style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! !3rd Party !Party !Votes !Pct ! |- |[[U.S. Senate election, 2002|2002]] | | style="background:#B0CEFF" |[[Max Cleland]] | style="background:#B0CEFF" align="right" |932,422 | style="background:#B0CEFF" |46% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |1,071,352 | style="background:#FFB6B6" |53% | | style="background:#ffff66" |Claude "Sandy" Thomas | style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] | style="background:#ffff66" align="right" |27,830 | style="background:#ffff66" align="right" |1% | |} {| border="1" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan="6" |2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan="2" style="width: 130px" |Party ! style="width: 17em" |Candidate ! style="width: 5em" |Votes ! style="width: 3.5em" |% ! style="width: 3.5em" |±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[J. Roy Rowland]] | width="40%" style="text-align: center;" rowspan="1" |'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Max Cleland]] | width="40%" style="text-align: center;" rowspan="1" |'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' | width="30%" align="center" rowspan="1" |'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    | width="40%" style="text-align: center;" rowspan="1" |'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    | width="40%" style="text-align: center;" rowspan="1" |'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''''''''
    61st | width="30%" align="center" rowspan="1" | Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] raw-ASDF.wikitext000066400000000000000000000014501335270560400500740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext'''asdf''' or '''ASDF''' may refer to * [[Alabama State Defense Force]], a military entity * [[Alaska State Defense Force]], a military entity * [[Another System Definition Facility]], the most commonly used build system for Common Lisp * [[Association of Synchronous Data Formats]], an organization that advances the use of synchronous data transmission technology * Average Squared Difference Function, a mapping used in [[pitch detection algorithm]]s * asdf, the first four letters in the [[home row]] on a [[QWERTY]] keyboard * asdf movie, a series of [[viral video]]s * Asdf.com is a random chat board where the point is to not always stay on topic. == See also == * [[Hoverboard ASDF]] * [[Japan Air Self-Defense Force]] * [[QWERTY]] [[Category:Initialisms]] {{disambig}} [[de:ASDF]] [[fr:ASDF]] raw-Germany.wikitext000066400000000000000000004656261335270560400510040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=
    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
    Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
    and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;" | [[States of Germany|State]] ! style="width:85px;" | Capital ! style="width:85px;" | Area (km²) ! style="width:85px;" | Population |- | [[Baden-Württemberg]] | [[Stuttgart]] | style="text-align:right" |35,752 | style="text-align:right" |10,717,000 |- | [[Bavaria]] | [[Munich]] | style="text-align:right" |70,549 | style="text-align:right" |12,444,000 |- | Berlin | Berlin | style="text-align:right" |892 | style="text-align:right" |3,400,000 |- | [[Brandenburg]] | [[Potsdam]] | style="text-align:right" |29,477 | style="text-align:right" |2,568,000 |- | [[Bremen (state)|Bremen]] | [[Bremen]] | style="text-align:right" |404 | style="text-align:right" |663,000 |- | [[Hamburg]] | [[Hamburg]] | style="text-align:right" |755 | style="text-align:right" |1,735,000 |- | [[Hesse]] | [[Wiesbaden]] | style="text-align:right" |21,115 | style="text-align:right" |6,098,000 |- | [[Mecklenburg-Vorpommern]] | [[Schwerin]] | style="text-align:right" |23,174 | style="text-align:right" |1,720,000 |- | [[Lower Saxony]] | [[Hanover]] | style="text-align:right" |47,618 | style="text-align:right" |8,001,000 |- | [[North Rhine-Westphalia]] | [[Düsseldorf]] | style="text-align:right" |34,043 | style="text-align:right" |18,075,000 |- | [[Rhineland-Palatinate]] | [[Mainz]] | style="text-align:right" |19,847 | style="text-align:right" |4,061,000 |- | [[Saarland]] | [[Saarbrücken]] | style="text-align:right" |2,569 | style="text-align:right" |1,056,000 |- | [[Saxony]] | [[Dresden]] | style="text-align:right" |18,416 | style="text-align:right" |4,296,000 |- | [[Saxony-Anhalt]] | [[Magdeburg]] | style="text-align:right" |20,445 | style="text-align:right" |2,494,000 |- | [[Schleswig-Holstein]] | [[Kiel]] | style="text-align:right" |15,763 | style="text-align:right" |2,829,000 |- | [[Thuringia]] | [[Erfurt]] | style="text-align:right" |16,172 | style="text-align:right" |2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;" | Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010. ! style="text-align:center;" | Name ! style="text-align:center;" | Headquarters ! style="text-align:center;" | Revenue
    (Mil. €) ! style="text-align:center;" | Profit
    (Mil. €) ! style="text-align:center;" | Employees
    (World) |- | 1. | style="text-align:left;" | [[Volkswagen AG]] | style="text-align:left;" | [[Wolfsburg]] | 108,897 | 4,120 | 329,305 |- | 2. | style="text-align:left;" | [[Daimler AG]] | style="text-align:left;" | [[Stuttgart]] | 99,399 | 3,985 | 272,382 |- | 3. | style="text-align:left;" | [[Siemens AG]] | style="text-align:left;" | [[Munich]]/Berlin | 72,488 | 3,806 | 398,200 |- | 4. | style="text-align:left;" | [[E.ON|E.ON AG]] | style="text-align:left;" | [[Düsseldorf]] | 68,731 | 7,204 | 87,815 |- | 5. | style="text-align:left;" | [[Metro AG]] | style="text-align:left;" | [[Düsseldorf]] | 64,337 | 825 | 242,378 |- | 6. | style="text-align:left;" | [[Deutsche Post AG]] | style="text-align:left;" | [[Bonn]] | 63,512 | 1,389 | 475,100 |- | 7. | style="text-align:left;" | [[Deutsche Telekom AG]] | style="text-align:left;" | [[Bonn]] | 62,516 | 569 | 241,426 |- | 8. | style="text-align:left;" | [[BASF|BASF SE]] | style="text-align:left;" | [[Ludwigshafen am Rhein|Ludwigshafen]] | 57,951 | 4,065 | 95,175 |- | 9. | style="text-align:left;" | [[BMW AG]] | style="text-align:left;" | [[Munich]] | 56,018 | 3,126 | 107,539 |- | 10. | style="text-align:left;" | [[ThyssenKrupp AG]] | style="text-align:left;" | [[Essen]]/[[Duisburg]] | 51,723 | 2,102 | 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
    [[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" ! colspan="9" style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan="11" align="center" valign="top" | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
    [[Berlin]]
    [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
    [[Hamburg]]
    [[File:München Panorama.JPG|border|160px|Munich]]
    [[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;" | Rank ! style="text-align:left; background:#f5f5f5;" | City ! style="text-align:right; background:#f5f5f5;" | Population | rowspan="11" width="50" |   ! style="text-align:center; background:#f5f5f5;" | Rank ! style="text-align:left; background:#f5f5f5;" | City ! style="text-align:right; background:#f5f5f5;" | Population | rowspan="11" align="center" valign="top" | [[File:Köln Panorama.jpg|border|160px|Cologne]]
    [[Cologne|Cologne (Köln)]]
    [[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
    [[Frankfurt am Main|Frankfurt]]
    [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
    [[Stuttgart]] |- | align="center" style="background:#f0f0f0;" | 1 | align="left" | [[Berlin]] | align="right" | 3,442,675 | align="center" style="background:#f0f0f0;" | 11 | align="left" | [[Hannover]] | align="right" | 520,966 |- | align="center" style="background:#f0f0f0;" | 2 | align="left" | [[Hamburg]] | align="right" | 1,774,224 | align="center" style="background:#f0f0f0;" | 12 | align="left" | [[Leipzig]] | align="right" | 518,862 |- | align="center" style="background:#f0f0f0;" | 3 | align="left" | [[Munich]] | align="right" | 1,330,440 | align="center" style="background:#f0f0f0;" | 13 | align="left" | [[Dresden]] | align="right" | 517,052 |- | align="center" style="background:#f0f0f0;" | 4 | align="left" | [[Cologne]] | align="right" | 998,105 | align="center" style="background:#f0f0f0;" | 14 | align="left" | [[Nuremberg]] | align="right" | 503,673 |- | align="center" style="background:#f0f0f0;" | 5 | align="left" | [[Frankfurt am Main|Frankfurt]] | align="right" | 671,927 | align="center" style="background:#f0f0f0;" | 15 | align="left" | [[Duisburg]] | align="right" | 491,931 |- | align="center" style="background:#f0f0f0;" | 6 | align="left" | [[Stuttgart]] | align="right" | 601,646 | align="center" style="background:#f0f0f0;" | 16 | align="left" | [[Bochum]] | align="right" | 376,319 |- | align="center" style="background:#f0f0f0;" | 7 | align="left" | [[Düsseldorf]] | align="right" | 586,217 | align="center" style="background:#f0f0f0;" | 17 | align="left" | [[Wuppertal]] | align="right" | 351,050 |- | align="center" style="background:#f0f0f0;" | 8 | align="left" | [[Dortmund]] | align="right" | 581,308 | align="center" style="background:#f0f0f0;" | 18 | align="left" | [[Bielefeld]] | align="right" | 323,084 |- | align="center" style="background:#f0f0f0;" | 9 | align="left" | [[Essen]] | align="right" | 576,259 | align="center" style="background:#f0f0f0;" | 19 | align="left" | [[Bonn]] | align="right" | 319,841 |- | align="center" style="background:#f0f0f0;" | 10 | align="left" | [[Bremen]] | align="right" | 547,685 | align="center" style="background:#f0f0f0;" | 20 | align="left" | [[Mannheim]] | align="right" | 311,969 |- | colspan="9" align="center" | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
    ===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align="center" |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
    (1749–1832) ! align="center" |[[Friedrich Schiller]]
    (1759–1805) ! align="center" |[[Brothers Grimm]]
    (1785–1863) ! align="center" |[[Thomas Mann]]
    (1875–1955) ! align="center" |[[Hermann Hesse]]
    (1877–1962) |- | align="left" | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] | align="left" | [[File:Gerhard von Kügelgen 001.jpg|129px]] | align="left" | [[File:Grimm1.jpg|125px]] | align="left" | [[File:Thomas Mann 1929.jpg|106px]] | align="left" | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align="center" |[[J.S.Bach]]
    [[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align="center" |[[Ludwig van Beethoven|L.v. Beethoven]]
    [[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align="center" |[[Richard Wagner|R. Wagner]]
    [[Die Walküre]] ! align="center" |[[Kraftwerk]]
    [[Computer World|Computerwelt Pt. 2]] ! align="center" |[[Modern Talking]]
    [[Brother Louie (Modern Talking song)|Brother Louie]] ! align="center" |[[Rammstein]]
    [[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;" | [[File:Toccata et Fugue BWV565.ogg|110px]] | style="text-align:left; background:#d3d3d3;" | [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]] | style="text-align:left; background:silver;" |[[File:Wagner - die walkure fantasie.ogg|110px]] | style="text-align:left; background:darkGrey;" | [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] | style="text-align:left; background:gray;" | [[File:Brother Louie MT.ogg|110px]] | style="text-align:left; background:dimGrey;" | [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
    {{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
    {{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
    {{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]] raw-List+of+MythBusters+special+episodes.wikitext000066400000000000000000000362741335270560400564160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext{{wikiquotepar|MythBusters}} The cast of the television series ''[[MythBusters]]'' perform experiments to verify or debunk [[urban legend]]s, [[old wives' tale]]s, and the like. This is a list of the various myths tested on the show as well as the results of the experiments (the myth is [[MythBusters#Conclusions of the experiments|Busted, Plausible, or Confirmed]]). Special episodes listed here were aired separately to the normal season episodes and special episodes. Also included are "mini myths", videos available from the [[Discovery Channel]] website. ==Episode overview== {| class="wikitable" style="width:100%; margin:auto; background:#FFFFFF;" |- ! style="background-color: #DBE9F4; color:#000; text-align: center;" |Series # ! style="background-color: #DBE9F4; color:#000; text-align: center;" |Season # ! style="background-color: #DBE9F4; color:#000; text-align: center;" |Title ! style="background-color: #DBE9F4; color:#000; text-align: center;" |Original airdate {{Episode list |EpisodeNumber = SP11 |EpisodeNumber2 = Special 1 |Title = Young Scientist Special |RTitle = |OriginalAirDate = {{Start date|2008|4|26}} |ShortSummary = '''Myths tested''':
    [[Discovery Channel]]'s young scientist contenders help the Mythbusters tackle environmental myths:
    Are electric cars truly slow?
    Do increased CO2 levels cause accelerated ice melting? (Former Mythbuster [[Scottie Chapman]] returns to assist the testing)
    Are cows truly the single greatest air polluter? |LineColor = DBE9F4 }} |}
    ==Specials== === Episode SP11 – "Young Scientists Special"=== * Original airdate: April 26, 2008 on [[Science Channel]] This episode aired first on [[Science Channel]], as opposed to the show's regular home of [[Discovery Channel]]. A team of winners in Discovery's "Young Scientist Challenge" competitions tested environmental myths with the team. Former MythBuster [[Scottie Chapman]] returned to assist with a myth. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Greenhouse gases increase the amount of heat absorbed by air. | Confirmed | Airtight containers with carbon dioxide or methane added got one degree Celsius (2 °F) hotter than regular when heated by a hot lamp. |- | [[Electric car]]s are more sluggish than [[gasoline]]-powered cars. | Busted | They first had Jamie drive Brandon (a Young Scientist Challenge winner) in both a gas and electric consumer grade car, and blindfolded Brandon and covered Jamie's ears to see if they could tell the difference. Brandon couldn't tell, but being an experienced driver, Jamie was able to immediately tell based on the electric car's acceleration. Then Adam, Jamie, and Brandon built an electric go-kart using lithium iron phosphate batteries and tested it against a gas go-kart. Despite weighing twice as much as the gas go-kart, the electric go-kart performed about the same. Then they went to a professional track and watched the KillaCycle, an electric drag motorcycle race against a stock gas motorcycle. The gas motorcycle won by a slight margin. Then they had the X1 electric sports car race against an F430 Ferrari, and while the Ferrari's top speed was faster, the electric car accelerated faster and beat it in a drag race. Finally, they had the electric car race against a FJR50 Formula 3 race car. While the Formula 3 car easily beat the electric car, the electric car is considered a "street car," not a race car, and it did well enough that they proclaimed electric cars to be anything but slow. |- | Cows hurt the environment. | Confirmed | Cows emit [[methane]]—though not mostly from flatulence, but from belching — and their feces emit even more methane once they begin rotting. Since there are so many cows, the methane contributes significantly to global warming. |- | Cow manure can be used to help the environment. | Confirmed | Cow manure can be used to power things. The Young Scientists helped collect cow manure and extracted methane gas from it. Grant hooked up the methane gas and used it to power a hand lawnmower. They then saw that the farm where they had collected cow manure from received 90% of its electricity from its own manure-powered generator. |} ==Mini Myths== The mini-myths are shown in video clips that are available from the [[Discovery Channel]] website, as well as during the commercials in between ''MythBusters'' episodes. ==="Egg-uinox"=== The Egg-uinox myth was perhaps too short to air in any episode, as it was easily and conclusively busted.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/egguinox.html|title=The Egg-uinox|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} {| class="wikitable" ! Myth statement ! Status ! Notes |- | An egg can be balanced on its ends only during the spring and fall [[equinox]]. | style="color:red" | Busted | This is a [[China|Chinese]] folk belief, sometimes called [[Egg of Li Chun|Li Chun egg balancing]] after the first day of spring in the Chinese calendar. There is nothing special about the spring and fall equinoxes that allows an egg to balance on end. A person with enough [[dexterity]] can do it on any day of the year. Hard boiled eggs balance better than raw eggs, however. |} ==="Breakstep Bridge"=== In a revisit of the [[MythBusters (2004 season)#Breakstep Bridge|Breakstep Bridge]] myth, Adam and Jamie decide that the suspension bridge that Adam had built was too stable to accurately test, so they build a simple [[beam bridge]] and test it under Adam's weight.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/onlineexclusive/breakstep.html|title=Breakstep Bridge|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} This test was also aired in ''[[#Outtakes|MythBusters Outtakes]]''. {| class="wikitable" ! Myth statement ! Status ! Notes |- | A bridge can be collapsed by the vibration caused by pedestrian traffic. The theory was soldiers break step on bridge, because if their march gets a resonant frequency of the bridge, it will snap the bridge. | style="color:orange" | Plausible | The bridge was able to hold Adam's weight until he started bouncing on it. |} ==="Mini Shark Myths"=== The mini shark myths, while related to Discovery Channel's Shark Week, are not related to the movie ''Jaws'' in particular.{{Cite web|url=http://dsc.discovery.com/fansites/mythbusters/videogalleries/sharkmyths/sharkmyths.html|title=Shark Mini-Myths|work=Mythbusters: Web Exclusive Video|publisher=[[Discovery Channel]]|accessdate=October 25, 2009}} {| class="wikitable" ! Myth statement ! Status ! Notes |- | Sharks tend to be attracted to brighter colors like yellow. | style="color:orange" | Plausible | When all the results were calculated, the sharks tested preferred to go for the "yum-yum yellow" bait bag before the other ones (red, blue, black, white, silver). Though they did also go for the silver and black ones. |- | Sharks can detect a single drop of blood dropped into a pool of water. | style="color:red" | Busted | The sharks detected fish blood, however they either did not detect human blood or did not care about it. Also, like any scent, the sharks weren't able to detect the blood until their noses came into contact with the blood particles, and the smell grew weaker as the blood got diluted by the water, meaning that a single drop of blood in a particular area of the pool would not be detectable by any shark that was not in that area, and was not swimming right into the blood. However, the Mythbusters only used [[lemon shark]]s, and [[great white shark|great white]]s or [[bull shark]]s might have gotten different results. |- | A shark's skin is rough enough to be used as [[sandpaper]]. | style="color:green" | Confirmed | When compared to various grains of sandpaper, the sharkskin that Adam and Jamie acquired was comparable to a very high-grain (400 to 600) of sandpaper, and can be used as such, even on a rotary sander. |- | There is a [[rule of thumb]] a casual observer can use to adequately estimate the size of a shark. | style="color:red" | Busted | Out of all the measurements taken of sharks of various species, only one (from nosetip to dorsal fin tip) could consistently be used to estimate the shark's size, and that requires knowledge of the specific shark species and an up-close measurement that might be too difficult and dangerous to be done by a casual observer. |} ==Outtakes== During live appearances by the MythBusters, they have screened additional segments that were not aired. ==="Facts About Flatulence"=== There were two additional myths addressed in addition to those in the ''[[MythBusters (2006 season)#Franklin's Kite|Franklin's Kite]]'' episode. These two myths did not air because they were thought to be inappropriate for younger viewers. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Attractive women do not pass gas. | style="color:red" | Busted | Kari wore underwear equipped with a microphone connected to an amplifier and a [[hydrogen sulfide]] meter. The meter malfunctioned, giving false positive readings. However, the microphone did record the sound of a released flatus.{{Cite web|url=http://www.youtube.com/watch?v=JisgLhWghRQ|title=Un-Air-able Banned Mythbuster Fart Episode part 1 Keri Byron|publisher=[[YouTube]]|accessdate=October 25, 2009}} |- | A [[flatus]] [[Fart lighting|can be ignited]]. | style="color:green" | Confirmed | Adam had some initial performance anxiety, but finally did release a flatus that could be ignited by a butane lighter.{{Cite web|url=http://www.youtube.com/watch?v=BqFRBHPIE-w|title=Un-Air-able Banned Mythbuster Fart episode part 2|publisher=[[YouTube]]|accessdate=October 25, 2009}} The flammable methane within a regular flatus, despite only making up about 7% of the flatus' gasses, is still enough to set it alight upon release (when it first contacts and mixes with the air, but before it can diffuse altogether). This segment was later aired as part of the "Top 25 Moments" special on June 16, 2010. |} ==="MythBusters Teeth Challenge"=== Less a challenge than an inside joke. The MythBusters received many e-mails from fans complaining about Adam's brown teeth. This was originally planned for the "[[MythBusters (2006 season)#Episode 55 – "Steam Cannon"|Steam Cannon]]" episode. However, on the Discovery Europe version, it is included in the episode. {| class="wikitable" ! Myth statement ! Status ! Notes |- | Of all the MythBusters, Adam is the one with the brownest teeth. | Busted, then Confirmed | Jamie, Adam, Tory, and Grant all had their teeth checked by Kari. At first Jamie was the one with the brownest teeth, not Adam. However, after hearing the news, he had his [[Tooth bleaching|teeth bleached]] to make them white again. After this, Adam did have the brownest teeth. The overall result, from best to worst: Grant, Tory, Adam, and finally Jamie (before his bleaching). |} ==[[BBC Two]] re-edited half hour shows== {{inc-video}} [[BBC Two]]'s editions of ''MythBusters'' are narrated by [[Rufus Hound]] in an energetic and irreverent style. {| class="wikitable" ! Date broadcast ! Myths |- | July 27, 2006 | [[MythBusters (2003 season)#Penny Drop|Penny Drop]], [[MythBusters (2003 season)#Who Gets Wetter?|Who Gets Wetter?]], [[MythBusters (2003 season)#Exploding Toilet|Exploding Toilet]] |- | August 3, 2006 | [[MythBusters (2003 season)#CD-ROM Shattering|CD-ROM Shattering]], [[MythBusters (2003 season)#Silicone Breasts|Silicone Breasts]], [[MythBusters (2003 season)#Cell Phone Destruction|Cell Phone Destruction]] |- | September 7, 2006 | [[MythBusters (2003 season)#Lightning Strikes Tongue Piercing|Lightning Strikes Tongue Piercing]], [[MythBusters (2003 season)#101 Uses For Cola|Cola Myths (partial; cleaning blood, pennies and chrome, dissolving teeth and steaks)]], [[MythBusters (season 1)#Hammer Bridge Drop|Hammer Bridge Drop]] |- | September 14, 2006 | [[List of MythBusters pilot episodes#Pilot 1 – "Jet Assisted Chevy, Pop Rocks and Soda"|JATO Car, Pop Rocks and Soda (called "Space Dust" in the British narration, as it is the more common name for Pop Rocks in the UK)]] |- | September 21, 2006 | [[MythBusters (2003 season)#Buried Alive|Buried Alive]], [[MythBusters (2003 season)#Beat the Breath Test|Beat the Breath Test]] |- | September 28, 2006 | [[MythBusters (2004 season)#Explosive Decompression|Explosive Decompression]], [[MythBusters (2004 season)#Rear Axle|Rear Axle]], [[MythBusters (2004 season)#Frog Giggin'|Frog Giggin']] |- | October 5, 2006 | [[MythBusters (2004 season)#The Mad Trombonist|Mad Trombonist]], [[MythBusters (2004 season)#Goldfish Memory|Goldfish Memory]], [[MythBusters (2004 season)#Sinking Titanic|Down with the Titanic]] |- | October 12, 2006 |[[MythBusters (2003 season)#Escape From Alcatraz|Escape from Alcatraz]], [[MythBusters (2003 season)#Stud Finders & Mind Control Chips|Mind Control Chips]], [[MythBusters (2003 season)#Does a Duck's Quack Echo?|Does a Duck's Quack Echo?]] |- | October 19, 2006 |[[MythBusters (2004 season)#Rowing Water Skier|Row Skiing]], [[MythBusters (2004 season)#Toothbrush Surprise|Surprise Toothbrush]], [[MythBusters (2004 season)#Breakstep Bridge|Breakstep Bridge]] |- | October 31, 2006 | [[MythBusters (2004 season)#Buried in Concrete|The Hunt for Hoffa]], [[MythBusters (2004 season)#Daddy Long-Legs|Daddy Long-Legs]], [[MythBusters (2004 season)#Jet Taxi|Jet Taxi]] |- | November 7, 2006 | [[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Lawn Chair Balloon]], [[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Poppy Seed Drug Test]], ''[[List of MythBusters pilot episodes#Pilot 3 – "Larry's Lawn Chair Balloon, Poppy Seed Drug Test, Goldfinger"|Goldfinger]]'' |- | November 14, 2006 | [[MythBusters (2004 season)#Chicken Gun|Chicken Gun (frozen or thawed?)]], [[MythBusters (2004 season)#Killer Washing Machine|Killer Laundry!]] |- | February 19, 2007 | [[List of MythBusters pilot episodes#Pilot 2 – "Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer"|Vacuum Toilet]], [[List of MythBusters pilot episodes#Pilot 2 – "Vacuum Toilet, Biscuit Bazooka, Leaping Lawyer"|Exploding Shopping]] |} ==See also== * [[List of MythBusters episodes]] ==References== {{Reflist}} ==External links== * [http://dsc.discovery.com/fansites/mythbusters/mythbusters.html MythBusters Official site] * [http://drmikessteakdinner.com/2007/03/15/so-do-pretty-girls-fart/ View the ''Facts About Flatulence'' outtakes] * {{imdb title|id=0383126|title=MythBusters}} {{MythBusters}} {{DEFAULTSORT:Mythbusters}} [[Category:Lists of MythBusters episodes|Special]] [[nl:MythBusters afleveringen: Specials]] [[ru:Разрушители легенд: специальные выпуски]] [[fi:Luettelo televisiosarjan Myytinmurtajat erikoisjaksoista]] raw-List+of+high+schools+in+San+Diego+County%2C+California.wikitext000066400000000000000000000170421335270560400611730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitextThis is a '''list of high schools in [[San Diego County, California]]'''. It includes public and private schools and is arranged by school district (public schools) or affiliation (private schools). These schools offer grades 9 through 12. Junior High schools are not listed here. ==Public schools== ===Borrego Springs Unified School District=== *[[Borrego Springs High School]], Borrego Springs *Palm Canyon High School (continuation), Borrego Springs ===Coronado Unified School District=== *[[Coronado High School (Coronado, California)|Coronado High School]], Coronado *Palm Academy for Learning, Coronado ===[[Escondido Union School District|Escondido Union High School District]]=== *Center City High School, Escondido *Escondido Charter High School, Escondido *[[Escondido High School]], Escondido *[[Orange Glen High School]], Escondido *[[San Pasqual High School]], Escondido *Valley High School (continuation), Escondido *[[The Classical Academy High School (California)|Classical Academy High School]] ===Fallbrook Union High School District=== *[[Fallbrook Union High School]], Fallbrook *Ivy High School (continuation), Fallbrook *Oasis High School (alternative), Fallbrook ===[[Grossmont Union High School District]]=== *[[Chaparral High School (El Cajon)|Chaparral High School]] (continuation), El Cajon *[[El Cajon Valley High School]], El Cajon *[[El Capitan High School]], Lakeside *[[Granite Hills High School (El Cajon, California)|Granite Hills High School]], El Cajon *[[Grossmont High School]], La Mesa/El Cajon *[[Grossmont Middle College High School]], El Cajon *[[Helix High School]], La Mesa *[[Monte Vista High School (Spring Valley, California)|Monte Vista High School]], Spring Valley *[[Mount Miguel High School]], Spring Valley *[[Santana High School]], Santee *[[Steele Canyon High School]], Spring Valley *[[Valhalla High School (El Cajon, California)|Valhalla High School]], El Cajon *[[West Hills High School]], Santee ===Julian Union High School District=== *[[Julian High School]], Julian *Redding (Ray) High (continuation), Julian *Summit High Community Day, Julian ===Lakeside Union School District=== *[[River Valley Charter School]], Lakeside ===Mountain Empire Unified School District=== *[[Mountain Empire High School]], Pine Valley ===Oceanside Unified School District=== *[[El Camino High School (Oceanside)|El Camino High School]], Oceanside *[[Oceanside High School]], Oceanside *Oceanside School of Business and Technology, Oceanside *Pacific View Charter School, Oceanside ===[[Poway Unified School District]]=== *[[Del Norte High School (San Diego, California)|Del Norte High School]], San Diego *[[Mount Carmel High School (San Diego, California)|Mount Carmel High School]], San Diego *[[Poway High School]], Poway *[[Rancho Bernardo High School]], San Diego *[[Westview High School (San Diego)|Westview High School]], San Diego ===Ramona Unified School District=== *Montecito High School (alternative), Ramona *Mountain Valley Academy High School, Ramona *[[Ramona High School (Ramona, California)|Ramona High School]], Ramona ===[[San Diego City Schools|San Diego Unified School District]]=== {{:San Diego Unified School District}} ===[[San Dieguito Union High School District]]=== *[[Canyon Crest Academy]], San Diego *[[La Costa Canyon High School]], Carlsbad *North Coast High School (alternative) *[[San Dieguito Academy]], Encinitas *Sunset High School (alternative) *[[Torrey Pines High School]], San Diego ===San Marcos Unified School District=== *Bayshore Prep Charter School, San Marcos *Foothills High (alternative), San Marcos *[[Mission Hills High School]], San Marcos *[[San Marcos High School (San Marcos, California)|San Marcos High School]], San Marcos *Twin Oaks High School (alternative), San Marcos ===[[Sweetwater Union High School District]]=== *[[Bonita Vista High School]], Chula Vista *[[Castle Park High School]], Chula Vista *[[Chula Vista High School]], Chula Vista *[[Eastlake High School (Chula Vista, California)|Eastlake High School]], Chula Vista *[[Hilltop High School]], Chula Vista *MAAC Community Charter School, Chula Vista *[[Mar Vista High School]], Imperial Beach *[[Montgomery High School, San Diego]] *[[Olympian High School]], Chula Vista *[[Options Secondary School]], Chula Vista *[[Otay Ranch High School]], Chula Vista *Palomar High School, Chula Vista *[[San Ysidro High School]], San Diego *[[Southwest Senior High School]], San Diego *[[Sweetwater High School]], National City *[[High School of Roque]],San Diego ===Valley Center-Pauma Unified School District=== *[[Valley Center High School]], Valley Center *Valley Center Middle School, Valley Center *Valley Center Elementary, Valley Center *Valley Center Primary, Valley Center *Valley Center Lilac Elementary, Valley Center *Pauma Valley School K-8, Pauma Valley *Oak Glen High School (Continuation), Valley Center *Valley Center Independent Study, Valley Center *Valley Center Adult Education, Valley Center ===Vista Unified School District=== * [[Guajome Park Academy]] (charter), Vista * [[Rancho Buena Vista High School]], Vista * [[Vista High School (Vista, California)|Vista High School]], Vista * North County Trade Tech High School (charter), Vista ===Warner Unified School District=== *[[Warner Middle / High School]], Warner Springs *San Jose Valley Continuation High School, Warner Springs ==Private schools== ===Baptist=== ===[[Roman Catholic Diocese of San Diego|Catholic]]=== {{:Roman Catholic Diocese of San Diego}} ===Episcopal=== *[[The Bishop's School (California)|The Bishop's School]], La Jolla ===Jewish=== *[[San Diego Jewish Academy]], San Diego *[[Southern California Yeshiva High School]], San Diego *[[Torah High Schools of San Diego]], San Diego ===Lutheran=== *[[Lutheran High School of San Diego]], San Diego *[[Escondido Adventist Academy]], Escondido *[[San Diego Academy]], National City ===Non-Denominational=== *Maranatha Christian Schools, San Diego *[[Calvin Christian School (Escondido, California)]] ===Nonsectarian=== *[http://www.tcps.org The Child's Primary School], San Diego *Carlsbad Seaside Academy, Carlsbad *Carlsbad Village Academy, Carlsbad *[[Francis W. Parker School (San Diego)|Francis W. Parker School]], San Diego *[[Grauer School|The Grauer School]], Encinitas *[[Halstrom High School]], Oceanside *[[Halstrom High School]], San Diego *[[La Jolla Country Day School]], La Jolla *Pacific Academy International, Encinitas *Pacific Ridge School, Carlsbad ==Closed schools== *Sun Valley Charter High School, Ramona. Closed as of February 3, 2008 due to lack of funding.[http://www.ramonasentinel.com/default.asp?sourceid=&smenu=1&twindow=&mad=&sdetail=5118&wpage=1&skeyword=&sidate=&ccat=&ccatm=&restate=&restatus=&reoption=&retype=&repmin=&repmax=&rebed=&rebath=&subname=&pform=&sc=1085&hn=ramonasentinel&he=.com Ramona California's Community Newspaper]) ==See also== *[[List of high schools in California]] *[[List of school districts in California]] *[[Lists of school districts in California by county]] *[[List of school districts in San Diego County, California]] *[[Primary and secondary schools in San Diego, California]] *[[List of closed secondary schools in California]] == References == ==External links== *[http://www.sdcoe.k12.ca.us/ San Diego County Office of Education] *[http://california.schooltree.org/high/San-Diego-County-Schools.html San Diego County Schools], list of schools from SchoolTree.org [[Category:High schools in San Diego County, California|*]] [[Category:Lists of schools in California|California, San Diego County]] raw-Projet%3ABretagne%2F%C3%89bauches+Bretagne.wikitext000066400000000000000000003043071335270560400565260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitextLes 1308 articles suivants ont un bandeau d'ébauche sur un sujet ne concernant pas la Bretagne, tout en ayant un bandeau de portail lié à la Bretagne (c'est-à-dire [[Portail:Bretagne]], [[Portail:Côtes-d'Armor]], [[Portail:Saint-Brieuc]], [[Portail:Finistère]], [[Portail:Brest]], [[Portail:Quimper]], [[Portail:Ille-et-Vilaine]], [[Portail:Rennes]], [[Portail:Saint-Malo]], [[Portail:Morbihan]], [[Portail:Lorient]], [[Portail:Vannes]], [[Portail:Histoire de Bretagne]], [[Portail:Duché de Bretagne]], [[Portail:Musique bretonne]], [[Portail:Loire-Atlantique]], [[Portail:Nantes]] ou [[Portail:Saint-Nazaire]]).
    [[2e régiment du matériel]][[Portail:Rennes]]
    [[3e régiment d'infanterie de marine]][[Portail:Vannes]]
    [[ABC Nantes]][[Portail:Nantes]]
    [[ASPTT Nantes]][[Portail:Nantes]]
    [[ASPTT Nantes football]][[Portail:Nantes]]
    [[Abbaye Notre-Dame de Daoulas]][[Portail:Finistère]]
    [[Abbaye Notre-Dame de Langonnet]][[Portail:Morbihan]]
    [[Abbaye Notre-Dame de Lanthénac]][[Portail:Bretagne]], [[Portail:Côtes-d'Armor]]
    [[Abbaye Saint-Jacques de Montfort]][[Portail:Ille-et-Vilaine]]
    [[Abbaye Saint-Michel de Kergonan]][[Portail:Morbihan]]
    [[Abbaye Saint-Sauveur de Redon]][[Portail:Ille-et-Vilaine]]
    [[Abbaye Sainte-Marie de Pornic]][[Portail:Loire-Atlantique]]
    [[Abbaye de Saint-Jean-des-Prés]][[Portail:Morbihan]]
    [[Abel Durand]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Abysses (album)]][[Portail:Musique bretonne]]
    [[Adolphe Moitié]][[Portail:Nantes]]
    [[Agnès Giard]][[Portail:Vannes]]
    [[Airon]][[Portail:Ille-et-Vilaine]]
    [[Alain Barrière]][[Portail:Morbihan]]
    [[Alain II de Rohan]][[Portail:Duché de Bretagne]]
    [[Alain III de Rohan]][[Portail:Duché de Bretagne]]
    [[Alain Le Quernec]][[Portail:Morbihan]]
    [[Alain Thiboult]][[Portail:Vannes]]
    [[Albert Caradec]][[Portail:Morbihan]]
    [[Albert Louppe]][[Portail:Finistère]]
    [[Alex Dupont]][[Portail:Brest]]
    [[Alfred Lallié]][[Portail:Nantes]]
    [[Alix de Bretagne (1297-1377)]][[Portail:Duché de Bretagne]]
    [[Alix de Thouars]][[Portail:Duché de Bretagne]]
    [[Alphonse Gasnier-Duparc]][[Portail:Ille-et-Vilaine]]
    [[Alphonse de Callac]][[Portail:Ille-et-Vilaine]]
    [[Amicale Laïque Bruz TT]][[Portail:Rennes]]
    [[Amicale sportive de Vitré]][[Portail:Ille-et-Vilaine]]
    [[An heol a zo glaz]][[Portail:Musique bretonne]]
    [[André Fauvel]][[Portail:Quimper]]
    [[André Le Dissez]][[Portail:Bretagne]]
    [[André Le Floch]][[Portail:Vannes]]
    [[André Loyen]][[Portail:Morbihan]]
    [[Angers-Nantes Opéra]][[Portail:Nantes]]
    [[Anniverscène]][[Portail:Musique bretonne]]
    [[Anthony Masselin]][[Portail:Musique bretonne]]
    [[Anthony Palou]][[Portail:Quimper]]
    [[Anthyme-Denis Cohon]][[Portail:Bretagne]]
    [[Antoine Dufour (homme politique)]][[Portail:Nantes]]
    [[Antoine-Mathieu-Alexandre Jaquemet]][[Portail:Nantes]]
    [[Antoinette de Maignelais]][[Portail:Duché de Bretagne]]
    [[Aqueduc de la Minette]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Ar-Men (bière)]][[Portail:Bretagne]]
    [[Ardenne (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Arguenon]][[Portail:Bretagne]]
    [[Aristide Locquet de Grandville]][[Portail:Loire-Atlantique]]
    [[Armand Corre]][[Portail:Bretagne]]
    [[Armand Fouillen]][[Portail:Bretagne]]
    [[Armand Félix Marie Jobbé-Duval]][[Portail:Bretagne]]
    [[Armand Rousseau]][[Portail:Finistère]]
    [[Armand du Cambout]][[Portail:Bretagne]]
    [[Armel (prénom)]][[Portail:Bretagne]]
    [[Armel de Wismes]][[Portail:Bretagne]], [[Portail:Nantes]]
    [[Armorique au Haut Moyen Âge]][[Portail:Histoire de Bretagne]]
    [[Armorloricus davidi]][[Portail:Finistère]]
    [[Armorloricus elegans]][[Portail:Finistère]]
    [[Armée des côtes de Brest]][[Portail:Bretagne]], [[Portail:Brest]]
    [[Arnaud Cazin d'Honincthun]][[Portail:Finistère]]
    [[Arnaud Hybois]][[Portail:Morbihan]]
    [[Arnaud d'Ossat]][[Portail:Rennes]]
    [[Arrondissement de Brest]][[Portail:Finistère]]
    [[Arrondissement de Dinan]][[Portail:Côtes-d'Armor]]
    [[Arrondissement de Guingamp]][[Portail:Côtes-d'Armor]]
    [[Arrondissement de Morlaix]][[Portail:Bretagne]]
    [[Arrondissement de Redon]][[Portail:Ille-et-Vilaine]]
    [[Arsène Leloup]][[Portail:Nantes]]
    [[Art celte]][[Portail:Bretagne]]
    [[Arthur Regnault]][[Portail:Ille-et-Vilaine]]
    [[Arzel Even]][[Portail:Bretagne]]
    [[Association sportive brestoise]][[Portail:Brest]]
    [[Astropolis]][[Portail:Finistère]]
    [[Ateliers et chantiers de Bretagne]][[Portail:Bretagne]]
    [[Ateliers orléanais de réalisations ferroviaires]][[Portail:Loire-Atlantique]]
    [[Auguste Le Goff]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Auguste Pageot]][[Portail:Nantes]]
    [[Auguste-René-Marie Dubourg]][[Portail:Rennes]]
    [[Augustin Bernard François Le Goazre de Kervélégan]][[Portail:Finistère]]
    [[Augustin de Loynes]][[Portail:Nantes]]
    [[Augustin-Jean Malassis]][[Portail:Nantes]]
    [[Autour du Blues]][[Portail:Côtes-d'Armor]]
    [[Aéroport de Saint-Nazaire - Montoir]][[Portail:Loire-Atlantique]]
    [[Bagad Nominoë du Pays de Redon]][[Portail:Ille-et-Vilaine]], [[Portail:Morbihan]], [[Portail:Musique bretonne]], [[Portail:Loire-Atlantique]]
    [[Baillistre]][[Portail:Duché de Bretagne]]
    [[Banc de Bilho]][[Portail:Loire-Atlantique]]
    [[Barocks]][[Portail:Côtes-d'Armor]]
    [[Barzaz Breiz]][[Portail:Musique bretonne]]
    [[Base aérienne 271 Rennes Saint Jacques]][[Portail:Bretagne]]
    [[Base d'aéronautique navale de Lanvéoc-Poulmic]][[Portail:Bretagne]]
    [[Base de plein air et de loisirs de Guerlédan]][[Portail:Bretagne]]
    [[Basset fauve de Bretagne]][[Portail:Bretagne]]
    [[Bataille de Carnac]][[Portail:Morbihan]]
    [[Bataille de Grand-Champ]][[Portail:Morbihan]]
    [[Bataille de La Roche-Derrien]][[Portail:Duché de Bretagne]]
    [[Bataille de Machecoul (juin 1793)]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Batscap]][[Portail:Finistère]]
    [[Beg Meil]][[Portail:Bretagne]]
    [[Beg ar C'hra Communauté]][[Portail:Côtes-d'Armor]]
    [[Belle Angèle (voilier)]][[Portail:Bretagne]]
    [[Belle et rebelle]][[Portail:Musique bretonne]]
    [[Belle-Étoile]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Benoît Le Roux]][[Portail:Bretagne]]
    [[Benoît Vaugrenard]][[Portail:Vannes]]
    [[Bernard (cardinal, 1151)]][[Portail:Rennes]]
    [[Bernard Alliot]][[Portail:Bretagne]]
    [[Bernard Bretonnière]][[Portail:Bretagne]]
    [[Bernard Gestin]][[Portail:Bretagne]]
    [[Bernard Mallet]][[Portail:Nantes]]
    [[Bernard Reyt]][[Portail:Bretagne]]
    [[Bernard Tanguy]][[Portail:Histoire de Bretagne]]
    [[Bernez Tangi]][[Portail:Musique bretonne]]
    [[Berthe de Blois]][[Portail:Duché de Bretagne]]
    [[Bertrand Hémonic]][[Portail:Morbihan]]
    [[Bertrand de Broc]][[Portail:Bretagne]]
    [[Best of Gilles Servat : 40 ans de succès]][[Portail:Musique bretonne]]
    [[Beuvron (affluent de la Sélune)]][[Portail:Ille-et-Vilaine]]
    [[Bidet (cheval)]][[Portail:Bretagne]]
    [[Bigard (entreprise)]][[Portail:Finistère]]
    [[Billy Ze Kick et les Gamins en Folie]][[Portail:Rennes]]
    [[Bizu]][[Portail:Bretagne]]
    [[Blanche de Castille (Nantes)]][[Portail:Nantes]]
    [[Boehlen]][[Portail:Bretagne]]
    [[Bonaventure Chailland]][[Portail:Bretagne]]
    [[Brasserie Mor Braz]][[Portail:Morbihan]]
    [[Brasserie Sainte-Colombe]][[Portail:Bretagne]]
    [[Brasserie Tri Martolod]][[Portail:Bretagne]]
    [[Brasserie de Bretagne]][[Portail:Finistère]]
    [[Breiz-Izel]][[Portail:Musique bretonne]]
    [[Bretagne (trois-mâts)]][[Portail:Bretagne]]
    [[Bretagne vivante]][[Portail:Bretagne]]
    [[Bretagne-Plants]][[Portail:Bretagne]]
    [[Brigitte Barazer de Lannurien]][[Portail:Bretagne]]
    [[Britt]][[Portail:Bretagne]]
    [[Brivet]][[Portail:Saint-Nazaire]]
    [[Bugaled Breizh]][[Portail:Bretagne]]
    [[C'est un pays]][[Portail:Musique bretonne]]
    [[C2C (groupe)]][[Portail:Nantes]]
    [[Café du bon coin]][[Portail:Musique bretonne]]
    [[Camille François Philippe de Farcy]][[Portail:Bretagne]]
    [[Camille Guérini]][[Portail:Morbihan]]
    [[Camille Le Menn]][[Portail:Bretagne]]
    [[Camille Robida]][[Portail:Nantes]]
    [[Canal B]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Canoë Kayak Club Acigné]][[Portail:Rennes]]
    [[Canton de Brest-Saint-Marc]][[Portail:Finistère]]
    [[Canton de Lanvollon]][[Portail:Côtes-d'Armor]]
    [[Canton de Rezé]][[Portail:Loire-Atlantique]]
    [[Cap Sizun]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Caradoc Freichfras]][[Portail:Vannes]]
    [[Cartopole]][[Portail:Bretagne]], [[Portail:Morbihan]]
    [[Cathédrale Saint-Étienne de Saint-Brieuc]][[Portail:Saint-Brieuc]]
    [[Celtigel]][[Portail:Côtes-d'Armor]]
    [[Centre d’étude et de valorisation des algues]][[Portail:Bretagne]]
    [[Centre hospitalier universitaire de Nantes]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Centre nautique municipal de Douarnenez]][[Portail:Finistère]]
    [[Centre sportif et culturel Laetitia]][[Portail:Nantes]]
    [[Championnat de Bretagne de cross-country]][[Portail:Bretagne]]
    [[Championnats d'Europe de char à voile 1969]][[Portail:Ille-et-Vilaine]]
    [[Championnats du monde de char à voile 2012]][[Portail:Ille-et-Vilaine]]
    [[Championnats du monde de cyclo-cross 2004]][[Portail:Loire-Atlantique]]
    [[Chantez la vie, l'amour et la mort]][[Portail:Musique bretonne]]
    [[Chantier Krebs]][[Portail:Bretagne]]
    [[Chantiers de la Loire]][[Portail:Nantes]]
    [[Chapelle de Lochrist]][[Portail:Morbihan]]
    [[Chapelle de Prigny]][[Portail:Loire-Atlantique]]
    [[Chapelle des Ursulines (Ancenis)]][[Portail:Loire-Atlantique]]
    [[Charles Brunellière]][[Portail:Bretagne]], [[Portail:Nantes]]
    [[Charles Daniélou]][[Portail:Finistère]]
    [[Charles Gwennou]][[Portail:Bretagne]]
    [[Charles Géniaux]][[Portail:Bretagne]]
    [[Charles Harouys]][[Portail:Nantes]]
    [[Charles Huon de Penanster]][[Portail:Côtes-d'Armor]]
    [[Charles Joseph Lenoir]][[Portail:Rennes]]
    [[Charles Kérivel]][[Portail:Bretagne]]
    [[Charles Le Quintrec]][[Portail:Vannes]]
    [[Charles Meunier-Surcouf]][[Portail:Saint-Brieuc]]
    [[Charles Millardet]][[Portail:Rennes]]
    [[Charles de Gaulle (écrivain)]][[Portail:Bretagne]]
    [[Charles de La Monneraye]][[Portail:Morbihan]]
    [[Charles de La Noue]][[Portail:Côtes-d'Armor]]
    [[Charles de Rosmadec]][[Portail:Vannes]]
    [[Charles-Ange Laisant]][[Portail:Nantes]]
    [[Charles-Eutrope de La Laurencie]][[Portail:Nantes]]
    [[Charles-Marie de Faucigny-Lucinge]][[Portail:Côtes-d'Armor]]
    [[Charles-René Collin]][[Portail:Bretagne]]
    [[Charles-Tanguy Le Roux]][[Portail:Bretagne]]
    [[Chasse-marée (magazine)]][[Portail:Bretagne]]
    [[Chaumeré]][[Portail:Ille-et-Vilaine]]
    [[Chenal du Four]][[Portail:Bretagne]]
    [[Christian Troadec]][[Portail:Bretagne]]
    [[Christophe Coué]][[Portail:Morbihan]]
    [[Christophe Revel]][[Portail:Bretagne]]
    [[Christophe Rouxel]][[Portail:Morbihan]]
    [[Christophe-Louis Turpin de Crissé de Sanzay]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Château de Champtocé]][[Portail:Duché de Bretagne]]
    [[Château de Clairvaux]][[Portail:Ille-et-Vilaine]]
    [[Château de Lambilly]][[Portail:Morbihan]]
    [[Château de la Touche-Larcher]][[Portail:Morbihan]]
    [[Château du Pré-Clos]][[Portail:Morbihan]]
    [[Claie (rivière)]][[Portail:Morbihan]]
    [[Claire Huchet-Bishop]][[Portail:Morbihan]]
    [[Claude Vaillant]][[Portail:Bretagne]]
    [[Claude-René Pâris]][[Portail:Bretagne]]
    [[Club olympique briochin]][[Portail:Saint-Brieuc]]
    [[Clément Guillon]][[Portail:Quimper]]
    [[Clément Théaudin]][[Portail:Bretagne]]
    [[Cobac Parc]][[Portail:Bretagne]]
    [[Combat de Lamballe]][[Portail:Bretagne]]
    [[Combat de Vitré]][[Portail:Bretagne]]
    [[Commando Kieffer (marine nationale)]][[Portail:Lorient]]
    [[Communauté d'agglomération Cap Atlantique]][[Portail:Morbihan]], [[Portail:Loire-Atlantique]]
    [[Communauté d'agglomération de Saint-Brieuc]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Arguenon - Hunaudaye]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Callac - Argoat]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Centre Armor Puissance 4]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Guerlédan Mûr-de-Bretagne]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Hardouinais Mené]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Lamballe Communauté]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Paimpol-Goëlo]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes Rance - Frémur]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de Dinan]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de Moyenne Vilaine et du Semnon]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes de Plancoët Val d'Arguenon]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de l'Aulne Maritime]][[Portail:Finistère]]
    [[Communauté de communes de la Baie du Kernic]][[Portail:Finistère]]
    [[Communauté de communes de la Baie du Mont Saint-Michel]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes de la Côte de Penthièvre]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de la Côte des Mégalithes]][[Portail:Morbihan]]
    [[Communauté de communes de la Presqu'île de Lézardrieux]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes de la Région de Pleyben]][[Portail:Finistère]]
    [[Communauté de communes de la presqu'île de Crozon]][[Portail:Finistère]]
    [[Communauté de communes des Monts d'Arrée]][[Portail:Finistère]]
    [[Communauté de communes des Trois Rivières (Côtes-d'Armor)]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Coglais]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Haut Pays Bigouden]][[Portail:Finistère]]
    [[Communauté de communes du Kreiz-Breizh]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Mené]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays Guerchais]][[Portail:Bretagne]]
    [[Communauté de communes du Pays Léonard]][[Portail:Finistère]]
    [[Communauté de communes du Pays d'Aubigné]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays d'Iroise]][[Portail:Finistère]]
    [[Communauté de communes du Pays d'Uzel-près-l'Oust]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays d'Évran]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Belle-Isle-en-Terre]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Bourbriac]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Bégard]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Caulnes]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Châteaugiron]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Châteaulin et du Porzay]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Châtelaudren - Plouagat]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Corlay]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Dol-de-Bretagne et de la Baie du Mont Saint-Michel]][[Portail:Bretagne]]
    [[Communauté de communes du Pays de Landerneau-Daoulas]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Landivisiau]][[Portail:Finistère]]
    [[Communauté de communes du Pays de Liffré]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Matignon]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Moncontour]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Montauban-de-Bretagne]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Plélan]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays de Saint-Aubin-du-Cormier]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de Saint-Méen-le-Grand]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays de la Bretagne romantique]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Pays du Guesclin]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Pays rochois (Côtes-d'Armor)]][[Portail:Côtes-d'Armor]]
    [[Communauté de communes du Val d'Ille]][[Portail:Ille-et-Vilaine]]
    [[Communauté de communes du Yeun Elez]][[Portail:Finistère]]
    [[Communauté de communes du canton d'Antrain]][[Portail:Bretagne]]
    [[Communauté de communes du canton de Guichen]][[Portail:Ille-et-Vilaine]]
    [[Concarneau Cornouaille Agglomération]][[Portail:Finistère]]
    [[Congrès de Nantes]][[Portail:Nantes]]
    [[Congrès de Rennes]][[Portail:Rennes]]
    [[Conseil général des Côtes-d'Armor]][[Portail:Côtes-d'Armor]]
    [[Conseil général du Finistère]][[Portail:Finistère]]
    [[Conservatoire à rayonnement régional de Nantes]][[Portail:Nantes]]
    [[Conserverie Gonidec]][[Portail:Bretagne]]
    [[Coopagri Bretagne]][[Portail:Bretagne]]
    [[Corentin (voilier)]][[Portail:Bretagne]]
    [[Corentin Canevet]][[Portail:Bretagne]]
    [[Corn Bihan]][[Portail:Vannes]]
    [[Cour administrative d'appel de Nantes]][[Portail:Nantes]]
    [[Cour d'appel de Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Couvre-feu (festival)]][[Portail:Loire-Atlantique]]
    [[Crash de Quiberon]][[Portail:Morbihan]]
    [[Crialeïs]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Crédit mutuel Arkéa]][[Portail:Bretagne]]
    [[Crêpe bretonne]][[Portail:Bretagne]]
    [[Crêperie]][[Portail:Bretagne]]
    [[Cyndyddan]][[Portail:Bretagne]]
    [[Cynwyd ap Cynfelyn]][[Portail:Bretagne]]
    [[Cyril Yapi]][[Portail:Morbihan]]
    [[Cédric Morgan]][[Portail:Vannes]]
    [[Côte sauvage de la Presqu'île guérandaise]][[Portail:Loire-Atlantique]]
    [[Côtes d'Armor Cyclisme]][[Portail:Bretagne]]
    [[DGA Maîtrise de l'information]][[Portail:Rennes]]
    [[Dalh-Mad]][[Portail:Bretagne]]
    [[Daniel Lebée]][[Portail:Bretagne]]
    [[Darerca]][[Portail:Bretagne]]
    [[David Bouard]][[Portail:Bretagne]]
    [[David Chauvel]][[Portail:Rennes]]
    [[David Nal-Vad]][[Portail:Bretagne]]
    [[De sang, de sueur et d'amour]][[Portail:Musique bretonne]]
    [[Denis Moutel]][[Portail:Saint-Brieuc]]
    [[Denise Le Dantec]][[Portail:Bretagne]]
    [[Derby de l'Atlantique]][[Portail:Nantes]]
    [[Deskiñ d’an oadourien]][[Portail:Bretagne]]
    [[Deuxième bataille de Landévant (1795)]][[Portail:Morbihan]]
    [[Dialogues (librairie)]][[Portail:Bretagne]]
    [[Diboular]][[Portail:Bretagne]]
    [[Didier Chouat]][[Portail:Côtes-d'Armor]]
    [[Dieu a besoin des hommes]][[Portail:Finistère]]
    [[Diocèse de Quimper et Léon]][[Portail:Bretagne]], [[Portail:Quimper]]
    [[Diocèse de Saint-Brieuc et Tréguier]][[Portail:Bretagne]], [[Portail:Saint-Brieuc]]
    [[Diocèse de Vannes]][[Portail:Morbihan]]
    [[Discussion Wikipédia:Prise de décision/Bandeaux de portail]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Dix ans, dix filles]][[Portail:Musique bretonne]]
    [[Dom Louis Le Pelletier]][[Portail:Bretagne]]
    [[Domaine mégalithique des Pierres droites]][[Portail:Morbihan]]
    [[Dominique Irvoas-Dantec]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Dominique de Legge]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Dourduff (Rivière de Morlaix)]][[Portail:Bretagne]]
    [[Dremmwel]][[Portail:Bretagne]]
    [[Ecorurb]][[Portail:Rennes]]
    [[Edme Fouquet]][[Portail:Nantes]]
    [[Edmond Bertreux]][[Portail:Loire-Atlantique]]
    [[Edmond-Pierre Doré-Graslin]][[Portail:Loire-Atlantique]]
    [[Enez Koalen]][[Portail:Bretagne]]
    [[Enez Sun 3]][[Portail:Bretagne]]
    [[Enézy]][[Portail:Vannes]]
    [[Eon (rivière)]][[Portail:Bretagne]]
    [[Er Runio]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Ernest Guibourd de Luzinais]][[Portail:Nantes]]
    [[Ernest Le Barzic]][[Portail:Bretagne]]
    [[Ernest Rannou]][[Portail:Finistère]]
    [[Erwan]][[Portail:Bretagne]]
    [[Erwan Quintin]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Erwan Tabarly]][[Portail:Bretagne]]
    [[Escales (album)]][[Portail:Musique bretonne]]
    [[Estuaire de la Loire]][[Portail:Loire-Atlantique]]
    [[Estuaire de la Vilaine]][[Portail:Morbihan]]
    [[Eugène Brager de La Ville-Moysan]][[Portail:Rennes]]
    [[Eugène Cornu]][[Portail:Morbihan]]
    [[Eugène Hélary]][[Portail:Bretagne]]
    [[Eugène Lageat]][[Portail:Bretagne]]
    [[Eurofins Scientific]][[Portail:Nantes]]
    [[Evialis]][[Portail:Bretagne]]
    [[Fabrice Garin]][[Portail:Bretagne]]
    [[Famille O'Riordan]][[Portail:Bretagne]]
    [[Famille du Bot]][[Portail:Bretagne]]
    [[Fanch Stephan]][[Portail:Bretagne]]
    [[Fanch Vidament]][[Portail:Bretagne]]
    [[Fañch Peru]][[Portail:Bretagne]]
    [[Fañch Postic]][[Portail:Bretagne]]
    [[Ferdinand Baston de La Riboisière]][[Portail:Ille-et-Vilaine]]
    [[Ferdinand Le Drogo]][[Portail:Morbihan]]
    [[Fernand Crouan]][[Portail:Nantes]]
    [[Fernand Dauchot]][[Portail:Bretagne]]
    [[Fernand Guériff]][[Portail:Histoire de Bretagne]]
    [[Fernand Picot]][[Portail:Morbihan]]
    [[Fernand Rauzena]][[Portail:Rennes]]
    [[Fest Noz de Paname]][[Portail:Musique bretonne]]
    [[Festival Agrock]][[Portail:Rennes]]
    [[Festival Scopitone]][[Portail:Nantes]]
    [[Festival de Saint-Nolff]][[Portail:Vannes]]
    [[Festival de cinéma de Douarnenez]][[Portail:Finistère]]
    [[Firmin Le Bourhis]][[Portail:Bretagne]]
    [[Fleur de Mai (bateau)]][[Portail:Saint-Malo]]
    [[Flora (rivière)]][[Portail:Bretagne]]
    [[Florian Le Roy]][[Portail:Bretagne]]
    [[Fonderie d'Indret]][[Portail:Loire-Atlantique]]
    [[Forges des Salles]][[Portail:Bretagne]], [[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Fort Cigogne]][[Portail:Bretagne]]
    [[Fort National]][[Portail:Bretagne]]
    [[Forêt du Gâvre]][[Portail:Loire-Atlantique]]
    [[Fouace nantaise]][[Portail:Nantes]]
    [[Fougères communauté]][[Portail:Bretagne]]
    [[Foulques de Laval]][[Portail:Duché de Bretagne]]
    [[Foulées Briochines]][[Portail:Saint-Brieuc]]
    [[Francesco Buanomici]][[Portail:Nantes]]
    [[Francis Barbu]][[Portail:Quimper]]
    [[Francis Blin]][[Portail:Bretagne]]
    [[Francis Le Blé]][[Portail:Brest]], [[Portail:Morbihan]]
    [[Francis Pellerin]][[Portail:Bretagne]]
    [[Francis Portais]][[Portail:Nantes]]
    [[François André (homme politique)]][[Portail:Ille-et-Vilaine]]
    [[François Autain]][[Portail:Loire-Atlantique]]
    [[François Cuillandre]][[Portail:Brest]]
    [[François Erlenbach]][[Portail:Bretagne]]
    [[François Fellonneau]][[Portail:Nantes]]
    [[François Hippolyte Lalaisse]][[Portail:Bretagne]]
    [[François L'Archiver]][[Portail:Rennes]]
    [[François Le Douarec]][[Portail:Bretagne]]
    [[François Le Lay]][[Portail:Bretagne]]
    [[François Mellinet]][[Portail:Nantes]]
    [[François Mevellec]][[Portail:Bretagne]]
    [[François Valentin (peintre)]][[Portail:Bretagne]]
    [[François Vallée]][[Portail:Bretagne]]
    [[François-Charles Blacque-Belair]][[Portail:Finistère]]
    [[François-Charles Oberthur Fiduciaire]][[Portail:Rennes]]
    [[François-Marie-Bonaventure du Fou]][[Portail:Nantes]]
    [[François-Virgile Dubillard]][[Portail:Quimper]]
    [[Françoise Le Mer]][[Portail:Bretagne]]
    [[Frañsez Kervella]][[Portail:Bretagne]]
    [[Frugy]][[Portail:Quimper]]
    [[Frères de l'instruction chrétienne de Ploërmel]][[Portail:Bretagne]]
    [[Frédéric Adam]][[Portail:Bretagne]]
    [[Frédéric Cailliaud]][[Portail:Nantes]]
    [[Félix Fournier]][[Portail:Nantes]]
    [[Félix Martin-Feuillée]][[Portail:Ille-et-Vilaine]]
    [[Félix Pol Jobbé-Duval]][[Portail:Bretagne]]
    [[Fête du lait de mai]][[Portail:Nantes]]
    [[Gabriel Deshayes]][[Portail:Bretagne]]
    [[Gabriel Milin]][[Portail:Bretagne]]
    [[Gabrielle B.]][[Portail:Bretagne]]
    [[Gare de Beslé]][[Portail:Loire-Atlantique]]
    [[Gare de Massérac]][[Portail:Loire-Atlantique]]
    [[Gare de Sainte-Pazanne]][[Portail:Loire-Atlantique]]
    [[Gaston Veil]][[Portail:Nantes]]
    [[Gautier de Bentley]][[Portail:Duché de Bretagne]]
    [[Gaël Danic]][[Portail:Vannes]]
    [[Gaëtan Rondeau]][[Portail:Nantes]]
    [[Geneviève Asse]][[Portail:Vannes]]
    [[Geoffroi II de Rohan]][[Portail:Bretagne]]
    [[Geoffroy Drouet]][[Portail:Nantes]]
    [[Georges Arnoux]][[Portail:Musique bretonne]]
    [[Georges Maillols]][[Portail:Rennes]]
    [[Georges Talbourdet]][[Portail:Bretagne]]
    [[Georges-Robert Lefort]][[Portail:Bretagne]]
    [[Georges-Évariste Colombel]][[Portail:Nantes]]
    [[Gilbert Beaufranchet]][[Portail:Nantes]]
    [[Gilbert Le Chenadec]][[Portail:Morbihan]]
    [[Gilles Barbedette]][[Portail:Bretagne]]
    [[Gilles Servat en public]][[Portail:Musique bretonne]]
    [[Gireg]][[Portail:Bretagne]]
    [[Gouessant]][[Portail:Bretagne]]
    [[Goulven (prénom)]][[Portail:Bretagne]]
    [[Goulven Morvan]][[Portail:Bretagne]]
    [[Goulwen]][[Portail:Bretagne]]
    [[Goulwena an Henaff]][[Portail:Bretagne]]
    [[Govihan]][[Portail:Vannes]]
    [[Goélette paimpolaise]][[Portail:Côtes-d'Armor]]
    [[Grand Norven]][[Portail:Bretagne]]
    [[Grand Prix de Plumelec-Morbihan]][[Portail:Morbihan]]
    [[Grand Veïzit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Grand menhir brisé d'Er Grah]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Grand réservoir de Vioreau]][[Portail:Loire-Atlantique]]
    [[Groupama 3]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Groupe Beaumanoir]][[Portail:Bretagne]]
    [[Groupe CECAB]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Groupe Roullier]][[Portail:Saint-Malo]]
    [[Groupe Régional Indépendant]][[Portail:Nantes]]
    [[Groupe SIPA - Ouest-France]][[Portail:Rennes]]
    [[Groupe Yves Rocher]][[Portail:Bretagne]]
    [[Groupement de soutien de la base de défense de Rennes]][[Portail:Rennes]]
    [[Guillaume François Laennec]][[Portail:Nantes]]
    [[Guillaume Le Breton]][[Portail:Duché de Bretagne]]
    [[Guillaume Moullec]][[Portail:Bretagne]]
    [[Guillaume Ouvrouin (évêque de Léon)]][[Portail:Bretagne]]
    [[Guillaume Seignac]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Guillaume de Saint-André]][[Portail:Duché de Bretagne]]
    [[Guillaume-Marie-Joseph Labouré]][[Portail:Rennes]]
    [[Guillec]][[Portail:Bretagne]]
    [[Guingamp Communauté]][[Portail:Côtes-d'Armor]]
    [[Gustave Le Borgne de La Tour]][[Portail:Côtes-d'Armor]]
    [[Gustave de Closmadeuc]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Guy Bellay]][[Portail:Bretagne]]
    [[Guy de Penthièvre]][[Portail:Duché de Bretagne]]
    [[Guy de Salvaing de Boissieu]][[Portail:Morbihan]]
    [[Guy Étienne]][[Portail:Bretagne]]
    [[Guénane Cade]][[Portail:Morbihan]]
    [[Guérin de Rougé]][[Portail:Duché de Bretagne]]
    [[Gwenaël Kerléo]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Gwenaël Leduc]][[Portail:Bretagne]]
    [[Gwenegan Bui]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Gwilherm Dubourg]][[Portail:Bretagne]]
    [[Gwir Vretoned]][[Portail:Musique bretonne]]
    [[Gérard Le Cam]][[Portail:Côtes-d'Armor]]
    [[Gérard Rué]][[Portail:Bretagne]]
    [[HBC Nantes]][[Portail:Nantes]]
    [[Havoise de Normandie]][[Portail:Duché de Bretagne]]
    [[Havre de Rothéneuf]][[Portail:Bretagne]]
    [[Henri Anger]][[Portail:Bretagne]]
    [[Henri Battais]][[Portail:Bretagne]]
    [[Henri Bourgeois (militaire)]][[Portail:Morbihan]]
    [[Henri Lassourd]][[Portail:Bretagne]]
    [[Henri Le Breton]][[Portail:Bretagne]]
    [[Henri Maho]][[Portail:Bretagne]]
    [[Henri Marie Auguste Ferron de la Ferronnays]][[Portail:Loire-Atlantique]]
    [[Henri Poisson]][[Portail:Histoire de Bretagne]]
    [[Henri Quilgars]][[Portail:Histoire de Bretagne]]
    [[Henri de La Ferronnays (1876-1946)]][[Portail:Loire-Atlantique]]
    [[Henri-Marie Dubreil de Pontbriand]][[Portail:Vannes]]
    [[Henri-Marie-Claude de Bruc-Montplaisir]][[Portail:Vannes]]
    [[Hervé Budes de Guébriant]][[Portail:Bretagne]]
    [[Hervé Burillier]][[Portail:Vannes]]
    [[Hervé Le Boterf]][[Portail:Histoire de Bretagne]]
    [[Hervé Phélippeau]][[Portail:Morbihan]]
    [[Hippolyte Tréhiou]][[Portail:Vannes]]
    [[Hippolyte-Étienne Etiennez]][[Portail:Nantes]]
    [[Hirvoudou]][[Portail:Musique bretonne]]
    [[Historique du parcours européen du Football Club de Nantes]][[Portail:Nantes]]
    [[Hockey Club de Nantes]][[Portail:Nantes]]
    [[Holavre]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Hommage à René Guy Cadou]][[Portail:Musique bretonne]]
    [[Honoré-Charles Baston de La Riboisière]][[Portail:Ille-et-Vilaine]]
    [[Horn (Léon)]][[Portail:Bretagne]]
    [[Hotié de Viviane]][[Portail:Ille-et-Vilaine]]
    [[Hubert Guillotel]][[Portail:Histoire de Bretagne]]
    [[Hugues de Montrelais]][[Portail:Saint-Brieuc]], [[Portail:Duché de Bretagne]]
    [[Hélène Tanguy]][[Portail:Vannes]]
    [[Hélène de Laval]][[Portail:Bretagne]]
    [[Hémérica]][[Portail:Bretagne]]
    [[Hêtre de Ponthus]][[Portail:Bretagne]]
    [[Hôtel d'Asfeld]][[Portail:Saint-Malo]]
    [[Imbourc'h]][[Portail:Bretagne]]
    [[Institut de recherche en informatique et systèmes aléatoires]][[Portail:Rennes]]
    [[Inézic]][[Portail:Vannes]]
    [[Ise (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Ivona Martin]][[Portail:Bretagne]]
    [[Jacky Le Menn]][[Portail:Bretagne]]
    [[Jacqueline Chevé]][[Portail:Bretagne]]
    [[Jacqueline Lazard]][[Portail:Finistère]]
    [[Jacques Bonsergent]][[Portail:Morbihan]]
    [[Jacques Chazot]][[Portail:Lorient]]
    [[Jacques Cressard]][[Portail:Bretagne]]
    [[Jacques Fleurent]][[Portail:Bretagne]]
    [[Jacques Fournier (poète)]][[Portail:Bretagne]]
    [[Jacques Jullien]][[Portail:Rennes]]
    [[Jacques Le Cann]][[Portail:Bretagne]]
    [[Jacques Pellen]][[Portail:Musique bretonne]]
    [[Jacques Viot]][[Portail:Nantes]]
    [[Jacques de Menou (homme politique)]][[Portail:Finistère]]
    [[Jakez Cornou]][[Portail:Bretagne]]
    [[Janig Corlay]][[Portail:Bretagne]]
    [[Jazz à l'Ouest]][[Portail:Rennes]]
    [[Je ne hurlerai pas avec les loups]][[Portail:Musique bretonne]]
    [[Je vous emporte dans mon cœur (35 ans - 35 titres)]][[Portail:Musique bretonne]]
    [[Jean Allard de Grandmaison]][[Portail:Loire-Atlantique]]
    [[Jean Bothorel]][[Portail:Bretagne]]
    [[Jean Choleau]][[Portail:Bretagne]]
    [[Jean Clerfeuille]][[Portail:Nantes]]
    [[Jean Corne]][[Portail:Morbihan]]
    [[Jean Failler]][[Portail:Bretagne]]
    [[Jean Fourché]][[Portail:Nantes]]
    [[Jean Gainche]][[Portail:Bretagne]]
    [[Jean Guegueniat]][[Portail:Bretagne]]
    [[Jean Hamelin (politique)]][[Portail:Bretagne]]
    [[Jean II de Rougé]][[Portail:Duché de Bretagne]]
    [[Jean IV de Beaumanoir]][[Portail:Duché de Bretagne]]
    [[Jean IV de Brosse]][[Portail:Duché de Bretagne]]
    [[Jean Kerlévéo]][[Portail:Bretagne]]
    [[Jean Le Cour-Grandmaison]][[Portail:Loire-Atlantique]]
    [[Jean Le Guillou]][[Portail:Nantes]]
    [[Jean Le Guilly]][[Portail:Bretagne]]
    [[Jean Markale]][[Portail:Bretagne]]
    [[Jean Ollivro]][[Portail:Bretagne]]
    [[Jean Robic]][[Portail:Bretagne]]
    [[Jean Rouxel (chimiste)]][[Portail:Morbihan]]
    [[Jean Stalaven (Entreprise)]][[Portail:Bretagne]]
    [[Jean Tirilly]][[Portail:Finistère]]
    [[Jean Tricoire (médecin)]][[Portail:Bretagne]]
    [[Jean de Derval]][[Portail:Duché de Bretagne]]
    [[Jean de Laval-Châteaubriant]][[Portail:Duché de Bretagne]]
    [[Jean de Malestroit (cardinal)]][[Portail:Saint-Brieuc]], [[Portail:Nantes]]
    [[Jean de Samois]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Jean de la Grille]][[Portail:Duché de Bretagne]]
    [[Jean et Joël Martel]][[Portail:Loire-Atlantique]]
    [[Jean-Baptiste Barré]][[Portail:Rennes]]
    [[Jean-Baptiste Bompard]][[Portail:Bretagne]]
    [[Jean-Baptiste Corlobé]][[Portail:Bretagne]]
    [[Jean-Baptiste Duvoisin]][[Portail:Nantes]]
    [[Jean-Baptiste Martenot]][[Portail:Rennes]]
    [[Jean-Charles Chevillote]][[Portail:Bretagne]]
    [[Jean-Charles Perazzi]][[Portail:Bretagne]]
    [[Jean-Claude Andro]][[Portail:Bretagne]]
    [[Jean-Claude Caër]][[Portail:Bretagne]]
    [[Jean-Claude Le Chevère]][[Portail:Bretagne]]
    [[Jean-Claude Petit (politique)]][[Portail:Finistère]]
    [[Jean-François Dubois]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Jean-François Roger (musicien)]][[Portail:Musique bretonne]]
    [[Jean-François de Hercé]][[Portail:Nantes]]
    [[Jean-Joseph Lucas de Bourgerel]][[Portail:Bretagne]]
    [[Jean-Louis Aven]][[Portail:Bretagne]]
    [[Jean-Louis Goasduff]][[Portail:Bretagne]]
    [[Jean-Luc Istin]][[Portail:Morbihan]]
    [[Jean-Marie Corre]][[Portail:Bretagne]]
    [[Jean-Marie Goasmat]][[Portail:Morbihan]]
    [[Jean-Marie Le Vert]][[Portail:Quimper]]
    [[Jean-Marie Écorchard]][[Portail:Nantes]]
    [[Jean-Michel Boucheron (1948)]][[Portail:Bretagne]]
    [[Jean-Noël Kerdraon]][[Portail:Finistère]]
    [[Jean-Pascal Dubost]][[Portail:Bretagne]]
    [[Jean-Paul Hameury]][[Portail:Bretagne]]
    [[Jean-Paul James]][[Portail:Rennes]], [[Portail:Nantes]]
    [[Jean-Paul Parayre]][[Portail:Morbihan]]
    [[Jean-Pierre Bosser]][[Portail:Bretagne]]
    [[Jean-Pierre Le Ridant]][[Portail:Loire-Atlantique]]
    [[Jean-René Bolloré]][[Portail:Finistère]]
    [[Jean-René Toumelin]][[Portail:Nantes]]
    [[Jean-Yves Guiomar]][[Portail:Histoire de Bretagne]]
    [[Jean-Yves Veillard]][[Portail:Rennes]], [[Portail:Histoire de Bretagne]]
    [[Jeanine Baude]][[Portail:Bretagne]]
    [[Jef Le Penven]][[Portail:Morbihan]], [[Portail:Musique bretonne]]
    [[Jeffrey Shaw (écrivain)]][[Portail:Bretagne]]
    [[Joachim Darquistade]][[Portail:Nantes]]
    [[Joachim-Pierre Buléon]][[Portail:Bretagne]]
    [[Joseph Abasq]][[Portail:Bretagne]]
    [[Joseph Bigot]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Joseph Canal]][[Portail:Nantes]]
    [[Joseph Du Baudory]][[Portail:Vannes]]
    [[Joseph Duchauchix]][[Portail:Bretagne]]
    [[Joseph Halléguen]][[Portail:Bretagne]]
    [[Joseph Paris (industriel)]][[Portail:Nantes]]
    [[Joseph-Marie-Prudent Lucas de Bourgerel]][[Portail:Morbihan]]
    [[Joseph-Michel-Jean-Baptiste-Paul-Augustin Micolon de Guérines]][[Portail:Nantes]]
    [[Joël Cloarec]][[Portail:Bretagne]]
    [[Joël Labbé]][[Portail:Morbihan]]
    [[Joël Quiniou]][[Portail:Bretagne]]
    [[Jules Hippolyte Masson]][[Portail:Bretagne]]
    [[Jules-Albert de Dion]][[Portail:Loire-Atlantique]]
    [[Jules-François Le Coq]][[Portail:Nantes]]
    [[Julien Gourdel]][[Portail:Rennes]]
    [[Julien Guillemot]][[Portail:Bretagne]]
    [[Julien Lachuer]][[Portail:Bretagne]]
    [[Julien-Charles Lechat]][[Portail:Nantes]]
    [[Kamp Etrekeltiek ar Vrezhonegerien]][[Portail:Bretagne]]
    [[Keiichirō Kume]][[Portail:Bretagne]]
    [[Kelenn (maison d'édition)]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Keolis Brest]][[Portail:Brest]]
    [[Keraluc]][[Portail:Finistère]]
    [[Kerichen 72]][[Portail:Musique bretonne]]
    [[Kernews]][[Portail:Loire-Atlantique]]
    [[Ki Du]][[Portail:Musique bretonne]]
    [[Kléber Bobin]][[Portail:Nantes]]
    [[Kreiz Breizh]][[Portail:Bretagne]]
    [[Kreiz Breizh Elites]][[Portail:Bretagne]]
    [[Kristen]][[Portail:Bretagne]]
    [[Kristof Jezegou]][[Portail:Bretagne]]
    [[L'Hirondelle (album de Gilles Servat)]][[Portail:Musique bretonne]]
    [[L'Hôtel de la plage]][[Portail:Bretagne]]
    [[L'Or des mers]][[Portail:Bretagne]]
    [[L'Or et le Cuivre]][[Portail:Musique bretonne]]
    [[L'Éclaireur]][[Portail:Loire-Atlantique]]
    [[La Blanche Hermine (album de Gilles Servat)]][[Portail:Musique bretonne]]
    [[La Bretagne (journal)]][[Portail:Bretagne]]
    [[La Bretagne (revue)]][[Portail:Bretagne]]
    [[La Bretagne communiste]][[Portail:Bretagne]]
    [[La Bretagne réelle]][[Portail:Bretagne]]
    [[La Chronique Républicaine]][[Portail:Bretagne]]
    [[La Dervenn]][[Portail:Vannes]]
    [[La Douleur d'aimer]][[Portail:Musique bretonne]]
    [[La Découverte ou l'Ignorance]][[Portail:Musique bretonne]]
    [[La Dépêche de Brest et de l'Ouest]][[Portail:Bretagne]]
    [[La Gazette du Centre Morbihan]][[Portail:Bretagne]]
    [[La Liberté brille dans la nuit]][[Portail:Musique bretonne]]
    [[La Ouache]][[Portail:Musique bretonne]]
    [[La Pensée bretonne]][[Portail:Bretagne]]
    [[La Presse d'Armor]][[Portail:Côtes-d'Armor]]
    [[La Tradition symphonique]][[Portail:Musique bretonne]]
    [[La Tradition symphonique 2]][[Portail:Musique bretonne]]
    [[La Veillée du troisième millénaire]][[Portail:Musique bretonne]]
    [[La Vitréenne football club]][[Portail:Ille-et-Vilaine]]
    [[Lady Maud]][[Portail:Bretagne]]
    [[Laetitia Nantes Handball]][[Portail:Nantes]]
    [[Laiterie de Saint-Malo]][[Portail:Saint-Malo]]
    [[Landes de Lanvaux]][[Portail:Morbihan]]
    [[Laurent Guyot]][[Portail:Bretagne]]
    [[Laurent Hervé]][[Portail:Bretagne]]
    [[Laurent Huard]][[Portail:Bretagne]]
    [[Laurent Viaud]][[Portail:Bretagne]]
    [[Laëtitia Payet]][[Portail:Morbihan]]
    [[Le Beau Voyage (album)]][[Portail:Musique bretonne]]
    [[Le Cheval d'orgueil (livre)]][[Portail:Bretagne]]
    [[Le Christ sur la croix]][[Portail:Vannes]]
    [[Le Cohty]][[Portail:Vannes]]
    [[Le Comptoir Irlandais]][[Portail:Finistère]]
    [[Le Courrier Indépendant]][[Portail:Bretagne]]
    [[Le Courrier du Pays de Retz]][[Portail:Loire-Atlantique]]
    [[Le Cours des Glénans]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Le Gouessant]][[Portail:Bretagne]]
    [[Le Grand Huernic]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Grégan]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Mensuel de Rennes]][[Portail:Rennes]]
    [[Le Mensuel du Golfe du Morbihan]][[Portail:Vannes]]
    [[Le Pain des rêves]][[Portail:Bretagne]]
    [[Le Pays Malouin]][[Portail:Bretagne]]
    [[Le Pays de Fougères]][[Portail:Bretagne]]
    [[Le Perenno]][[Portail:Vannes]]
    [[Le Petit Bleu]][[Portail:Bretagne]]
    [[Le Petit Huernic]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Le Ploërmelais]][[Portail:Bretagne]]
    [[Le Pouvoir des mots]][[Portail:Musique bretonne]]
    [[Le Pélégrin]][[Portail:Musique bretonne]]
    [[Le Trégor]][[Portail:Bretagne]]
    [[Le Vaisseau de pierre]][[Portail:Musique bretonne]]
    [[Leier Eusa]][[Portail:Finistère]]
    [[Les Armes de Bretagne]][[Portail:Musique bretonne]]
    [[Les Clam's]][[Portail:Bretagne]]
    [[Les Enfants de Néant]][[Portail:Bretagne]]
    [[Les Seigneurs]][[Portail:Bretagne]]
    [[Les Trois Frères (sinago)]][[Portail:Vannes]]
    [[Ligne de Carhaix à Loudéac]][[Portail:Bretagne]]
    [[Ligne de Clisson à Cholet]][[Portail:Loire-Atlantique]]
    [[Ligne de Commequiers à Saint-Gilles-Croix-de-Vie]][[Portail:Loire-Atlantique]]
    [[Ligne de Morlaix à Carhaix]][[Portail:Finistère]]
    [[Ligne de Nantes à Saint-Gilles-Croix-de-Vie]][[Portail:Loire-Atlantique]]
    [[Ligne de Nantes-État à La Roche-sur-Yon par Sainte-Pazanne]][[Portail:Loire-Atlantique]]
    [[Ligne de Navibus - Erdre]][[Portail:Nantes]]
    [[Ligne de Navibus - Loire]][[Portail:Nantes]]
    [[Ligne de Navibus - Passeur de l'Erdre]][[Portail:Nantes]]
    [[Ligne de Perros-Saint-Fiacre au Fret]][[Portail:Finistère]]
    [[Ligne de Saint-Hilaire-de-Chaléons à Paimbœuf]][[Portail:Loire-Atlantique]]
    [[Ligne de Saint-Méen à Loudéac]][[Portail:Bretagne]]
    [[Lionel Jaffredo]][[Portail:Vannes]]
    [[Lionel Rouxel]][[Portail:Bretagne]]
    [[Liste des cours d'eau de Bretagne]][[Portail:Bretagne]]
    [[Liste des députés des Côtes-d'Armor]][[Portail:Bretagne]]
    [[Liste des députés du Finistère]][[Portail:Finistère]]
    [[Liste des députés du Morbihan]][[Portail:Morbihan]]
    [[Liste des intercommunalités du Finistère]][[Portail:Finistère]]
    [[Liste des joueurs d'En Avant Guingamp]][[Portail:Bretagne]]
    [[Liste des évêques de Nantes]][[Portail:Duché de Bretagne]], [[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Liste des évêques de Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Liste des évêques de Saint-Brieuc]][[Portail:Saint-Brieuc]]
    [[Liste des évêques de Tréguier]][[Portail:Côtes-d'Armor]]
    [[Litanies pour l'an 2000]][[Portail:Musique bretonne]]
    [[Littoral Média]][[Portail:Bretagne]]
    [[Littérature en breton]][[Portail:Bretagne]]
    [[Lié (rivière)]][[Portail:Morbihan]]
    [[Lou Raoul]][[Portail:Bretagne]]
    [[Louis Chopier]][[Portail:Bretagne]]
    [[Louis Dio]][[Portail:Vannes]]
    [[Louis Grivart]][[Portail:Ille-et-Vilaine]]
    [[Louis Guillois]][[Portail:Morbihan]]
    [[Louis Harel de la Noë]][[Portail:Bretagne]]
    [[Louis II de Rohan-Chabot (1679-1738)]][[Portail:Bretagne]]
    [[Louis Jules Trochu]][[Portail:Bretagne]]
    [[Louis Orvoën]][[Portail:Finistère]]
    [[Louis Picquet du Boisguy]][[Portail:Bretagne]]
    [[Louis Rousseau de Saint-Aignan]][[Portail:Nantes]]
    [[Louis de Cossé de Brissac (1625-1661)]][[Portail:Bretagne]]
    [[Louis-Alphonse de Gouzillon de Bélizal]][[Portail:Côtes-d'Armor]]
    [[Louis-François Papin]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Louis-Hyacinthe Levesque]][[Portail:Nantes]]
    [[Louis-Jules-François-Joseph d'Andigné de Mayneuf]][[Portail:Nantes]]
    [[Louis-Marie Saget]][[Portail:Nantes]]
    [[Louise de Kergariou]][[Portail:Bretagne]]
    [[Loulotte]][[Portail:Bretagne]]
    [[Loïc Druon]][[Portail:Bretagne]]
    [[Loïc Taillebrest]][[Portail:Musique bretonne]]
    [[Lucien Fruchaud]][[Portail:Saint-Brieuc]]
    [[Lucien Raoul]][[Portail:Bretagne]]
    [[Luna Park (St-Brieuc)]][[Portail:Côtes-d'Armor]], [[Portail:Saint-Brieuc]]
    [[Lycée Chateaubriand]][[Portail:Rennes]]
    [[Lycée Saint-François-Xavier]][[Portail:Vannes]]
    [[Léon Trégor Basket 29]][[Portail:Finistère]]
    [[Léopold Cassegrain]][[Portail:Nantes]]
    [[Léopold Follioley]][[Portail:Nantes]]
    [[Macario Vitalis]][[Portail:Bretagne]]
    [[Mad in Sérénité]][[Portail:Musique bretonne]]
    [[Madeleine Desroseaux]][[Portail:Bretagne]]
    [[Madelynn]][[Portail:Bretagne]]
    [[Maison de Coëtlogon]][[Portail:Bretagne]]
    [[Maison de la poésie de Rennes]][[Portail:Rennes]]
    [[Manoir de l'automobile]][[Portail:Bretagne]]
    [[Maodez Glanndour]][[Portail:Bretagne]]
    [[Marathon de la Côte d'Amour]][[Portail:Loire-Atlantique]]
    [[Marc Simon]][[Portail:Bretagne]]
    [[Marcel Carfantan]][[Portail:Bretagne]]
    [[Marcel Rupied]][[Portail:Bretagne]]
    [[Marcel Saupin]][[Portail:Nantes]]
    [[Marche-Avec]][[Portail:Bretagne]]
    [[Marguerite Gourlaouen]][[Portail:Bretagne]]
    [[Marguerite de Foix (morte en 1486)]][[Portail:Duché de Bretagne]]
    [[Mari-Lizig]][[Portail:Bretagne]]
    [[Marianna Abgrall]][[Portail:Bretagne]]
    [[Marie Allo]][[Portail:Bretagne]]
    [[Marie Le Drian]][[Portail:Bretagne]], [[Portail:Finistère]], [[Portail:Lorient]]
    [[Marie Le Franc]][[Portail:Vannes]]
    [[Marie d'Angleterre (1344-1362)]][[Portail:Duché de Bretagne]]
    [[Marie de Limoges]][[Portail:Duché de Bretagne]]
    [[Marie-Anne Chapdelaine]][[Portail:Ille-et-Vilaine]]
    [[Marines (album)]][[Portail:Musique bretonne]]
    [[Marmohec]][[Portail:Bretagne]]
    [[Marquis de Sade (groupe)]][[Portail:Rennes]]
    [[Maryannick]][[Portail:Bretagne]]
    [[Maryvonne Quéméré-Jaouen]][[Portail:Finistère]]
    [[Mask ha gazh]][[Portail:Musique bretonne]]
    [[Mathieu Berson]][[Portail:Vannes]]
    [[Mathurin Henrio]][[Portail:Morbihan]]
    [[Maure de Bretagne communauté]][[Portail:Ille-et-Vilaine]]
    [[Maurice Delarue]][[Portail:Bretagne]]
    [[Maurice Halna du Fretay (archéologue)]][[Portail:Finistère]]
    [[Maurice Le Lannou]][[Portail:Bretagne]]
    [[Maurice Polard]][[Portail:Bretagne]]
    [[Maurice Étiennez]][[Portail:Nantes]]
    [[Maxime Maufra]][[Portail:Bretagne]]
    [[Maîtrise de la Perverie]][[Portail:Nantes]]
    [[Menhir de Kergadiou]][[Portail:Bretagne]]
    [[Menhir de Kerloas]][[Portail:Bretagne]]
    [[Menhir de Lanvar]][[Portail:Finistère]]
    [[Mer des Faluns]][[Portail:Bretagne]]
    [[Meu (rivière)]][[Portail:Ille-et-Vilaine]]
    [[Michel Esneu]][[Portail:Bretagne]]
    [[Michel Guibé]][[Portail:Rennes]], [[Portail:Duché de Bretagne]]
    [[Michel Le Bris]][[Portail:Bretagne]]
    [[Michel Le Scouarnec]][[Portail:Morbihan]]
    [[Michel Luneau]][[Portail:Bretagne]]
    [[Michel Manoll]][[Portail:Loire-Atlantique]]
    [[Michel Moreau-Grandmaison]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[Michel Nicolas (historien)]][[Portail:Bretagne]]
    [[Michel Santangelli]][[Portail:Musique bretonne]]
    [[Michel Sauvageau]][[Portail:Bretagne]]
    [[Michel Scouarnec]][[Portail:Finistère]]
    [[Michelle Meunier]][[Portail:Loire-Atlantique]]
    [[Michèle Wargnier]][[Portail:Bretagne]]
    [[Mickaël Buzaré]][[Portail:Bretagne]]
    [[Minihi]][[Portail:Bretagne]]
    [[Mon pays t'attend]][[Portail:Musique bretonne]]
    [[Monique Lemaire]][[Portail:Bretagne]]
    [[Morgan (illustrateur)]][[Portail:Bretagne]]
    [[Motte castrale du Roc'h]][[Portail:Finistère]]
    [[Mouchiouse]][[Portail:Vannes]]
    [[Mouladurioù Hor Yezh]][[Portail:Bretagne]]
    [[Moyen breton]][[Portail:Bretagne]]
    [[Musée de la pêche de Concarneau]][[Portail:Bretagne]]
    [[Musée international du Long-Cours Cap-Hornier]][[Portail:Saint-Malo]]
    [[Méaban]][[Portail:Morbihan]]
    [[Ménez Kador]][[Portail:Finistère]]
    [[Nanaloricus mysticus]][[Portail:Finistère]]
    [[Nantes Atlantique Baseball]][[Portail:Nantes]]
    [[Nantes Atlantique Hockey Glace]][[Portail:Nantes]]
    [[Nantes Loire Atlantique Handball]][[Portail:Nantes]]
    [[Nantes Rezé Métropole Volley]][[Portail:Nantes]]
    [[Nantes Volley Féminin]][[Portail:Nantes]]
    [[Nantes-Rezé Basket 44]][[Portail:Nantes]]
    [[Narcisse Chaillou]][[Portail:Nantes]]
    [[Narcisse Quellien]][[Portail:Bretagne]]
    [[Naître]][[Portail:Bretagne]]
    [[Niccolò Caetani]][[Portail:Quimper]]
    [[Nicolas Joseph Marie Le Gall]][[Portail:Bretagne]]
    [[Nicolas Lunven]][[Portail:Vannes]]
    [[Nicole Laurent-Catrice]][[Portail:Bretagne]]
    [[Nos premières années]][[Portail:Musique bretonne]]
    [[Noémie Dondel du Faouëdic]][[Portail:Bretagne]]
    [[Nébuleuse (voilier)]][[Portail:Bretagne]]
    [[Océanopolis]][[Portail:Brest]]
    [[Odile Caradec]][[Portail:Bretagne]]
    [[Oignon de Roscoff]][[Portail:Finistère]]
    [[Olivier Cousin (écrivain)]][[Portail:Bretagne]]
    [[Olivier de Blois]][[Portail:Duché de Bretagne]]
    [[On peut tous rêver]][[Portail:Musique bretonne]]
    [[Orange II]][[Portail:Vannes]]
    [[Orchestre symphonique de Bretagne]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Ordre de la Cordelière]][[Portail:Duché de Bretagne]]
    [[Osismes]][[Portail:Bretagne]]
    [[Ouvrages d'art des chemins de fer des Côtes-du-Nord]][[Portail:Bretagne]]
    [[Paille d'or]][[Portail:Nantes]]
    [[Palais des Sports de la Valette]][[Portail:Rennes]]
    [[Panique celtique]][[Portail:Musique bretonne]]
    [[Panique celtique II, le village]][[Portail:Bretagne]]
    [[Paol Keineg]][[Portail:Bretagne]]
    [[Paolig Combot]][[Portail:Bretagne]]
    [[Papa Poydenot]][[Portail:Finistère]]
    [[Pariz - Breizh]][[Portail:Musique bretonne]]
    [[Pascal Mandart]][[Portail:Vannes]]
    [[Pascal Quintin]][[Portail:Bretagne]]
    [[Pascal Robert]][[Portail:Bretagne]]
    [[Passage de la Teignouse]][[Portail:Morbihan]]
    [[Passage du Fromveur]][[Portail:Bretagne]]
    [[Passerelle du Croaë]][[Portail:Finistère]]
    [[Patrice Kervarrec]][[Portail:Morbihan]]
    [[Patrick Colleter]][[Portail:Bretagne]]
    [[Patrick Le Mercier]][[Portail:Musique bretonne]]
    [[Paul Carron de La Carrière]][[Portail:Ille-et-Vilaine]]
    [[Paul Gury]][[Portail:Vannes]]
    [[Paul Ihuel]][[Portail:Morbihan]]
    [[Paul Le Drogo]][[Portail:Morbihan]]
    [[Paul Lotz]][[Portail:Morbihan]]
    [[Paul Louis Rossi]][[Portail:Nantes]]
    [[Paul du Chatellier]][[Portail:Finistère]]
    [[Paul-Alexis Robic]][[Portail:Bretagne]]
    [[Paul-Yves Sébillot]][[Portail:Bretagne]]
    [[Penn Bleï]][[Portail:Vannes]]
    [[Percubaba]][[Portail:Rennes]]
    [[Petit Veïzit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Phare de la Balue]][[Portail:Saint-Malo]]
    [[Philippe Brinquin]][[Portail:Bretagne]]
    [[Philippe Celdran]][[Portail:Morbihan]]
    [[Philippe Charzay]][[Portail:Bretagne]]
    [[Philippe Mouazan]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Philippe Rault]][[Portail:Bretagne]]
    [[Philippe Tibeuf]][[Portail:Bretagne]]
    [[Philippe Tourault]][[Portail:Histoire de Bretagne]]
    [[Philippe-René Soubzmain]][[Portail:Nantes]]
    [[Philomène Cadoret]][[Portail:Bretagne]]
    [[Pierre Belordeau]][[Portail:Bretagne]]
    [[Pierre Cloarec]][[Portail:Bretagne]]
    [[Pierre Coustard]][[Portail:Nantes]]
    [[Pierre Guillemot]][[Portail:Bretagne]]
    [[Pierre Landais]][[Portail:Duché de Bretagne]]
    [[Pierre Laurent (poète)]][[Portail:Morbihan]]
    [[Pierre Lelong (homme politique)]][[Portail:Finistère]]
    [[Pierre Maille]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Pierre Martin (poète)]][[Portail:Bretagne]]
    [[Pierre Mourain]][[Portail:Loire-Atlantique]]
    [[Pierre Nourry]][[Portail:Vannes]]
    [[Pierre Piédru]][[Portail:Bretagne]]
    [[Pierre Pronost]][[Portail:Bretagne]]
    [[Pierre Péron]][[Portail:Bretagne]], [[Portail:Brest]]
    [[Pierre Savigny de Belay]][[Portail:Bretagne]]
    [[Pierre Tal Coat]][[Portail:Bretagne]]
    [[Pierre Talmont]][[Portail:Bretagne]], [[Portail:Vannes]]
    [[Pierre Toulhoat]][[Portail:Bretagne]]
    [[Pierre de Rohan-Guéméné]][[Portail:Bretagne]]
    [[Pierre de Rostrenen]][[Portail:Duché de Bretagne]]
    [[Pierre de l'Hôpital]][[Portail:Duché de Bretagne]]
    [[Pierre de l'Isle]][[Portail:Bretagne]]
    [[Pierre-Ferdinand de Bausset-Roquefort]][[Portail:Vannes]]
    [[Pierre-Marie Le Provost de Launay]][[Portail:Côtes-d'Armor]]
    [[Pierre-Yves Moign]][[Portail:Musique bretonne]]
    [[Pipriac communauté]][[Portail:Ille-et-Vilaine]]
    [[Piren]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Piriou]][[Portail:Finistère]]
    [[Place de la Liberté (Brest)]][[Portail:Brest]]
    [[Pladic]][[Portail:Vannes]]
    [[Plessis-Bellière]][[Portail:Histoire de Bretagne]]
    [[Pont de l'Ouen]][[Portail:Loire-Atlantique]]
    [[Pont de la Jonelière]][[Portail:Nantes]]
    [[Pont du Guildo]][[Portail:Bretagne]]
    [[Pont ferroviaire de Pirmil]][[Portail:Nantes]]
    [[Pontivy Journal]][[Portail:Bretagne]]
    [[Port-la-Forêt]][[Portail:Bretagne]]
    [[Port-musée de Douarnenez]][[Portail:Finistère]]
    [[Portraits (album)]][[Portail:Musique bretonne]]
    [[Première bataille de Landévant (1795)]][[Portail:Morbihan]]
    [[Première bordée]][[Portail:Musique bretonne]]
    [[Presqu'île de Rhuys]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Prix Xavier de Langlais]][[Portail:Bretagne]]
    [[Projet Saint Michel]][[Portail:Bretagne]]
    [[Projet:Bretagne]][[Portail:Bretagne]]
    [[Projet:Bretagne/Modèles]][[Portail:Bretagne]]
    [[Projet:Finistère]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Projet:Finistère/Modèles]][[Portail:Finistère]]
    [[Promessa]][[Portail:Bretagne]]
    [[Prosper Chubert]][[Portail:Vannes]]
    [[Pêr Loisel]][[Portail:Bretagne]]
    [[Quai des Bulles]][[Portail:Saint-Malo]]
    [[Quartier des Oiseaux (La Baule)]][[Portail:Loire-Atlantique]]
    [[Qub]][[Portail:Quimper]]
    [[Queffleut]][[Portail:Bretagne]]
    [[Quimper Communauté]][[Portail:Bretagne]], [[Portail:Quimper]]
    [[Quimper Cornouaille Tennis de Table]][[Portail:Quimper]]
    [[Quimper Kerfeunteun Football Club]][[Portail:Quimper]]
    [[Quyên Ngo-Dinh-Phu]][[Portail:Bretagne]]
    [[Racing Club d'Ancenis]][[Portail:Loire-Atlantique]]
    [[Radenec]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Radio Campus Rennes]][[Portail:Rennes]]
    [[Radio Côte d'amour]][[Portail:Loire-Atlantique]]
    [[Radio Kerne]][[Portail:Finistère]], [[Portail:Musique bretonne]]
    [[Radio Morbihan Sud]][[Portail:Vannes]]
    [[Radio Rennes]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Radio en breton]][[Portail:Bretagne]], [[Portail:Musique bretonne]]
    [[Raoul du Bouchet]][[Portail:Bretagne]]
    [[Raphaël Corre]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Rasta Bigoud]][[Portail:Musique bretonne]]
    [[Raymonde Allain]][[Portail:Bretagne]]
    [[Raz de Sein]][[Portail:Finistère]]
    [[Recherche généalogique en Bretagne]][[Portail:Bretagne]]
    [[Record SNSM]][[Portail:Bretagne]]
    [[Records du Football Club de Nantes]][[Portail:Nantes]]
    [[Red Ar Mor]][[Portail:Bretagne]], [[Portail:Finistère]]
    [[Redones]][[Portail:Bretagne]]
    [[Regional Airlines (France)]][[Portail:Loire-Atlantique]]
    [[Remparts de Vitré]][[Portail:Duché de Bretagne]]
    [[Rencontres du film documentaire]][[Portail:Côtes-d'Armor]]
    [[René Cardaliaguet]][[Portail:Bretagne]]
    [[René Constant Le Marant de Kerdaniel]][[Portail:Bretagne]]
    [[René Le Corre]][[Portail:Bretagne]]
    [[René Le Lamer]][[Portail:Morbihan]]
    [[René Waldeck-Rousseau]][[Portail:Loire-Atlantique]], [[Portail:Nantes]]
    [[René de Cornulier]][[Portail:Nantes]]
    [[René de Rais]][[Portail:Bretagne]]
    [[Représentations d'Anne de Bretagne]][[Portail:Histoire de Bretagne]], [[Portail:Duché de Bretagne]]
    [[Rivière d'Auray]][[Portail:Morbihan]]
    [[Robert Le Masson]][[Portail:Bretagne]]
    [[Roc'h Ruz]][[Portail:Finistère]]
    [[Roc'h Trevezel]][[Portail:Finistère]]
    [[Roc'h Trédudon]][[Portail:Finistère]]
    [[Rock a Vista]][[Portail:Morbihan]]
    [[Rodolphe Bresdin]][[Portail:Loire-Atlantique]]
    [[Roger Flouriot]][[Portail:Bretagne]]
    [[Roger Laouenan]][[Portail:Bretagne]]
    [[Roland Guillas]][[Portail:Morbihan]]
    [[Rolland (cardinal, 1185)]][[Portail:Bretagne]]
    [[Roller Armor Club Saint-Brieuc]][[Portail:Côtes-d'Armor]]
    [[Ronan Kerdraon]][[Portail:Côtes-d'Armor]]
    [[Ronan Larvor]][[Portail:Bretagne]]
    [[Ronan Le Coadic]][[Portail:Bretagne]]
    [[Ronan Leprohon]][[Portail:Bretagne]]
    [[Ronan Pichery]][[Portail:Bretagne]]
    [[Ronan Salaün]][[Portail:Bretagne]]
    [[Ronan Trémel]][[Portail:Bretagne]]
    [[Roselyne Lefrançois]][[Portail:Bretagne]]
    [[Route départementale 213 (Loire-Atlantique)]][[Portail:Loire-Atlantique]]
    [[Route nationale 136]][[Portail:Bretagne]]
    [[Route nationale 137]][[Portail:Rennes]]
    [[Route nationale 155]][[Portail:Bretagne]]
    [[Route nationale 155a]][[Portail:Bretagne]]
    [[Route nationale 157]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Route nationale 163]][[Portail:Bretagne]]
    [[Route nationale 163bis]][[Portail:Bretagne]]
    [[Route nationale 164]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Route nationale 164bis]][[Portail:Bretagne]]
    [[Route nationale 165]][[Portail:Bretagne]], [[Portail:Loire-Atlantique]]
    [[Route nationale 166]][[Portail:Bretagne]]
    [[Route nationale 166a]][[Portail:Bretagne]]
    [[Route nationale 167]][[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Route nationale 168]][[Portail:Bretagne]]
    [[Route nationale 168a]][[Portail:Bretagne]]
    [[Route nationale 169]][[Portail:Bretagne]]
    [[Route nationale 170]][[Portail:Bretagne]]
    [[Route nationale 171]][[Portail:Loire-Atlantique]]
    [[Route nationale 175]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Route nationale 176]][[Portail:Bretagne]]
    [[Route nationale 177]][[Portail:Bretagne]]
    [[Route nationale 178]][[Portail:Loire-Atlantique]]
    [[Route nationale 23b]][[Portail:Loire-Atlantique]]
    [[Route nationale 23bis]][[Portail:Loire-Atlantique]]
    [[Route nationale 265]][[Portail:Brest]]
    [[Route nationale 365]][[Portail:Bretagne]]
    [[Route nationale 444]][[Portail:Loire-Atlantique]]
    [[Route nationale 465]][[Portail:Bretagne]]
    [[Route nationale 772]][[Portail:Bretagne]]
    [[Route nationale 773]][[Portail:Bretagne]]
    [[Route nationale 774]][[Portail:Bretagne]]
    [[Route nationale 775]][[Portail:Bretagne]]
    [[Route nationale 776]][[Portail:Bretagne]]
    [[Route nationale 777]][[Portail:Bretagne]]
    [[Route nationale 778]][[Portail:Bretagne]]
    [[Route nationale 779]][[Portail:Bretagne]]
    [[Route nationale 780]][[Portail:Bretagne]]
    [[Route nationale 781]][[Portail:Bretagne]]
    [[Route nationale 782]][[Portail:Bretagne]]
    [[Route nationale 783]][[Portail:Bretagne]]
    [[Route nationale 784]][[Portail:Bretagne]]
    [[Route nationale 785]][[Portail:Bretagne]]
    [[Route nationale 786]][[Portail:Bretagne]]
    [[Route nationale 786a]][[Portail:Bretagne]]
    [[Route nationale 786b]][[Portail:Bretagne]]
    [[Route nationale 786c]][[Portail:Bretagne]]
    [[Route nationale 786d]][[Portail:Bretagne]]
    [[Route nationale 787]][[Portail:Bretagne]]
    [[Route nationale 788]][[Portail:Bretagne]]
    [[Route nationale 789]][[Portail:Bretagne]]
    [[Route nationale 790]][[Portail:Bretagne]]
    [[Route nationale 791]][[Portail:Bretagne]]
    [[Route nationale 792]][[Portail:Bretagne]]
    [[Route nationale 793]][[Portail:Bretagne]]
    [[Route nationale 794]][[Portail:Bretagne]]
    [[Route nationale 795]][[Portail:Bretagne]]
    [[Route nationale 796]][[Portail:Bretagne]]
    [[Route nationale 797]][[Portail:Bretagne]]
    [[Route nationale 798]][[Portail:Bretagne]]
    [[Route nationale 801]][[Portail:Loire-Atlantique]]
    [[Route nationale 805]][[Portail:Bretagne]]
    [[Route nationale 806]][[Portail:Bretagne]]
    [[Route nationale 844]][[Portail:Nantes]]
    [[Rozenn Milin]][[Portail:Bretagne]]
    [[Régional (compagnie aérienne européenne)]][[Portail:Loire-Atlantique]]
    [[Régis-Marie-Joseph de L'Estourbeillon de La Garnache]][[Portail:Bretagne]]
    [[Réseau interurbain du Morbihan]][[Portail:Morbihan]]
    [[Résistants du lycée Anatole-Le-Braz]][[Portail:Saint-Brieuc]]
    [[Résultats du Football Club de Nantes en coupe de France]][[Portail:Nantes]]
    [[Sablé (biscuit)]][[Portail:Bretagne]]
    [[Saint Tudy (navire)]][[Portail:Bretagne]]
    [[Saint-Brieuc Côtes-d'Armor Volley-Ball]][[Portail:Saint-Brieuc]]
    [[Saint-Malo à la Hune]][[Portail:Saint-Malo]]
    [[Saint-Michel II (navire)]][[Portail:Bretagne]]
    [[Saint-Nazaire Volley-Ball Atlantique]][[Portail:Saint-Nazaire]]
    [[Saint-gildas-des-bois (fromage)]][[Portail:Loire-Atlantique]]
    [[Sainte Tryphine et le Roi Arthur]][[Portail:Bretagne]]
    [[Saison 1963-1964 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1978-1979 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1992-1993 du FC Nantes]][[Portail:Nantes]]
    [[Saison 1993-1994 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1994-1995 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1996-1997 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1997-1998 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1998-1999 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 1999-2000 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2001-2002 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2002-2003 du FC Nantes Atlantique]][[Portail:Nantes]]
    [[Saison 2003-2004 de l'Étendard de Brest]][[Portail:Bretagne]]
    [[Salle Omnisport Laetitia Nantes]][[Portail:Nantes]]
    [[Salle des sports de Saint-Nazaire]][[Portail:Saint-Nazaire]]
    [[Salva du Béal]][[Portail:Finistère]]
    [[Sarre (Morbihan)]][[Portail:Côtes-d'Armor]], [[Portail:Morbihan]]
    [[Saupiquet (marque)]][[Portail:Nantes]]
    [[Sedrenn]][[Portail:Musique bretonne]]
    [[Serge Kerval]][[Portail:Musique bretonne]]
    [[Shane Cough]][[Portail:Rennes]]
    [[Silky Shai]][[Portail:Nantes]]
    [[Sillon de Bretagne]][[Portail:Bretagne]]
    [[Sinago]][[Portail:Vannes]]
    [[Sing Sing (radio)]][[Portail:Saint-Malo]]
    [[Siège de Fort Sans-Culotte]][[Portail:Morbihan]]
    [[Skolaj Penn-ar-Bed]][[Portail:Musique bretonne]]
    [[Société d'histoire et d'archéologie de l'arrondissement de Saint-Malo]][[Portail:Bretagne]]
    [[Société d'émulation des Côtes-d'Armor]][[Portail:Bretagne]]
    [[Société d'études historiques et archéologiques du Goëlo]][[Portail:Côtes-d'Armor]]
    [[Sodeb'O (voilier)]][[Portail:Vannes]]
    [[Spi Ouest-France]][[Portail:Morbihan]]
    [[Stade Fred-Aubert]][[Portail:Saint-Brieuc]]
    [[Stade Yves-Jaguin]][[Portail:Côtes-d'Armor]]
    [[Stade briochin]][[Portail:Saint-Brieuc]]
    [[Stade de la Rabine]][[Portail:Vannes]]
    [[Stade du Roudourou]][[Portail:Côtes-d'Armor]]
    [[Stade lamballais]][[Portail:Bretagne]]
    [[Stade rennais rugby]][[Portail:Rennes]]
    [[Stibiden]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Stone Age (Stone Age)]][[Portail:Bretagne]]
    [[Stunfest]][[Portail:Rennes]]
    [[Stur (presse)]][[Portail:Bretagne]]
    [[Stéphane Cueff]][[Portail:Bretagne]]
    [[Stéphane Le Mignan]][[Portail:Vannes]]
    [[Suite gallaise]][[Portail:Musique bretonne]]
    [[Supporters du Stade rennais football club]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Suzanne Creston]][[Portail:Bretagne]]
    [[Sœurs de la Charité de Saint-Louis]][[Portail:Vannes]]
    [[TVR (Bretagne)]][[Portail:Rennes]]
    [[Templiers dans le Finistère]][[Portail:Finistère]]
    [[Tempo (radio)]][[Portail:Finistère]]
    [[Thierry Le Pennec]][[Portail:Bretagne]]
    [[Thomas Deniaud]][[Portail:Bretagne]]
    [[Théodore Nau]][[Portail:Loire-Atlantique]]
    [[Théodore Roussel]][[Portail:Morbihan]]
    [[Théophile Briant]][[Portail:Bretagne]]
    [[Thérèse Fantou]][[Portail:Bretagne]]
    [[Tilly (réalisateur)]][[Portail:Bretagne]]
    [[Tipiak]][[Portail:Bretagne]]
    [[Tombeau de Merlin]][[Portail:Bretagne]]
    [[Tommy Senger]][[Portail:Bretagne]]
    [[Tonnerre de Brest (brasserie)]][[Portail:Brest]]
    [[Tony Heurtebis]][[Portail:Bretagne]]
    [[TornaoD]][[Portail:Musique bretonne]]
    [[Totems d'Armorique]][[Portail:Bretagne]]
    [[Tour de Bretagne (cyclisme)]][[Portail:Bretagne]]
    [[Tour-modèle type 1811]][[Portail:Bretagne]]
    [[Tourisme en Loire-Atlantique]][[Portail:Loire-Atlantique]]
    [[Tragédie (groupe)]][[Portail:Nantes]]
    [[Traité de Westminster (1353)]][[Portail:Duché de Bretagne]]
    [[Tramway de Saint-Briac à Dinard]][[Portail:Bretagne]]
    [[Tramways d'Ille-et-Vilaine]][[Portail:Bretagne]], [[Portail:Ille-et-Vilaine]]
    [[Tri Bleiz Die]][[Portail:Musique bretonne]], [[Portail:Nantes]]
    [[Tri Yann an Naoned]][[Portail:Musique bretonne]]
    [[Triangle (métro rennais)]][[Portail:Bretagne]], [[Portail:Rennes]]
    [[Triskalia]][[Portail:Bretagne]]
    [[Tristan Mordrelle]][[Portail:Bretagne]]
    [[Tristan Nihouarn]][[Portail:Bretagne]]
    [[Trohennec]][[Portail:Vannes]]
    [[Troilus de Mesgouez]][[Portail:Bretagne]]
    [[Trophée Centre Morbihan]][[Portail:Morbihan]]
    [[Trophée des champions 2002]][[Portail:Lorient]]
    [[Trégornan-en-Glomel]][[Portail:Côtes-d'Armor]]
    [[Tudual Huon]][[Portail:Bretagne]]
    [[Tuilage (musique)]][[Portail:Bretagne]]
    [[Téviec]][[Portail:Morbihan]]
    [[Un recteur de l'Île de Sein]][[Portail:Bretagne]]
    [[Université de Nantes Aviron]][[Portail:Nantes]]
    [[Urba (album)]][[Portail:Musique bretonne]]
    [[Urielle de Trémeur]][[Portail:Bretagne]]
    [[Utilisateur:GwenofGwened/Sociologie de Vannes]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Utilisateur:Mouche35120/brouillon]][[Portail:Bretagne]]
    [[Va Zi Bihan]][[Portail:Musique bretonne]]
    [[Va pas trop vite]][[Portail:Loire-Atlantique]]
    [[Val sans retour]][[Portail:Ille-et-Vilaine]]
    [[Valentin Vignard]][[Portail:Morbihan]]
    [[Vannes Volley-Ball]][[Portail:Vannes]]
    [[Vannes agglo - Golfe du Morbihan]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Variation (radio)]][[Portail:Côtes-d'Armor]]
    [[Vatar]][[Portail:Bretagne]]
    [[Viaduc de Blanchardeau]][[Portail:Bretagne]]
    [[Viaduc de Morlaix]][[Portail:Bretagne]]
    [[Viaduc de Ponto]][[Portail:Bretagne]]
    [[Viaduc de Toupin]][[Portail:Côtes-d'Armor]]
    [[Viaduc des Pourrhis]][[Portail:Bretagne]]
    [[Viaduc du Parfond du Gouët]][[Portail:Bretagne]]
    [[Viaduc du Préto]][[Portail:Côtes-d'Armor]]
    [[Victor Boner]][[Portail:Bretagne]]
    [[Victor-Alain Berto]][[Portail:Morbihan]]
    [[Viens dans ma maison]][[Portail:Musique bretonne]]
    [[Ville de Saint-Nazaire]][[Portail:Saint-Nazaire]]
    [[Vincent-Jean-Marie Caradec]][[Portail:Morbihan]]
    [[Virginie Klès]][[Portail:Bretagne]]
    [[Viviane Le Dissez]][[Portail:Côtes-d'Armor]]
    [[Vol 5672 Air France]][[Portail:Finistère]]
    [[Voltigeurs de Châteaubriant]][[Portail:Loire-Atlantique]]
    [[Vorganium]][[Portail:Finistère]]
    [[Wikipédia en breton]][[Portail:Bretagne]]
    [[Xavier Haas]][[Portail:Bretagne]]
    [[Yann Bourven]][[Portail:Bretagne]]
    [[Yann-Ber Piriou]][[Portail:Bretagne]]
    [[Yann-Fanch Kaba]][[Portail:Bretagne]]
    [[Yannick Botrel]][[Portail:Côtes-d'Armor]]
    [[Yannick Le Bourdonnec]][[Portail:Bretagne]]
    [[Yannick Pelletier]][[Portail:Bretagne]]
    [[Yannick Vaugrenard]][[Portail:Loire-Atlantique]]
    [[Yolande de Dreux (reine d'Écosse)]][[Portail:Duché de Bretagne]]
    [[Youenn]][[Portail:Bretagne]]
    [[Yves Bodiguel]][[Portail:Nantes]]
    [[Yves Coativy]][[Portail:Histoire de Bretagne]]
    [[Yves Fréville]][[Portail:Bretagne]]
    [[Yves Guillemot]][[Portail:Morbihan]]
    [[Yves Le Febvre]][[Portail:Bretagne]]
    [[Yves Monot]][[Portail:Bretagne]]
    [[Yves Rocher (entreprise)]][[Portail:Bretagne]]
    [[Yves du Halgouët]][[Portail:Bretagne]]
    [[Yvo Jacquier]][[Portail:Morbihan]]
    [[Yvon Abiven]][[Portail:Finistère]]
    [[Yvon Le Men]][[Portail:Bretagne]]
    [[Yvon Mauffret]][[Portail:Morbihan]]
    [[ZAP (journal)]][[Portail:Rennes]]
    [[Zo (groupe)]][[Portail:Nantes]]
    [[Zénith FM]][[Portail:Ille-et-Vilaine]], [[Portail:Loire-Atlantique]]
    [[École des transmissions]][[Portail:Rennes]]
    [[École européenne supérieure d'art de Bretagne]][[Portail:Bretagne]]
    [[École nationale d'ingénieurs de Brest]][[Portail:Finistère]]
    [[École nationale de la Marine marchande de Saint-Malo]][[Portail:Saint-Malo]]
    [[Écoles de Saint-Cyr Coëtquidan]][[Portail:Morbihan]]
    [[Éditions An-Tour-tan embannadurioù]][[Portail:Bretagne]]
    [[Éditions Apogée]][[Portail:Rennes]]
    [[Éditions Terre de Brume]][[Portail:Bretagne]]
    [[Édmond Puyo]][[Portail:Finistère]]
    [[Édouard Jolin]][[Portail:Nantes]]
    [[Édouard Le Jeune]][[Portail:Finistère]]
    [[Édouard Normand]][[Portail:Nantes]]
    [[Église Notre-Dame de Brennilis]][[Portail:Bretagne]]
    [[Église Notre-Dame du Cloître Saint-Thégonnec]][[Portail:Bretagne]]
    [[Église Saint-Edern de Lannédern]][[Portail:Finistère]]
    [[Église Saint-Hervé de Lanhouarneau]][[Portail:Bretagne]]
    [[Église Saint-Jean-Baptiste de la Feuillée]][[Portail:Bretagne]]
    [[Église Saint-Pierre d'Irvillac]][[Portail:Bretagne]]
    [[Église Saint-Pierre de Guiclan]][[Portail:Bretagne]]
    [[Église Saint-Yves de Plounéour-Ménez]][[Portail:Finistère]]
    [[Église Sainte-Nonne de Dirinon]][[Portail:Bretagne]]
    [[Église Sainte-Pitère]][[Portail:Finistère]]
    [[Église Sainte-Thérèse (Nantes)]][[Portail:Nantes]]
    [[Élections législatives de 2007 en Bretagne]][[Portail:Bretagne]]
    [[Émile Durand (musicien)]][[Portail:Musique bretonne]]
    [[Émile Ernault]][[Portail:Bretagne]]
    [[Émile Gabory]][[Portail:Bretagne]]
    [[Émile Le Beller]][[Portail:Morbihan]]
    [[Émile Mouette]][[Portail:Bretagne]]
    [[Équipe cycliste Bretagne-Schuller]][[Portail:Bretagne]]
    [[Éric Digaire]][[Portail:Musique bretonne]]
    [[État-major de force n° 2]][[Portail:Nantes]]
    [[Étienne Blandin]][[Portail:Bretagne]]
    [[Étienne Bouillé]][[Portail:Bretagne]]
    [[Étienne Célestin Enoch]][[Portail:Rennes]]
    [[Étoile Molène]][[Portail:Saint-Malo]]
    [[Évariste Colombel]][[Portail:Nantes]]
    [[Éven]][[Portail:Bretagne]]
    [[Île Batailleuse]][[Portail:Loire-Atlantique]]
    [[Île Bernardeau-Boire-Rousse]][[Portail:Loire-Atlantique]]
    [[Île Béniguet]][[Portail:Bretagne]]
    [[Île Carn]][[Portail:Finistère]]
    [[Île Clémentine]][[Portail:Loire-Atlantique]]
    [[Île Coton]][[Portail:Loire-Atlantique]]
    [[Île Creïzic]][[Portail:Vannes]]
    [[Île Delage]][[Portail:Loire-Atlantique]]
    [[Île Dorelle]][[Portail:Loire-Atlantique]]
    [[Île Drenec]][[Portail:Vannes]]
    [[Île Forget]][[Portail:Loire-Atlantique]]
    [[Île Godec]][[Portail:Vannes]]
    [[Île Kerguelen (Loire)]][[Portail:Loire-Atlantique]]
    [[Île Meslet]][[Portail:Loire-Atlantique]]
    [[Île Moquart]][[Portail:Loire-Atlantique]]
    [[Île Neuve]][[Portail:Loire-Atlantique]]
    [[Île Neuve-Macrière]][[Portail:Loire-Atlantique]]
    [[Île Perdue]][[Portail:Finistère]]
    [[Île Perdue (Loire)]][[Portail:Loire-Atlantique]]
    [[Île Pinette]][[Portail:Loire-Atlantique]]
    [[Île Quistinic]][[Portail:Vannes]]
    [[Île Ripoche]][[Portail:Loire-Atlantique]]
    [[Île Ronde (rade de Brest)]][[Portail:Finistère]]
    [[Île Saint-Nicolas]][[Portail:Loire-Atlantique]]
    [[Île aux Moines (Loire)]][[Portail:Loire-Atlantique]]
    [[Île aux Oiseaux (Morbihan)]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Île d'Arrouix]][[Portail:Loire-Atlantique]]
    [[Île d'Arun]][[Portail:Finistère]]
    [[Île de Béchit]][[Portail:Morbihan]], [[Portail:Vannes]]
    [[Île de Monty]][[Portail:Loire-Atlantique]]
    [[Île de Petite Biesse]][[Portail:Nantes]]
    [[Île de Térénez]][[Portail:Finistère]]
    [[Île de la Chênaie]][[Portail:Loire-Atlantique]]
    [[Île de la Pointe]][[Portail:Vannes]]
    [[Île de la Prairie au Duc]][[Portail:Nantes]]
    [[Île des Œufs]][[Portail:Vannes]]
    [[Île du Charles]][[Portail:Vannes]]
    [[Île du Renard]][[Portail:Bretagne]]
    [[Île-Grande]][[Portail:Bretagne]]
    [[Îles de Brouel]][[Portail:Vannes]]
    [[Ôbrée Alie]][[Portail:Bretagne]]
    [[Ꝃ]][[Portail:Bretagne]]
    raw-Talk%3AArundel+Castle.wikitext000066400000000000000000000114671335270560400532360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext{{WikiProjectBannerShell|1= {{WikiProject Sussex|class=start|importance=Mid|unref=}} {{WikiProject Architecture|class=start|importance=mid}} {{WPMILHIST |class=start |B-Class-1=no |B-Class-2= |B-Class-3= |B-Class-4= |B-Class-5=no infobox, no plan or map |British-task-force=yes |Fortifications-task-force=yes |Medieval-task-force=yes |Technology-task-force=yes|Early-Modern-task-force=yes}} }} ---- Okay, what's the problem? Zvesoulis put a {{cleanup}} tag on the article, but I've read the thing through several times and don't see a problem warranting the tag. Moreover, this is the very first entry in the talk page which strikes me as meaning we have a ways to go before we start throwing tags around. I removed the tag and made a couple of other edits. If anyone has any thoughts on what needs to be ''cleaned up'' please say something here and/or let me know. Thanks. [[User:Duckecho|Duckecho]] ([[User talk:Duckecho|Talk)]] 7 July 2005 19:52 (UTC) The history section states that the castle was first built in 1068 and that it was built during Edward the Confessor's reign. Which is correct? == Ghosts == What about the 4 ghosts living in the castle? there should be some reference —Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/88.17.252.156|88.17.252.156]] ([[User talk:88.17.252.156|talk]]) 00:33, 8 March 2010 (UTC) == Automated peer review == {{#ifeq:{{{name}}}|Arundel Castle|[[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC)}}The following suggestions were generated by a semi-automatic [[User:AndyZ/peerreviewer|javascript program]], and might not be applicable for the article in question. *{{Done}} Per [[Wikipedia:Only make links that are relevant to the context|Wikipedia:Context]] and [[Wikipedia:Manual of Style (dates and numbers)|Wikipedia:Manual of Style (dates)]], months and days of the week generally should not be linked. Years, decades, and centuries can be linked if they provide [[WP:CONTEXT|context]] for the article.[[User:AndyZ/G#contxt|[?]]] *{{Not done}} Per [[Wikipedia:What is a featured article?]], [[WP:IMAGE|Images]] should have concise captions.[[User:AndyZ/G#caption|[?]]] *'''NA''' You may wish to consider adding an appropriate [[WP:INFOBOX|infobox]] for this article, if one exists relating to the topic of the article. [[User:AndyZ/G#infobox|[?]]] (Note that there might not be an applicable infobox; remember that these suggestions are not generated manually) *{{Done}} As per [[Wikipedia:Manual of Style (dates and numbers)|Wikipedia:Manual of Style (dates)]], dates shouldn't use th; for example, instead of (if such appeared in the article) using ''[[January 30|January 30th]] was a great day'', use ''[[January 30]] was a great day''.[[User:AndyZ/G#dateth|[?]]] *{{Done}} Per [[Wikipedia:Manual of Style (headings)]], headings generally do not start with articles ('the', 'a(n)'). For example, if there was a section called ''==The Biography=='', it should be changed to ''==Biography==''.[[User:AndyZ/G#headingthe|[?]]] *{{Not done}} Watch for [[User:Tony1/How_to_satisfy_Criterion_2a#Redundancy|redundancies]] that make the article too wordy instead of being crisp and concise. (You may wish to try Tony1's [[User:Tony1/How to satisfy Criterion 1a: redundancy exercises|redundancy exercises]].) **Vague terms of size often are unnecessary and redundant - “some”, “a variety/number/majority of”, “several”, “a few”, “many”, “any”, and “all”. For example, “All pigs are pink, so we thought of a number of ways to turn them green.” **“In the year [of] 1138” *Please ensure that the article has gone through a thorough copyediting so that it exemplifies some of [[WP:WIAFA|Wikipedia's best work]]. See also [[User:Tony1/How to satisfy Criterion 1a]].[[User:AndyZ/G#copyedit|[?]]] You may wish to browse through [[User:AndyZ/Suggestions]] for further ideas. Thanks, [[User:MortimerCat|MortimerCat]] ([[User talk:MortimerCat|talk]]) 00:02, 14 April 2008 (UTC) raw-Talk%3AAustralian+rules+football%2FArchive+1.wikitext000066400000000000000000002573071335270560400573640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext{{talkarchive}} '''Archive 1''' ==The Irish connection == Mmmm, it is very similar to Irish football, I wonder - was there significant Irish immigration in Australia at the time. {end sarcasm} Australian Rules = Irish Football played on a cricket pitch. It's ironic that us Aussie's love to play up AFL's uniqueness, yet it's uniqueness that gives away the fact that it's a bastardisation of an immigrant sport that's only played in one other country in the world. - CS * This sort of comment shows a lack of understanding of the history of all football codes. No one says that Australian Football wasn't influenced by other codes, in fact, the reverse is true. It was codified in 1859, which in the context of all the modern codes of football, is very early indeed. It didn't just appear out of thin air, in fact, we know a lot about the people that first played it and who first formulated the rudimentary rules. Almost without exception, they had had exposure to the English public school system - which is where we are to find the roots of almost all the modern football codes. However, during the 1840s and 1850s, they all had their own separate and different rules. So Australian Football is unique in that it was codified so early in the piece and that it was an amalgam of the experience of various wealthy Australians in the English public school system. The biggest influence was clearly the Rugby school (and those who know both sports well will also be familiar with a lot of the shared terminology that is used that is not to be found in the other codes). However, all these different school rules can be categorised roughly into two groups: those that relied predominantly on kicking the ball (precursor to Association Football) and those that relied predominantly on running with the ball (Rugby). Both Australian and Gaelic football share the characteristic that they are a combination of both groups - but that doesn't mean that one influenced the other - it's simply what they both got out of the various rules that were doing the rounds at the time. It is worth mentioning that the modern version of Gaelic Football was codified a good 30 years after Australian Football. All football historians have found no evidence of Gaelic football being an influence on Australian football. This is unsurprising - remembering that the first ones to play the game all had an English public school background - how many of them were going to put their hand up and say let's play this Irish game I know! This is not a partisan view, it is simply what we know of the history of the game. Remember also that the first recorded game of Australian Football was between two wealthy protestant private schools - it is unlikely that any Catholics took the field that day! --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 07:11, 15 November 2005 (UTC) ps I am Catholic. ** Some have suggested that the influence was more in the other direction, i.e. that Gaelic was based on Aussie rules! There is some evidence for this, e.g. the [[GAA]] was not founded until the late 1880s and I know that Archbishop [[Thomas Croke]], one of the founders, was in New Zealand in the 1870s, where he had the opportunity to see "Australasian rules" being played. So maybe it was a "two way street". I will have to get hold of a history of Gaelic football one of these days. [[User:Grant65|Grant65]] [[User talk: Grant65| (Talk)]] 09:44, 15 November 2005 (UTC) I appreciate both your points. Am I driven by a partisan viewpoint? Perhaps, though to be honest I don't really enjoy either game being mainly a follower of rugby league. I'm just dumbfounded by the vehemence towards the idea that the game has Irish roots. And I can't help but think this was driven historically by the very real Irish/English divisions that existed in Australia up until the first wave of Southern European migration last century. The rules of Irish football may not have been codified until 30 years after Aussie Rules, but the game was played 100's of years previously. To dismiss out of hand, that a game familiar to a large (ethnic) part of a new society, had no influence on the development of a game with practically identical rules within that society is laughable. And then to "draw a long bow" to claim that the game is "originally" Australian because the natives were sometimes seen to kick a stuffed wombat around is ludicrous. Would you also deny the influence of African music on rock and roll because europeans played string instruments before exposure to African rhythms? *But...we can trace the influences of rock and roll directly to African music (or afro-american at least) - but the evidence for an Irish influence just isn't there. Please note, I am not saying there were no influences from other codes, I have already stated that the Rugby School provided the greatest influence, but there is zero, I repeat, zero evidence of a Gaelic influence. Lastly, the rules of both Aussie rules and Gaelic football are not similar at all. The pig skin gets moved around the park in a similar manner, but that is where the similarity ends. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 09:00, 17 November 2005 (UTC) :: Zero evidence except our eyes, Pippu ;-) I blame Geoff Blainey for perpetuating this idea that Tom Wills wasn't influenced by Irish football (or Marn Grook). The fact is, no one knows what rules were used in the game that Blainey pushes as the "first" game (between Melbourne Grammar and Scotch College on August 7, 1858,) and they may had bugger all to do with the ones that the Melbourne FC devised the following year. I know those two schools have played ever since, but that doesn't mean they still use the same rules they did in 1858. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 14:28, 22 November 2005 (UTC) *"the rules of both Aussie rules and Gaelic football are not similar at all" Let me assure you, my friend, that the games are closer in rules and style than the two rugby codes that people from the southern and western states seem to commonly lump together. "zero evidence of a Gaelic influence" - again I can only shake my head, it is amazing that a code of football can generate such a fierce and defensive parochialism. **It's funny that I should be accused of parochialism when I am trying to direct everyone to the available evidence - rather than simpy relying on the superficial similarity between Gaelic Football and aussie rules. I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities. And it's not just Geoff Blainey, even as a kid growing up in the 60s I was aware that the first game of footy took place in 1858 between Melb Grammar and Scotch, and that a letter had appeared in the paper around the same time imploring cricketers to take up footy over the winter to keep fit. As I have said before, we know a fair bit about how and why footy came to be played in Melbourne, and the personalities involved - but it is equally true that we do not know all that much about that first game. What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays (was that his name? you know what I mean). And it is instructive that I should refer to him, because that book is set in the English public schools of the 1840s and without doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s - all the main pioneers of aussie rules had attended these schools. In other words, like all the different rules of football at that time, there was a constant tension between running with the ball and kicking the ball - so it should not surprise any of us that '''all''' the codes have an element of each to varying degrees. You might say that soccer doesn't (i.e. running with the ball) - but in fact the goalkeeper is allowed to run a short distance with the ball and kick it from his hand a la Gaelic/Australian style. What is the significance of that? Because the precursors of Soccer allowed that to happen to a far greater degree. Read the [[Cambridge Rules]] and [[Sheffield Rules]]. These are basically the rules of Aussie rules as they were codified in 1859! So don't just rely on the superficial similarity of Gaelic football and aussie rules - dig a little deeper and look at the prevailing environment of the 1840s and 1850s - aussie rules, indeed all the modern football codes, can only be truly understood in that context. [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 00:16, 25 November 2005 (UTC) ::Pippu, you say: "I can assure everyone that if you wanted to do an in depth analysis of the rules of both codes that you would find more dissimilarities than similarities." But rules on paper are just that, rules on paper; the two games are clearly similar in the way they are played. Can you imagine a compromise/hybrid (like International rules) between Aussie rules and either code of rugby? Or soccer and rugby? I'm sorry, I know it's an institution, but the 1858 game between Melb Grammar and Scotch was ''not'' the first time any kind of football was played in Melbourne, and since we don't know what rules they used, it has as much to do with Aussie rules as a game of rugby (codified in 1845) or soccer. IMO, Wills' letter to ''Bell's Life'' is the beginning, as was the experimental game played in the Richmond Paddock (Yarra Park) as a result, three weeks later. The same day Melbourne Grammar played a St Kilda team. This was ''one week before'' the Grammar-Scotch game was played (with Wills as referee). "What I can be confident of is that it would have looked nothing like either aussie rules or gaelic of the modern age but rather more like a version of rugby a la Tom Brown's Schooldays...." Agreed. "[W]ithout doubt, that is the source of the Aussie Rules that was played in 1850s and 1860s..." It is ''one'' of the sources, yes. For example rugby and Aussie rules in the 1850s both had 20 players per team. ::"[T]he precursors of Soccer allowed that to happen to a far greater degree. Read the Cambridge Rules and Sheffield Rules. These are basically the rules of Aussie rules as they were codified in 1859!" Sheffield, yes. IMO, the key is not "kicking v running"; it is the lack of an offside rule, which is what sets the Sheffield rules, Aussie rules and Gaelic apart. That is a very Irish thing — it was in [[hurling]] before any of these codes of football exited. Cambridge had an offside rule. And not quite enough time elapsed between the Sheffield rules (1857) and Wills' experiments of 1858, for the former to have influenced the latter. So I suspect that it was either a case of parallel evolution or they were both influenced by a common "ancestor". [[Image:NonFreeImageRemoved.svg|30px]] [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 16:27, 20 December 2005 (UTC) :::Are we in disagreement on any of these points? All I am saying is that the Gaelic influence on aussie rules is inconclusive (at best!) and that '''all''' the modern football games can be traced back to the various english public school games of the 1840s and 1850s. Funny you should mention composite rules of aussie rules/rugby - I believe that in 2008, to mark the 150th anniversary of the first recorded game of our national game (however it may have been played back then), we should try and recreate the rules of 1858, and it would basically be a composite aussie rules/rugby game, and the AFL should challenge the Wallabies (or anyone else for that matter) playing these composite rules. You first read the idea here folks, don't forget it! Re a hybrid soccer/rugby game - I am all for it, because the end result would undoubtedly look better than either of them! [[Image:Flag of Sicily.svg|40px]] [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 22:09, 20 December 2005 (UTC) ps one of our compatriots told me to stop using the western bulldogs logo, so hopefully my new icon is more acceptable. ==Miscellaneous== Are there really no older professional teams? I have found some older cricket teams but don't know if they are professional or not. ---rmhermen well, its older than soccer. thats good enough for me. In fact, professionalism was not allowed by the VFL until its Rule 29 of 1911 (although under-the-table payments may well have occurred), and Melbourne FC was famous for being amateur for many years afterwards, so I don't think this can be justified. [[User:Grant65|Grant65]] 10:28, 14 Mar 2004 (UTC) ---- I understand and appreciate the writer's enthusiasm for the sport, but the last sentence in partciular needs to be rephrased to be less partisan about its alleged superiority over other variants of football. ---- No, I agree with the author of the article. Where he says there are other ''leagues'' in Australia, he is not referring to variants of the sport, he is referring to other groups of teams who play each other- other divisions, so to speak. For instance, in Western Australia, there is the WAFL- the ''West'' Australian Football League. More people are interested in the AFL than regional leagues like WAFL, therefore AFL is more popular. I don't think the author's comment at the end is unjustified, or biased at all. -- [[User:Mark Ryan|Mark Ryan]] ---- By the way, I wrote a bunch more stuff for this article months ago that seems to have been lost by somebody's errant revision. I hope the new wikipedia software will support a complete revision history. . . [[User:Robert Merkel|Robert Merkel]] ---- I saw some games on TV in the US. Who's the guy in the white suit who waves around flags when a goal is scored? Shouldn't this be mentioned in the article somewhere? :The Goal Umipre ---- I like the diagrams, but the font is much too small. [[User:Daniel Quinlan|Daniel Quinlan]] 08:31, Aug 2, 2003 (UTC) ---- ==Winter== What is the difference between summer and winter in Australia, that the same fields are used but for different sports? -- [[User:Error|Error]] ::um... the weather! You are obviously from a small country like england where the climate is basically the same in every location within the country. Australia is a big country. In melbourne you may be able to get away with playing in summer, most of the time, but in Brisbane you'd be carried off the field in a coffin! Summer is hot (avg 29 degrees C but it reaches 40) winter is cold (avg 20 degrees C). That's the difference. [[User:Factoid Killer|Factoid Killer]] 14:06, 21 November 2005 (UTC) :::No way in Melbourne - plenty of days over 30 and one or two up to 40. That's why the players train in ice vests when they're training in summer, even in Melbourne. Now, Hobart on the other hand...--[[User:Stevage|Stevage]] 16:36, 24 November 2005 (UTC) ::::You can have as many extreme days as you like but the average summer temperature for melbourne is still 22 degrees which is only 2 degrees warmer than the average winter temp for Brisbane. :::::Indeed, even [http://www.bom.gov.au/climate/averages/tables/cw_070282.shtml Canberra] is has hotter summers than [http://www.bom.gov.au/climate/averages/tables/cw_086071.shtml Melbourne]. Nearly as hot as [http://www.bom.gov.au/climate/averages/tables/cw_040214.shtml Brissie]. ---- I have to take issue with the following - "All of the original VFL clubs are still in existence, with the exception of South Melbourne Football Club who in 1982 relocated to Sydney and became known as the Sydney Swans and the Fitzroy which merged with the Brisbane in 1996 due to financial difficulties." Does "exist" mean the club no longer plays in the VFL/AFL, or no longer exists? Fitzroy still exists as an amateur club. [[User:RoyalDave|RoyalDave]] ==History== The history section on this page needs to be corrected to bring it into line with the information on this site http://www.fullpointsfooty.net/melbourne.htm, but I'l leave that to the Aussies. [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 14:21, 9 Mar 2004 (UTC) Mintguy has a point, although I've said to him elsewhere [[Talk:Football]], I think fullpointsfooty.net is wrong on the early history. In fact, a lot of the histories of Aussie rules available on the web seem to be terrible and contradictory. We have a great opportunity to do better :-) Anyway, I've expanded and updated the history section. In particular, I've addressed some inaccuracies, such as (1) the role of H.C.A. Harrison, which seems to be exaggerated by almost everyone except serious historians; (2) the previous omission of the experiments at the Richmond Paddock, and (3) the "significance" of the game between Melbourne Grammar and Scotch College in 1858. To name a few. [[User:Grant65|Grant65]] 18:10, 12 Mar 2004 (UTC) ---- I just had another look at Blainey's ''A Game of Our Own'' (1990; there is a 2003 edition, which I haven't seen yet), and Rob Hess & Bob Stewart's ''More Than A Game'' (1998). The latter book provides a few more details: they say that "a rugby ball" was used in the experimental game on July 31, 1858; that people of various backgrounds were involved, and; that rules were supposed to have been formulated afterwards, although these have not survived. Hess & Stewart barely mention the Melbourne Grammar v. Scotch College match on August 7. Blainey is a prolific promoter of that game (cynics might say because of his own background), but he doesn't discuss the rules either. (However, it is known that Wills did umpire that game.) Re. the other drafters of the 1859 rules, Hess & Stewart say that, like Wills, Hammersley and Thompson were ex-Cambridge University, and Smith was Irish and had attended Trinity College in Dublin. (There are some similarities between the Cambridge rules and Aussie rules, see [[Football#The Establishment of Modern Codes of Football]].) Hess & Stewart say Harrison was not involved. They also cite a letter to a Melbourne newspaper in 1864, suggesting that the English [[Football Association]] rules of 1863 had been by influenced by the Melbourne FC rules! [[User:Grant65|Grant65]] 10:28, 14 Mar 2004 (UTC) Grant. You've just reminded me of something with that last sentence. Some time ago I tried to find out about early proponents of Association football in Australia but I found virtually no information about this. I did find out that early bodies subscribing to the FA rules included the Southern British Football Association in New South Wales, the Anglo-Australian Football Association in Victoria and the British Football Associations of Queensland, South Australia and Tasmania. But I couldn't find any dates relating to the establishment and/or demise of these organisations. [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 10:56, 14 Mar 2004 (UTC) Mintguy, see the latest comments on my talk page. [[User:Grant65|Grant65]] 13:19, 14 Mar 2004 (UTC)~ ---- The article states that the VFA was formed in 1877, but the list of teams is incorrect. For example, Essendon is not listed as a team in the VFA in 1877, but they finished fourth in that year. There is also no mention of the earlier Victorian competition that preceded the VFA. [[User:B.d.mills|B.d.mills]] 12:54, 28 Sep 2004 (UTC) ==Rules== I think the section on the rules could be expanded. Basic information like the number of players is lacking, and can only be deduced from studying the images. [[User:Abigail-II|Abigail]] 10:48, Mar 11, 2004 (UTC) It seems that I am far from the only one who has mixed up the various games played in 1858. [http://www.statelibrary.vic.gov.au/slv/slvnews/aussierulesonline.pdf] [[User:Mintguy|Mintguy]] [[User talk: Mintguy|(T)]] 13:13, 14 Mar 2004 (UTC) ===Length of the Game=== Seems an obvious thing to have, yet it's currently missing. As far as I know it's four quarters of thirty minutes, but I don't know who keeps time and whether it can go over thirty, or what happens if the scores are level at full time. Aussie input welcome! [[User:Deadlock|Deadlock]] 19:45, 24 September 2005 (UTC) :Good point - done! Revisions welcome. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 10:09, 25 September 2005 (UTC) ::Thanks - I now understand why when the clock showed 10 minutes the commentator said we were half-way through the final quarter of the GF highlights I saw. The quarter eventually ran to 32 minutes... [[User:Deadlock|Deadlock]] 23:18, 25 September 2005 (UTC) Each quarter runs for 20 minutes. Over time is what causes the game to go past the 20 minute mark. Overtime can be caused by a number of factors such as -the umpire returning the ball to the center to be bounced and resume play (30-40sec. each time) -a player getting injured and needing to be carried off the feild (3-6min) -A player taking a long time to have a shot at goal. (1-2min.) etc. Overtime is usually no more than 10 minutes which may have contributed to confusion about 30 minute quarters. Time is keept by an offical time keeper independent of the players and umpire. Only the umpire can call for the clock to be stoped which is what causes overtime. ==Rugby League== To explain my last edit: it's not accurate to say that Aussie Rules was "developed as an alternative to Rugby", with a link to [[Rugby League]], because Aussie Rules was invented long before there was any such thing as "Rugby League" and before there was even much [[Rugby Football]] outside [[Rugby School]]. Neither would it be accurate to describe Aussie Rules as an offshoot of Rugby. See [[Football#The_Establishment_of_Modern_Codes_of_Football]]. [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 21:09, Apr 12, 2004 (UTC) == [[Australian Rules Football]] <-> [[Australian Football League]] == I added a section today, under the "Future teams" heading. However on re-reading it seems that the entire "teams" section, as well as my additional section, should really go in the [[Australian Football League]] article. However I figured if this was right, someone would have done it already. Ideas anyone? -- [[User:Chuq|Chuq]] 00:16, 20 Jul 2004 (UTC) :Yes, I think it should go on the AFL page.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 18:50, Apr 8, 2005 (UTC) ::I moved both the future teams article, as well as the Hall of Fame section to [[Australian Football League]]. I beleive that the Hall of Fame does not belong because it is the '''AFL''' Hall of Fame. The teams and leagues section needs serious editing and splitting up before it can be moved to other articles - a job for another day. [[User:Bjmurph|Bjmurph]] 09:47, 5 May 2005 (UTC) :::Actually it's the "Australian Football Hall of Fame" (but it's already been moved back in the article). [[Image:Flag_of_Australia.svg|30px]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|talk]] 13:03, May 5, 2005 (UTC) ::::Yes, I accept I was wrong in this assumption, however, it still may not belong in this article. Perhaps it should be removed from both this page and the AFL page, and moved to it's own, to remove the duplicate entries. [[User:Bjmurph|Bjmurph]] 13:17, 5 May 2005 (UTC) :::::Possibly a good idea, assuming there is enough to write about it. If there is a HOF article in its own right, then obviously both the AFL and ARF articles should link to it, but in the meantime it should reside under Australian Rules Football, not the AFL. [[Image:Flag_of_Australia.svg|30px]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|talk]] 15:44, May 5, 2005 (UTC) I would like to see the names of the 12 AHoF "legends" (at least) remain in this article, as there were very few mentions of players when I originally added the HoF section. A separate article on the HoF would still be a good idea, as it has a lot more members than just the 12 legends. By the way, almost none of the legends had article when I added that list and Wikipedia is still short of articles on Aussie rules players. (Except for the fan contributions on current players like [[Chris Tarrant]] etc.) [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 00:17, May 6, 2005 (UTC) It seems silly to have the Hall of Fame information duplicated on both this page and the AFL page. I agree that it needs its own page but perhaps there should be some consensus about where it really should go? My vote, fwiw, is to leave it on this page in preparation for moving it to its own page later.--[[User:The Brain of Morbius|The Brain of Morbius]] 07:45, 9 Jun 2005 (UTC) :There is nothing wrong with having duplicate material on different pages, when appropriate. If anything I think the HoF material should be removed from the AFL page, since the HoF is about the whole history of the game and not just the AFL, but there may be opposition to that. [[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 11:48, Jun 10, 2005 (UTC) ::Yup the HoH should be in this article. On the other hand, the "Notable VFL/AFL records" section should be removed from this article if duplication is an issue between the two pages. - [[User:Squilibob|Squilibob]] 07:25, 1 December 2005 (UTC) ==IAFC== The article indicates that the IAFC is the official administrative body for Australian rules football internationally but I think you would get a very different view on that from the AFL, who see themselves as the official international representative body for the sport. If someone can come up with a statement from the AFL that it recognises the IAFC as the official international body though, I'd be happy to retain the reference. --[[User:Roisterer|Roisterer]] 04:05, 10 Oct 2004 (UTC) :The AFL certainly see themselves as the universal governing body, and I don't think I've seen any official AFL statements regarding the IAFC but I can guarantee they wouldn't be positive. [[Image:Flag_of_Australia.svg|30px|]] [[User:Plattopus|plattopus]][[User_talk:Plattopus|is this thing on?]] 18:36, Apr 8, 2005 (UTC) ::The IAFC is not recognised by the AFL. No doubt the IAFC would say "who is the AFL to recognise us or not?" They would have a point since the AFL in recent years has shown itself as strangely reluctant to promote the game in countries such as Denmark where the game has grown of its own accord.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 18:50, Apr 8, 2005 (UTC) == Diagrams == Anyone want to have a go at adding the new centre circle into the diagrams? --[[User:The Brain of Morbius|The Brain of Morbius]] 02:48, 5 May 2005 (UTC) == Footy == Is this section really necessary or appropriate? :Neither - it's vandalism, now reverted.--[[User:The Brain of Morbius|The Brain of Morbius]] 06:32, 21 July 2005 (UTC) == What is a "clearance"? == When I watch AFL football on TV, I often hear the announcers talking about "clearances" and "disposals", which events are also tabulated among the statistics. Unfortunately, no one ever bothers to tell us Americans what those terms mean. I decided that a Web search would provide me the answers. Actually, I have searched extensively; and, though I did find here a definition of "disposal", I am still at a loss for an exact definition of "clearance". I suppose that a clearance has occurred when the ball is kicked a long ways, but I suspect field position has something to do with it. I don't know if a hand pass can count as a clearance. I hope that someone who knows will add to the article a definition of "clearance". [[User:DrHow|DrHow]] 15:17, 26 August 2005 (UTC) :A clearance is more correctly known as a "centre clearance", and refers to when the ball is kicked out of the centre square to the advantage of one team or the other directly from the centre bounce after a goal or at the beginning of a quarter. So if there's a stoppage in play in the centre square leading to an umpire bounce, the ensuing kick out of the square is NOT a clearance; but if it occurs as a direct consequence of the centre bounce it is. :Not sure where exactly to put that in the article as yet, but I'm sure someone will think of a way! --[[User:The Brain of Morbius|The Brain of Morbius]] 05:10, 27 August 2005 (UTC) ::I think that is a pretty good definition, but in modern day commentary I am pretty sure they have extended the term to mean a clearance from any stoppage. In modern day footy, the team that can win the most clearances from all forms of stoppages will nearly always win the game and thus the frequency of the use of the term. Also, it can mean a handball if it has effectively cleared the area of the stoppage to the team's advantage, so a handball that went nowhere and resulted in another ball up would not be counted as a stat. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'coz!)]] 12:03, 7 September 2005 (UTC) == Latest edit == The latest anonimous edit looks like a bit of POV mischief from a banana bender with taped back ears and no neck who doesn't mind sniffing the odd backside. Anyone with sufficient powers out there agree on a roll back? --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'coz!)]] 08:53, 14 September 2005 (UTC) :Pippu, absolutely agree to that. [[Wikipedia:Be bold in updating pages|Be bold]]. You don't need special powers to roll-back, just go to the edit history and select the previous edit (the good one) and press edit and save. You will get a warning that you're going to overwrite the current version but just say OK to that. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 12:59, 14 September 2005 (UTC) == ACT == Re the Brain's most recent edit, that wasn't me that deleted that line that he has restored, but I always thought that it was inaccurate in relation to the ACT (i.e. Canberra). In fact, Canberra was an aussie rules stronghold until at least 1982 because the first two generations of public servants came predominantly from Melbourne. With time this balance swung more to Sydney and then around 1982 the Canberra Raiders joined the then NSWRL. Rugby league certainly has overtaken aussie rules in general popularity (if you are counting TV ratings) but in terms of participation I would think that it would be roughly on par with aussie rules and rugby union, and all three are likely to be behind soccer. In terms spectators attending games, I imagine the ACT Brumbies currently outstrip all, the Canberra Raiders only get about half, and for some of the three or four games the Kangaroos play in Canberra, they will often get more than the average Raiders game. All in all - I think it is not an accurate statement about Canberra (not to mention that in souther NSW, aussie rules is stronger than rugby league). --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 06:53, 27 September 2005 (UTC) ps I am a Canberran. :This was the passage I restored (in '''bold'''): ::''Australian rules which was invented in [[Melbourne]], is the predominant [[winter sport]] in all states of [[Australia]] in which it is played''' with the exception of [[Queensland]], [[New South Wales]] and the [[Australian Capital Territory|ACT]], where [[Rugby league]] is the predominant sport'''.'' :I think that's fair enough Pippu. I've not spent much time in Canberra but my understanding of Aussie rules history there is much as you describe. However it must be said that the AFL match crowds in Canberra in recent years have been very small in comparison to the Raiders' and Brumbies'. Whether or not that would change if an AFL side was based there is a matter for conjecture but not in a WP article. About the only thing disputable about the passage is whether union or league is more popular in the ACT. :Without the bold section above, the passage reads as though Aussie rules is predominant in all states of Australia, which is of course not the case, despite recent progress. :Perhaps the par could be rewritten to note Aussie rules' predominance in southern NSW but I'm not convinced that's warranted; to all intents and purposes the par is fine for mine. --[[User:The Brain of Morbius|The Brain of Morbius]] 07:07, 27 September 2005 (UTC) :::Brains - thanks for the reply - perhaps it's ok as it is but I wasn't suggesting that aussie rules was bigger than league or on par, but that even one of the other two codes may have been just as big (depending on the criterion you are using) - I'm just not sure that league is way out ahead of the other three in Canberra. The interest in the raiders has really waned since the Brumbies came on the scene - but that needs to be tested over a long period because I am not sure the average Canberran would suffer say 5 or 6 years in the bottom 4. Correct also in saying that it is too early to judge the Kangaroos experiment. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 09:58, 27 September 2005 (UTC) p.s. check out our main page at [[:scn:pàggina principali]]! All invited! The crowd at the last Raiders match (v Manly) was 10,366;[http://foxsports.news.com.au/story/0,8659,16485151-23214,00.html] the AFL Kangaroos biggest crowd this year was 13,481:[http://canberra.yourguide.com.au/detail.asp?class=sport&subclass=local&category=general%20sport&story_id=421562&y=2005&m=9] :''Record crowd figures at Canberra's 2005 AFL games have virtually guaranteed the ACT will remain the Kangaroos' interstate home beyond next year.'' :''An average 12,180 fans attended the Kangaroos' three premiership games this season, boosted by a 13,481 gate at the annual blockbuster against Sydney in round two.'' :''Manuka Oval's 2005 AFL attendance total was 36,538, breaking the previous record of 34,105 set in 2001.'' On that basis you I think it have to be said that Aussies rules is at least equal to rugby league, and is growing at the moment. When the [[Western Force]] smash the Brumbies, expect union to decline in the ACT as well ;-) Seriously, with a population of 300,000, it's not a bad effort to get 10,000+ to both league and AFL games. According to the Governor-General the Brumbies get an average crowd of 22,500.[http://www.gg.gov.au/speeches/html/speeches/2005/050202.html] A competitive AFL team based there would come close to that I think.[[User:Grant65|Grant65]][[User talk: Grant65| (Talk)]] 22:27, 27 September 2005 (UTC) :Fair enough, Grant, but are you aware that one of those matches was entirely bought out by Foxtel, who supplied free tickets to anyone who wanted one as part of a Foxtel/Fox Footy/AFL promotion in Canberra? :Perhaps we'd better take this discussion to BigFooty ;) --[[User:The Brain of Morbius|The Brain of Morbius]] 23:20, 27 September 2005 (UTC) ::'''BigFooty''' oh yeah, you'll get some bipartisan discourse there... In my experience, as a 1971-1982 Canberra schoolboy (neatly the pre-Raiders period) AR was non-existant. But that was just our school, I'm sure some schools played it. But I'd agree with Grant, an AFL team would outdraw than the Raiders, as league fans are notorious for their unwillingness to show up at games, and AR fans the exact opposite. Doesn't help the Raiders have played a crappy brand of football for about 8 years either. On the Brumbies, they're only playing a six game season, probably more people showed up at Raiders games this year, despite their pitiful form.--[[User:*Paul*|Paul]] 10:01, 29 October 2005 (UTC) ::I confirm what Brains says about the free game. All in all, I think it is a reasonable rewrite - but re the ACT - we might revisit it this time next year! --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 03:02, 28 September 2005 (UTC) ::The average 2005 crowds for comparison. Rugby Union 22,895; Rugby League 12,404; Aussie Rules 12,149. Based on crowds alone, Union should rightly be most popular in ACT. League gets good TV ratings but this may also be because the games are broadcast more regularly (Super 14 matches are not held as often). Aussie Rules may be catching up, but by average crowds and ratings it is still 3rd overall. Canberra memberships for both the Kangaroos and Sydney Swans may have nearly doubled in 2006, but still total less than 1,000 [http://kangaroos.com.au/default.asp?pg=canberra&spg=display&articleid=242973] [http://sydneyswans.com.au/default.asp?pg=news&spg=display&articleid=237653]. I think a lot of people confuse Aussie Rules long-time strong presence in southern NSW/Riverina as extending to Canberra. It is more the case that Canberra's proximity to Sydney holds sway. --[[User:Biatch|Biatch]] == Aussie rules in Australia == The [[Sport in Australia]] article is the current [[Wikipedia:Australian Collaboration of the Fortnight]] - just wondering if anyone here would be interested in adding to the [[Sport_in_Australia#Australian rules football|Aussie rules]] section? (or any other section) thanks --- [[User:Astrokey44|Astrokey44]] 04:32, 18 October 2005 (UTC) == Rules == The Rules section is getting rather long and unwieldly, especially the holding the ball subsection (which I started, when it actually was "easily summarised"), so moving it to another article seems like a good idea. But the name of such an article is an interesting topic - I would suggest "Australian Football Rules", just to confuse people (and to make User 139.132.1.1 happy). Possible alternatives are "Australian Rules Football Rules", or "Rules of Australian Rules Football", or even "Australian Rules". Seriously, probably the best name would be "Rules of Australian Football", regardless of whether you think that Australian Football is a good name. Incidentally, my copy of the rulebook has on the cover "Laws of Australian Football", so maybe thats an even better one (or "Laws of Australian Rules Football" come to think of it). If someone else wants to actually move the stuff, that would be good, or I'll probably do it in a week or two when I have more time. Of course the alternative is to just delete half the stuff, but that's probably not a good idea. On an unrelated note, exactly how high is "elbow height"? [[User:Bjmurph|Bjmurph]] 17:39, 9 November 2005 (UTC) :If you can get hold of an old video of Dipper playing, that will give you a pretty good idea - the range is from throat level to black eye level. --[[User:Pippu d'angelo|pippudoz]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 22:10, 9 November 2005 (UTC) ::Actually, I was refering to the thing about the goal umpire signalling with hands at elbow height, but you've illustrated my point anyway. Maybe Belly-button height is a better description? [[User:Bjmurph|Bjmurph]] 06:37, 10 November 2005 (UTC) :::As a formerly accredited goal umpire, I can tell you that the upper arms should be vertical and the lower arms horizontal, making it the height of the elbow when standing with arms by your sides. [[User:JPD|JPD]] [[User talk:JPD|(talk)]] 08:58, 10 November 2005 (UTC) :Laws of Australian Football sounds good to me, since that's what they're called. Law of Australian Rules Football if anyone really wants to kick up a stink. [[User:JPD|JPD]] [[User talk:JPD|(talk)]] 17:58, 9 November 2005 (UTC) ::ok I moved it across to [[Laws of Australian Football]]. Probably still needs a good short paragraph in this article [[User:Astrokey44|Astrokey44]] 23:21, 9 November 2005 (UTC) == Attendance Record Cop-Outs and Factoids == Aussie Rules fans go to games. Rugby league fans watch games on tv. Using attendance records as a means to determine popularity is severely flawed. Put simply, it's a cop out. Another copout is the state count. Try adding up the populations of the AFL states in comparison to the non-AFL states! You have more than 50% of the entire country's population when you aggregate NSW and Qld populations alone. I'm not suggesting that RL has higher popularity, just that AFL popularity in comparison is incredibly overstated by the non-NPOV wording in this article. Now for the backup stats. This is from the Australian Bureau of Statistics. State populations as of june 30 2003... I've even given you the benefit of the doubt on NT being an AFL zone! I'm not convinced. Non AFL States and Territories... NSW: 668 6644 Qld: 379 6775 ACT: 322 850 Total: 10 806 269 AFL States and Territories... Vic: 4 917 394 SA: 1 527 421 WA: 1 952 286 Tas: 477 094 NT: 198 351 Total: 9 072 546 Sorry to Burst your bubble AFL Fans! [[User:Factoid Killer|Factoid Killer]] 13:53, 21 November 2005 (UTC) I'm not really sure what you're trying to say, since your arguments are as dodgy as the ones you are apparaently debunking, not to mention noone ever used a state count to prove anything. Aussie Rules is the most popular code of football in Australia, by any measure (eg [http://www.smh.com.au/articles/2003/05/22/1053196670542.html]). I tend to agree that stating it is the most popular sport is probably going a bit far, but the rest of the paragraph is fine. If anything, it understates the popularity of Aussie Rules in the NSW Riverina. Keep in mind also, that this article is about the sport, not about the AFL. [[User:JPD|JPD]] 14:37, 21 November 2005 (UTC) ::The standard measurement of popularity used by the ABS is game attendance and participation. This doesn't accurately measure the popularity of a sport. It's perfectly valid to refer to the AFL alone in this argument since QAFL, NSWAFL, WAFL etc are not telecasted nationally if at all. The popularity section boasts the # of states where the game is the most popular sport and mentions attendance. That's fine except it doesn't mention anything about television viewership nor the populations of those states and territories mentioned. In this respect, the reader has no way to quantify the popularity accurately and the article implies that the sport is phenomenally more popular than it is. I know AFL fans can become extremely obsessive so we can't really expect an truely NPOV article on the subject without outside help. In a few weeks i'm going to be back in australia. I intend to do some research and provide an NPOV article based on cited sources. Wikipedia's NPOV policy is not negotiable in any article. Furthermore, this article is loaded with original material and lacks the appropriate citations expected from a Wikipedia article. These rules apply to AFL fans too! [[User:Factoid Killer|Factoid Killer]] 09:49, 22 November 2005 (UTC) :::The paragraph describes the geographical spread of the popularity of Aussie Rules. ::::That's right it does and it stops short of actually providing any evidence of the sports popularity at a national level leaving the reader believing that an extremely large majority of people follow the sport in comparison to other sports.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::It does not "boast the # of states where the game is the most popular sport". ::::It implies it! Show me where the term 'Geographical spread' is used in the article![[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::If you read the paragraph as a description of the game's popularity, rather than assuming it was trying to make ridiculous claims, it might make more sense to you. ::::I did read it as a description of the games popularity. That's the problem![[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::Your argument about other leagues is nonsense. ::::My argument regarding other leagues validates my legitimate claim to use the term AFL and to limit my research to AFL whilst investigating the popularity of the sport of Australian Rules Football. Unless you believe there are a significant number of followers who only follow the local state level games and bear no interest in the AFL then my argument is still valid.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::I didn't mention the ABS, so I'm not sure what you are referring to. ::::I'm referring to the governing body that is usually considered to be the authority on statistics in Australia and dismissing their statistics as invalid. Not everything I have to say is necessarily an argument debunking you. Get over yourself.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::The Sweeny Report that I mentioned uses as a criteria simply whether a person claims to be interested in the sport. ::::Where is that mentioned?[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::Is that broad enough for you? There is more to life than television, ::::Nice [[Straw Man Fallacy|Straw Man]]! [[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) ::: but if you want to add information on the viewing figures, then do that. ::::Television viewership is far more valid than game attendance since viewership represents a much higher number of followers. I think it would be a very valid statistic to add if you're going to make a comparison between the popularity of AFL in comparison to followers of other sporting bodies.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) :::The fact that the SANFL and WAFL are not telecast nationally doesn't mean that they don't show evidence of the popularity of the code. [[User:JPD|JPD]] 10:17, 22 November 2005 (UTC) ::::See my previous comment regarding that particular argument.[[User:Factoid Killer|Factoid Killer]] 12:46, 22 November 2005 (UTC) By the way, I noticed you didn't comment on my suggestion that this article is loaded with Non-NPov original material with little or no source citation to back it up.[[User:Factoid Killer|Factoid Killer]] 13:01, 22 November 2005 (UTC) :Sources should definitely be added. If you have any more examples of POV sections, then please point them out, but please try to avoid reading things that aren't there. I have agreed with you that the wording "most popular spectator sport" is possibly misleading, and regarded as the national sport is dodgy, and have changed the article accordingly. I'm not sure what you are getting at with the rest of your comments. You do seem to think television audiences are important, so if you have some sources about them, please tell us, rather than complaining about the existence of other statistics. No one at all has implied that the ABS figures give an overall indicator of the popularity of the sport, they have simply used them for what they ''are'' valid for, so I am still not sure what you are referring to. I will say again that the ''main'' purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has. This means stating where it is and isn't dominant and mentioning attendance rates, participation rates and television audiences without trying to draw conclusions about which figures are most relevant. The reader can do that for themselves. Lastly, please don't try to break up my comments, as how you did it last time obscured the points I was making. [[User:JPD|JPD]] 13:32, 22 November 2005 (UTC) '''I will say again that the main purpose of the section is *not* to make comparisons with other sports, but to describe what popularity the code has.''' I have to disagree with you there. How can you demonstrate the popularity of a sport without benchmarking it against other sports. Saying Austrlian rules is very popular, or even the 'most' popular sport is like saying, 'my piece of string is very long' or 'I have the longest piece of string'. As someone reading the article I want to see how much more popular the sport is overall and in comparison to the sport that comes second in the popularity contest. Having said that, nothing annoys me more than when Aussie Rules fans pull out their pencil and eraser on a rugby league article and insert the term 'Aussie Rules' in as many places as they can get away with! That's not what i'm trying to do here and generally speaking, I like to discuss potential edits prior to making changes to a page. I will, as you suggest, add some sources, citable statistics and non-npov wording to the article.[[User:Factoid Killer|Factoid Killer]] 13:44, 22 November 2005 (UTC) :Please don't post comments in other people's posts, it makes it hard to tell who's said what. :Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example: :Total viewers (in thousands) and broken down by five largest cities. :STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 1ST GAME. Total 1,733. Syd 813; Mel 128; Bris 726; Ade 32; Perth 34. :STATE OF ORIGIN RUGBY LEAGUE NSW V QLD 2ND GAME: Total 1,758. Syd 959; Mel 106; Bris 652; Ade 22; Perth 19 :STATE OF ORIGIN RUGBY LEAGUE QLD V NSW 3RD GAME: Total: 1,863. Syd 952; Mel 251; Bris 593; Ade 32; Per 35 :2005 NRL GRAND FINAL Total: 2,563. Syd 1,188; Mel 506; Bris 778; Ade 49; Per 42 :2005 AFL GRAND FINAL Total: 3,386. Syd 991; Mel 1,202; Bris 341; Ade 341; Per 511 :source: http://www.oztam.com.au/archives.aspx?Year=2005 : Interesting to note that almost as many people in Sydney watched the AFL grand final as watched the NRL event. You could argue that it was because the Swans were playing, but that doesn't explain the lacklustre figures for league outside of Sydney and Brisbane, e.g. the relative figures in figures in Perth and Adelaide for Origin 2 and the AFL GF. :That site doesn't have stats yet for the last Socceroos game. Every source I have seen says that soccer is the biggest sport in terms of ''participation'' (probably because because of the number of kids, including girls playing), but Aussie rules is second and it also gets the biggest attendances and TV audiences, by a significant margin. :Oh, by the way, official attendance at the WAFL grand final was 22,570.[http://www.claremontfc.com/2005season/modules.php?name=News&file=article&sid=87] ;-) [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 14:28, 22 November 2005 (UTC) '''Why measure popularity by majority per state? The popularity of sports doesn't respect state borders, especially when it comes to the AFL. For example: ''' Didn't suggest we do but your suggestion reinforces the meaningless nature of the state based stats when trying to draw a conclusion from a national standpoint. If you'd read my comments you'd see I actually suggested using viewership as the main component of such an argument. So thanks for backing my argument and supplying some usefull stats. I'd like to see some of the viewership stats in the article. '''Every source I have seen says that soccer is the biggest sport in terms of participation (probably because because of the number of kids, including girls playing), but Aussie rules is second ''' Well the ABS disagrees. This link includes all forms of exercise as well as sports. Aussie rules doesn't even rank in the top 10. Soccer is number 10... http://www.abs.gov.au/Ausstats/abs@.nsf/0/DAAADA81176E2F89CA256F7200833023?Open This article is limited to organised sports and shows stats for children alone. Aussie Rules is ranked 6th after swimming, soccer, netball, tennis and basketball http://search.abs.gov.au/servlet/SearchDocuments?query=Australian+rules+football+soccer+rugby+league&docID=CA256FE8004F86D9&docURL=HTTP://www.abs.gov.au/Ausstats/abs%40.nsf/0/57E1C764BFA85942CA256F7200832FBC%3FOpen '''Oh, by the way, official attendance at the WAFL grand final was 22,570.[6] ;-) Grant65 | Talk 14:28, 22 November 2005 (UTC) ''' Perhaps you can explain the relevance of this point. I don't get it. [[User:Factoid Killer|Factoid Killer]] 15:03, 22 November 2005 (UTC) You are being extremely inconsistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. The most recent version of the sweeney report, mentioned above, which uses participation as well as watching and attending, gives swimming as the most popular sport, with tennis, cricket and AF tied on second. Taking only TV (your favourite statistic) AF is the highest. Again, it contains many forms of exercise as well. If you want to read it - http://www.sweeneyresearch.com.au/PDF/Interest.pdf. And please stop editing other peoples comments, it's just confuses things. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 15:22, 22 November 2005 (UTC) :::Posting bits of other peoples things to reply to is confusing too. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:12, 22 November 2005 (UTC) :Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand. (The WAFL games are telecast, by the way, live on the ABC. I would guess the SANFL and VFL games are as well.) :I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport: ::MAIN SPORTS ATTENDED, 12 months ending April 1999 ::Sport; Persons ('000); Attendance rate % ::Australian rules: 2,509.2; 16.8 ::Horse racing: 1,756.4; 11.8 ::Motor sports: 1,574.3; 10.6 ::Rugby league: 1,501.1; 10.1 ::Cricket: 942.5 6.3 ::Soccer: 621.2; 4.2 ::Harness racing: 534.8; 3.6 ::Basketball: 526.0; 3.5 ::Rugby union: 446.2; 3.0 ::Tennis: 444.0; 3.0 ::Dog racing: 276.4; 1.9 ::Netball: 248.7; 1.7 ::http://www.abs.gov.au/Ausstats/abs@.nsf/0/e298cee24565c911ca256def007248ff?OpenDocument : ...unless we accept the "argument" that league fans would rather watch it on TV. But I don't buy it. Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union, which was established first and (I'm guessing) has been growing in popularity since professionalism was (officially) allowed. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 15:33, 22 November 2005 (UTC) ::I think that the League people watching TV is a moot point, because I'm yet to see a statistic that shows the NRL TV viewing greater than the AFL TV viewing. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:12, 22 November 2005 (UTC) :::I haven't at any point suggested that Rugby League has higher ratings or is more popular. All I have suggested is, if you are going to say Australian Rules is more popular, this should be correctly sourced and sourced in a way that shows how much more popular it is in comparison to other sports. To BJMurph '''You are being extremely incosistent, one minute you say what the ABS says is crap, the next you're using their statistics to prove your point. ''' OK feel free to quote me out of context! What I said was that the ABS doesn't provide statistics that will tell us which sport is more popular or how popular Australian sports are in comparison to one another. Where i've used abs stats it has been specifically in relation to participation in sport. '''The most recent version of the sweeney report''' If you'd bothered to read my comments you'd see that I do view the sweeny report as a solid source and that my only gripe is with the fact that none of the stats from said report are included in the article! '''gives swimming as the most popular sport, with tennis cricket and AF tied on second''' Ah. So are you now saying that Aussie Rules isn't the most popular sport in Australia? Or have I misunderstood your point? '''And please stop editing other peoples comments, it's just confuses things''' Well firstly, I didn't edit anyone elses comments. I merely inserted my comments amongst theirs so it would be obvious which point i'm addressing. After doing that ONCE I was asked not to so I didn't do it again. Your statement implies that i've continued to do this. This is a false accusation and a clear attempt at the ad hominen fallacy. A dirty debating trick. If what you're actually referring to me copying and pasting the arguments i'm commenting on, I fail to see how that makes it more confusing. In fact i'd say it's making it more difficult for yout to confuse the issue. You sure are trying hard though aren't you? To Grant65 '''Inconsistency doesn't cover it. The WAFL reference was a light hearted reference to your enigmatic comments about the state Aussie rules comps, which I still don't understand.''' My comments suggesting that it's ok to look at AFL popularity alone to get an idea of the popularity of the sport as a whole? Again I will say, unless you think a significant number of those WAFL supporters don't support the AFL, there is no need to look at those numbers. This is yet another attempt at a straw man argument. '''I gladly defer to the ABS, which also shows Aussie rules to be the number one spectator sport: ''' I don't dispute these stats at all. Only the context in which they are used. These stats don't in any way conclusively suggest that Aussies rules is 'more popular' than every other sport in Australia. They merely show that Aussie rules gets more attendence at its games. Any level headed person can see that. If you can't i'd suggest your judgement is clouded by the love of the game to the extent that you are incapable of taking a pragmatic approach to the subject. '''Logically the biggest problem for league in terms of its following is not Aussie rules but rugby union''' And yet another straw man argument. This discussion has nothing to do with rugby league. This discussion relates to the non-npov way in which Aussie Rules is represented in this article as Australia's most 'popular' sport. Please read the prior discussion before adding anything further to this discussion. And please cease using dirty debating tactics. I'm familiar with all of the logical fallacies. We might even improve this article as a result! [[User:Factoid Killer|Factoid Killer]] 16:28, 22 November 2005 (UTC) :You'll notice I had already struck out the comment about editing other peoples comments, I wasn't reading it properly. And I will now say the same about the ABS comment, but with your interjections and stuff, I was finding the page hard to read. Perhaps if you made sure your comments were on a new line after the person you're quoting (maybe indented)(bold is good though). :You have indeed misunderstood my point, I beleive the article claims that Australian Football is the most popular ''spectator'' sport (or if it doesn't, it did, and should). The Sweeney report includes participation. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 16:49, 22 November 2005 (UTC) == Another example of out of control non-NPOV == '''Cricket is the most common summer spectator sport in Australia, and is usually played on the same grounds as Australian Football. In the past, many elite-level footballers played representative cricket, but the increasingly professional nature of the game made this impossible by the 1980s. Of the other organised sports or physical activities played by aussie rules footballers in Australia, outdoor cricket is the most popular.''' I think we're forgetting what the CG part of MCG stands for![[User:Factoid Killer|Factoid Killer]] 10:01, 22 November 2005 (UTC) :I think you're forgetting what the article is about. [[User:JPD|JPD]] 10:20, 22 November 2005 (UTC) ::You must be pretty desperate for a valid argument if, in order to gain one, you have to resurect a comment I already admitted was incorrect and subsequently deleted in order to gain one! :::I did not see that you had deleted your comment, as it edit conflicted with my edit to the previous section and was quite confusing. At any rate, it is not normal to delete comments from the talk page. To avoid confusion, you might like admit on the talk page that you misread the sentence, rather than just deleting your comment. [[User:JPD|JPD]] 13:12, 22 November 2005 (UTC) ::::I admitted it in the history where the deletion was recorded. The entire section became pointless but since you're not going to let it die I decided to take some time to go through the first part of the article. I'm not finished yet... :::::Could you please [[WP:FAITH|assume good faith]]? The edit conflict was quite confusing and I did not realise that you had deleted it. I did not imply that you did not admit it, I simply suggested that it would have been less confusing to admit on the talk page. I am perfectly happy to let it die now that I understand you retracted the comment. I am not perfectly happy to accept your accusation that I deliberately resurrected it. [[User:JPD|JPD]] 13:40, 22 November 2005 (UTC) ::::OK good faith it is. I even deleted the accusation.... well i thought that was funny. I originally thought the sentence was suggesting that cricket is played on an Aussie Rules field. That would qualify as non-NPOV. Saying they're played on the same field is not. :::::It seem that you added this paragraph just before I clicked edit, so I hadn't read it when I wrote the above. The explanation for the 6 minutes, if you want it, is that I clicked submit when I had finished my edit to the earlier section, and then worked on something else. When I came back to the window, I saw that it had not been submitted due to an edit conflict. How much of the six minutes was between your edits and my original submission and how much was between my first submission and my second one, I don't know. You can see that my "resurrection" of your comment was part of the edit I made to the earlier section. [[User:JPD|JPD]] 13:53, 22 November 2005 (UTC) This was a response to your now deleted accusation - I am still having trouble keeping up with you, but I think we understand the original problem now, so let's leave it at that. [[User:JPD|JPD]] 13:56, 22 November 2005 (UTC) OUT OF CONTROL NON-NPOV ===Openning Paragraph=== '''Spectacular high marks ("speccies") are regarded as one of the game's main attributes as a spectator sport.''' From who's 'point of view' is it spectacular? :Spectators. That's why it says "...as a spectator sport". If this is "POV", then you presumably believe that some other attribute of the game is more important to spectators. Which? [[User Talk:Stevage|Stevage]] 14:52, 16 December 2005 (UTC) ===Popularity=== '''Domestic Migration''' I'm a northerner and a rugby league fan, experientially I can't deny that AFL seems to be Australia's most popular winter sport and is growing in popularity. This point should be made though: *In the states that support AFL pre-dominantly, that sport is followed with an unmatched level of passion, akin to a religion or way of life for many. It is not only accepted, but expected that you follow an AFL team, and it does not matter whether you are a truck driver or a lawyer the game is loved by everyone. In NSW on the other hand, following rugby league can sometimes be considered low-brow by your intellectual types, uncool by your hip types and thuggish brutality by your vegan types. Factor in the class divide where your elite private schools play rugby union only, and breed staunch union supporters and you can see you're behind the eight ball already. And then there is domestic migration, which in Australia tends to move in a north eastern direction meaning people brought up speaking the language of AFL move into NSW and Queensland and increase the supporter base for the code in those states. *With relation to the above, this affects media coverage of the respective sports in Sydney. There are two reasons for this, the average union and AFL fan in NSW has a higher expendable income than the average rugby league fan (sorry no references), leading to these sports being able to attract 'high-end' sponsors and advertisers. In a vicious cycle, these 'high end' company's are often run at the highest levels by graduates from the aforementioned elite schools and we know where their loyalties lie. (In a quick aside, my personal opinion is that in Australia, rugby union would be as much of an anachronism as royal tennis, if it weren't for the elite private schools keeping it alive all these years.) Good sponsorship like this leads to greater exposure, even if the actual level of support doesn't warrant it. The Sydney Morning Herald is a prime example. This paper concentrates on union and AFL at the expense of rugby league, it also has a very poor circulation compared to the other major Sydney paper, the Daily Telegraph. --[[User:220.245.178.140|220.245.178.140]] 00:54, 25 November 2005 (UTC)Regards CS-----[[User:220.245.178.140|220.245.178.140]] 00:54, 25 November 2005 (UTC) Very true. And i'm happy to admit I came to this page knowing it would be loaded with non-npov statments due to the incredible level of fanaticism with the sport. The level of fanaticism can only be compared to sports such as soccer in europe and GAA sports in country areas of Ireland (GAA sports are not popular in dublin where everyone just follows british soccer). When visiting Melbourne many a cab driver has become upset with me when my response to the question 'which team do you follow?' is the Brisbane Broncos [[User:Factoid Killer|Factoid Killer]] 09:28, 25 November 2005 (UTC) :In doing so, you managed to find several "non-npov statements" that were perfectly npov when they were read sensibly. You might have understood what was being said better if you didn't start with the assumption that it would be inappropriate. I agree with you that there are several vague unsourced statements, but that is not the same as POV-pushing. [[User:JPD|JPD]] 10:45, 25 November 2005 (UTC) ::That may be the case but either way, my presumption has allowed me to play devils advocate to the benefit of the article. [[User:Factoid Killer|Factoid Killer]] 11:41, 25 November 2005 (UTC) '''attracts more interest than any other winter sport''' This comment is backed up by an excellent citation. The citation has a great deal of information that could aid the reader to quantify the popularity of Australian rules football in comparison to other sports. However, none of that information is included in the article! '''In the Australian Capital Territory (ACT) rugby union is arguably more popular.''' Arguable by whom? Who is being quoted here? Where's the source to back this up? Looks like heresay to me. :I am not a rugby fan but I live in Canberra and I can tell you that Rugby Union (at the elite level) easily attracts, on average, more spectators per game. It's a non contest so drop it. ::Sorry not good enough. I expect more than anecdotal evidience to back a claim like this. Where are the numbers? Who are you quoting?[[User:62.254.168.102|62.254.168.102]] 09:13, 23 November 2005 (UTC) :::It's probably true, it does need to be sourced, but more to the point, does it really need to be in the article? The point is that in most of NSW, Qld and ACT, AF is not the obviously dominant code as it is in other areas. For this context, it doesn't matter what the dominant code is. [[User:JPD|JPD]] 09:48, 23 November 2005 (UTC) '''In recent years, there has been a boom in Australian Football in Brisbane, and this appears to be closely linked to the success of the Brisbane Lions, who won three premierships in a row (2001-2003), and were runners-up in 2004.''' Who is being quoted here? Where is the citation and stats to back up the claim? Looks like an assumption based on anecdotal evidence to me. :We can look at Brisbane Lions membership and crowd attendance (through the roof), and participation rates of school-age children in the Brisbane metropolitan area, especially in the Auskick program. ::That would be a good start. In addition, can we find out the rise in television ratings? Since the first premiership win? Maybe the immigration stats. I'm originally from Brisbane and recall a time when the only attendance the Brisbane Bears received consisted of southern immigrants who were there to see the opposition play. It has been suggested that those AFL fans had children and their children follow the Brisbane Lions. This largely accounts for the grown in support for the sport in Brisbane prior to the first premiership win. I'll see if I can track down a quote or source for this.[[User:62.254.168.102|62.254.168.102]] 09:13, 23 November 2005 (UTC) '''In both the ACT and south-western NSW, Australian Football has rivalled the two varieties of rugby in popularity over many decades.''' Over many decades? I find that difficult to believe. And again I ask, where's the source of this information? :This is a stupid question, it is common knowledge, like the sky is blue. Southern NSW has alsways been Aussie rules territory, some of the best players in history have come from Albury and Wagga. In fact in the 1996 grand final, the two captains of the opposing teams both came from Wagga. As for the ACT, only someone who doesn't know the history of Canberra would query this fact. ::This is a stupid suggestion. It doesn't matter if it is common knowledge. You are breaking wikipedia's rules by including original material and not providing a source. Having said that, I did misread the quote and thought it was suggesting all of NSW. I agree it is common knowledge. I've been to wagga wagga and albury. However, I stand by my comment that this needs to be sourced. '''With nearly 400,000 participants, Australian Football is also one of the most played sports in the Australia.''' Great. Now the participation section. Easily verifiable by the Australian Bureau of statistics web site. One problem. It's a pretty vague comment. '''One of the most played sports''' and successfully manages to leave people assuming certain things. How about stating the its rank? It might be interesting for people to know that soccer, netball and basketball all have higher participation rates and Australian Rules football. And that in adults, sports such as golf, darts,billiards and pool have higher participation rates. This is exactly how i'd word an article if I were expressing point of view and pushing an agenda. '''Australian Football is also now played in more than 20 countries around the world.''' This fails to express how unpopular the sport is in those 20 countries? :: Does it really need to address popularity (surely general popularity was covered in a previous section that mentions the game is only popular in Nauru and PNG ? In any case it is a simple statement of fact - no more, no less. --[[User:Biatch|Biatch]] ===Leagues=== '''The most powerful organisation and competition within the game is the elite, professional Australian Football League (AFL)''' Oh they're elite. Is that another non-NPOV comment? how about quoting somebody saying that? #Stating a rank is completley meaningless when there is so much of an argument over what that rank is. The very fact your arguing illustrates that "one of the most popular" is the ''most'' neutral thing we can say. #It does not matter how unpopular it is, it is saying how many countries it is played in. Does it say, "AF is the best sport ever, with national leagues in 20 countries"? #We don't need a quote to prove the AFL is the elite league - to quote Macquarie, "a group of people with the most power, money, education etc." elite is just an adjective. Would you argue the AFL does not have the most money of any organisation of the game? And they set the rules, how much more power can you have? I notice that all your arguments come from the sections that were removed from the intro. They are terefore summarising what should have been further into the article. I was not a fan of the leagues section, seeing as there is a teams and leagues section further in. [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 15:38, 22 November 2005 (UTC) ::No I merely read through the first few paragraphs looking for non-npov statements. I stopped at the leagues section due to time constraints. I intend to go through the remainder of the article. I don't want to go making changes without discussing them first. That sort of thing leads to reversion and wasted time. #With regards to rank, there is no dispute regarding the ranking as a participant sport. The ABS provides these figures and even if we disputed it, it wouldn't matter. You can still say "the ABS says...". #How popular it is in those countries is very interesting and usefull information. The absence of this information can be interpreted as non-npov writing. #As for your 'elite' comment, there should be nothing in this article that can be interpreted as 'original material'. Everything in this article is supposed to be sourced from somewhere. This rule applies to all wikipedia articles. This one is not an exception. [[User:Factoid Killer|Factoid Killer]] 16:41, 22 November 2005 (UTC) I just took a look at the article for the first time since writing this and see that the issues i brought up have been addressed. I'm impressed. I think the article is better as a result. Still needs more verifiable citations and quotations.[[User:Factoid Killer|Factoid Killer]] 17:01, 22 November 2005 (UTC) I wasn't trying to say anything about your comments, rather that until a few weeks ago, everything up to and including the leagues section was in the intro. I haven't liked it is(or like it was), and have felt it sub par, but not quite sure how to go about fixing it. #Fair enough #I still think that this is ok— perhaps your use of the word unpopular got my back up (fails to mention the degree of popularity...?) My understanding is that it is quite popular in some countries, esp. the US. Shouldn't be too hard to find references #And I still think you're taking this one too far— Everything in the article must be sourced, but that does not mean that everything in the article must be directly quoted from somewhere (granted, "elite" is possibly not the best word) [[User:Bjmurph|bjmurph]] [[User talk:Bjmurph|talk‽]] 17:08, 22 November 2005 (UTC) (stop editing the page while i'm trying to post!!!!) #The participation information should not have been removed from the page. I think it is fair enough to say it is one of the most played sports, as the definition of sport differs from survey to survey. (A lot of people swim, a lot less swim compeititively), but we should definitely give the figures from the ABS. The emphasis should be on the nubmers, not the comparison. #Including "amateur" probably makes enough difference, but you were being a bit fussy to start with - don't read too much into a sentence. At any rate, more detail is given later in the article. #I think the relevant definition of elite here is “The best or most skilled members of a group: the football team's elite.” It would be POV to declare individual players elite, or possibly even to call the VFL the elite league in the past, but in modern days the structure of the game is such that saying the AFL is the elite league is as undisputable as calling the Premier League the elite competition in English soccer. We don't need to have sources for the word "elite", simply for the fact that it is the top-level competition. [[User:JPD|JPD]] 09:48, 23 November 2005 (UTC) #Re: the word elite. OK I agree that the word elite can be used in a non-npov context. However, in the sentence it's being used here, it is redundant. It becomes POV at the point that the same point is repeated a multiple number of times in the same sentence. I'm happy for them to be called either the most powerful organisation or the elite organisation, but not both. What if instead of saying 'The NRL is the elite governing body for the sport of rugby leage in Australia' I decided to say this 'The NRL is the most powerful, vigorously supreme, almighty and elite governing body of the sport of rugby league in Australia'?[[User:Factoid Killer|Factoid Killer]] 14:47, 23 November 2005 (UTC) You have a good point. I guess I feel that the meaning of elite being used here is the one that refers to the skill level of the competition, rather than the power and money of the organisation (governing body). It would be good to rewrite/split the sentence to that it adequately reflects both aspects. [[User:JPD|JPD]] 14:54, 23 November 2005 (UTC) #Re: the word elite. Geez, if you really want one, the NAB (sponsors) obviously think it is elite, because they drop the word about 5 times in this article [http://www.national.com.au/Sponsorships/0,,66975,00.html]. If guess if it wasn't elite, you could probably walk up and get a game, which is obviously not the case. --[[User:Biatch]] == Rename? == Should this article be renamed from "Australian rules football" to "Australian Rules Football"? It seems to be that the former sounds like a statement about a person in charge of football :) But in all seriousness, the latter is the correct title, is it not? The history in the redirect appears to show the reverse was done on 11 November 2004, I but cannot think why. "rules" (uncapitalised) implies something other than a title. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 02:27, 25 November 2005 (UTC) :Hi Ian - I agree it needs to be looked at, I don't understand either why it was changed to lower case. It has to be either Australian Rules Football, or simply Australian Football (remembering that the league is called the [[Australian Football League]]). [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 03:06, 25 November 2005 (UTC) ::Hi Pippu - long time no speak! Definitely not "Australian Football"! I always played "Aussie Rules" or "Australian Rules Football". Regards -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 04:18, 25 November 2005 (UTC) :::I too played "Aussie Rules" or "Australian Rules Football" (in amongst kick-to-kick, waxing, going for speccies and having pot shots at goal from impossible angles). All I can add is that I have noticed a trend over the last 10 to 15 years to use the term "Australian Football", and indeed some of the major leagues around the country (and maybe even some club names), that may have once had the term "Rules" in them, have dropped it of late. I accept that this is just a gut-feel and I have not surveyed anyone - either way, ''Australian rules football'' is not acceptable. --[[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 04:50, 25 November 2005 (UTC) :::I don't understand why it's not acceptable. The "Australian" part is the only part that refers to a proper noun, the rest should be uncapitalised in the same way we refer to "American football", "Association football", etc. We don't play "Netball and Basketball", we play netball and basketball. There's nothing about the name of the sport that demands capitalisation except for the bit that is named after a country, even if only for consistency's sake. Whatever our own opinions surely we should follow WP convention at least.--[[User:The Brain of Morbius|The Brain of Morbius]] 05:07, 25 November 2005 (UTC) #When I was playing in the junior ranks (rare for a queenslander) our sport was referred to as 'Australian Footy' which was a cut down version where you couldn't kick the ball off the ground. The senior players played a game called 'Australian Football'. That's how it was officially termed. #It doesn't matter how you want the capitalisation to work, it is a wikipedia standard to capitalise only the first letter of the first word.[[User:Factoid Killer|Factoid Killer]] 09:20, 25 November 2005 (UTC) :Not quite true - if the title as a whole is a proper noun (eg New South Wales), then obviously each word has a capital letter. However, the convention is (correctly) that names of sports are not proper nouns, hence rugby league and Australian rules football. It is true that the game is often called simply Australian football, but the version with "rules" is at least as common and less ambiguous. The name of the AFL is irrelevant, as I'm fairly sure that there the sport is simply refered to as "football", with "Australian" referring to the league. [[User:JPD|JPD]] 10:04, 25 November 2005 (UTC) ::if it's a wikipedia convention - fair enough - but I still maintain there has been a big push over the last 10 to 15 years to call it simply Australian football, also, I can't help thinking that that is the normal encyclopaedic entry - but I'm definitely not going to die in a ditch over it! [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'angelo|(waarom? jus'b'coz!)]] 11:28, 25 November 2005 (UTC) :::There may have been 'a push', but I don't think that's the standard term yet. I call it "Australian football" when explaining it to foreigners, but that's still a bit of a neologism. ::*I've done a bit of research and thought this through a bit more and have to backtrack and agree with [[User:JPD]]. ie. leave as is. I apologise for bringing this up. -- [[User:Ianbrown|Ian]] ≡ [[User_talk:Ianbrown|talk]] 18:26, 25 November 2005 (UTC) == External links == I notice that some of the lists in the article have been columnised, drawing attention to something I was planning to raise earlier - should we really have that many external links listed? Most of them seem to be fairly good sites, but we aren't meant to be a link directory. The links at [[cricket]] have been deliberately kept at a much smaller number, so maybe someone should do a bit of a cull here? [[User:JPD|JPD]] 17:40, 26 November 2005 (UTC) I don't think it's too bad. I agree it's as long as it should be, and maybe could be tightened slightly, but don't think a drastic cull is necessary.--[[User:Cinephobia|Cinephobia]] 11:20, 29 November 2005 (UTC) Bah :p Many links, but none to [http://stats.rleague.com/afl/afl_index.html me] --[[User:*Paul*|Paul]] 14:36, 29 November 2005 (UTC) : I recommend doing what they do at [[Association football]]: have only high-level links in the main article, and place other links in more relevant articles (e.g. the articles on the actual organisations the refer to). --[[User:Daveb|Daveb]] 09:17, 30 November 2005 (UTC) == Padding == :''The lengthy discussion regarding padding has been moved to [[Talk:Australian rules football/padding]]; to see it in its original context prior to the move [http://en.wikipedia.org/w/index.php?title=Talk:Australian_rules_football&oldid=32944830#padding click here]'' ==Piccies== I ask again: are these the very best photos we can get our hands on of the great Australian game? The one photo we show, looks more like the old Sun "Spot the Ball" competition. C'mon, let's lift our game! [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 22:57, 8 February 2006 (UTC) :Don't worry mate, footy season coming up soon, plenty of opportunities coming up. Cheers, [[WP:AFL|R]][[Special:Contributions/Rogerthat|o]][[User:Rogerthat|gerthat]] ''[[User_talk:Rogerthat|Talk]]'' 08:07, 9 February 2006 (UTC) ::I've uploaded some pictures I took at a match between Essendon and the Lions in June last year. They're not great, but are better than what is there now. I haven't added them in yet, I'll leave that for someone else to do. They could also possibly be re-cropped and resized, I can do this if someone asks. Locations: [http://en.wikipedia.org/wiki/Image:Australian_rules_01.jpg Australian_rules_01.jpg], [http://en.wikipedia.org/wiki/Image:Australian_rules_02.jpg Australian_rules_02.jpg], [http://en.wikipedia.org/wiki/Image:Australian_rules_03.jpg Australian_rules_03.jpg] --[[User:Joshd|Joshd]] 15:25, 1 March 2006 (UTC) :::I've cropped the one with the banner, uploaded it as [[:Image:Footybanner.jpg]] and put it in the section of this article mentioning the banners. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:09, 2 March 2006 (UTC) ==POV== Well, this article is pretty good, so congrats to the people involved. I do feel however, that it glorifies the sport a bit much, I know it is popular, but this article is a tad misleading, reading through it, it reads as if AFL is the be all and end all of Australian sport. Im not here to bag AFL by any means, and I know that there are sources provided and so on, but I do feel the article is not really written in a NPOV. [[User:Forever young|Forever young]] 03:51, 19 February 2006 (UTC) :About once every few months, someone comes along questioning the stats about the TV audiences, participation, live crowds, membership, etc. Rather than go through all of it a gain in tedious detail, could you please highight a few areas that are POV, especially via direct quotes from the article. [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 05:20, 19 February 2006 (UTC) ::I wouldn't call it non-NPOV, but the Popularity section, particularly with it positioned as the lead item (in front of what the game actually is, and its history) and its length, reads more like a fan site than a encyclopaedia --[[User:*Paul*|Paul]] 09:31, 19 February 2006 (UTC) :::that's a fair point - I am wondering whether it has always been there at the start, or whether it snuck in there during some of the many reorgs of the article...[[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 11:54, 19 February 2006 (UTC) :::in fact I just checked a version I edited on 25 September 2005 and noticed that there was no section on the popularity of the game - so clearly it has been added in since - nothing wrong with that, but as you correctly point out, it may be best appearing after the game is actually described - I have to agree with you on that one - anyone else? [[User:Pippu d'angelo|ρ¡ρρµ δ→θ∑]] - [[:scn:User talk:Pippu d'Angelo|(waarom? jus'b'coz!)]] 11:57, 19 February 2006 (UTC) ::::I believe the intro understandably said something about where the game was played, which then became a lengthy explanation of it's popularity in Australia, etc, which became so long it was correctly made a separate section from the intro. I agree that it shouldn't really be at the beginning. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 19:17, 19 February 2006 (UTC) ==Help!== A few soccer fundamentalists are hijacking the term football in Australian articles. See, for example, [[Category:Football_in_Australia]]. We need concerted action to stop this. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 10:16, 22 February 2006 (UTC) :Put the category up for renaming. That name can't really be justified, so you should get support. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:40, 22 February 2006 (UTC) ==Tactics/Terminology== I propose a section in the article on some of the tactics and terminology used in the game, drawing from [[Australian Rules slang]] and [[:Category:Australian rules football terminology]]. Any thoughts or suggestions on this? [[WP:AFL|R]][[Special:Contributions/Rogerthat|o]][[User:Rogerthat|gerthat]] ''[[User_talk:Rogerthat|Talk]]'' 11:18, 22 February 2006 (UTC) :The article is already quite long. If we were to add anything like this, we'd have to prune the rest of it, I think. If things are covered in another article, they don't need to have too much detail here - the attendance records could be removed, for example. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 11:44, 22 February 2006 (UTC) ==Please vote== ...in a [[Talk:Football#Poll_on_content_relating_to_Australian_rules_football.2Frugby|poll on references to Aussie rules in the '''Football''']] article. [[User:Grant65|Grant65]] | [[User talk:Grant65|Talk]] 03:37, 4 March 2006 (UTC) == External links == I've just reverted the additional of a generic football forum a couple of times. Could someone more knowledgeable go through and trim the external links? -- [[User:Chuq|Chuq]] 06:45, 31 March 2006 (UTC) :All the links that you have removed were definitely aussie rules specific, so I don't understand your edit summary. However, there were way too many links. I have cut quite a few, but there are still more than there should be going by [[Wikipedia:External links]]. [[User:JPD|JPD]] ([[User talk:JPD|talk]]) 09:45, 31 March 2006 (UTC) ::Well, one was SANFL, one was North Melbourne, one appeared to be a Coke promotional site.. and one other. -- [[User:Chuq|Chuq]] 12:47, 31 March 2006 (UTC) I've added the following text in a comment in the external links section - feel free to change if you don't think it is appropriate: ''Please DO NOT add other external links here unless they offer something specific that isn't available at any other site. There are hundreds of unofficial fan sites and they can not all be listed here. Preference will be given to links added by editors who contribute content, as opposed to editors who sign up specifically to promote a particular website.'' -- [[User:Chuq|Chuq]] 00:32, 3 April 2006 (UTC) raw-Wikipedia%3AWikirreto+2008%2FNoviembre%2FLucien+leGrey.wikitext000066400000000000000000001653141335270560400607410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-complex/pretty-printed.wikitext {{Wikipedia:Wikirreto 2008/Avisos}} ==Tabla== {| class="sortable wikitable" ! Nº ! Nombre de artículo ! Tipo de trabajo ! Kb finales ! Puntuación |- | 1 | [[Buergeria buergeri]] | Ca | <2 Kb | 0,5 |- | 2 | [[Buergeria japonica]] | Ca | <2 Kb | 0,5 |- | 3 | [[Buergeria oxycephalus]] | Ca | <2 Kb | 0,5 |- | 4 | [[Buergeria robusta]] | Ca | <2 Kb | 0,5 |- | 5 | [[Buergeriinae]] | Ca | <2 Kb | 0,5 |- | 6 | [[Chirixalus]] | Ca | <2 Kb | 0,5 |- | 7 | [[Chirixalus ananjevae]] | Ca | <2 Kb | 0,5 |- | 8 | [[Chirixalus cherrapunjiae]] | Ca | <2 Kb | 0,5 |- | 9 | [[Chirixalus doriae]] | Ca | <2 Kb | 0,5 |- | 10 | [[Chirixalus dudhwaensis]] | Ca | <2 Kb | 0,5 |- | 11 | [[Chirixalus hansenae]] | Ca | <2 Kb | 0,5 |- | 12 | [[Chirixalus laevis]] | Ca | <2 Kb | 0,5 |- | 13 | [[Chirixalus nongkhorensis]] | Ca | <2 Kb | 0,5 |- | 14 | [[Chirixalus palpebralis]] | Ca | <2 Kb | 0,5 |- | 15 | [[Chirixalus punctatus]] | Ca | <2 Kb | 0,5 |- | 16 | [[Chirixalus shyamrupus]] | Ca | <2 Kb | 0,5 |- | 17 | [[Chirixalus simus]] | Ca | <2 Kb | 0,5 |- | 18 | [[Chirixalus vittatus]] | Ca | <2 Kb | 0,5 |- | 19 | [[Chiromantis]] | Ca | <2 Kb | 0,5 |- | 20 | [[Chiromantis kelleri]] | Ca | <2 Kb | 0,5 |- | 21 | [[Chiromantis petersii]] | Ca | <2 Kb | 0,5 |- | 22 | [[Chiromantis rufescens]] | Ca | <2 Kb | 0,5 |- | 23 | [[Chiromantis xerampelina]] | Ca | <2 Kb | 0,5 |- | 24 | [[Kurixalus]] | Ca | <2 Kb | 0,5 |- | 25 | [[Kurixalus eiffingeri]] | Ca | <2 Kb | 0,5 |- | 26 | [[Kurixalus idiootocus]] | Ca | <2 Kb | 0,5 |- | 27 | [[Nyctixalus]] | Ca | <2 Kb | 0,5 |- | 28 | [[Nyctixalus margaritifer]] | Ca | <2 Kb | 0,5 |- | 29 | [[Nyctixalus moloch]] | Ca | <2 Kb | 0,5 |- | 30 | [[Nyctixalus pictus]] | Ca | <2 Kb | 0,5 |- | 31 | [[Nyctixalus spinosus]] | Ca | <2 Kb | 0,5 |- | 32 | [[Philautus]] | Ca | <2 Kb | 0,5 |- | 33 | [[Philautus abditus]] | Ca | <2 Kb | 0,5 |- | 34 | [[Philautus abundus]] | Ca | <2 Kb | 0,5 |- | 35 | [[Philautus acutirostris]] | Ca | <2 Kb | 0,5 |- | 36 | [[Philautus acutus]] | Ca | <2 Kb | 0,5 |- | 37 | [[Philautus adspersus]] | Ca | <2 Kb | 0,5 |- | 38 | [[Philautus albopunctatus]] | Ca | <2 Kb | 0,5 |- | 39 | [[Philautus alto]] | Ca | <2 Kb | 0,5 |- | 40 | [[Philautus amoenus]] | Ca | <2 Kb | 0,5 |- | 41 | [[Philautus andersoni]] | Ca | <2 Kb | 0,5 |- | 42 | [[Philautus annandalii]] | Ca | <2 Kb | 0,5 |- | 43 | [[Philautus asankai]] | Ca | <2 Kb | 0,5 |- | 44 | [[Philautus aurantium]] | Ca | <2 Kb | 0,5 |- | 45 | [[Philautus auratus]] | Ca | <2 Kb | 0,5 |- | 46 | [[Philautus aurifasciatus]] | Ca | <2 Kb | 0,5 |- | 47 | [[Philautus banaensis]] | Ca | <2 Kb | 0,5 |- | 48 | [[Philautus beddomii]] | Ca | <2 Kb | 0,5 |- | 49 | [[Philautus bombayensis]] | Ca | <2 Kb | 0,5 |- | 50 | [[Philautus bunitus]] | Ca | <2 Kb | 0,5 |- | 51 | [[Philautus caeruleus]] | Ca | <2 Kb | 0,5 |- | 52 | [[Philautus cardamonus]] | Ca | <2 Kb | 0,5 |- | 53 | [[Philautus carinensis]] | Ca | <2 Kb | 0,5 |- | 54 | [[Philautus cavirostris]] | Ca | <2 Kb | 0,5 |- | 55 | [[Philautus chalazodes]] | Ca | <2 Kb | 0,5 |- | 56 | [[Philautus charius]] | Ca | <2 Kb | 0,5 |- | 57 | [[Philautus cinerascens]] | Ca | <2 Kb | 0,5 |- | 58 | [[Philautus cornutus]] | Ca | <2 Kb | 0,5 |- | 59 | [[Philautus cuspis]] | Ca | <2 Kb | 0,5 |- | 60 | [[Philautus decoris]] | Ca | <2 Kb | 0,5 |- | 61 | [[Philautus dimbullae]] | Ca | <2 Kb | 0,5 |- | 62 | [[Philautus disgregus]] | Ca | <2 Kb | 0,5 |- | 63 | [[Philautus dubius]] | Ca | <2 Kb | 0,5 |- | 64 | [[Philautus erythrophthalmus]] | Ca | <2 Kb | 0,5 |- | 65 | [[Philautus eximius]] | Ca | <2 Kb | 0,5 |- | 66 | [[Philautus extirpo]] | Ca | <2 Kb | 0,5 |- | 67 | [[Philautus femoralis]] | Ca | <2 Kb | 0,5 |- | 68 | [[Philautus fergusonianus]] | Ca | <2 Kb | 0,5 |- | 69 | [[Philautus flaviventris]] | Ca | <2 Kb | 0,5 |- | 70 | [[Philautus folicola]] | Ca | <2 Kb | 0,5 |- | 71 | [[Philautus frankenbergi]] | Ca | <2 Kb | 0,5 |- | 72 | [[Philautus fulvus]] | Ca | <2 Kb | 0,5 |- | 73 | [[Philautus garo]] | Ca | <2 Kb | 0,5 |- | 74 | [[Philautus glandulosus]] | Ca | <2 Kb | 0,5 |- | 75 | [[Philautus gracilipes]] | Ca | <2 Kb | 0,5 |- | 76 | [[Philautus griet]] | Ca | <2 Kb | 0,5 |- | 77 | [[Philautus gryllus]] | Ca | <2 Kb | 0,5 |- | 78 | [[Philautus gunungensis]] | Ca | <2 Kb | 0,5 |- | 79 | [[Philautus hallidayi]] | Ca | <2 Kb | 0,5 |- | 80 | [[Philautus halyi]] | Ca | <2 Kb | 0,5 |- | 81 | [[Philautus hoffmanni]] | Ca | <2 Kb | 0,5 |- | 82 | [[Philautus hoipolloi]] | Ca | <2 Kb | 0,5 |- | 83 | [[Philautus hosii]] | Ca | <2 Kb | 0,5 |- | 84 | [[Philautus hypomelas]] | Ca | <2 Kb | 0,5 |- | 85 | [[Philautus ingeri]] | Ca | <2 Kb | 0,5 |- | 86 | [[Philautus jacobsoni]] | Ca | <2 Kb | 0,5 |- | 87 | [[Philautus jerdonii]] | Ca | <2 Kb | 0,5 |- | 88 | [[Philautus jinxiuensis]] | Ca | <2 Kb | 0,5 |- | 89 | [[Philautus kempiae]] | Ca | <2 Kb | 0,5 |- | 90 | [[Philautus kerangae]] | Ca | <2 Kb | 0,5 |- | 91 | [[Philautus leitensis]] | Ca | <2 Kb | 0,5 |- | 92 | [[Philautus leucorhinus]] | Ca | <2 Kb | 0,5 |- | 93 | [[Philautus limbus]] | Ca | <2 Kb | 0,5 |- | 94 | [[Philautus longchuanensis]] | Ca | <2 Kb | 0,5 |- | 95 | [[Philautus longicrus]] | Ca | <2 Kb | 0,5 |- | 96 | [[Philautus lunatus]] | Ca | <2 Kb | 0,5 |- | 97 | [[Philautus luteolus]] | Ca | <2 Kb | 0,5 |- | 98 | [[Philautus macropus]] | Ca | <2 Kb | 0,5 |- | 99 | [[Philautus malcolmsmithi]] | Ca | <2 Kb | 0,5 |- | 100 | [[Philautus maosonensis]] | Ca | <2 Kb | 0,5 |- | 101 | [[Philautus medogensis]] | Ca | <2 Kb | 0,5 |- | 102 | [[Philautus menglaensis]] | Ca | <2 Kb | 0,5 |- | 103 | [[Philautus microdiscus]] | Ca | <2 Kb | 0,5 |- | 104 | [[Philautus microtympanum]] | Ca | <2 Kb | 0,5 |- | 105 | [[Philautus mittermeieri]] | Ca | <2 Kb | 0,5 |- | 106 | [[Philautus mjobergi]] | Ca | <2 Kb | 0,5 |- | 107 | [[Philautus mooreorum]] | Ca | <2 Kb | 0,5 |- | 108 | [[Philautus namdaphaensis]] | Ca | <2 Kb | 0,5 |- | 109 | [[Philautus nanus]] | Ca | <2 Kb | 0,5 |- | 110 | [[Philautus nasutus]] | Ca | <2 Kb | 0,5 |- | 111 | [[Philautus nemus]] | Ca | <2 Kb | 0,5 |- | 112 | [[Philautus ocellatus]] | Ca | <2 Kb | 0,5 |- | 113 | [[Philautus ocularis]] | Ca | <2 Kb | 0,5 |- | 114 | [[Philautus odontotarsus]] | Ca | <2 Kb | 0,5 |- | 115 | [[Philautus oxyrhynchus]] | Ca | <2 Kb | 0,5 |- | 116 | [[Philautus pallidipes]] | Ca | <2 Kb | 0,5 |- | 117 | [[Philautus papillosus]] | Ca | <2 Kb | 0,5 |- | 118 | [[Philautus parvulus]] | Ca | <2 Kb | 0,5 |- | 119 | [[Philautus petersi]] | Ca | <2 Kb | 0,5 |- | 120 | [[Philautus petilus]] | Ca | <2 Kb | 0,5 |- | 121 | [[Philautus pleurotaenia]] | Ca | <2 Kb | 0,5 |- | 122 | [[Philautus poecilius]] | Ca | <2 Kb | 0,5 |- | 123 | [[Philautus poppiae]] | Ca | <2 Kb | 0,5 |- | 124 | [[Philautus popularis]] | Ca | <2 Kb | 0,5 |- | 125 | [[Philautus procax]] | Ca | <2 Kb | 0,5 |- | 126 | [[Philautus refugii]] | Ca | <2 Kb | 0,5 |- | 127 | [[Philautus regius]] | Ca | <2 Kb | 0,5 |- | 128 | [[Philautus reticulatus]] | Ca | <2 Kb | 0,5 |- | 129 | [[Philautus rhododiscus]] | Ca | <2 Kb | 0,5 |- | 130 | [[Philautus rugatus]] | Ca | <2 Kb | 0,5 |- | 131 | [[Philautus rus]] | Ca | <2 Kb | 0,5 |- | 132 | [[Philautus sanctisilvaticus]] | Ca | <2 Kb | 0,5 |- | 133 | [[Philautus sarasinorum]] | Ca | <2 Kb | 0,5 |- | 134 | [[Philautus saueri]] | Ca | <2 Kb | 0,5 |- | 135 | [[Philautus schmackeri]] | Ca | <2 Kb | 0,5 |- | 136 | [[Philautus schmarda]] | Ca | <2 Kb | 0,5 |- | 137 | [[Philautus semiruber]] | Ca | <2 Kb | 0,5 |- | 138 | [[Philautus shillongensis]] | Ca | <2 Kb | 0,5 |- | 139 | [[Philautus signatus]] | Ca | <2 Kb | 0,5 |- | 140 | [[Philautus silus]] | Ca | <2 Kb | 0,5 |- | 141 | [[Philautus silvaticus]] | Ca | <2 Kb | 0,5 |- | 142 | [[Philautus simba]] | Ca | <2 Kb | 0,5 |- | 143 | [[Philautus similipalensis]] | Ca | <2 Kb | 0,5 |- | 144 | [[Philautus similis]] | Ca | <2 Kb | 0,5 |- | 145 | [[Philautus sordidus]] | Ca | <2 Kb | 0,5 |- | 146 | [[Philautus steineri]] | Ca | <2 Kb | 0,5 |- | 147 | [[Philautus stellatus]] | Ca | <2 Kb | 0,5 |- | 148 | [[Philautus stictomerus]] | Ca | <2 Kb | 0,5 |- | 149 | [[Philautus stuarti]] | Ca | <2 Kb | 0,5 |- | 150 | [[Philautus supercornutus]] | Ca | <2 Kb | 0,5 |- | 151 | [[Philautus surdus]] | Ca | <2 Kb | 0,5 |- | 152 | [[Philautus surrufus]] | Ca | <2 Kb | 0,5 |- | 153 | [[Philautus tectus]] | Ca | <2 Kb | 0,5 |- | 154 | [[Philautus temporalis]] | Ca | <2 Kb | 0,5 |- | 155 | [[Philautus terebrans]] | Ca | <2 Kb | 0,5 |- | 156 | [[Philautus tinniens]] | Ca | <2 Kb | 0,5 |- | 157 | [[Philautus travancoricus]] | Ca | <2 Kb | 0,5 |- | 158 | [[Philautus tuberohumerus]] | Ca | <2 Kb | 0,5 |- | 159 | [[Philautus tytthus]] | Ca | <2 Kb | 0,5 |- | 160 | [[Philautus umbra]] | Ca | <2 Kb | 0,5 |- | 161 | [[Philautus variabilis]] | Ca | <2 Kb | 0,5 |- | 162 | [[Philautus vermiculatus]] | Ca | <2 Kb | 0,5 |- | 163 | [[Philautus viridis]] | Ca | <2 Kb | 0,5 |- | 164 | [[Philautus vittiger]] | Ca | <2 Kb | 0,5 |- | 165 | [[Philautus worcesteri]] | Ca | <2 Kb | 0,5 |- | 166 | [[Philautus wynaadensis]] | Ca | <2 Kb | 0,5 |- | 167 | [[Philautus zal]] | Ca | <2 Kb | 0,5 |- | 168 | [[Philautus zimmeri]] | Ca | <2 Kb | 0,5 |- | 169 | [[Philautus zorro]] | Ca | <2 Kb | 0,5 |- | 170 | [[Polypedates]] | Ca | <2 Kb | 0,5 |- | 171 | [[Polypedates chenfui]] | Ca | <2 Kb | 0,5 |- | 172 | [[Polypedates colletti]] | Ca | <2 Kb | 0,5 |- | 173 | [[Polypedates cruciger]] | Ca | <2 Kb | 0,5 |- | 174 | [[Polypedates dorsoviridis]] | Ca | <2 Kb | 0,5 |- | 175 | [[Polypedates dugritei]] | Ca | <2 Kb | 0,5 |- | 176 | [[Polypedates eques]] | Ca | <2 Kb | 0,5 |- | 177 | [[Polypedates fastigo]] | Ca | <2 Kb | 0,5 |- | 178 | [[Polypedates gongshanensis]] | Ca | <2 Kb | 0,5 |- | 179 | [[Polypedates hecticus]] | Ca | <2 Kb | 0,5 |- | 180 | [[Polypedates hungfuensis]] | Ca | <2 Kb | 0,5 |- | 181 | [[Polypedates insularis]] | Ca | <2 Kb | 0,5 |- | 182 | [[Polypedates leucomystax]] | Ca | <2 Kb | 0,5 |- | 183 | [[Polypedates longinasus]] | Ca | <2 Kb | 0,5 |- | 184 | [[Polypedates macrotis]] | Ca | <2 Kb | 0,5 |- | 185 | [[Polypedates maculatus]] | Ca | <2 Kb | 0,5 |- | 186 | [[Polypedates megacephalus]] | Ca | <2 Kb | 0,5 |- | 187 | [[Polypedates mutus]] | Ca | <2 Kb | 0,5 |- | 188 | [[Polypedates naso]] | Ca | <2 Kb | 0,5 |- | 189 | [[Polypedates nigropunctatus]] | Ca | <2 Kb | 0,5 |- | 190 | [[Polypedates omeimontis]] | Ca | <2 Kb | 0,5 |- | 191 | [[Polypedates otilophus]] | Ca | <2 Kb | 0,5 |- | 192 | [[Polypedates pseudocruciger]] | Ca | <2 Kb | 0,5 |- | 193 | [[Polypedates puerensis]] | Ca | <2 Kb | 0,5 |- | 194 | [[Polypedates taeniatus]] | Ca | <2 Kb | 0,5 |- | 195 | [[Polypedates yaoshanensis]] | Ca | <2 Kb | 0,5 |- | 196 | [[Polypedates zed]] | Ca | <2 Kb | 0,5 |- | 197 | [[Polypedates zhaojuensis]] | Ca | <2 Kb | 0,5 |- | 198 | [[Rhacophorinae]] | Ca | <2 Kb | 0,5 |- | 199 | [[Rhacophorus]] | Ca | <2 Kb | 0,5 |- | 200 | [[Rhacophorus achantharrhena]] | Ca | <2 Kb | 0,5 |- | 201 | [[Rhacophorus angulirostris]] | Ca | <2 Kb | 0,5 |- | 202 | [[Rhacophorus annamensis]] | Ca | <2 Kb | 0,5 |- | 203 | [[Rhacophorus appendiculatus]] | Ca | <2 Kb | 0,5 |- | 204 | [[Rhacophorus arboreus]] | Ca | <2 Kb | 0,5 |- | 205 | [[Rhacophorus arvalis]] | Ca | <2 Kb | 0,5 |- | 206 | [[Rhacophorus aurantiventris]] | Ca | <2 Kb | 0,5 |- | 207 | [[Rhacophorus baliogaster]] | Ca | <2 Kb | 0,5 |- | 208 | [[Rhacophorus baluensis]] | Ca | <2 Kb | 0,5 |- | 209 | [[Rhacophorus barisani]] | Ca | <2 Kb | 0,5 |- | 210 | [[Rhacophorus bifasciatus]] | Ca | <2 Kb | 0,5 |- | 211 | [[Rhacophorus bimaculatus]] | Ca | <2 Kb | 0,5 |- | 212 | [[Rhacophorus bipunctatus]] | Ca | <2 Kb | 0,5 |- | 213 | [[Rhacophorus bisacculus]] | Ca | <2 Kb | 0,5 |- | 214 | [[Rhacophorus calcadensis]] | Ca | <2 Kb | 0,5 |- | 215 | [[Rhacophorus calcaneus]] | Ca | <2 Kb | 0,5 |- | 216 | [[Rhacophorus catamitus]] | Ca | <2 Kb | 0,5 |- | 217 | [[Rhacophorus cyanopunctatus]] | Ca | <2 Kb | 0,5 |- | 218 | [[Rhacophorus dennysi]] | Ca | <2 Kb | 0,5 |- | 219 | [[Rhacophorus depressus]] | Ca | <2 Kb | 0,5 |- | 220 | [[Rhacophorus duboisi]] | Ca | <2 Kb | 0,5 |- | 221 | [[Rhacophorus dulitensis]] | Ca | <2 Kb | 0,5 |- | 222 | [[Rhacophorus edentulus]] | Ca | <2 Kb | 0,5 |- | 223 | [[Rhacophorus everetti]] | Ca | <2 Kb | 0,5 |- | 224 | [[Rhacophorus exechopygus]] | Ca | <2 Kb | 0,5 |- | 225 | [[Rhacophorus fasciatus]] | Ca | <2 Kb | 0,5 |- | 226 | [[Rhacophorus gauni]] | Ca | <2 Kb | 0,5 |- | 227 | [[Rhacophorus georgii]] | Ca | <2 Kb | 0,5 |- | 228 | [[Rhacophorus hainanus]] | Ca | <2 Kb | 0,5 |- | 229 | [[Rhacophorus harrissoni]] | Ca | <2 Kb | 0,5 |- | 230 | [[Rhacophorus hoanglienensis]] | Ca | <2 Kb | 0,5 |- | 231 | [[Rhacophorus htunwini]] | Ca | <2 Kb | 0,5 |- | 232 | [[Rhacophorus kajau]] | Ca | <2 Kb | 0,5 |- | 233 | [[Rhacophorus lateralis]] | Ca | <2 Kb | 0,5 |- | 234 | [[Rhacophorus malabaricus]] | Ca | <2 Kb | 0,5 |- | 235 | [[Rhacophorus margaritifer]] | Ca | <2 Kb | 0,5 |- | 236 | [[Rhacophorus maximus]] | Ca | <2 Kb | 0,5 |- | 237 | [[Rhacophorus modestus]] | Ca | <2 Kb | 0,5 |- | 238 | [[Rhacophorus moltrechti]] | Ca | <2 Kb | 0,5 |- | 239 | [[Rhacophorus monticola]] | Ca | <2 Kb | 0,5 |- | 240 | [[Rhacophorus nigropalmatus]] | Ca | <2 Kb | 0,5 |- | 241 | [[Rhacophorus notater]] | Ca | <2 Kb | 0,5 |- | 242 | [[Rhacophorus orlovi]] | Ca | <2 Kb | 0,5 |- | 243 | [[Rhacophorus owstoni]] | Ca | <2 Kb | 0,5 |- | 244 | [[Rhacophorus pardalis]] | Ca | <2 Kb | 0,5 |- | 245 | [[Rhacophorus poecilonotus]] | Ca | <2 Kb | 0,5 |- | 246 | [[Rhacophorus prasinatus]] | Ca | <2 Kb | 0,5 |- | 247 | [[Rhacophorus prominanus]] | Ca | <2 Kb | 0,5 |- | 248 | [[Rhacophorus pseudomalabaricus]] | Ca | <2 Kb | 0,5 |- | 249 | [[Rhacophorus reinwardtii]] | Ca | <2 Kb | 0,5 |- | 250 | [[Rhacophorus rhodopus]] | Ca | <2 Kb | 0,5 |- | 251 | [[Rhacophorus rhyssocephalus]] | Ca | <2 Kb | 0,5 |- | 252 | [[Rhacophorus robinsonii]] | Ca | <2 Kb | 0,5 |- | 253 | [[Rhacophorus rufipes]] | Ca | <2 Kb | 0,5 |- | 254 | [[Rhacophorus schlegelii]] | Ca | <2 Kb | 0,5 |- | 255 | [[Rhacophorus taipeianus]] | Ca | <2 Kb | 0,5 |- | 256 | [[Rhacophorus taronensis]] | Ca | <2 Kb | 0,5 |- | 257 | [[Rhacophorus translineatus]] | Ca | <2 Kb | 0,5 |- | 258 | [[Rhacophorus tuberculatus]] | Ca | <2 Kb | 0,5 |- | 259 | [[Rhacophorus turpes]] | Ca | <2 Kb | 0,5 |- | 260 | [[Rhacophorus variabilis]] | Ca | <2 Kb | 0,5 |- | 261 | [[Rhacophorus verrucopus]] | Ca | <2 Kb | 0,5 |- | 262 | [[Rhacophorus verrucosus]] | Ca | <2 Kb | 0,5 |- | 263 | [[Rhacophorus viridis]] | Ca | <2 Kb | 0,5 |- | 264 | [[Theloderma]] | Ca | <2 Kb | 0,5 |- | 265 | [[Theloderma bicolor]] | Ca | <2 Kb | 0,5 |- | 266 | [[Theloderma corticale]] | Ca | <2 Kb | 0,5 |- | 267 | [[Theloderma gordoni]] | Ca | <2 Kb | 0,5 |- | 268 | [[Theloderma horridum]] | Ca | <2 Kb | 0,5 |- | 269 | [[Theloderma kwangsiense]] | Ca | <2 Kb | 0,5 |- | 270 | [[Theloderma leporosum]] | Ca | <2 Kb | 0,5 |- | 271 | [[Theloderma phrynoderma]] | Ca | <2 Kb | 0,5 |- | 272 | [[Theloderma stellatum]] | Ca | <2 Kb | 0,5 |- | 273 | [[Arthroleptis]] | Ca | <2 Kb | 0,5 |- | 274 | [[Arthroleptis adelphus]] | Ca | <2 Kb | 0,5 |- | 275 | [[Arthroleptis adolfifriederici]] | Ca | <2 Kb | 0,5 |- | 276 | [[Arthroleptis affinis]] | Ca | <2 Kb | 0,5 |- | 277 | [[Arthroleptis bivittatus]] | Ca | <2 Kb | 0,5 |- | 278 | [[Arthroleptis brevipes]] | Ca | <2 Kb | 0,5 |- | 279 | [[Arthroleptis carquejai]] | Ca | <2 Kb | 0,5 |- | 280 | [[Arthroleptis crusculum]] | Ca | <2 Kb | 0,5 |- | 281 | [[Arthroleptis discodactyla]] | Ca | <2 Kb | 0,5 |- | 282 | [[Arthroleptis francei]] | Ca | <2 Kb | 0,5 |- | 283 | [[Arthroleptis hematogaster]] | Ca | <2 Kb | 0,5 |- | 284 | [[Arthroleptis lameerei]] | Ca | <2 Kb | 0,5 |- | 285 | [[Arthroleptis loveridgei]] | Ca | <2 Kb | 0,5 |- | 286 | [[Arthroleptis milletihorsini]] | Ca | <2 Kb | 0,5 |- | 287 | [[Arthroleptis mossoensis]] | Ca | <2 Kb | 0,5 |- | 288 | [[Arthroleptis nikeae]] | Ca | <2 Kb | 0,5 |- | 289 | [[Arthroleptis nimbaensis]] | Ca | <2 Kb | 0,5 |- | 290 | [[Arthroleptis phrynoides]] | Ca | <2 Kb | 0,5 |- | 291 | [[Arthroleptis poecilonotus]] | Ca | <2 Kb | 0,5 |- | 292 | [[Arthroleptis pyrrhoscelis]] | Ca | <2 Kb | 0,5 |- | 293 | [[Arthroleptis reichei]] | Ca | <2 Kb | 0,5 |- | 294 | [[Arthroleptis schubotzi]] | Ca | <2 Kb | 0,5 |- | 295 | [[Arthroleptis spinalis]] | Ca | <2 Kb | 0,5 |- | 296 | [[Arthroleptis stenodactylus]] | Ca | <2 Kb | 0,5 |- | 297 | [[Arthroleptis sylvatica]] | Ca | <2 Kb | 0,5 |- | 298 | [[Arthroleptis taeniatus]] | Ca | <2 Kb | 0,5 |- | 299 | [[Arthroleptis tanneri]] | Ca | <2 Kb | 0,5 |- | 300 | [[Arthroleptis troglodytes]] | Ca | <2 Kb | 0,5 |- | 301 | [[Arthroleptis tuberosus]] | Ca | <2 Kb | 0,5 |- | 302 | [[Arthroleptis variabilis]] | Ca | <2 Kb | 0,5 |- | 303 | [[Arthroleptis vercammeni]] | Ca | <2 Kb | 0,5 |- | 304 | [[Arthroleptis wahlbergii]] | Ca | <2 Kb | 0,5 |- | 305 | [[Arthroleptis xenochirus]] | Ca | <2 Kb | 0,5 |- | 306 | [[Arthroleptis xenodactyla]] | Ca | <2 Kb | 0,5 |- | 307 | [[Arthroleptis xenodactyloides]] | Ca | <2 Kb | 0,5 |- | 308 | [[Arthroleptis zimmeri]] | Ca | <2 Kb | 0,5 |- | 309 | [[Astylosternus]] | Ca | <2 Kb | 0,5 |- | 310 | [[Astylosternus batesi]] | Ca | <2 Kb | 0,5 |- | 311 | [[Astylosternus diadematus]] | Ca | <2 Kb | 0,5 |- | 312 | [[Astylosternus fallax]] | Ca | <2 Kb | 0,5 |- | 313 | [[Astylosternus laurenti]] | Ca | <2 Kb | 0,5 |- | 314 | [[Astylosternus montanus]] | Ca | <2 Kb | 0,5 |- | 315 | [[Astylosternus nganhanus]] | Ca | <2 Kb | 0,5 |- | 316 | [[Astylosternus occidentalis]] | Ca | <2 Kb | 0,5 |- | 317 | [[Astylosternus perreti]] | Ca | <2 Kb | 0,5 |- | 318 | [[Astylosternus ranoides]] | Ca | <2 Kb | 0,5 |- | 319 | [[Astylosternus rheophilus]] | Ca | <2 Kb | 0,5 |- | 320 | [[Astylosternus schioetzi]] | Ca | <2 Kb | 0,5 |- | 321 | [[Cardioglossa]] | Ca | <2 Kb | 0,5 |- | 322 | [[Cardioglossa alsco]] | Ca | <2 Kb | 0,5 |- | 323 | [[Cardioglossa aureoli]] | Ca | <2 Kb | 0,5 |- | 324 | [[Cardioglossa cyaneospila]] | Ca | <2 Kb | 0,5 |- | 325 | [[Cardioglossa dorsalis]] | Ca | <2 Kb | 0,5 |- | 326 | [[Cardioglossa elegans]] | Ca | <2 Kb | 0,5 |- | 327 | [[Cardioglossa escalerae]] | Ca | <2 Kb | 0,5 |- | 328 | [[Cardioglossa gracilis]] | Ca | <2 Kb | 0,5 |- | 329 | [[Cardioglossa gratiosa]] | Ca | <2 Kb | 0,5 |- | 330 | [[Cardioglossa leucomystax]] | Ca | <2 Kb | 0,5 |- | 331 | [[Cardioglossa melanogaster]] | Ca | <2 Kb | 0,5 |- | 332 | [[Cardioglossa nigromaculata]] | Ca | <2 Kb | 0,5 |- | 333 | [[Cardioglossa oreas]] | Ca | <2 Kb | 0,5 |- | 334 | [[Cardioglossa pulchra]] | Ca | <2 Kb | 0,5 |- | 335 | [[Cardioglossa schioetzi]] | Ca | <2 Kb | 0,5 |- | 336 | [[Cardioglossa trifasciata]] | Ca | <2 Kb | 0,5 |- | 337 | [[Cardioglossa venusta]] | Ca | <2 Kb | 0,5 |- | 338 | [[Leptodactylodon]] | Ca | <2 Kb | 0,5 |- | 339 | [[Leptodactylodon albiventris]] | Ca | <2 Kb | 0,5 |- | 340 | [[Leptodactylodon axillaris]] | Ca | <2 Kb | 0,5 |- | 341 | [[Leptodactylodon bicolor]] | Ca | <2 Kb | 0,5 |- | 342 | [[Leptodactylodon blanci]] | Ca | <2 Kb | 0,5 |- | 343 | [[Leptodactylodon boulengeri]] | Ca | <2 Kb | 0,5 |- | 344 | [[Leptodactylodon bueanus]] | Ca | <2 Kb | 0,5 |- | 345 | [[Leptodactylodon erythrogaster]] | Ca | <2 Kb | 0,5 |- | 346 | [[Leptodactylodon mertensi]] | Ca | <2 Kb | 0,5 |- | 347 | [[Leptodactylodon ornatus]] | Ca | <2 Kb | 0,5 |- | 348 | [[Leptodactylodon ovatus]] | Ca | <2 Kb | 0,5 |- | 349 | [[Leptodactylodon perreti]] | Ca | <2 Kb | 0,5 |- | 350 | [[Leptodactylodon polyacanthus]] | Ca | <2 Kb | 0,5 |- | 351 | [[Leptodactylodon stevarti]] | Ca | <2 Kb | 0,5 |- | 352 | [[Leptodactylodon ventrimarmoratus]] | Ca | <2 Kb | 0,5 |- | 353 | [[Leptodactylodon wildi]] | Ca | <2 Kb | 0,5 |- | 354 | [[Nyctibates corrugatus]] | Ca | <2 Kb | 0,5 |- | 355 | [[Scotobleps gabonicus]] | Ca | <2 Kb | 0,5 |- | 356 | [[Leptopelis]] | Ca | <2 Kb | 0,5 |- | 357 | [[Leptopelis anchietae]] | Ca | <2 Kb | 0,5 |- | 358 | [[Leptopelis argenteus]] | Ca | <2 Kb | 0,5 |- | 359 | [[Leptopelis aubryi]] | Ca | <2 Kb | 0,5 |- | 360 | [[Leptopelis barbouri]] | Ca | <2 Kb | 0,5 |- | 361 | [[Leptopelis bequaerti]] | Ca | <2 Kb | 0,5 |- | 362 | [[Leptopelis bocagii]] | Ca | <2 Kb | 0,5 |- | 363 | [[Leptopelis boulengeri]] | Ca | <2 Kb | 0,5 |- | 364 | [[Leptopelis brevipes]] | Ca | <2 Kb | 0,5 |- | 365 | [[Leptopelis brevirostris]] | Ca | <2 Kb | 0,5 |- | 366 | [[Leptopelis broadleyi]] | Ca | <2 Kb | 0,5 |- | 367 | [[Leptopelis bufonides]] | Ca | <2 Kb | 0,5 |- | 368 | [[Leptopelis calcaratus]] | Ca | <2 Kb | 0,5 |- | 369 | [[Leptopelis christyi]] | Ca | <2 Kb | 0,5 |- | 370 | [[Leptopelis concolor]] | Ca | <2 Kb | 0,5 |- | 371 | [[Leptopelis crystallinoron]] | Ca | <2 Kb | 0,5 |- | 372 | [[Leptopelis cynnamomeus]] | Ca | <2 Kb | 0,5 |- | 373 | [[Leptopelis fenestratus]] | Ca | <2 Kb | 0,5 |- | 374 | [[Leptopelis fiziensis]] | Ca | <2 Kb | 0,5 |- | 375 | [[Leptopelis flavomaculatus]] | Ca | <2 Kb | 0,5 |- | 376 | [[Leptopelis gramineus]] | Ca | <2 Kb | 0,5 |- | 377 | [[Leptopelis hyloides]] | Ca | <2 Kb | 0,5 |- | 378 | [[Leptopelis jordani]] | Ca | <2 Kb | 0,5 |- | 379 | [[Leptopelis karissimbensis]] | Ca | <2 Kb | 0,5 |- | 380 | [[Leptopelis kivuensis]] | Ca | <2 Kb | 0,5 |- | 381 | [[Leptopelis lebeaui]] | Ca | <2 Kb | 0,5 |- | 382 | [[Leptopelis macrotis]] | Ca | <2 Kb | 0,5 |- | 383 | [[Leptopelis marginatus]] | Ca | <2 Kb | 0,5 |- | 384 | [[Leptopelis millsoni]] | Ca | <2 Kb | 0,5 |- | 385 | [[Leptopelis modestus]] | Ca | <2 Kb | 0,5 |- | 386 | [[Leptopelis mossambicus]] | Ca | <2 Kb | 0,5 |- | 387 | [[Leptopelis natalensis]] | Ca | <2 Kb | 0,5 |- | 388 | [[Leptopelis nordequatorialis]] | Ca | <2 Kb | 0,5 |- | 389 | [[Leptopelis notatus]] | Ca | <2 Kb | 0,5 |- | 390 | [[Leptopelis ocellatus]] | Ca | <2 Kb | 0,5 |- | 391 | [[Leptopelis omissus]] | Ca | <2 Kb | 0,5 |- | 392 | [[Leptopelis oryi]] | Ca | <2 Kb | 0,5 |- | 393 | [[Leptopelis palmatus]] | Ca | <2 Kb | 0,5 |- | 394 | [[Leptopelis parbocagii]] | Ca | <2 Kb | 0,5 |- | 395 | [[Leptopelis parkeri]] | Ca | <2 Kb | 0,5 |- | 396 | [[Leptopelis parvus]] | Ca | <2 Kb | 0,5 |- | 397 | [[Leptopelis ragazzii]] | Ca | <2 Kb | 0,5 |- | 398 | [[Leptopelis rufus]] | Ca | <2 Kb | 0,5 |- | 399 | [[Leptopelis susanae]] | Ca | <2 Kb | 0,5 |- | 400 | [[Leptopelis uluguruensis]] | Ca | <2 Kb | 0,5 |- | 401 | [[Leptopelis vannutellii]] | Ca | <2 Kb | 0,5 |- | 402 | [[Leptopelis vermiculatus]] | Ca | <2 Kb | 0,5 |- | 403 | [[Leptopelis viridis]] | Ca | <2 Kb | 0,5 |- | 404 | [[Leptopelis xenodactylus]] | Ca | <2 Kb | 0,5 |- | 405 | [[Leptopelis yaldeni]] | Ca | <2 Kb | 0,5 |- | 406 | [[Leptopelis zebra]] | Ca | <2 Kb | 0,5 |- | 407 | [[Leptopelis occidentalis]] | Ca | <2 Kb | 0,5 |- | 408 | [[Hyperolius]] | Ca | <2 Kb | 0,5 |- | 409 | [[Hyperolius acuticephalus]] | Ca | <2 Kb | 0,5 |- | 410 | [[Hyperolius acuticeps]] | Ca | <2 Kb | 0,5 |- | 411 | [[Hyperolius acutirostris]] | Ca | <2 Kb | 0,5 |- | 412 | [[Hyperolius ademetzi]] | Ca | <2 Kb | 0,5 |- | 413 | [[Hyperolius adspersus]] | Ca | <2 Kb | 0,5 |- | 414 | [[Hyperolius albofrenatus]] | Ca | <2 Kb | 0,5 |- | 415 | [[Hyperolius argus]] | Ca | <2 Kb | 0,5 |- | 416 | [[Hyperolius atrigularis]] | Ca | <2 Kb | 0,5 |- | 417 | [[Hyperolius balfouri]] | Ca | <2 Kb | 0,5 |- | 418 | [[Hyperolius baumanni]] | Ca | <2 Kb | 0,5 |- | 419 | [[Hyperolius benguellensis]] | Ca | <2 Kb | 0,5 |- | 420 | [[Hyperolius bicolor]] | Ca | <2 Kb | 0,5 |- | 421 | [[Hyperolius bobirensis]] | Ca | <2 Kb | 0,5 |- | 422 | [[Hyperolius bolifambae]] | Ca | <2 Kb | 0,5 |- | 423 | [[Hyperolius bopeleti]] | Ca | <2 Kb | 0,5 |- | 424 | [[Hyperolius brachiofasciatus]] | Ca | <2 Kb | 0,5 |- | 425 | [[Hyperolius camerunensis]] | Ca | <2 Kb | 0,5 |- | 426 | [[Hyperolius castaneus]] | Ca | <2 Kb | 0,5 |- | 427 | [[Hyperolius chlorosteus]] | Ca | <2 Kb | 0,5 |- | 428 | [[Hyperolius chrysogaster]] | Ca | <2 Kb | 0,5 |- | 429 | [[Hyperolius cinereus]] | Ca | <2 Kb | 0,5 |- | 430 | [[Hyperolius cinnamomeoventris]] | Ca | <2 Kb | 0,5 |- | 431 | [[Hyperolius concolor]] | Ca | <2 Kb | 0,5 |- | 432 | [[Hyperolius cystocandicans]] | Ca | <2 Kb | 0,5 |- | 433 | [[Hyperolius diaphanus]] | Ca | <2 Kb | 0,5 |- | 434 | [[Hyperolius dintelmanni]] | Ca | <2 Kb | 0,5 |- | 435 | [[Hyperolius discodactylus]] | Ca | <2 Kb | 0,5 |- | 436 | [[Hyperolius endjami]] | Ca | <2 Kb | 0,5 |- | 437 | [[Hyperolius fasciatus]] | Ca | <2 Kb | 0,5 |- | 438 | [[Hyperolius ferreirai]] | Ca | <2 Kb | 0,5 |- | 439 | [[Hyperolius ferrugineus]] | Ca | <2 Kb | 0,5 |- | 440 | [[Hyperolius frontalis]] | Ca | <2 Kb | 0,5 |- | 441 | [[Hyperolius fuscigula]] | Ca | <2 Kb | 0,5 |- | 442 | [[Hyperolius fusciventris]] | Ca | <2 Kb | 0,5 |- | 443 | [[Hyperolius ghesquieri]] | Ca | <2 Kb | 0,5 |- | 444 | [[Hyperolius glandicolor]] | Ca | <2 Kb | 0,5 |- | 445 | [[Hyperolius gularis]] | Ca | <2 Kb | 0,5 |- | 446 | [[Hyperolius guttulatus]] | Ca | <2 Kb | 0,5 |- | 447 | [[Hyperolius horstockii]] | Ca | <2 Kb | 0,5 |- | 448 | [[Hyperolius houyi]] | Ca | <2 Kb | 0,5 |- | 449 | [[Hyperolius hutsebauti]] | Ca | <2 Kb | 0,5 |- | 450 | [[Hyperolius igbettensis]] | Ca | <2 Kb | 0,5 |- | 451 | [[Hyperolius inornatus]] | Ca | <2 Kb | 0,5 |- | 452 | [[Hyperolius kachalolae]] | Ca | <2 Kb | 0,5 |- | 453 | [[Hyperolius kibarae]] | Ca | <2 Kb | 0,5 |- | 454 | [[Hyperolius kihangensis]] | Ca | <2 Kb | 0,5 |- | 455 | [[Hyperolius kivuensis]] | Ca | <2 Kb | 0,5 |- | 456 | [[Hyperolius kuligae]] | Ca | <2 Kb | 0,5 |- | 457 | [[Hyperolius lamottei]] | Ca | <2 Kb | 0,5 |- | 458 | [[Hyperolius langi]] | Ca | <2 Kb | 0,5 |- | 459 | [[Hyperolius lateralis]] | Ca | <2 Kb | 0,5 |- | 460 | [[Hyperolius laticeps]] | Ca | <2 Kb | 0,5 |- | 461 | [[Hyperolius laurenti]] | Ca | <2 Kb | 0,5 |- | 462 | [[Hyperolius leleupi]] | Ca | <2 Kb | 0,5 |- | 463 | [[Hyperolius leucotaenius]] | Ca | <2 Kb | 0,5 |- | 464 | [[Hyperolius lucani]] | Ca | <2 Kb | 0,5 |- | 465 | [[Hyperolius maestus]] | Ca | <2 Kb | 0,5 |- | 466 | [[Hyperolius major]] | Ca | <2 Kb | 0,5 |- | 467 | [[Hyperolius marginatus]] | Ca | <2 Kb | 0,5 |- | 468 | [[Hyperolius mariae]] | Ca | <2 Kb | 0,5 |- | 469 | [[Hyperolius marmoratus]] | Ca | <2 Kb | 0,5 |- | 470 | [[Hyperolius minutissimus]] | Ca | <2 Kb | 0,5 |- | 471 | [[Hyperolius mitchelli]] | Ca | <2 Kb | 0,5 |- | 472 | [[Hyperolius molleri]] | Ca | <2 Kb | 0,5 |- | 473 | [[Hyperolius montanus]] | Ca | <2 Kb | 0,5 |- | 474 | [[Hyperolius mosaicus]] | Ca | <2 Kb | 0,5 |- | 475 | [[Hyperolius nasutus]] | Ca | <2 Kb | 0,5 |- | 476 | [[Hyperolius nienokouensis]] | Ca | <2 Kb | 0,5 |- | 477 | [[Hyperolius nimbae]] | Ca | <2 Kb | 0,5 |- | 478 | [[Hyperolius nitidulus]] | Ca | <2 Kb | 0,5 |- | 479 | [[Hyperolius obscurus]] | Ca | <2 Kb | 0,5 |- | 480 | [[Hyperolius occidentalis]] | Ca | <2 Kb | 0,5 |- | 481 | [[Hyperolius ocellatus]] | Ca | <2 Kb | 0,5 |- | 482 | [[Hyperolius orkarkarri]] | Ca | <2 Kb | 0,5 |- | 483 | [[Hyperolius parallelus]] | Ca | <2 Kb | 0,5 |- | 484 | [[Hyperolius pardalis]] | Ca | <2 Kb | 0,5 |- | 485 | [[Hyperolius parkeri]] | Ca | <2 Kb | 0,5 |- | 486 | [[Hyperolius phantasticus]] | Ca | <2 Kb | 0,5 |- | 487 | [[Hyperolius pickersgilli]] | Ca | <2 Kb | 0,5 |- | 488 | [[Hyperolius picturatus]] | Ca | <2 Kb | 0,5 |- | 489 | [[Hyperolius pictus]] | Ca | <2 Kb | 0,5 |- | 490 | [[Hyperolius platyceps]] | Ca | <2 Kb | 0,5 |- | 491 | [[Hyperolius polli]] | Ca | <2 Kb | 0,5 |- | 492 | [[Hyperolius polystictus]] | Ca | <2 Kb | 0,5 |- | 493 | [[Hyperolius protchei]] | Ca | <2 Kb | 0,5 |- | 494 | [[Hyperolius pseudargus]] | Ca | <2 Kb | 0,5 |- | 495 | [[Hyperolius puncticulatus]] | Ca | <2 Kb | 0,5 |- | 496 | [[Hyperolius punctulatus]] | Ca | <2 Kb | 0,5 |- | 497 | [[Hyperolius pusillus]] | Ca | <2 Kb | 0,5 |- | 498 | [[Hyperolius pustulifer]] | Ca | <2 Kb | 0,5 |- | 499 | [[Hyperolius pyrrhodictyon]] | Ca | <2 Kb | 0,5 |- | 500 | [[Hyperolius quadratomaculatus]] | Ca | <2 Kb | 0,5 |- | 501 | [[Hyperolius quinquevittatus]] | Ca | <2 Kb | 0,5 |- | 502 | [[Hyperolius raveni]] | Ca | <2 Kb | 0,5 |- | 503 | [[Hyperolius reesi]] | Ca | <2 Kb | 0,5 |- | 504 | [[Hyperolius rhizophilus]] | Ca | <2 Kb | 0,5 |- | 505 | [[Hyperolius rhodesianus]] | Ca | <2 Kb | 0,5 |- | 506 | [[Hyperolius riggenbachi]] | Ca | <2 Kb | 0,5 |- | 507 | [[Hyperolius robustus]] | Ca | <2 Kb | 0,5 |- | 508 | [[Hyperolius rubrovermiculatus]] | Ca | <2 Kb | 0,5 |- | 509 | [[Hyperolius sankuruensis]] | Ca | <2 Kb | 0,5 |- | 510 | [[Hyperolius schoutedeni]] | Ca | <2 Kb | 0,5 |- | 511 | [[Hyperolius seabrai]] | Ca | <2 Kb | 0,5 |- | 512 | [[Hyperolius semidiscus]] | Ca | <2 Kb | 0,5 |- | 513 | [[Hyperolius sheldricki]] | Ca | <2 Kb | 0,5 |- | 514 | [[Hyperolius soror]] | Ca | <2 Kb | 0,5 |- | 515 | [[Hyperolius spinigularis]] | Ca | <2 Kb | 0,5 |- | 516 | [[Hyperolius steindachneri]] | Ca | <2 Kb | 0,5 |- | 517 | [[Hyperolius stenodactylus]] | Ca | <2 Kb | 0,5 |- | 518 | [[Hyperolius swynnertoni]] | Ca | <2 Kb | 0,5 |- | 519 | [[Hyperolius sylvaticus]] | Ca | <2 Kb | 0,5 |- | 520 | [[Hyperolius tannerorum]] | Ca | <2 Kb | 0,5 |- | 521 | [[Hyperolius thomensis]] | Ca | <2 Kb | 0,5 |- | 522 | [[Hyperolius thoracotuberculatus]] | Ca | <2 Kb | 0,5 |- | 523 | [[Hyperolius tornieri]] | Ca | <2 Kb | 0,5 |- | 524 | [[Hyperolius torrentis]] | Ca | <2 Kb | 0,5 |- | 525 | [[Hyperolius tuberculatus]] | Ca | <2 Kb | 0,5 |- | 526 | [[Hyperolius tuberilinguis]] | Ca | <2 Kb | 0,5 |- | 527 | [[Hyperolius vilhenai]] | Ca | <2 Kb | 0,5 |- | 528 | [[Hyperolius viridiflavus]] | Ca | <2 Kb | 0,5 |- | 529 | [[Hyperolius viridigulosus]] | Ca | <2 Kb | 0,5 |- | 530 | [[Hyperolius viridis]] | Ca | <2 Kb | 0,5 |- | 531 | [[Hyperolius wermuthi]] | Ca | <2 Kb | 0,5 |- | 532 | [[Hyperolius xenorhinus]] | Ca | <2 Kb | 0,5 |- | 533 | [[Hyperolius zonatus]] | Ca | <2 Kb | 0,5 |- | 534 | [[Hyperolius bocagei]] | Ca | <2 Kb | 0,5 |- | 535 | [[Afrixalus]] | Ca | <2 Kb | 0,5 |- | 536 | [[Afrixalus aureus]] | Ca | <2 Kb | 0,5 |- | 537 | [[Afrixalus brachycnemis]] | Ca | <2 Kb | 0,5 |- | 538 | [[Afrixalus clarkeorum]] | Ca | <2 Kb | 0,5 |- | 539 | [[Afrixalus crotalus]] | Ca | <2 Kb | 0,5 |- | 540 | [[Afrixalus dorsalis]] | Ca | <2 Kb | 0,5 |- | 541 | [[Afrixalus equatorialis]] | Ca | <2 Kb | 0,5 |- | 542 | [[Afrixalus fornasini]] | Ca | <2 Kb | 0,5 |- | 543 | [[Afrixalus fulvovittatus]] | Ca | <2 Kb | 0,5 |- | 544 | [[Afrixalus knysnae]] | Ca | <2 Kb | 0,5 |- | 545 | [[Afrixalus lacteus]] | Ca | <2 Kb | 0,5 |- | 546 | [[Afrixalus laevis]] | Ca | <2 Kb | 0,5 |- | 547 | [[Afrixalus leucostictus]] | Ca | <2 Kb | 0,5 |- | 548 | [[Afrixalus lindholmi]] | Ca | <2 Kb | 0,5 |- | 549 | [[Afrixalus morerei]] | Ca | <2 Kb | 0,5 |- | 550 | [[Afrixalus nigeriensis]] | Ca | <2 Kb | 0,5 |- | 551 | [[Afrixalus orophilus]] | Ca | <2 Kb | 0,5 |- | 552 | [[Afrixalus osorioi]] | Ca | <2 Kb | 0,5 |- | 553 | [[Afrixalus paradorsalis]] | Ca | <2 Kb | 0,5 |- | 554 | [[Afrixalus quadrivittatus]] | Ca | <2 Kb | 0,5 |- | 555 | [[Afrixalus schneideri]] | Ca | <2 Kb | 0,5 |- | 556 | [[Afrixalus septentrionalis]] | Ca | <2 Kb | 0,5 |- | 557 | [[Afrixalus spinifrons]] | Ca | <2 Kb | 0,5 |- | 558 | [[Afrixalus stuhlmanni]] | Ca | <2 Kb | 0,5 |- | 559 | [[Afrixalus sylvaticus]] | Ca | <2 Kb | 0,5 |- | 560 | [[Afrixalus uluguruensis]] | Ca | <2 Kb | 0,5 |- | 561 | [[Afrixalus upembae]] | Ca | <2 Kb | 0,5 |- | 562 | [[Afrixalus vibekensis]] | Ca | <2 Kb | 0,5 |- | 563 | [[Afrixalus weidholzi]] | Ca | <2 Kb | 0,5 |- | 564 | [[Afrixalus wittei]] | Ca | <2 Kb | 0,5 |- | 565 | [[Heterixalus]] | Ca | <2 Kb | 0,5 |- | 566 | [[Heterixalus alboguttatus]] | Ca | <2 Kb | 0,5 |- | 567 | [[Heterixalus andrakata]] | Ca | <2 Kb | 0,5 |- | 568 | [[Heterixalus betsileo]] | Ca | <2 Kb | 0,5 |- | 569 | [[Heterixalus boettgeri]] | Ca | <2 Kb | 0,5 |- | 570 | [[Heterixalus carbonei]] | Ca | <2 Kb | 0,5 |- | 571 | [[Heterixalus luteostriatus]] | Ca | <2 Kb | 0,5 |- | 572 | [[Heterixalus madagascariensis]] | Ca | <2 Kb | 0,5 |- | 573 | [[Heterixalus punctatus]] | Ca | <2 Kb | 0,5 |- | 574 | [[Heterixalus rutenbergi]] | Ca | <2 Kb | 0,5 |- | 575 | [[Heterixalus tricolor]] | Ca | <2 Kb | 0,5 |- | 576 | [[Heterixalus variabilis]] | Ca | <2 Kb | 0,5 |- | 577 | [[Kassina]] | Ca | <2 Kb | 0,5 |- | 578 | [[Kassina arboricola]] | Ca | <2 Kb | 0,5 |- | 579 | [[Kassina cassinoides]] | Ca | <2 Kb | 0,5 |- | 580 | [[Kassina cochranae]] | Ca | <2 Kb | 0,5 |- | 581 | [[Kassina fusca]] | Ca | <2 Kb | 0,5 |- | 582 | [[Kassina jozani]] | Ca | <2 Kb | 0,5 |- | 583 | [[Kassina kuvangensis]] | Ca | <2 Kb | 0,5 |- | 584 | [[Kassina lamottei]] | Ca | <2 Kb | 0,5 |- | 585 | [[Kassina maculata]] | Ca | <2 Kb | 0,5 |- | 586 | [[Kassina maculifer]] | Ca | <2 Kb | 0,5 |- | 587 | [[Kassina maculosa]] | Ca | <2 Kb | 0,5 |- | 588 | [[Kassina mertensi]] | Ca | <2 Kb | 0,5 |- | 589 | [[Kassina schioetzi]] | Ca | <2 Kb | 0,5 |- | 590 | [[Kassina somalica]] | Ca | <2 Kb | 0,5 |- | 591 | [[Acanthixalus]] | Ca | <2 Kb | 0,5 |- | 592 | [[Acanthixalus sonjae]] | Ca | <2 Kb | 0,5 |- | 593 | [[Acanthixalus spinosus]] | Ca | <2 Kb | 0,5 |- | 594 | [[Alexteroon]] | Ca | <2 Kb | 0,5 |- | 595 | [[Alexteroon hypsiphonus]] | Ca | <2 Kb | 0,5 |- | 596 | [[Alexteroon jynx]] | Ca | <2 Kb | 0,5 |- | 597 | [[Alexteroon obstetricans]] | Ca | <2 Kb | 0,5 |- | 598 | [[Callixalus pictus]] | Ca | <2 Kb | 0,5 |- | 599 | [[Arlequinus krebsi]] | Ca | <2 Kb | 0,5 |- | 600 | [[Chlorolius koehleri]] | Ca | <2 Kb | 0,5 |- | 601 | [[Chrysobatrachus cupreonitens]] | Ca | <2 Kb | 0,5 |- | 602 | [[Cryptothylax]] | Ca | <2 Kb | 0,5 |- | 603 | [[Cryptothylax greshoffii]] | Ca | <2 Kb | 0,5 |- | 604 | [[Paracassina]] | Ca | <2 Kb | 0,5 |- | 605 | [[Paracassina kounhiensis]] | Ca | <2 Kb | 0,5 |- | 606 | [[Paracassina obscura]] | Ca | <2 Kb | 0,5 |- | 607 | [[Cryptothylax minutus]] | Ca | <2 Kb | 0,5 |- | 608 | [[Phlyctimantis]] | Ca | <2 Kb | 0,5 |- | 609 | [[Phlyctimantis boulengeri]] | Ca | <2 Kb | 0,5 |- | 610 | [[Phlyctimantis keithae]] | Ca | <2 Kb | 0,5 |- | 611 | [[Phlyctimantis leonardi]] | Ca | <2 Kb | 0,5 |- | 612 | [[Tachycnemis seychellensis]] | Ca | <2 Kb | 0,5 |- | 613 | [[Semnodactylus wealii]] | Ca | <2 Kb | 0,5 |- | 614 | [[Phlyctimantis verrucosus]] | Ca | <2 Kb | 0,5 |- | 615 | [[Atelopus andinus]] | Ca | <2 Kb | 0,5 |- | 616 | [[Atelopus angelito]] | Ca | <2 Kb | 0,5 |- | 617 | [[Atelopus arsyecue]] | Ca | <2 Kb | 0,5 |- | 618 | [[Atelopus arthuri]] | Ca | <2 Kb | 0,5 |- | 619 | [[Atelopus balios]] | Ca | <2 Kb | 0,5 |- | 620 | [[Atelopus bomolochos]] | Ca | <2 Kb | 0,5 |- | 621 | [[Atelopus boulengeri]] | Ca | <2 Kb | 0,5 |- | 622 | [[Atelopus carauta]] | Ca | <2 Kb | 0,5 |- | 623 | [[Atelopus carrikeri]] | Ca | <2 Kb | 0,5 |- | 624 | [[Atelopus certus]] | Ca | <2 Kb | 0,5 |- | 625 | [[Atelopus chiriquiensis]] | Ca | <2 Kb | 0,5 |- | 626 | [[Atelopus chocoensis]] | Ca | <2 Kb | 0,5 |- | 627 | [[Atelopus chrysocorallus]] | Ca | <2 Kb | 0,5 |- | 628 | [[Atelopus coynei]] | Ca | <2 Kb | 0,5 |- | 629 | [[Atelopus cruciger]] | Ca | <2 Kb | 0,5 |- | 630 | [[Atelopus dimorphus]] | Ca | <2 Kb | 0,5 |- | 631 | [[Atelopus elegans]] | Ca | <2 Kb | 0,5 |- | 632 | [[Atelopus erythropus]] | Ca | <2 Kb | 0,5 |- | 633 | [[Atelopus eusebianus]] | Ca | <2 Kb | 0,5 |- | 634 | [[Atelopus exiguus]] | Ca | <2 Kb | 0,5 |- | 635 | [[Atelopus famelicus]] | Ca | <2 Kb | 0,5 |- | 636 | [[Atelopus farci]] | Ca | <2 Kb | 0,5 |- | 637 | [[Atelopus flavescens]] | Ca | <2 Kb | 0,5 |- | 638 | [[Atelopus franciscus]] | Ca | <2 Kb | 0,5 |- | 639 | [[Atelopus galactogaster]] | Ca | <2 Kb | 0,5 |- | 640 | [[Atelopus glyphus]] | Ca | <2 Kb | 0,5 |- | 641 | [[Atelopus guanujo]] | Ca | <2 Kb | 0,5 |- | 642 | [[Atelopus guitarraensis]] | Ca | <2 Kb | 0,5 |- | 643 | [[Atelopus halihelos]] | Ca | <2 Kb | 0,5 |- | 644 | [[Atelopus laetissimus]] | Ca | <2 Kb | 0,5 |- | 645 | [[Atelopus limosus]] | Ca | <2 Kb | 0,5 |- | 646 | [[Atelopus longibrachius]] | Ca | <2 Kb | 0,5 |- | 647 | [[Atelopus longirostris]] | Ca | <2 Kb | 0,5 |- | 648 | [[Atelopus lozanoi]] | Ca | <2 Kb | 0,5 |- | 649 | [[Atelopus lynchi]] | Ca | <2 Kb | 0,5 |- | 650 | [[Atelopus mandingues]] | Ca | <2 Kb | 0,5 |- | 651 | [[Atelopus mindoensis]] | Ca | <2 Kb | 0,5 |- | 652 | [[Atelopus minutulus]] | Ca | <2 Kb | 0,5 |- | 653 | [[Atelopus monohernandezii]] | Ca | <2 Kb | 0,5 |- | 654 | [[Atelopus mucubajiensis]] | Ca | <2 Kb | 0,5 |- | 655 | [[Atelopus muisca]] | Ca | <2 Kb | 0,5 |- | 656 | [[Atelopus nahumae]] | Ca | <2 Kb | 0,5 |- | 657 | [[Atelopus nanay]] | Ca | <2 Kb | 0,5 |- | 658 | [[Atelopus nepiozomus]] | Ca | <2 Kb | 0,5 |- | 659 | [[Atelopus nicefori]] | Ca | <2 Kb | 0,5 |- | 660 | [[Atelopus oxyrhynchus]] | Ca | <2 Kb | 0,5 |- | 661 | [[Atelopus pachydermus]] | Ca | <2 Kb | 0,5 |- | 662 | [[Atelopus palmatus]] | Ca | <2 Kb | 0,5 |- | 663 | [[Atelopus pedimarmoratus]] | Ca | <2 Kb | 0,5 |- | 664 | [[Atelopus peruensis]] | Ca | <2 Kb | 0,5 |- | 665 | [[Atelopus petersi]] | Ca | <2 Kb | 0,5 |- | 666 | [[Atelopus petriruizi]] | Ca | <2 Kb | 0,5 |- | 667 | [[Atelopus pictiventris]] | Ca | <2 Kb | 0,5 |- | 668 | [[Atelopus pinangoi]] | Ca | <2 Kb | 0,5 |- | 669 | [[Atelopus planispina]] | Ca | <2 Kb | 0,5 |- | 670 | [[Atelopus pulcher]] | Ca | <2 Kb | 0,5 |- | 671 | [[Atelopus quimbaya]] | Ca | <2 Kb | 0,5 |- | 672 | [[Atelopus reticulatus]] | Ca | <2 Kb | 0,5 |- | 673 | [[Atelopus sanjosei]] | Ca | <2 Kb | 0,5 |- | 674 | [[Atelopus seminiferus]] | Ca | <2 Kb | 0,5 |- | 675 | [[Atelopus senex]] | Ca | <2 Kb | 0,5 |- | 676 | [[Atelopus sernai]] | Ca | <2 Kb | 0,5 |- | 677 | [[Atelopus simulatus]] | Ca | <2 Kb | 0,5 |- | 678 | [[Atelopus siranus]] | Ca | <2 Kb | 0,5 |- | 679 | [[Atelopus sonsonensis]] | Ca | <2 Kb | 0,5 |- | 680 | [[Atelopus sorianoi]] | Ca | <2 Kb | 0,5 |- | 681 | [[Atelopus spumarius]] | Ca | <2 Kb | 0,5 |- | 682 | [[Atelopus spurrelli]] | Ca | <2 Kb | 0,5 |- | 683 | [[Atelopus subornatus]] | Ca | <2 Kb | 0,5 |- | 684 | [[Atelopus tamaensis]] | Ca | <2 Kb | 0,5 |- | 685 | [[Atelopus tricolor]] | Ca | <2 Kb | 0,5 |- | 686 | [[Atelopus varius]] | Ca | <2 Kb | 0,5 |- | 687 | [[Atelopus vogli]] | Ca | <2 Kb | 0,5 |- | 688 | [[Atelopus walkeri]] | Ca | <2 Kb | 0,5 |- | 689 | [[Atelopus zeteki]] | Ca | <2 Kb | 0,5 |- | 690 | [[Ansonia albomaculata]] | Ca | <2 Kb | 0,5 |- | 691 | [[Ansonia anotis]] | Ca | <2 Kb | 0,5 |- | 692 | [[Ansonia endauensis]] | Ca | <2 Kb | 0,5 |- | 693 | [[Ansonia fuliginea]] | Ca | <2 Kb | 0,5 |- | 694 | [[Ansonia glandulosa]] | Ca | <2 Kb | 0,5 |- | 695 | [[Ansonia guibei]] | Ca | <2 Kb | 0,5 |- | 696 | [[Ansonia hanitschi]] | Ca | <2 Kb | 0,5 |- | 697 | [[Ansonia inthanon]] | Ca | <2 Kb | 0,5 |- | 698 | [[Ansonia kraensis]] | Ca | <2 Kb | 0,5 |- | 699 | [[Ansonia latidisca]] | Ca | <2 Kb | 0,5 |- | 700 | [[Ansonia leptopus]] | Ca | <2 Kb | 0,5 |- | 701 | [[Ansonia longidigita]] | Ca | <2 Kb | 0,5 |- | 702 | [[Ansonia malayana]] | Ca | <2 Kb | 0,5 |- | 703 | [[Ansonia mcgregori]] | Ca | <2 Kb | 0,5 |- | 704 | [[Ansonia minuta]] | Ca | <2 Kb | 0,5 |- | 705 | [[Ansonia muelleri]] | Ca | <2 Kb | 0,5 |- | 706 | [[Ansonia penangensis]] | Ca | <2 Kb | 0,5 |- | 707 | [[Ansonia platysoma]] | Ca | <2 Kb | 0,5 |- | 708 | [[Ansonia rubigina]] | Ca | <2 Kb | 0,5 |- | 709 | [[Ansonia siamensis]] | Ca | <2 Kb | 0,5 |- | 710 | [[Ansonia spinulifer]] | Ca | <2 Kb | 0,5 |- | 711 | [[Ansonia tiomanica]] | Ca | <2 Kb | 0,5 |- | 712 | [[Ansonia torrentis]] | Ca | <2 Kb | 0,5 |- | 713 | [[Amietophrynus]] | Ca | <2 Kb | 0,5 |- | 714 | [[Amietophrynus asmarae]] | Ca | <2 Kb | 0,5 |- | 715 | [[Amietophrynus blanfordii]] | Ca | <2 Kb | 0,5 |- | 716 | [[Amietophrynus brauni]] | Ca | <2 Kb | 0,5 |- | 717 | [[Amietophrynus buchneri]] | Ca | <2 Kb | 0,5 |- | 718 | [[Amietophrynus camerunensis]] | Ca | <2 Kb | 0,5 |- | 719 | [[Amietophrynus chudeaui]] | Ca | <2 Kb | 0,5 |- | 720 | [[Amietophrynus cristiglans]] | Ca | <2 Kb | 0,5 |- | 721 | [[Amietophrynus danielae]] | Ca | <2 Kb | 0,5 |- | 722 | [[Amietophrynus djohongensis]] | Ca | <2 Kb | 0,5 |- | 723 | [[Amietophrynus fuliginatus]] | Ca | <2 Kb | 0,5 |- | 724 | [[Amietophrynus funereus]] | Ca | <2 Kb | 0,5 |- | 725 | [[Amietophrynus garmani]] | Ca | <2 Kb | 0,5 |- | 726 | [[Amietophrynus gracilipes]] | Ca | <2 Kb | 0,5 |- | 727 | [[Amietophrynus gutturalis]] | Ca | <2 Kb | 0,5 |- | 728 | [[Amietophrynus kassasii]] | Ca | <2 Kb | 0,5 |- | 729 | [[Amietophrynus kerinyagae]] | Ca | <2 Kb | 0,5 |- | 730 | [[Amietophrynus kisoloensis]] | Ca | <2 Kb | 0,5 |- | 731 | [[Amietophrynus langanoensis]] | Ca | <2 Kb | 0,5 |- | 732 | [[Amietophrynus latifrons]] | Ca | <2 Kb | 0,5 |- | 733 | [[Amietophrynus lemairii]] | Ca | <2 Kb | 0,5 |- | 734 | [[Amietophrynus maculatus]] | Ca | <2 Kb | 0,5 |- | 735 | [[Amietophrynus pantherinus]] | Ca | <2 Kb | 0,5 |- | 736 | [[Amietophrynus pardalis]] | Ca | <2 Kb | 0,5 |- | 737 | [[Amietophrynus perreti]] | Ca | <2 Kb | 0,5 |- | 738 | [[Amietophrynus poweri]] | Ca | <2 Kb | 0,5 |- | 739 | [[Amietophrynus rangeri]] | Ca | <2 Kb | 0,5 |- | 740 | [[Amietophrynus reesi]] | Ca | <2 Kb | 0,5 |- | 741 | [[Amietophrynus regularis]] | Ca | <2 Kb | 0,5 |- | 742 | [[Amietophrynus steindachneri]] | Ca | <2 Kb | 0,5 |- | 743 | [[Amietophrynus superciliaris]] | Ca | <2 Kb | 0,5 |- | 744 | [[Amietophrynus taiensis]] | Ca | <2 Kb | 0,5 |- | 745 | [[Amietophrynus togoensis]] | Ca | <2 Kb | 0,5 |- | 746 | [[Amietophrynus tuberosus]] | Ca | <2 Kb | 0,5 |- | 747 | [[Amietophrynus turkanae]] | Ca | <2 Kb | 0,5 |- | 748 | [[Amietophrynus urunguensis]] | Ca | <2 Kb | 0,5 |- | 749 | [[Amietophrynus villiersi]] | Ca | <2 Kb | 0,5 |- | 750 | [[Amietophrynus vittatus]] | Ca | <2 Kb | 0,5 |- | 751 | [[Amietophrynus xeros]] | Ca | <2 Kb | 0,5 |- | 752 | [[Gastrotheca abdita]] | Ca | <2 Kb | 0,5 |- | 753 | [[Gastrotheca albolineata]] | Ca | <2 Kb | 0,5 |- | 754 | [[Gastrotheca andaquiensis]] | Ca | <2 Kb | 0,5 |- | 755 | [[Gastrotheca angustifrons]] | Ca | <2 Kb | 0,5 |- | 756 | [[Gastrotheca antomia]] | Ca | <2 Kb | 0,5 |- | 757 | [[Gastrotheca argenteovirens]] | Ca | <2 Kb | 0,5 |- | 758 | [[Gastrotheca atympana]] | Ca | <2 Kb | 0,5 |- | 759 | [[Gastrotheca aureomaculata]] | Ca | <2 Kb | 0,5 |- | 760 | [[Gastrotheca bufona]] | Ca | <2 Kb | 0,5 |- | 761 | [[Gastrotheca christiani]] | Ca | <2 Kb | 0,5 |- | 762 | [[Gastrotheca chrysosticta]] | Ca | <2 Kb | 0,5 |- | 763 | [[Gastrotheca cornuta]] | Ca | <2 Kb | 0,5 |- | 764 | [[Gastrotheca dendronastes]] | Ca | <2 Kb | 0,5 |- | 765 | [[Gastrotheca dunni]] | Ca | <2 Kb | 0,5 |- | 766 | [[Gastrotheca espeletia]] | Ca | <2 Kb | 0,5 |- | 767 | [[Gastrotheca excubitor]] | Ca | <2 Kb | 0,5 |- | 768 | [[Gastrotheca fissipes]] | Ca | <2 Kb | 0,5 |- | 769 | [[Gastrotheca galeata]] | Ca | <2 Kb | 0,5 |- | 770 | [[Gastrotheca gracilis]] | Ca | <2 Kb | 0,5 |- | 771 | [[Gastrotheca griswoldi]] " | Ca | <2 Kb | 0,5 |- | 772 | [[Gastrotheca guentheri]] | Ca | <2 Kb | 0,5 |- | 773 | [[Gastrotheca helenae]] | Ca | <2 Kb | 0,5 |- | 774 | [[Gastrotheca lateonota]] | Ca | <2 Kb | 0,5 |- | 775 | [[Gastrotheca lauzuricae]] | Ca | <2 Kb | 0,5 |- | 776 | [[Gastrotheca litonedis]] | Ca | <2 Kb | 0,5 |- | 777 | [[Gastrotheca longipes]] | Ca | <2 Kb | 0,5 |- | 778 | [[Gastrotheca marsupiata]] | Ca | <2 Kb | 0,5 |- | 779 | [[Gastrotheca microdiscus]] | Ca | <2 Kb | 0,5 |- | 780 | [[Gastrotheca monticola]] | Ca | <2 Kb | 0,5 |- | 781 | [[Gastrotheca nicefori]] | Ca | <2 Kb | 0,5 |- | 782 | [[Gastrotheca ochoai]] | Ca | <2 Kb | 0,5 |- | 783 | [[Gastrotheca orophylax]] | Ca | <2 Kb | 0,5 |- | 784 | [[Gastrotheca ossilaginis]] | Ca | <2 Kb | 0,5 |- | 785 | [[Gastrotheca ovifera]] | Ca | <2 Kb | 0,5 |- | 786 | [[Gastrotheca pacchamama]] | Ca | <2 Kb | 0,5 |- | 787 | [[Gastrotheca peruana]] | Ca | <2 Kb | 0,5 |- | 788 | [[Gastrotheca phalarosa]] | Ca | <2 Kb | 0,5 |- | 789 | [[Gastrotheca piperata]] | Ca | <2 Kb | 0,5 |- | 790 | [[Gastrotheca plumbea]] | Ca | <2 Kb | 0,5 |- | 791 | [[Gastrotheca pseustes]] " | Ca | <2 Kb | 0,5 |- | 792 | [[Gastrotheca psychrophila]] | Ca | <2 Kb | 0,5 |- | 793 | [[Gastrotheca rebeccae]] | Ca | <2 Kb | 0,5 |- | 794 | [[Gastrotheca riobambae]] | Ca | <2 Kb | 0,5 |- | 795 | [[Gastrotheca ruizi]] | Ca | <2 Kb | 0,5 |- | 796 | [[Gastrotheca splendens]] | Ca | <2 Kb | 0,5 |- | 797 | [[Gastrotheca stictopleura]] | Ca | <2 Kb | 0,5 |- | 798 | [[Gastrotheca testudinea]] | Ca | <2 Kb | 0,5 |- | 799 | [[Gastrotheca trachyceps]] | Ca | <2 Kb | 0,5 |- | 800 | [[Gastrotheca walkeri]] | Ca | <2 Kb | 0,5 |- | 801 | [[Gastrotheca weinlandii]] | Ca | <2 Kb | 0,5 |- | 802 | [[Gastrotheca williamsoni]] | Ca | <2 Kb | 0,5 |- | 803 | [[Gastrotheca zeugocystis]] | Ca | <2 Kb | 0,5 |- | 804 | [[Mantidactylus]] | Ca | <2 Kb | 0,5 |- | 805 | [[Mantidactylus aerumnalis]] | Ca | <2 Kb | 0,5 |- | 806 | [[Mantidactylus aglavei]] | Ca | <2 Kb | 0,5 |- | 807 | [[Mantidactylus albofrenatus]] | Ca | <2 Kb | 0,5 |- | 808 | [[Mantidactylus albolineatus]] | Ca | <2 Kb | 0,5 |- | 809 | [[Mantidactylus alutus]] | Ca | <2 Kb | 0,5 |- | 810 | [[Mantidactylus ambohimitombi]] | Ca | <2 Kb | 0,5 |- | 811 | [[Mantidactylus ambohitra]] | Ca | <2 Kb | 0,5 |- | 812 | [[Mantidactylus ambreensis]] | Ca | <2 Kb | 0,5 |- | 813 | [[Mantidactylus argenteus]] | Ca | <2 Kb | 0,5 |- | 814 | [[Mantidactylus asper]] | Ca | <2 Kb | 0,5 |- | 815 | [[Mantidactylus bertini]] | Ca | <2 Kb | 0,5 |- | 816 | [[Mantidactylus betsileanus]] | Ca | <2 Kb | 0,5 |- | 817 | [[Mantidactylus bicalcaratus]] | Ca | <2 Kb | 0,5 |- | 818 | [[Mantidactylus biporus]] | Ca | <2 Kb | 0,5 |- | 819 | [[Mantidactylus blanci]] | Ca | <2 Kb | 0,5 |- | 820 | [[Mantidactylus blommersae]] | Ca | <2 Kb | 0,5 |- | 821 | [[Mantidactylus boulengeri]] | Ca | <2 Kb | 0,5 |- | 822 | [[Mantidactylus brevipalmatus]] | Ca | <2 Kb | 0,5 |- | 823 | [[Mantidactylus brunae]] | Ca | <2 Kb | 0,5 |- | 824 | [[Mantidactylus charlotteae]] | Ca | <2 Kb | 0,5 |- | 825 | [[Mantidactylus cornutus]] | Ca | <2 Kb | 0,5 |- | 826 | [[Mantidactylus corvus]] | Ca | <2 Kb | 0,5 |- | 827 | [[Mantidactylus curtus]] | Ca | <2 Kb | 0,5 |- | 828 | [[Mantidactylus decaryi]] | Ca | <2 Kb | 0,5 |- | 829 | [[Mantidactylus depressiceps]] | Ca | <2 Kb | 0,5 |- | 830 | [[Mantidactylus domerguei]] | Ca | <2 Kb | 0,5 |- | 831 | [[Mantidactylus eiselti]] | Ca | <2 Kb | 0,5 |- | 832 | [[Mantidactylus elegans]] | Ca | <2 Kb | 0,5 |- | 833 | [[Mantidactylus enki]] | Ca | <2 Kb | 0,5 |- | 834 | [[Mantidactylus femoralis]] | Ca | <2 Kb | 0,5 |- | 835 | [[Mantidactylus fimbriatus]] | Ca | <2 Kb | 0,5 |- | 836 | [[Mantidactylus flavobrunneus]] | Ca | <2 Kb | 0,5 |- | 837 | [[Mantidactylus grandidieri]] | Ca | <2 Kb | 0,5 |- | 838 | [[Mantidactylus grandisonae]] | Ca | <2 Kb | 0,5 |- | 839 | [[Mantidactylus granulatus]] | Ca | <2 Kb | 0,5 |- | 840 | [[Mantidactylus guibei]] | Ca | <2 Kb | 0,5 |- | 841 | [[Mantidactylus guttulatus]] | Ca | <2 Kb | 0,5 |- | 842 | [[Mantidactylus horridus]] | Ca | <2 Kb | 0,5 |- | 843 | [[Mantidactylus kathrinae]] | Ca | <2 Kb | 0,5 |- | 844 | [[Mantidactylus kely]] | Ca | <2 Kb | 0,5 |- | 845 | [[Mantidactylus klemmeri]] | Ca | <2 Kb | 0,5 |- | 846 | [[Mantidactylus leucocephalus]] | Ca | <2 Kb | 0,5 |- | 847 | [[Mantidactylus leucomaculatus]] | Ca | <2 Kb | 0,5 |- | 848 | [[Mantidactylus liber]] | Ca | <2 Kb | 0,5 |- | 849 | [[Mantidactylus lugubris]] | Ca | <2 Kb | 0,5 |- | 850 | [[Mantidactylus luteus]] | Ca | <2 Kb | 0,5 |- | 851 | [[Mantidactylus madecassus]] | Ca | <2 Kb | 0,5 |- | 852 | [[Mantidactylus madinika]] | Ca | <2 Kb | 0,5 |- | 853 | [[Mantidactylus majori]] | Ca | <2 Kb | 0,5 |- | 854 | [[Mantidactylus malagasius]] | Ca | <2 Kb | 0,5 |- | 855 | [[Mantidactylus massorum]] | Ca | <2 Kb | 0,5 |- | 856 | [[Mantidactylus melanopleura]] | Ca | <2 Kb | 0,5 |- | 857 | [[Mantidactylus microtis]] | Ca | <2 Kb | 0,5 |- | 858 | [[Mantidactylus microtympanum]] | Ca | <2 Kb | 0,5 |- | 859 | [[Mantidactylus mocquardi]] | Ca | <2 Kb | 0,5 |- | 860 | [[Mantidactylus moseri]] | Ca | <2 Kb | 0,5 |- | 861 | [[Mantidactylus opiparis]] | Ca | <2 Kb | 0,5 |- | 862 | [[Mantidactylus pauliani]] | Ca | <2 Kb | 0,5 |- | 863 | [[Mantidactylus peraccae]] | Ca | <2 Kb | 0,5 |- | 864 | [[Mantidactylus phantasticus]] | Ca | <2 Kb | 0,5 |- | 865 | [[Mantidactylus plicifer]] | Ca | <2 Kb | 0,5 |- | 866 | [[Mantidactylus pseudoasper]] | Ca | <2 Kb | 0,5 |- | 867 | [[Mantidactylus pulcher]] | Ca | <2 Kb | 0,5 |- | 868 | [[Mantidactylus punctatus]] | Ca | <2 Kb | 0,5 |- | 869 | [[Mantidactylus redimitus]] | Ca | <2 Kb | 0,5 |- | 870 | [[Mantidactylus rivicola]] | Ca | <2 Kb | 0,5 |- | 871 | [[Mantidactylus salegy]] | Ca | <2 Kb | 0,5 |- | 872 | [[Mantidactylus sarotra]] | Ca | <2 Kb | 0,5 |- | 873 | [[Mantidactylus schilfi]] | Ca | <2 Kb | 0,5 |- | 874 | [[Mantidactylus sculpturatus]] | Ca | <2 Kb | 0,5 |- | 875 | [[Mantidactylus silvanus]] | Ca | <2 Kb | 0,5 |- | 876 | [[Mantidactylus spiniferus]] | Ca | <2 Kb | 0,5 |- | 877 | [[Mantidactylus striatus]] | Ca | <2 Kb | 0,5 |- | 878 | [[Mantidactylus tandroka]] | Ca | <2 Kb | 0,5 |- | 879 | [[Mantidactylus thelenae]] | Ca | <2 Kb | 0,5 |- | 880 | [[Mantidactylus timidus]] | Ca | <2 Kb | 0,5 |- | 881 | [[Mantidactylus tornieri]] | Ca | <2 Kb | 0,5 |- | 882 | [[Mantidactylus tricinctus]] | Ca | <2 Kb | 0,5 |- | 883 | [[Mantidactylus tschenki]] | Ca | <2 Kb | 0,5 |- | 884 | [[Mantidactylus ulcerosus]] | Ca | <2 Kb | 0,5 |- | 885 | [[Mantidactylus ventrimaculatus]] | Ca | <2 Kb | 0,5 |- | 886 | [[Mantidactylus webbi]] | Ca | <2 Kb | 0,5 |- | 887 | [[Mantidactylus wittei]] | Ca | <2 Kb | 0,5 |- | 888 | [[Mantidactylus zavona]] | Ca | <2 Kb | 0,5 |- | 889 | [[Mantidactylus zipperi]] | Ca | <2 Kb | 0,5 |- | 890 | [[Mantidactylus zolitschka]] | Ca | <2 Kb | 0,5 |- | 891 | [[Boophis]] | Ca | <2 Kb | 0,5 |- | 892 | [[Boophis albilabris]] | Ca | <2 Kb | 0,5 |- | 893 | [[Boophis albipunctatus]] | Ca | <2 Kb | 0,5 |- | 894 | [[Boophis andohahela]] | Ca | <2 Kb | 0,5 |- | 895 | [[Boophis andreonei]] | Ca | <2 Kb | 0,5 |- | 896 | [[Boophis anjanaharibeensis]] | Ca | <2 Kb | 0,5 |- | 897 | [[Boophis ankaratra]] | Ca | <2 Kb | 0,5 |- | 898 | [[Boophis blommersae]] | Ca | <2 Kb | 0,5 |- | 899 | [[Boophis boehmei]] | Ca | <2 Kb | 0,5 |- | 900 | [[Boophis bottae]] | Ca | <2 Kb | 0,5 |- | 901 | [[Boophis brachychir]] | Ca | <2 Kb | 0,5 |- | 902 | [[Boophis burgeri]] | Ca | <2 Kb | 0,5 |- | 903 | [[Boophis doulioti]] | Ca | <2 Kb | 0,5 |- | 904 | [[Boophis elenae]] | Ca | <2 Kb | 0,5 |- | 905 | [[Boophis englaenderi]] | Ca | <2 Kb | 0,5 |- | 906 | [[Boophis erythrodactylus]] | Ca | <2 Kb | 0,5 |- | 907 | [[Boophis feonnyala]] | Ca | <2 Kb | 0,5 |- | 908 | [[Boophis goudotii]] | Ca | <2 Kb | 0,5 |- | 909 | [[Boophis guibei]] | Ca | <2 Kb | 0,5 |- | 910 | [[Boophis haematopus]] | Ca | <2 Kb | 0,5 |- | 911 | [[Boophis hillenii]] | Ca | <2 Kb | 0,5 |- | 912 | [[Boophis idae]] | Ca | <2 Kb | 0,5 |- | 913 | [[Boophis jaegeri]] | Ca | <2 Kb | 0,5 |- | 914 | [[Boophis laurenti]] | Ca | <2 Kb | 0,5 |- | 915 | [[Boophis liami]] | Ca | <2 Kb | 0,5 |- | 916 | [[Boophis lichenoides]] | Ca | <2 Kb | 0,5 |- | 917 | [[Boophis luteus]] | Ca | <2 Kb | 0,5 |- | 918 | [[Boophis madagascariensis]] | Ca | <2 Kb | 0,5 |- | 919 | [[Boophis majori]] | Ca | <2 Kb | 0,5 |- | 920 | [[Boophis mandraka]] | Ca | <2 Kb | 0,5 |- | 921 | [[Boophis marojezensis]] | Ca | <2 Kb | 0,5 |- | 922 | [[Boophis microtympanum]] | Ca | <2 Kb | 0,5 |- | 923 | [[Boophis miniatus]] | Ca | <2 Kb | 0,5 |- | 924 | [[Boophis occidentalis]] | Ca | <2 Kb | 0,5 |- | 925 | [[Boophis opisthodon]] | Ca | <2 Kb | 0,5 |- | 926 | [[Boophis pauliani]] | Ca | <2 Kb | 0,5 |- | 927 | [[Boophis periegetes]] | Ca | <2 Kb | 0,5 |- | 928 | [[Boophis picturatus]] | Ca | <2 Kb | 0,5 |- | 929 | [[Boophis pyrrhus]] | Ca | <2 Kb | 0,5 |- | 930 | [[Boophis rappiodes]] | Ca | <2 Kb | 0,5 |- | 931 | [[Boophis reticulatus]] | Ca | <2 Kb | 0,5 |- | 932 | [[Boophis rhodoscelis]] | Ca | <2 Kb | 0,5 |- | 933 | [[Boophis rufioculis]] | Ca | <2 Kb | 0,5 |- | 934 | [[Boophis sambirano]] | Ca | <2 Kb | 0,5 |- | 935 | [[Boophis schuboeae]] | Ca | <2 Kb | 0,5 |- | 936 | [[Boophis septentrionalis]] | Ca | <2 Kb | 0,5 |- | 937 | [[Boophis sibilans]] | Ca | <2 Kb | 0,5 |- | 938 | [[Boophis solomaso]] | Ca | <2 Kb | 0,5 |- | 939 | [[Boophis tasymena]] | Ca | <2 Kb | 0,5 |- | 940 | [[Boophis tephraeomystax]] | Ca | <2 Kb | 0,5 |- | 941 | [[Boophis viridis]] | Ca | <2 Kb | 0,5 |- | 942 | [[Boophis vittatus]] | Ca | <2 Kb | 0,5 |- | 943 | [[Boophis williamsi]] | Ca | <2 Kb | 0,5 |- | 944 | [[Boophis xerophilus]] | Ca | <2 Kb | 0,5 |- | 945 | [[Rhacophoridae]] | Ca | 1.728 bytes | 0,5 |- | 946 | [[Vigilante]] | Cp (desamb) | 908 bytes | 0,5 |- | 947 | [[Sooglossidae]] | C | 3.161 bytes | 1 |} ==Resumen== {| class="sortable wikitable" ! Icono ! Tipo ! # de Art. ! Puntuación |- | [[Imagen:N write green black.svg|30px]] | '''Wikificados''' | 00 | 00 puntos |- | [[Imagen:N write.svg|30px]] | '''Wikificados especiales''' | 00 | 00 puntos |- | [[Imagen:Quill and ink.svg|30px]] | '''Creados''' | 01 | 01 puntos |- | [[Imagen:Pencil.svg|30px]] | '''C. Pequeños''' | 01 | 0,5 puntos |- | [[Imagen:Redhat-office.png|30px]] | '''C. Automáticos''' | 945 | 472,5 puntos |- | [[Imagen:Artículo_bueno.svg|30px]] | '''AB's''' | 00 | 00 puntos |- | [[Imagen:Cscr-featured.svg|30px]] | '''AD's''' | 00 | 00 puntos |- | [[Imagen:Crystal Clear app List manager.png|30px]] | '''Revisión SAB''' | 00 | 00 puntos |- | '''Total''' | >>>>>>>>>>>>>>>> | 947 | '''474 puntos''' |} ==Tabla rápida== *Entre 2 y 5 kb: '''1 punto'''. *Entre 5 y 7 kb: '''2 puntos'''. *Entre 7 y 13 kb: '''3 puntos'''. *Entre 13 y 19 kb: '''4 puntos'''. *Entre 19 y 31 kb: '''5 puntos'''. *Más de 31 kb: '''6 puntos'''. [[Categoría:Wikipedia:Wikirreto 2008/Noviembre|Lucien leGrey]] nopkg-foster/000077500000000000000000000000001335270560400377705ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing-no-fp.ast/000077500000000000000000000000001335270560400457545ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-fosterlink-in-table.ast000066400000000000000000000015031335270560400511120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-fp.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/link-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtInternalLink., Warning: : : 12.2.5.4.9 R16 @ WtXmlEndTag. ] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foo" ], title = - ), [1] = "\n" ] ) ] ) ] ), [1] = "\n" ) template-in-table.ast000066400000000000000000000053121335270560400517720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:2:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:4:3: : 12.2.5.4.9 R16 @ WtTemplate. ] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ) ], body = WtBody[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [3] = "\n", [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [5] = "\n" ] ), [1] = "\n", [2] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) ], [3] = "\n" ) template-param-in-table.ast000066400000000000000000000013561335270560400530740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-param-in-table.wikitext:2:4: : 12.2.5.4.9 R16 @ WtTemplateParameter. ] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ), [1] = "\n" ] ), [1] = "\n" ) after-postprocessing-no-tc-fp.ast/000077500000000000000000000000001335270560400463605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-fosterlink-in-table.ast000066400000000000000000000014141335270560400515170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-tc-fp.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/link-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtInternalLink., Warning: : : 12.2.5.4.9 R16 @ WtXmlEndTag. ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foo" ], title = - ), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ), [2] = "\n" ) template-in-table.ast000066400000000000000000000053121335270560400523760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-tc-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:2:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:4:3: : 12.2.5.4.9 R16 @ WtTemplate. ] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ) ], body = WtBody[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [1] = "\n", [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [3] = "\n", [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [5] = "\n" ] ), [1] = "\n", [2] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) ], [3] = "\n" ) template-param-in-table.ast000066400000000000000000000013561335270560400535000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-no-tc-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-param-in-table.wikitext:2:4: : 12.2.5.4.9 R16 @ WtTemplateParameter. ] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ), [1] = "\n" ] ), [1] = "\n" ) after-postprocessing-with-fp.ast/000077500000000000000000000000001335270560400463135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-fosterlink-in-table.ast000066400000000000000000000014141335270560400514520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-with-fp.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/link-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtInternalLink., Warning: : : 12.2.5.4.9 R16 @ WtXmlEndTag. ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Foo" ], title = - ), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ), [2] = "\n" ) template-in-table.ast000066400000000000000000000052071335270560400523340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-with-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [3] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [4] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:2:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:3:3: : 12.2.5.4.9 R16 @ WtTemplate., Warning: /nopkg-foster/input.wikitext/template-in-table.wikitext:4:3: : 12.2.5.4.9 R16 @ WtTemplate. ] [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Image" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Career" ], args = WtTemplateArguments[] ), [2] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Characteristics" ], args = WtTemplateArguments[] ), [3] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Infobox Ship Begin" ], args = WtTemplateArguments[] ) ], body = WtBody[ [0] = "\n\n\n" ] ), [4] = "\n", [5] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = true {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "otherships" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Boaty McBoatface" ] ) ] ) ], [6] = "\n" ) template-param-in-table.ast000066400000000000000000000013331335270560400534260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/after-postprocessing-with-fp.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ) } {P} warnings = C[ Warning: /nopkg-foster/input.wikitext/template-param-in-table.wikitext:2:4: : 12.2.5.4.9 R16 @ WtTemplateParameter. ] [0] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "" "" "}}}" ] name = WtName[ [0] = "1" ], default = -, garbage = WtTemplateArguments[] ), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = "\n" ) input.wikitext/000077500000000000000000000000001335270560400427765ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-fosterlink-in-table.wikitext000066400000000000000000000000211335270560400472070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/input.wikitext{| |- [[Foo]] |} template-in-table.wikitext000066400000000000000000000002141335270560400500710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/input.wikitext{|{{Infobox Ship Begin}} {{Infobox Ship Image}} {{Infobox Ship Career}} {{Infobox Ship Characteristics}} |} {{otherships|Boaty McBoatface}} template-param-in-table.wikitext000066400000000000000000000000161335270560400511670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-foster/input.wikitext{| {{{1}}} |} nopkg-regression/000077500000000000000000000000001335270560400406465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing.ast/000077500000000000000000000000001335270560400456155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regressionbeware-text.ast000066400000000000000000000033431335270560400505600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-regression/input.wikitext/beware-text.wikitext:10:14: : 12.2.5.4.9 R16 @ WtXmlStartTag., Warning: /nopkg-regression/input.wikitext/beware-text.wikitext:10:18: : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-regression/input.wikitext/beware-text.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[ [0] = "The text intentionally contains an unescaped ", [1] = WtText( {A} warnings = C[ Warning (informative): /nopkg-regression/input.wikitext/beware-text.wikitext:1:46 - 47: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [2] = "ltdiv> tag!" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "Beware:\nConcerns the \"parse the pretty printed text again\" test.\nThe \" b " ], [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c \" part will be pulled in front of the table.\nThe \"a \" is in a paragraph, the table contents will appear on a NEW LINE\nafter the paragraph. When pretty printing the \" b\" will be at the start of a line.\nIt will be parsed as SEMI PRE!\n\n", [1] = WtParagraph[ [0] = "a " ], [2] = " b ", [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ), [4] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [5] = " d" ] ) ) cpp.ast000066400000000000000000000006571335270560400471200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "code" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "<" ] ), [1] = "\n", [2] = WtXmlElement( {P} name = "blub" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "<" ] ) ] ) def_list-1.ast000066400000000000000000000007071335270560400502610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtDefinitionList[ [0] = WtDefinitionListTerm( {P} rtd = RTD[ ";" "" ] [0] = "Other" ) ], [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "x" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "y" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "z" ) ), [2] = "\n" ) deflist-1.ast000066400000000000000000000007071335270560400501220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtDefinitionList[ [0] = WtDefinitionListTerm( {P} rtd = RTD[ ";" "" ] [0] = "Other" ) ], [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "x" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "y" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "z" ) ), [2] = "\n" ) image-with-alt-and-links-in-title.ast000066400000000000000000000014151335270560400545410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Y" ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Z" ], title = - ) ) ] ) ) issue-35-1.ast000066400000000000000000000040741335270560400500460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R52 (1) @ WtXmlEndTag., Warning: /nopkg-regression/input.wikitext/issue-35-1.wikitext:8:4: : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag. ] [0] = WtSemiPre[ [0] = " ", [1] = WtXmlElement( {P} name = "source" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "lang" ], value = WtValue[ [0] = "xml" ] ) ], body = WtBody[] ) ], [1] = "\n", [2] = WtParagraph[ [0] = " " ], [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Joe Doe" ] ), [2] = "\n ", [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "The Example Company" ] ), [4] = "\n ", [5] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "604-555-1234" ] ), [6] = "\n", [7] = WtSemiPre[ [0] = " ", [1] = WtXmlElement( {P} name = "a" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "href" ], value = WtValue[ [0] = "http://example.com/" ] ) ], body = WtBody[ [0] = WtUrl( {P} path = "//example.com/" {P} protocol = "http" {P} rtd = RTD[ "http://example.com/" ] ) ] ) ], [8] = "\n", [9] = WtParagraph[ [0] = " " ] ] ), [4] = "\n", [5] = WtSemiPre[ [0] = " ", [1] = WtXmlEndTag( {P} name = "source" {P} rtd = RTD[ "" ] ) ] ) issue-35-2.ast000066400000000000000000000007161335270560400500460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "1", [1] = WtXmlElement( {P} name = "tt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2", [1] = WtXmlElement( {P} name = "a" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ), [2] = "4" ] ), [2] = "5" ] ) issue54.ast000066400000000000000000000014771335270560400476400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R24 (2) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Richard Chancellor" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "center" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Richard Chancellor (1553)" ] ) ) ] ), [2] = "\nText" ) link-1.ast000066400000000000000000000012221335270560400474160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:SC.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SC" ) ] ) ] ) link-2.ast000066400000000000000000000007401335270560400474230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:x" ], options = WtLinkOptions[ [0] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ) link-3.ast000066400000000000000000000007261335270560400474300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X" ], options = WtLinkOptions[ [0] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Left:" ) ] ) ] ) link-in-table-crashes.ast000066400000000000000000000010411335270560400523760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-regression/input.wikitext/link-in-table-crashes.wikitext:2:3: : 12.2.5.4.9 R16 @ WtInternalLink., Warning: : : 12.2.5.4.9 R16 @ WtXmlEndTag. ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "X" ], title = - ), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ) link-with-templates-1.ast000066400000000000000000000014571335270560400523750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "|{{" "" "}}" ] name = WtName[ [0] = "Y" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X.ogg" ], options = WtLinkOptions[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "|{{" "" "}}" ] name = WtName[ [0] = "Y" ], args = WtTemplateArguments[] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Z" ) ] ) ] ) link-with-templates-2.ast000066400000000000000000000016361335270560400523750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " ... " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtParagraph[], [1] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A ", [1] = WtXmlComment( {P} content = " ... " {P} prefix = "" {P} rtd = RTD[ "" ] {P} suffix = "" ), [2] = " B" ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "Y" ) ] ), [2] = "\n" ) links-entities.ast000066400000000000000000000101601335270560400512660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = - ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo %0 Hallo" ], title = - ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:5:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo %00 Hallo]]" ], [5] = "\n\n", [6] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:7:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo %7F Hallo]]" ], [7] = "\n\n", [8] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:9:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo %80 Hallo]]" ], [9] = "\n\n", [10] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo %20 Hallo" ], title = - ) ], [11] = "\n\n", [12] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo %7E Hallo" ], title = - ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo & Hallo" ], title = - ) ], [15] = "\n\n", [16] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:17:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo ", [2] = WtXmlEntityRef( {P} name = "amplifier" {P} resolved = null {P} rtd = RTD[ "&lifier;" ] ), [3] = " Hallo]]" ], [17] = "\n\n", [18] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:19:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo ", [2] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [3] = "amp; Hallo]]" ], [19] = "\n\n", [20] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo %61 Hallo" ], title = - ) ], [21] = "\n\n", [22] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo &%61mp; Hallo" ], title = - ) ], [23] = "\n\n", [24] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (none): /nopkg-regression/input.wikitext/links-entities.wikitext:25:1 - 3: "[[" : This looks like a Internal Link, however a target link is missing. ] {P} content = "[[" ), [1] = "Hallo ", [2] = WtText( {A} warnings = C[ Warning (informative): /nopkg-regression/input.wikitext/links-entities.wikitext:25:9 - 10: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [3] = "%42mp; Hallo]]" ], [25] = "\n\n", [26] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo+Hallo" ], title = - ) ], [27] = "\n\n", [28] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo%20Hallo+Hallo" ], title = - ) ], [29] = "\n" ) list-1.ast000066400000000000000000000007301335270560400474370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSection( {P} level = 1 heading = WtHeading( {P} rtd = RTD[ "=" "=" ] [0] = "C" ), body = WtBody[ [0] = "\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "1", [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = "3" ) ) ) ] ] ) ) list-with-templates-1.ast000066400000000000000000000030041335270560400524010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "X" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Y" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Z" ] ) ] ) } {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " A", [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = "B", [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "***" "\n" ] [0] = " C" ) ) ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "X" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Y" ] ), [1] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Z" ] ) ] ), [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "" ] [0] = "D" ) ) ) ], [1] = "\n" ) nesting-7.ast000066400000000000000000000005231335270560400501410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "=", [1] = WtInternalLink( {P} postfix = "h" {P} prefix = "h" {P} rtd = RTD[ "h[[" "" "]]h" ] target = WtPageName[ [0] = "t" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "a\nb" ) ), [2] = "=" ] ) onlyinclude.ast000066400000000000000000000004041335270560400506510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtIgnored("") } {P} warnings = C[] [0] = WtParagraph[ [0] = WtIgnored(""), [1] = "don't touch me!", [2] = WtIgnored("") ] ) ref-exttag-with-template-body.ast000066400000000000000000000013731335270560400541150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "X'" ] ) ], body = WtTagExtensionBody("{{Y|}}") ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "X'" ] ) ], body = WtTagExtensionBody("{{Y|}}") ) ], [1] = "\n" ) sweble-issue-1.ast000066400000000000000000000022571335270560400511010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-regression/input.wikitext/sweble-issue-1.wikitext:1:1 - 4: "[[A" : This looks like a Internal Link, however the finishing `]]' is missing. ] {P} content = "[[" ), [1] = "A|" ], [1] = "\n", [2] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "B" ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "X" ], title = - ) ], [3] = "\n" ] ) ] ) ] ) ] ), [3] = "\n", [4] = WtParagraph[ [0] = "]]" ] ) table-1.ast000066400000000000000000000011161335270560400475520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "H" ], [1] = "\n" ] ) ] ) ] ) ] ) ) table-2.ast000066400000000000000000000027611335270560400475620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-regression/input.wikitext/table-2.wikitext:2:7: : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-regression/input.wikitext/table-2.wikitext:3:7: : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-regression/input.wikitext/table-2.wikitext:1:1: : 12.2.5.4.7 R10 (1) @ WtParsedWikitextPage., Warning: /nopkg-regression/input.wikitext/table-2.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtBold( {P} rtd = RTD[ "'''" "" ] ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n ", [1] = WtBold( {P} rtd = RTD[ "'''" "" ] ) ] ) ] ) ] ) ] ) ) table-caption-1.ast000066400000000000000000000005631335270560400512120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ " |+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "x" ], [1] = "\n" ] ) ] ) ) table-with-comments-1.ast000066400000000000000000000063351335270560400523560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = "DE" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ), [1] = WtXmlComment( {P} content = "AT" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ), [2] = WtXmlComment( {P} content = "CH" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ), [3] = WtXmlComment( {P} content = "UK" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ), [4] = WtXmlComment( {P} content = "US" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Enya" ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = "DE" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtParagraph[ [0] = " X" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = "AT" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Y" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = "CH" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Z" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = "UK" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtParagraph[ [0] = " A" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ "|" "|" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = "US" {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtParagraph[ [0] = " B" ], [1] = "\n" ] ) ] ) ] ) ] ), [1] = "\n" ) table-with-templates-1.ast000066400000000000000000000016331335270560400525230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "A\n" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "B\n" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "A\n" ], args = WtTemplateArguments[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "B\n" ], args = WtTemplateArguments[] ) ] ], body = WtBody[] ), [1] = "\n" ) table-with-templates-2.ast000066400000000000000000000025431335270560400525250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "ligne grise" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "..." ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ "|-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "ligne grise" ], args = WtTemplateArguments[] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ "|" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "..." ], [1] = "\n" ] ) ] ) ] ) ] ), [1] = "\n" ) table-with-templates-3.ast000066400000000000000000000016471335270560400525320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "' \"" ], args = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "A" ] ), [1] = WtXmlAttributeGarbage[ [0] = " |" ], [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "B" ] ), [3] = WtXmlAttributeGarbage[ [0] = " | \"X", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "' \"" ], args = WtTemplateArguments[] ) ] ], body = WtBody[] ), [1] = "\n" ) tbody-with-spaces.ast000066400000000000000000000011351335270560400516740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" "|}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ "!" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "X" ], [1] = "\n" ] ) ] ) ] ) ] ) ) ticks-1.ast000066400000000000000000000003721335270560400476030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = " A ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = " B " ), [2] = " C " ) ] ) xml-elements.ast000066400000000000000000000011751335270560400507440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) } {P} warnings = C[ Warning: /nopkg-regression/input.wikitext/xml-elements.wikitext:1:7: : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [1] = "<", [2] = WtXmlEndTag( {P} name = "ref" {P} rtd = RTD[ "" ] ) ] ) xml-tag-with-templates-1.ast000066400000000000000000000017011335270560400530010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "=" ], args = WtTemplateArguments[] ) } {P} warnings = C[ Warning: /nopkg-regression/input.wikitext/xml-tag-with-templates-1.wikitext:1:2: : 12.2.4 Element should not be an empty tag! @ WtXmlEmptyTag., Warning: /nopkg-regression/input.wikitext/xml-tag-with-templates-1.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttributeGarbage[ [0] = " style", [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "=" ], args = WtTemplateArguments[] ), [2] = "\"X\"" ] ], body = WtBody[ [0] = "\n" ] ) ) xml_attribute-1.ast000066400000000000000000000013621335270560400513510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-regression/input.wikitext/xml_attribute-1.wikitext:1:1: : 12.2.5.4.7 R10 (1) @ WtParsedWikitextPage. ] [0] = WtTable( {P} rtd = RTD[ "{|" "" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "x" ], value = WtValue[ [0] = WtText( {A} warnings = C[ Warning (informative): /nopkg-regression/input.wikitext/xml_attribute-1.wikitext:1:6 - 7: "&" : This looks like a XML Reference, however the entity name or character code is missing. ] {P} content = "&" ), [1] = "x" ] ), [1] = WtXmlAttributeGarbage[ [0] = " x&x" ] ], body = - ) ) xml_attribute-2.ast000066400000000000000000000006121335270560400513470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.9 R16 @ WtText. ] [0] = "\"hallo\"\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "x" ], value = WtValue[] ) ], body = WtBody[] ) ) xml_attribute-3.ast000066400000000000000000000014461335270560400513560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Whitespace before Eol!" ], [1] = "\n", [2] = WtTable( {P} rtd = RTD[ "{|" " \n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "x" ], value = WtValue[ [0] = "hallo" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" " \n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "x" ], value = WtValue[ [0] = "hallo" ] ) ], body = WtBody[] ) ] ) ] ) ) xml_attribute-5.ast000066400000000000000000000016201335270560400513520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " some comment " {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) } {P} warnings = C[] [0] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlComment( {P} content = " some comment " {P} prefix = "" {P} rtd = RTD[ " " ] {P} suffix = "" ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " A cell" ], [1] = "\n" ] ) ] ) ] ) ] ), [1] = "\n" ) input.wikitext/000077500000000000000000000000001335270560400436545ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regressionbeware-text.wikitext000066400000000000000000000006231335270560400476760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitextThe text intentionally contains an unescaped <div> tag! Beware: Concerns the "parse the pretty printed text again" test. The " b
    c " part will be pulled in front of the table. The "a " is in a paragraph, the table contents will appear on a NEW LINE after the paragraph. When pretty printing the " b" will be at the start of a line. It will be parsed as SEMI PRE! a b
    c
    dcpp.wikitext000066400000000000000000000000351335270560400462260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext< <def_list-1.wikitext000066400000000000000000000000201335270560400473650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext;Other *x *y *z deflist-1.wikitext.disabled000066400000000000000000000000051335270560400507770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitextt'':timage-with-alt-and-links-in-title.wikitext000066400000000000000000000000341335270560400536550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:X|thumb|alt=Y|[[Z]]]]issue-35-1.wikitext000066400000000000000000000002721335270560400471620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext
    Joe Doe
    The Example Company
    604-555-1234
    http://example.com/
    issue-35-2.wikitext000066400000000000000000000000251335270560400471570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext12345issue54.wikitext000066400000000000000000000001101335270560400467370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:Richard Chancellor|thumb|
    Richard Chancellor (1553)]] Textlink-1.wikitext000066400000000000000000000000351335270560400465370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[file:SC.jpg|225px|alt=|SC]]link-2.wikitext000066400000000000000000000000211335270560400465330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:x|alt= ]]link-3.wikitext000066400000000000000000000000201335270560400465330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:X|Left:]]link-in-table-crashes.wikitext000066400000000000000000000000131335270560400515140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| [[X]] |}link-with-templates-1.wikitext000066400000000000000000000000261335270560400515040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:X.ogg|{{Y}}|Z]]link-with-templates-2.wikitext000066400000000000000000000000541335270560400515060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[File:X.jpg|thumb|A B|alt=Y]] links-entities.wikitext000066400000000000000000000005071335270560400504120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[Hallo]] [[Hallo %0 Hallo]] [[Hallo %00 Hallo]] [[Hallo %7F Hallo]] [[Hallo %80 Hallo]] [[Hallo %20 Hallo]] [[Hallo %7E Hallo]] [[Hallo & Hallo]] [[Hallo &lifier; Hallo]] [[Hallo &amp; Hallo]] [[Hallo %61 Hallo]] [[Hallo &%61mp; Hallo]] [[Hallo &%42mp; Hallo]] [[Hallo+Hallo]] [[Hallo%20Hallo+Hallo]] list-1.wikitext000066400000000000000000000000121335270560400465500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext=C= *1 **3list-with-templates-1.wikitext000066400000000000000000000000351335270560400515220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext* A **B *** C *{{X|Y|Z}} **D nesting-7.wikitext000066400000000000000000000000151335270560400472550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext=h[[t|a b]]h=onlyinclude.wikitext000066400000000000000000000000521335270560400477700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitextdon't touch me!paragraphs_vs_xml-1.wikitext.disabled000066400000000000000000000000631335270560400530710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext
    x x
    ref-exttag-with-template-body.wikitext000066400000000000000000000000341335270560400532260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{{Y|}} sweble-issue-1.wikitext000066400000000000000000000000271335270560400502120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext[[A| {| !B [[X]] |} ]]table-1.wikitext000066400000000000000000000000101335270560400466620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| !H |}table-2.wikitext000066400000000000000000000000541335270560400466730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitexttable-caption-1.wikitext000066400000000000000000000000131335270560400503200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| |+x |}table-with-comments-1.wikitext000066400000000000000000000001341335270560400514650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| | ''Enya'' | | X | | Y | | Z | | A | | B |} table-with-templates-1.wikitext000066400000000000000000000000221335270560400516320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{|{{A }}{{B }} |} table-with-templates-2.wikitext000066400000000000000000000000421335270560400516350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| |... |-{{ligne grise}} |... |} table-with-templates-3.wikitext000066400000000000000000000000511335270560400516360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| style="A" | style="B" | "X{{' "}} |} tbody-with-spaces.wikitext000066400000000000000000000000111335270560400510040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| !X |}ticks-1.wikitext000066400000000000000000000000231335270560400467140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext'' A ''' B ''' C ''xml-elements.wikitext000066400000000000000000000000221335270560400500520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext<xml-tag-with-templates-1.wikitext000066400000000000000000000000261335270560400521200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext
    xml_attribute-1.wikitext000066400000000000000000000000131335270560400504610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| x=&x x&xxml_attribute-2.wikitext000066400000000000000000000000211335270560400504610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| x= "hallo" |}xml_attribute-3.wikitext000066400000000000000000000000771335270560400504750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitextWhitespace before Eol! {| x="hallo" |- x="hallo" |}xml_attribute-4.wikitext.disabled000066400000000000000000000000411335270560400522330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| attr="value" |}xml_attribute-5.wikitext000066400000000000000000000000471335270560400504740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/input.wikitext{| | A cell |} pretty-printed.ast/000077500000000000000000000000001335270560400444265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regressionbeware-text.ast000066400000000000000000000015431335270560400473710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "The text intentionally contains an unescaped", [1] = "&", [2] = "ltdiv> tag!", [3] = "Beware:\nConcerns the \"parse the pretty printed text again\" test.\nThe \" b", [4] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c \" part will be pulled in front of the table.\nThe \"a \" is in a paragraph, the table contents will appear on a NEW LINE\nafter the paragraph. When pretty printing the \" b\" will be at the start of a line.\nIt will be parsed as SEMI PRE!", [1] = "a", [2] = "b", [3] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c" ] ), [4] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [5] = "d" ] ) ) table-2.ast000066400000000000000000000013621335270560400463670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "'", [1] = WtItalics[ [0] = WtBold[] ] ] ), [1] = WtXmlElement( {P} name = "td" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "'", [1] = WtItalics[ [0] = WtBold[] ] ] ) ] ) ] ) ] ) ) xml_attribute-1.ast000066400000000000000000000004041335270560400501560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtTable( xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( name = WtName[ [0] = "x" ], value = WtValue[ [0] = "&", [1] = "x" ] ) ], body = WtBody[] ) ) pretty-printed.wikitext/000077500000000000000000000000001335270560400455075ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regressionbeware-text.wikitext000066400000000000000000000006441335270560400515340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitextThe text intentionally contains an unescaped <div> tag! Beware: Concerns the "parse the pretty printed text again" test. The " b
    c " part will be pulled in front of the table. The "a " is in a paragraph, the table contents will appear on a NEW LINE after the paragraph. When pretty printing the " b" will be at the start of a line. It will be parsed as SEMI PRE! a b
    c
    ''' '''
    d
    cpp.wikitext000066400000000000000000000000361335270560400500620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext< < def_list-1.wikitext000066400000000000000000000000221335270560400512220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext ;Other *x *y *z deflist-1.wikitext.disabled000066400000000000000000000000051335270560400526320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitextt'':timage-with-alt-and-links-in-title.wikitext000066400000000000000000000000351335270560400555110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:X|thumb|alt=Y|[[Z]]]] issue-35-1.wikitext000066400000000000000000000003141335270560400510120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext
    Joe Doe
    The Example Company
    604-555-1234
    http://example.com/
    issue-35-2.wikitext000066400000000000000000000000261335270560400510130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext12345 issue54.wikitext000066400000000000000000000001221335270560400505750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:Richard Chancellor|thumb|
    Richard Chancellor (1553)
    ]] Text link-1.wikitext000066400000000000000000000000361335270560400503730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[file:SC.jpg|225px|alt=|SC]] link-2.wikitext000066400000000000000000000000221335270560400503670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:x|alt= ]] link-3.wikitext000066400000000000000000000000211335270560400503670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:X|Left:]] link-in-table-crashes.wikitext000066400000000000000000000000161335270560400533520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[X]] {| |} link-with-templates-1.wikitext000066400000000000000000000000271335270560400533400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:X.ogg|{{Y}}|Z]] link-with-templates-2.wikitext000066400000000000000000000000541335270560400533410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[File:X.jpg|thumb|A B|alt=Y]] links-entities.wikitext000066400000000000000000000005071335270560400522450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[Hallo]] [[Hallo %0 Hallo]] [[Hallo %00 Hallo]] [[Hallo %7F Hallo]] [[Hallo %80 Hallo]] [[Hallo %20 Hallo]] [[Hallo %7E Hallo]] [[Hallo & Hallo]] [[Hallo &lifier; Hallo]] [[Hallo &amp; Hallo]] [[Hallo %61 Hallo]] [[Hallo &%61mp; Hallo]] [[Hallo &%42mp; Hallo]] [[Hallo+Hallo]] [[Hallo%20Hallo+Hallo]] list-1.wikitext000066400000000000000000000000151335270560400504060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext =C= *1 **3 list-with-templates-1.wikitext000066400000000000000000000000361335270560400533560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext * A **B *** C *{{X|Y|Z}} **D nesting-7.wikitext000066400000000000000000000000161335270560400511110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext=h[[t|a b]]h= onlyinclude.wikitext000066400000000000000000000000531335270560400516240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitextdon't touch me! paragraphs_vs_xml-1.wikitext.disabled000066400000000000000000000000631335270560400547240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext
    x x
    ref-exttag-with-template-body.wikitext000066400000000000000000000000341335270560400550610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext{{Y|}} sweble-issue-1.wikitext000066400000000000000000000000341335270560400520430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext[[A| {| !B [[X]] |} ]] table-1.wikitext000066400000000000000000000000141335270560400505210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| !H |} table-2.wikitext000066400000000000000000000000731335270560400505270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext
    '''''' ''''''
    table-caption-1.wikitext000066400000000000000000000000151335270560400521550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| |+x |} table-with-comments-1.wikitext000066400000000000000000000001511335270560400533170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| | ''Enya'' | | X | | Y | | Z | | A | | B |} table-with-templates-1.wikitext000066400000000000000000000000101335270560400534620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| |} table-with-templates-2.wikitext000066400000000000000000000000501335270560400534670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| |... |- {{ligne grise}} |... |} table-with-templates-3.wikitext000066400000000000000000000000341335270560400534720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| style="A" style="B" |} tbody-with-spaces.wikitext000066400000000000000000000000141335270560400526420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| !X |} ticks-1.wikitext000066400000000000000000000000241335270560400505500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext'' A ''' B ''' C '' wrong-rtd-1.wikitext000066400000000000000000000001251335270560400513600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitextAngela Heywood's ''[[The Word (free love)|''The Word'']]'' (1872–1890, 1892–1893)xml-elements.wikitext000066400000000000000000000000231335270560400517060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext< xml-tag-with-templates-1.wikitext000066400000000000000000000000151335270560400537510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext
    xml_attribute-1.wikitext000066400000000000000000000000171335270560400523200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| x="&x" |} xml_attribute-2.wikitext000066400000000000000000000000251335270560400523200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext"hallo" {| x="" |} xml_attribute-3.wikitext000066400000000000000000000000671335270560400523270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitextWhitespace before Eol! {| x="hallo" |- x="hallo" |} xml_attribute-4.wikitext.disabled000066400000000000000000000000411335270560400540660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext{| attr="value" |}xml_attribute-5.wikitext000066400000000000000000000000501335270560400523210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-regression/pretty-printed.wikitext {| | A cell |} nopkg-scopes/000077500000000000000000000000001335270560400377625ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing.ast/000077500000000000000000000000001335270560400447315ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopesx01.ast000066400000000000000000000013401335270560400460500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-scopes/input.wikitext/x01.wikitext:2:14: : 12.2.5.4.7 - R20 (2) @ WtBody. ] [0] = "\n", [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " A ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " B " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "C" ], [2] = "\n" ] ) ] ) ) x02.ast000066400000000000000000000015041335270560400460530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x02.wikitext:1:21: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " b " ) ) ] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "target" ), title = WtLinkTitle[ [0] = " c " ] ), [2] = " d" ] ) x03.ast000066400000000000000000000023321335270560400460540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x03.wikitext:1:27: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " a ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " c " ) ) ] ) ] ), [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "target" ), title = WtLinkTitle[ [0] = " d " ] ), [1] = " e" ] ) ] ) x04.ast000066400000000000000000000003661335270560400460620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " aaa " ] ) ] ) x05.ast000066400000000000000000000007231335270560400460600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ), [2] = " d " ] ), [2] = " e" ] ) x06.ast000066400000000000000000000013071335270560400460600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x06.wikitext:1:17: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ) ] ), [2] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ), [3] = " e" ] ) x07.ast000066400000000000000000000013571335270560400460660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ) ), [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c" ] ) ] ) x08.ast000066400000000000000000000017501335270560400460640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x08.wikitext:1:32: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ) ), [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ) ] ) ] ) x09.ast000066400000000000000000000013111335270560400460560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x09.wikitext:1:20: : 12.2.5.4.7 - R20 (2) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " italic " ] ) ] ), [2] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " still italic " ] ), [3] = " not italic any more" ) x10.ast000066400000000000000000000014061335270560400460530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x10.wikitext:1:28: : 12.2.5.4.7 - R20 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x10.wikitext:1:37: : 12.2.5.4.7 - R20 (1) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "a " ], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b ", [1] = WtXmlElement( {P} name = "blockquote" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ) ] ), [2] = " d ", [3] = WtXmlEndTag( {P} name = "blockquote" {P} rtd = RTD[ "" ] ), [4] = " e" ) x11.ast000066400000000000000000000024051335270560400460540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x11.wikitext:1:34: : 12.2.5.4.7 - R20 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x11.wikitext:1:50: : 12.2.5.4.7 - R20 (1) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c ", [1] = WtXmlElement( {P} name = "blockquote" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " e " ] ), [3] = " f ", [4] = WtXmlEndTag( {P} name = "blockquote" {P} rtd = RTD[ "" ] ), [5] = " g" ) x12.ast000066400000000000000000000037741335270560400460670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x12.wikitext:1:40: : 12.2.5.4.7 - R20 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x12.wikitext:1:49: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x12.wikitext:1:56: : 12.2.5.4.7 - R20 (1) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x12.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[ [0] = "0 ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " a ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ] ) ], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c ", [1] = WtXmlElement( {P} name = "blockquote" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ) ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " e " ] ) ] ), [3] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " f ", [1] = WtXmlEndTag( {P} name = "blockquote" {P} rtd = RTD[ "" ] ), [2] = " g" ] ) ) x13.ast000066400000000000000000000022421335270560400460550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-scopes/input.wikitext/x13.wikitext:8:14: : 12.2.5.4.9 R16 @ WtXmlStartTag., Warning: /nopkg-scopes/input.wikitext/x13.wikitext:8:18: : 12.2.5.4.9 R16 @ WtText. ] [0] = WtParagraph[ [0] = "Beware:\nConcerns the \"parse the pretty printed text again\" test.\nThe \" b ", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" {P} rtd = RTD[ "<" ] ), [2] = "div> c \" part will be pulled in front of the table.\nThe \"a \" is in a paragraph, the table contents will appear on a NEW LINE\nafter the paragraph. When pretty printing the \" b\" will be at the start of a line.\nIt will be parsed as SEMI PRE!" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "a " ], [3] = " b ", [4] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c " ] ), [5] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = " d" ) x14.ast000066400000000000000000000037461335270560400460700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:20: : 12.2.5.4.9 R16 @ WtXmlStartTag., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:24: : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:26: : 12.2.5.4.9 R16 @ WtXmlStartTag., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:28: : 12.2.5.4.9 R16 @ WtText., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:44: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x14.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[ [0] = "a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ], [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c ", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " d " ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " e " ] ) ] ), [4] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " f" ] ) ) x15.ast000066400000000000000000000014711335270560400460620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x15.wikitext:1:25: : 12.2.5.4.7 - R20 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "a " ], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " c " ) ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "target" ), title = WtLinkTitle[ [0] = " d " ] ), [3] = " e " ) x16.ast000066400000000000000000000025341335270560400460640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x16.wikitext:1:31: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x16.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtParagraph[ [0] = "a ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " b " ] ) ], [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " c ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "target" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " d " ) ) ] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "target" ), title = WtLinkTitle[ [0] = " e " ] ), [2] = " f " ] ) ) x17.ast000066400000000000000000000024211335270560400460600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x17.wikitext:1:27: : 12.2.5.4.7 - R23 (1) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item3", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "" ] ), [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item4" ] ) ] ) ] ) ] ) ] ) ] ) ) x18.ast000066400000000000000000000017541335270560400460710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x18.wikitext:3:12: : 12.2.5.4.7 - R20 (1) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item1" ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item2", [1] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [4] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item3", [1] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ) ] ) ) x19.ast000066400000000000000000000014231335270560400460630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item1", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [2] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "item2" ] ) ] ) ) x20.ast000066400000000000000000000015271335270560400460600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-scopes/input.wikitext/x20.wikitext:5:3: : 12.2.5.4.7 - R22 (1) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "

    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\nP1\n" ] ), [2] = "\nP2\n", [3] = WtXmlElement( {A} repair = true {P} name = "p" {P} rtd = RTD[ "" "" "

    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [4] = "\nP3\n", [5] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\nP4\n" ] ), [6] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\nasdf\n" ] ) ) x21.ast000066400000000000000000000023561335270560400460620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R24 (2) @ WtXmlEndTag., Warning: /nopkg-scopes/input.wikitext/x21.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = "\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ "::" "" ] [0] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Y" ] ), [2] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Z" ] ), [3] = " " ] ) ) ] ] ], [2] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n", [1] = WtDefinitionList[ [0] = WtDefinitionListDef( {P} rtd = RTD[ ":" "" ] [0] = "B " ) ], [2] = "\n" ] ) ) x22.ast000066400000000000000000000004031335270560400460520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "x\n" ], [2] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "\ny\n" ) x23.ast000066400000000000000000000004371335270560400460620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "x\n" ], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo" ] ), [3] = "\ny\n" ) input.wikitext/000077500000000000000000000000001335270560400427705ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopesx01.wikitext000066400000000000000000000000211335270560400451630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext == A B == C x02.wikitext000066400000000000000000000000351335270560400451710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext a [[target| b c ]] dx03.wikitext000066400000000000000000000000431335270560400451710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext a b [[target| c d ]] ex04.wikitext000066400000000000000000000000141335270560400451700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext aaa x05.wikitext000066400000000000000000000000331335270560400451720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta b c d ex06.wikitext000066400000000000000000000000331335270560400451730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta b c d ex07.wikitext000066400000000000000000000000261335270560400451760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext[[target| a b ]] cx08.wikitext000066400000000000000000000000411335270560400451740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext[[target| a b ]] c d x09.wikitext000066400000000000000000000000751335270560400452040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext
    italic
    still italic not italic any morex10.wikitext000066400000000000000000000000611335270560400451670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta
    b
    c
    d ex11.wikitext000066400000000000000000000000761335270560400451760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta b
    c
    d
    e
    f gx12.wikitext000066400000000000000000000001041335270560400451670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext0 a b
    c
    d
    e
    f gx13.wikitext000066400000000000000000000005331335270560400451760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitextBeware: Concerns the "parse the pretty printed text again" test. The " b <div> c " part will be pulled in front of the table. The "a " is in a paragraph, the table contents will appear on a NEW LINE after the paragraph. When pretty printing the " b" will be at the start of a line. It will be parsed as SEMI PRE! a b
    c
    dx14.wikitext000066400000000000000000000000571335270560400452000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta b c
    d
    e
    fx15.wikitext000066400000000000000000000000441335270560400451750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta
    b [[target| c
    d ]] e x16.wikitext000066400000000000000000000000501335270560400451730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitexta b
    c [[target| d e ]] f x17.wikitext000066400000000000000000000000631335270560400452000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext
  • item3
  • item4
  • x18.wikitext000066400000000000000000000000551335270560400452020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext
  • item1
  • item2
  • item3
  • x19.wikitext000066400000000000000000000000371335270560400452030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext
  • item1
  • item2
  • x20.wikitext000066400000000000000000000000571335270560400451750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext

    P1

    P2

    P3

    P4

    asdf
    x21.wikitext000066400000000000000000000000371335270560400451740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext ::X YZ :B x22.wikitext000066400000000000000000000000141335270560400451700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext x
    y x23.wikitext000066400000000000000000000000261335270560400451740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/input.wikitext x
    Hallo
    y pretty-printed.ast/000077500000000000000000000000001335270560400435425ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopesx01.ast000066400000000000000000000011431335270560400446620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSection( {P} level = 2 heading = WtHeading[ [0] = "A", [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "B" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "C" ] ), [2] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ) x13.ast000066400000000000000000000013201335270560400446620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "Beware:\nConcerns the \"parse the pretty printed text again\" test.\nThe \" b", [1] = WtXmlEntityRef( {P} name = "lt" {P} resolved = "<" ), [2] = "div> c \" part will be pulled in front of the table.\nThe \"a \" is in a paragraph, the table contents will appear on a NEW LINE\nafter the paragraph. When pretty printing the \" b\" will be at the start of a line.\nIt will be parsed as SEMI PRE!", [3] = "a", [4] = "b", [5] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c" ] ), [6] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = "d" ) x14.ast000066400000000000000000000021111335270560400446620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "a", [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "b" ] ), [2] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "c" ] ), [3] = WtXmlElement( {P} name = "div" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "d" ] ) ] ) ] ), [4] = WtXmlEndTag( {P} name = "i" ), [5] = WtXmlElement( {P} name = "table" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [6] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "e" ] ) ] ), [7] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "f" ] ) ) x21.ast000066400000000000000000000017061335270560400446710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X", [1] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Y" ] ), [2] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Z" ] ) ] ) ] ] ] ], [1] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [2] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtDefinitionList[ [0] = WtDefinitionListDef[ [0] = "B" ] ] ] ), [3] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ) pretty-printed.wikitext/000077500000000000000000000000001335270560400446235ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopesx01.wikitext000066400000000000000000000000401335270560400470170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext == A B == C x02.wikitext000066400000000000000000000000511335270560400470220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext a [[target| b ]][[target| c ]] d x03.wikitext000066400000000000000000000000721335270560400470260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext a b [[target| c ]][[target| d ]] e x04.wikitext000066400000000000000000000000151335270560400470240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext aaa x05.wikitext000066400000000000000000000000341335270560400470260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta b c d e x06.wikitext000066400000000000000000000000431335270560400470270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta b c d e x07.wikitext000066400000000000000000000000421335270560400470270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext[[target| a b ]] c x08.wikitext000066400000000000000000000000551335270560400470340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext[[target| a b ]] c d x09.wikitext000066400000000000000000000001051335270560400470310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext
    italic
    still italic not italic any more x10.wikitext000066400000000000000000000001011335270560400470150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta
    b
    c
    d e x11.wikitext000066400000000000000000000001341335270560400470240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta b
    c
    d
    e f g x12.wikitext000066400000000000000000000001731335270560400470300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext0 a b
    c
    d
    e f g x13.wikitext000066400000000000000000000005441335270560400470330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitextBeware: Concerns the "parse the pretty printed text again" test. The " b <div> c " part will be pulled in front of the table. The "a " is in a paragraph, the table contents will appear on a NEW LINE after the paragraph. When pretty printing the " b" will be at the start of a line. It will be parsed as SEMI PRE! a b
    c
    d x14.wikitext000066400000000000000000000001301335270560400470230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta b c
    d
    e f x15.wikitext000066400000000000000000000000621335270560400470300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta
    b [[target| c ]]
    [[target| d ]] e x16.wikitext000066400000000000000000000001031335270560400470250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitexta b
    c [[target| d ]][[target| e ]] f
    x17.wikitext000066400000000000000000000001031335270560400470260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext
  • item3
  • item4
  • x18.wikitext000066400000000000000000000000761335270560400470400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext
  • item1
  • item2
  • item3
  • x19.wikitext000066400000000000000000000000541335270560400470350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext
  • item1
  • item2
  • x20.wikitext000066400000000000000000000000671335270560400470310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext

    P1

    P2

    P3

    P4

    asdf
    x21.wikitext000066400000000000000000000000561335270560400470300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitext ::X YZ :B x22.wikitext000066400000000000000000000000141335270560400470230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitextx
    y x23.wikitext000066400000000000000000000000261335270560400470270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-scopes/pretty-printed.wikitextx
    Hallo
    y nopkg-tree/000077500000000000000000000000001335270560400374255ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesafter-postprocessing.ast/000077500000000000000000000000001335270560400443745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-treea_signature.ast000066400000000000000000000003051335270560400474040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hello World ", [1] = WtSignature( {P} rtd = RTD[ "~~~~" ] {P} tildeCount = 4 ) ], [1] = "\n" ) block-table-7.ast000066400000000000000000000015121335270560400474270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.9 R11 @ WtXmlEndTag. ] [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "tbody" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Header\n" ] ] ) ] ) ] ), [1] = "\n" ] ), [2] = "\n" ) br_end_tag.ast000066400000000000000000000007631335270560400471770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/br_end_tag.wikitext:2:3: : 12.2.5.4.7 - R47 @ WtXmlEndTag., Warning: : : 12.2.4 Element should be an empty tag! @ WtXmlElement. ] [0] = WtParagraph[ [0] = "I say yes\n", [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ "
    " "" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "\nAnd I say goodbye" ], [1] = "\n" ) empty_page.ast000066400000000000000000000000771335270560400472430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] ) horrible-1.ast000066400000000000000000000014501335270560400470510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "before ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ), [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "User talk:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ) ), [3] = WtXmlEndTag( {P} name = "#int-link" {P} rtd = RTD[ "]]" ] ), [4] = " after" ] ) horrible-1b.ast000066400000000000000000000015551335270560400472210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "before ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ), [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "User talk:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ) ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "User talk:User" ), title = WtLinkTitle[ [0] = "x" ] ), [4] = " after" ] ) horrible-2.ast000066400000000000000000000021771335270560400470610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/horrible-2.wikitext:1:72: : 12.2.5.4.7 - R52 (1) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-face: bold" ] ) ], body = WtBody[ [0] = "... ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "User" ] ) ) ), [2] = WtBold( {P} rtd = RTD[ "'''" "" ] ) ] ), [2] = WtBold[ [0] = " after" ] ] ) horrible-3.ast000066400000000000000000000006741335270560400470620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "'''" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red;" ] ) ], body = WtBody[ [0] = "\u00B9" ] ), [2] = " after" ] ) horrible-4.ast000066400000000000000000000047031335270560400470600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/horrible-4.wikitext:17:31: : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/horrible-4.wikitext:26:10: : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "before ", [1] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Hallo schoene" ), [2] = "\nWelt" ], [1] = "\n\n", [2] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "'''" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo" ] ), [2] = " schoene\nWelt" ], [3] = "\n\n", [4] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo schoene\nWelt\n" ] ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "'''" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo" ] ), [2] = " schoene\nWelt" ], [7] = "\n\n", [8] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "'''" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo" ] ), [2] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = " schoene" ), [3] = "\nWelt" ], [9] = "\n\n", [10] = WtParagraph[ [0] = "before ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "'''" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Hallo" ] ), [2] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = " schoene", [1] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ) ), [3] = "\nWelt" ], [11] = "\n\n", [12] = WtParagraph[ [0] = "before ", [1] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Hallo" ), [2] = " schoene\nWelt" ], [13] = "\n\n", [14] = WtParagraph[ [0] = "before ", [1] = WtItalics( {P} rtd = RTD[ "''" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = "Hallo" ), [1] = " schoene" ), [2] = "\nWelt" ], [15] = "\n\n", [16] = WtParagraph[ [0] = "before ", [1] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [2] = "Hallo", [3] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = " schoene" ), [4] = "\nWelt" ], [17] = "\n" ) ignore_throws_exception.ast000066400000000000000000026113251335270560400520660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ), [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ), [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ), [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ), [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ), [8] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ), [10] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ), [15] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [18] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ), [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [20] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [22] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ), [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [26] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ), [29] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [30] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ), [31] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ), [32] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [33] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ), [34] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [35] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ), [36] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ), [38] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [39] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ), [40] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ), [41] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [42] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ), [43] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ), [44] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ), [45] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [46] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [47] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [48] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ), [49] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [50] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [51] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) } {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = "\n", [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox vcard" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 22em; font-size: 90%; text-align: left" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "n" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; font-size: 125%; font-weight: bold" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = "Clarence Saxby Chambliss Jr" ] ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ] ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "from ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ) ] ), [3] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:lavender;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Incumbent" ], title = - ) ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Assumed", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2003", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = "Serving", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "with", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ], [1] = "\n" ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ], body = WtBody[ [0] = "Member of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [2] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = "from ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [5] = "'s ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "8th" ) ), [7] = " district\n" ] ), [3] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office" ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 1995", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "January 3, 2003" ], [1] = "\n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ) ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = " \n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [3] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender;" ] ) ], body = WtBody[ [0] = "Chairman of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Committee on Agriculture, Nutrition and Forestry" ) ) ] ), [4] = "\n" ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "In", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "office" ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "January 3, 2005", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "January 3, 2007" ], [1] = "\n" ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ], [1] = "\n" ] ) ] ), [15] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ], [1] = "\n" ] ) ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [17] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [18] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [19] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [20] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [21] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [22] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [23] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [24] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [25] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [26] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [27] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [28] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "hr" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "\n" ] ) ] ), [29] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Born" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " November 10, 1943", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display:none" ] ) ], body = WtBody[ [0] = " (", [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "bday" ] ) ], body = WtBody[ [0] = "1943-11-10" ] ), [2] = ")" ] ), [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint" ] ) ], body = WtBody[ [0] = " (age", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "67)" ] ), [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warrenton" ) ), [5] = ", ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ) ], [1] = "\n" ] ) ] ), [30] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Political", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "party" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ) ], [1] = "\n" ] ) ] ), [31] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Spouse(s)" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Julianne Chambliss" ], [1] = "\n" ] ) ] ), [32] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Residence" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "label" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ) ], [1] = "\n" ] ) ] ), [33] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alma mater" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alma", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "mater" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [2] = ", ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "University of Tennessee College of Law" ) ) ], [1] = "\n" ] ) ] ), [34] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Occupation" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Lawyer" ], [1] = "\n" ] ) ] ), [35] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Religion" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopal Church in the United States of America" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Episcopalian" ) ) ], [1] = "\n" ] ) ] ), [36] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " Website" ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "www.Saxby.org" ] ) ], [1] = "\n" ] ) ] ), [37] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [2] = "\n\n", [3] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Clarence Saxby Chambliss" ), [1] = " (born November 10, 1943) is the senior ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [3] = " from ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [5] = ". He is a member of the ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Republican Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Party" ) ), [7] = ". In the 110th Congress, Chambliss serves as the ranking Republican member of the ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = - ), [9] = ", chairing the committee during the 109th Congress (2005-2007)." ], [4] = "\n\n", [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Early life, education, and family" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Chambliss, the son of an ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopalian" ], title = - ), [2] = " minister,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [4] = " was born in ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = - ), [6] = ". He graduated from ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C.E. Byrd High School" ], title = - ), [8] = " in ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Shreveport" ], title = - ), [10] = ", ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [12] = ", in 1961. He attended ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana Tech University" ], title = - ), [14] = " from 1961-1962 and earned a ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bachelor's degree" ], title = - ), [16] = " in Business Administration from the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [18] = " in 1966, working his way through college at a bakery in ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Athens, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Athens" ) ), [20] = ".", [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [22] = " He received his ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Juris Doctor" ], title = - ), [24] = " from the ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = - ), [26] = " College of Law in 1968. He is a member of the ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sigma Chi" ], title = - ), [28] = " Fraternity." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "During the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vietnam War" ], title = - ), [2] = ", Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "football" ], title = - ), [4] = " injury.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "\t \n\nChambliss is a member of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. John's Episcopal Church (Moultrie, Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "St. John's Episcopal Church" ) ), [2] = " in ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ), [4] = ". He married Julianne Frohbert in 1966 and they have two children and two grandchildren." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Chambliss's son Bo is a registered lobbyist for the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chicago Mercantile Exchange" ], title = - ), [2] = " and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [4] = ", of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ) ], [8] = "\n\n" ] ), [6] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "House of Representatives, 1995-2003" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Chambliss was elected to the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House of Representatives" ], title = - ), [2] = " in 1994 as one of the new ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conservatism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "conservative" ) ), [4] = " Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Newt Gingrich" ], title = - ), [6] = ", was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Revolution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Class of '94" ) ), [8] = "." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Chambliss was elected from the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Macon, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Macon" ) ), [2] = "-based 8th District, after six-term incumbent ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [4] = " retired. He was elected with 63% of the vote\u2014an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "During his four terms in the House, Chambliss served on the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives Permanent Select Committee on Intelligence" ], title = - ), [2] = " and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security." ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Less than a month after the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "September 11 attacks" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "September 11, 2001, terrorist attacks" ) ), [2] = ", the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valdosta, Georgia" ], title = - ), [2] = ", where he said that homeland security would be improved by turning the sheriff loose to \"arrest every ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Muslim" ], title = - ), [4] = " that crosses the state line.\" Chambliss apologized for the remarks.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = "In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Abramoff" ], title = - ), [2] = ".", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ) ], [12] = "\n\n" ] ), [7] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Senate, 2003-present" ), body = WtBody[ [0] = "\n\n", [1] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Committee assignments" ), body = WtBody[ [0] = "\n\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Agriculture, Nutrition, and Forestry" ) ) ), [1] = " (Ranking Member)", [2] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = "As Ranking Member of the full committee, Sen. Chambliss may serve as an ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "ex officio" ), [2] = " member of all subcommittees." ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Armed Services" ) ) ), [1] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Airland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Airland" ) ) ), [1] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Personnel" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Personnel" ) ) ), [2] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Readiness and Management Support" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Readiness and Management Support" ) ) ) ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Rules and Administration" ) ) ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Select Committee on Intelligence" ) ) ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Commission on Security and Cooperation in Europe" ], title = - ) ) ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture" ) ), [2] = ") after serving in the Senate for just two years.", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:All articles with unsourced statements" ], title = - ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Articles with unsourced statements from December 2008" ], title = - ), [5] = WtXmlElement( {P} name = "sup" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "Template-Fact" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "This claim needs references to reliable sources", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = " from December 2008" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 91 {P} rtd = RTD[ "[" ] ), [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Citation needed" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "citation needed" ) ) ] ), [2] = WtXmlCharRef( {P} codePoint = 93 {P} rtd = RTD[ "]" ] ) ] ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as \"staggering.\" ", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ) ], [6] = "\n\n" ] ), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Caucus memberships" ), body = WtBody[ [0] = "\n\n", [1] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Fire Services Caucus" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Sportsmen Foundation" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Juvenile Diabetes Caucus" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "National Guard Caucus" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Rural Health Caucus" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Senate Caucus on Military Depots, Arsenals and Ammunition Plants" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Co-Chair, Senate Reserve Caucus" ), [7] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Steering Committee" ) ], [2] = "\n\n" ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Elections" ), body = WtBody[ [0] = "\n\n", [1] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2002 race" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2002" ) ) ] ), [3] = "\nChambliss ran for the Senate in 2002, facing freshman ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [5] = " incumbent ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [7] = ". Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 1st congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1st district" ) ), [9] = ", represented by fellow Republican ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [11] = ".\n\n", [12] = WtParagraph[ [0] = "Chambliss focused on the issue of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "national defense" ], title = - ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "homeland security" ], title = - ), [4] = " during his campaign, and released an ad that included ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Osama bin Laden" ], title = - ), [6] = " and ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saddam Hussein" ], title = - ), [8] = ", highlighting Cleland's record on the issues of war and terrorism.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ) ], [13] = "\n\n", [14] = WtParagraph[ [0] = "Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [2] = " of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [4] = " said of one ad, \"", [5] = WtText( {A} warnings = C[ Warning (none): /nopkg-tree/input.wikitext/ignore_throws_exception.wikitext:147:380 - 381: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [6] = "I]t's worse than disgraceful, it's reprehensible;\" Senator ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Hagel" ], title = - ), [8] = " of ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nebraska" ], title = - ), [10] = " said the ads were \"beyond offensive to me.\"", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [12] = " On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [14] = "\n", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ) ], [15] = "\n\n", [16] = WtParagraph[ [0] = "Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent." ], [17] = "\n\n" ] ), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2008 race" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ], body = WtBody[ [0] = "Main article: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ) ] ), [3] = "\n\n", [4] = WtParagraph[], [5] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikinews-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " Wikinews has related news:\n", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":wikinews:Republican Senator from Georgia wins run-off election" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Senator from Georgia wins run-off election" ) ) ) ), [2] = " " ] ), [4] = "\n" ] ), [1] = "\n" ] ) ] ), [6] = "\nOn November 4, 2008, Chambliss received 49.8% of the vote, while ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [8] = " challenger ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ), [10] = " received 46.8% and ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Libertarian Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ), [12] = " ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allen Buckley" ], title = - ), [14] = " received 3.4% of the vote.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [16] = "\n\n", [17] = WtParagraph[ [0] = "Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008." ], [18] = "\n\n", [19] = WtParagraph[ [0] = "Chambliss defeated Martin 57.5% to 42.5% in the runoff election.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ) ], [20] = "\n\n" ] ), [3] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Imperial Sugar" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imperial Sugar" ], title = - ), [2] = " that claims that Imperial \"wrongfully\" failed to remove hazards that caused the disaster of a ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Savannah, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Savannah" ) ), [4] = "-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of \"harassing\"", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [6] = " a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: \"I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families.\" Savannah attorney Mark Tate, \"an active backer of Democratic candidates,\" insisted that \"there is nothing political\" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed \"legislative immunity.\"", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ) ], [2] = "\n\n" ] ) ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Political positions" ), body = WtBody[ [0] = "\n\n", [1] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Voting Record" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "Chambliss's voting record is typically that of voting in line with conservative issues.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [3] = " He is the primary sponsor in the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [5] = " of the tax-reform proposal ", [6] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FairTax" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Fair Tax Act" ) ) ), [7] = " (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced." ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation\u2014such as the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Food, Conservation, and Energy Act of 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2007 Farm Bill" ) ), [2] = ", the bi-partisan immigration reform (led by ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [4] = " and ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ted Kennedy" ], title = - ), [6] = ") in 2007", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [8] = " and the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Emergency Economic Stabilization Act of 2008" ], title = - ), [10] = ",", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [12] = ". He is also the Republican leader of the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gang of 10" ], title = - ), [14] = ", a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States." ], [4] = "\n\n" ] ), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Interest groups ratings" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[ [0] = "On abortion issues, the ratings given Chambliss as of 2007 by ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nrlc" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "National Right to Life Committee" ) ), [2] = " and ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NARAL" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NARAL Pro-Choice America" ) ), [4] = " identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "On ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Second Amendment to the United States Constitution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2nd Amendment" ) ), [2] = " issues, in 2008, the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Rifle Association" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NRA" ) ), [4] = " gave Chambliss an \"A+\" rating and the NRA also endorsed him.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = "On agricultural issues, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Farm Bureau" ], title = - ), [2] = " gave Chambliss its \"Friend of the Farm Bureau\" award throughout his service in the U.S. Senate.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [2] = " and the group ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Americans for Tax Reform" ], title = - ), [4] = " gave him a 100% rating.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ) ], [8] = "\n\n", [9] = WtParagraph[ [0] = "On civil liberties and civil rights issues, in 2007, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Civil Liberties Union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Civil Liberties Union (ACLU)" ) ), [2] = " gave him a 17% rating,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NAACP" ], title = - ), [6] = " gave him a 27% rating.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ) ], [10] = "\n\n", [11] = WtParagraph[ [0] = "On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a \"real reformer\",", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [2] = " while the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Education Association" ], title = - ), [4] = " gave him an \"F\" in 2007.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ) ], [12] = "\n\n", [13] = WtParagraph[ [0] = "On organized labor issues, in 2007 the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "AFL-CIO" ], title = - ), [2] = " gave Chambliss a 11% rating,", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "International Foodservice Distributors Association" ], title = - ), [6] = " gave him an 85% rating.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ) ], [14] = "\n\n", [15] = WtParagraph[ [0] = "On environmental issues, in 2003 the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "LCV" ], title = - ), [2] = " gave Chambliss a 0% rating.", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ) ], [16] = "\n\n" ] ) ] ) ] ), [8] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Electoral history" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "boilerplate seealso" ] ) ], body = WtBody[ [0] = "See also: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ) ] ), [3] = "\n\n", [4] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ " |+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [2] = ": Results 1994\u20132000", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Year" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Democrat" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Republican" ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [8] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [9] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1994" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1994" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Craig Mathis" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53,408" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "37%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "89,591" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "63%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1996" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1996" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Jim Wiggins" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "84,506" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "47%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "93,619" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1998" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1998" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Ronald L. Cain" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53,079" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "38%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "87,993" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "62%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 2000" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2000" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Marshall (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Marshall" ) ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "79,051" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "41%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "113,380" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "59%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ), [5] = "\n\n", [6] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ " |+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia Senator (Class II)" ) ), [2] = ": 2002 results", [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ) ], [1] = "\n" ] ), [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = true xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Year" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Democrat" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [5] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Republican" ], [1] = "\n" ] ), [7] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [8] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [9] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [10] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "3rd Party" ], [1] = "\n" ] ), [11] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Party" ], [1] = "\n" ] ), [12] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [13] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = "Pct" ], [1] = "\n" ] ), [14] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Senate election, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2002" ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "932,422" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "46%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ], body = WtBody[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Saxby Chambliss" ) ] ) ], [1] = "\n" ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1,071,352" ], [1] = "\n" ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "53%" ], [1] = "\n" ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [10] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Claude \"Sandy\" Thomas" ], [1] = "\n" ] ), [11] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Libertarian Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ) ], [1] = "\n" ] ), [12] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "27,830" ], [1] = "\n" ] ), [13] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "1%" ], [1] = "\n" ] ), [14] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ] ) ] ) ] ), [7] = "\n\n", [8] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "6" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "2008 Georgia U.S. Senator general election runoff", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Party" ], [1] = "\n" ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 17em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Candidate" ], [1] = "\n" ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Votes" ], [1] = "\n" ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "%" ], [1] = "\n" ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "\u00B1%" ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Saxby Chambliss (", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "incumbent" ], title = - ), [2] = ")" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 1,226,528" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 57.5%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ) ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 907,916" ], [1] = "\n" ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 42.5%" ], [1] = "\n" ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Majority" ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 318,612" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 14.9%" ], [1] = "\n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Voter turnout" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Turnout" ) ) ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " 2,134,444" ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " \n" ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [9] = "\n\n" ] ), [9] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Commons-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " Wikimedia Commons has media related to: ", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":commons:Category:Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ) ) ), [2] = " " ] ), [4] = "\n" ] ), [1] = "\n" ] ) ] ), [3] = "\n\n", [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "Chambliss for US Senate" ] ), [1] = ", ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "official campaign site" ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.youtube.com/saxbychambliss08" {P} protocol = "http" {P} rtd = RTD[ "http://www.youtube.com/saxbychambliss08" ] ), title = WtLinkTitle[ [0] = "Chambliss For Senate YouTube Channel" ] ), [1] = ", official YouTube Channel" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.facebook.com/enjoythego" {P} protocol = "http" {P} rtd = RTD[ "http://www.facebook.com/enjoythego" ] ), title = WtLinkTitle[ [0] = "Saxby Chambliss Facebook Page" ] ), [1] = ", Facebook Page" ) ], [5] = "\n\n", [6] = WtParagraph[], [7] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ], body = WtBody[ [0] = "\n", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikiquote-logo-en.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ) ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikiquote" ], title = - ), [2] = " has a collection of quotations related to: ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":q:Special:Search/Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ) ) ), [4] = " " ] ), [4] = "\n" ] ), [1] = "\n" ] ) ] ), [8] = "\n\n", [9] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//chambliss.senate.gov/" {P} protocol = "http" {P} rtd = RTD[ "http://chambliss.senate.gov/" ] ), title = WtLinkTitle[ [0] = "United States Senator Saxby Chambliss" ] ), [1] = ", ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "official U.S. Senate site" ) ) ], [10] = "\n\n", [11] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" {P} protocol = "http" {P} rtd = RTD[ "http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = " at the ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Biographical Directory of the United States Congress" ], title = - ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//projects.washingtonpost.com/congress/members/c000286" {P} protocol = "http" {P} rtd = RTD[ "http://projects.washingtonpost.com/congress/members/c000286" ] ), title = WtLinkTitle[ [0] = "Voting record" ] ), [2] = " maintained by ", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Washington Post" ], title = - ) ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/bio.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/bio.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = ", ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/voting_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/voting_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "voting record" ] ), [4] = ", and ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "interest group ratings" ] ), [6] = " at ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Project Vote Smart" ], title = - ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.ontheissues.org/Senate/Saxby_Chambliss.htm" {P} protocol = "http" {P} rtd = RTD[ "http://www.ontheissues.org/Senate/Saxby_Chambliss.htm" ] ), title = WtLinkTitle[ [0] = "Issue positions and quotes" ] ), [2] = " at On The Issues" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.opensecrets.org/politicians/summary.php?CID=N00002685" {P} protocol = "http" {P} rtd = RTD[ "http://www.opensecrets.org/politicians/summary.php?CID=N00002685" ] ), title = WtLinkTitle[ [0] = "Financial information" ] ), [2] = " at ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Center for Responsive Politics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OpenSecrets.org" ) ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" {P} protocol = "http" {P} rtd = RTD[ "http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" ] ), title = WtLinkTitle[ [0] = "Campaign finance reports and data" ] ), [2] = " at the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Election Commission" ], title = - ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.sourcewatch.org/index.php?title=Saxby_Chambliss" {P} protocol = "http" {P} rtd = RTD[ "http://www.sourcewatch.org/index.php?title=Saxby_Chambliss" ] ), title = WtLinkTitle[ [0] = "SourceWatch Congresspedia \u2014 Saxby Chambliss" ] ), [1] = " profile" ) ], [12] = "\n\n", [13] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable succession-box" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em auto; font-size:95%;clear:both;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = - ) ], [1] = "\n" ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Member", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "of", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "the", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [7] = " ", [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = "from ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [11] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "1995 \u2013 2003 " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ) ] ) ], [1] = "\n" ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ) ], [1] = "\n" ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ) ] ) ], [1] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia " ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " United States Senator (Class 2) from Georgia" ) ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2003 ", [3] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [4] = " present ", [5] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [6] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Served alongside: ", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = - ), [1] = ", ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ) ] ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Incumbent" ) ], [1] = "\n" ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccccff;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Political offices" ], [1] = "\n" ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ) ] ) ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ], [3] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Chairman of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [2] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = "2005 \u2013 2007 " ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ) ] ) ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ], [3] = "\n" ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccffcc;" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States order of precedence" ], title = - ) ], [1] = "\n" ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = "Preceded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "D-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Jersey" ], title = - ) ] ) ] ) ], [1] = "\n\n", [2] = WtParagraph[ [0] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ) ], [3] = "\n" ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators by seniority" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators by seniority" ) ), [1] = "'''" ) ), [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [2] = WtBold( {P} rtd = RTD[ "'''" "" ] [0] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [1] = "61st " ) ], [1] = "\n" ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtParagraph[ [0] = " Succeeded", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "by", [3] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = - ), [1] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "R-", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Carolina" ], title = - ) ] ) ] ) ], [1] = "\n" ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [14] = "\n\n", [15] = WtParagraph[], [16] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators from Georgia" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 2" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Few" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Few" ) ), [2] = " \u2022 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [4] = " \u2022 ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Walton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walton" ) ), [6] = " \u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Josiah Tattnall (Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tattnall" ) ), [8] = " \u2022 ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abraham Baldwin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baldwin" ) ), [10] = " \u2022 ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Jones (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jones" ) ), [12] = " \u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William H. Crawford" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crawford" ) ), [14] = " \u2022 ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Bellinger Bulloch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bulloch" ) ), [16] = " \u2022 ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Wyatt Bibb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bibb" ) ), [18] = " \u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [20] = " \u2022 ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [22] = " \u2022 ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Freeman Walker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walker" ) ), [24] = " \u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicholas Ware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ware" ) ), [26] = " \u2022 ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Cobb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cobb" ) ), [28] = " \u2022 ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oliver H. Prince" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Prince" ) ), [30] = " \u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [32] = " \u2022 ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Pendleton King" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "King" ) ), [34] = " \u2022 ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wilson Lumpkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lumpkin" ) ), [36] = " \u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [38] = " \u2022 ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert M. Charlton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Charlton" ) ), [40] = " \u2022 ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Toombs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toombs" ) ), [42] = " \u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Homer V. M. Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "H. Miller" ) ), [44] = " \u2022 ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas M. Norwood" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Norwood" ) ), [46] = " \u2022 ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Benjamin Harvey Hill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "B. Hill" ) ), [48] = " \u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Middleton P. Barrow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrow" ) ), [50] = " \u2022 ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred H. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A. Colquitt" ) ), [52] = " \u2022 ", [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Walsh (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walsh" ) ), [54] = " \u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustus Octavius Bacon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bacon" ) ), [56] = " \u2022 ", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Stanley West" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West" ) ), [58] = " \u2022 ", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Hardwick" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hardwick" ) ), [60] = " \u2022 ", [61] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William J. Harris" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harris" ) ), [62] = " \u2022 ", [63] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John S. Cohen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cohen" ) ), [64] = " \u2022 ", [65] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Russell, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Russell" ) ), [66] = " \u2022 ", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David H. Gambrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gambrell" ) ), [68] = " \u2022 ", [69] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sam Nunn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nunn" ) ), [70] = " \u2022 ", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cleland" ) ), [72] = " \u2022 ", [73] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ) ] ) ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:0%;padding:0px 0px 0px 2px;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "3" ] ) ], body = WtBody[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 80 target = WtPageName[ [0] = "Image:Senate Seal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|80px" ] {P} width = 80 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate" ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ], body = WtBody[ [0] = "Class 3" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Gunn (senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gunn" ) ), [2] = " \u2022 ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [4] = " \u2022 ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Milledge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Milledge" ) ), [6] = " \u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Tait" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tait" ) ), [8] = " \u2022 ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Elliott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Elliott" ) ), [10] = " \u2022 ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [12] = " \u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [14] = " \u2022 ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Cuthbert" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cuthbert" ) ), [16] = " \u2022 ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter T. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "W. Colquitt" ) ), [18] = " \u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herschel Vespasian Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johnson" ) ), [20] = " \u2022 ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Crosby Dawson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Dawson" ) ), [22] = " \u2022 ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Iverson, Sr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iverson" ) ), [24] = " \u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joshua Hill (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "J. Hill" ) ), [26] = " \u2022 ", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [28] = " \u2022 ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph E. Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Brown" ) ), [30] = " \u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [32] = " \u2022 ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexander S. Clay" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Clay" ) ), [34] = " \u2022 ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph M. Terrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Terrell" ) ), [36] = " \u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M. Hoke Smith" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Smith" ) ), [38] = " \u2022 ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas E. Watson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Watson" ) ), [40] = " \u2022 ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rebecca Latimer Felton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Felton" ) ), [42] = " \u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter F. George" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "George" ) ), [44] = " \u2022 ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herman Talmadge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talmadge" ) ), [46] = " \u2022 ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mack Mattingly" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mattingly" ) ), [48] = " \u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyche Fowler" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Fowler" ) ), [50] = " \u2022 ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Coverdell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coverdell" ) ), [52] = " \u2022 ", [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Z. Miller" ) ), [54] = " \u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [17] = "\n", [18] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia's current delegation" ) ), [1] = " to the ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "112th United States Congress" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Congress" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senators" ) ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ), [2] = " (R), ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [4] = " (R)" ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Representatives" ) ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [2] = " (R), ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sanford Bishop" ], title = - ), [4] = " (D), ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lynn Westmoreland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lynn", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Westmoreland" ) ), [6] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [7] = "(R), ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hank Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hank", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Johnson" ) ), [9] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [10] = "(D), ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Lewis (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Lewis" ) ), [12] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [13] = "(D), ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Price (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Price" ) ), [15] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [16] = "(R), ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Woodall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rob", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Woodall" ) ), [18] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [19] = "(R), ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austin Scott (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austin", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [21] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [22] = "(R), ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Graves (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Graves" ) ), [24] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [25] = "(R), ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Broun" ], title = - ), [27] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [28] = "(R), ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phil Gingrey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Phil", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Gingrey" ) ), [30] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [31] = "(R), ", [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrow (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Barrow" ) ), [33] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [34] = "(D), ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Scott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "David", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [36] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [37] = "(D)" ] ) ] ) ] ), [5] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [6] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ], body = WtBody[ [0] = "Other states' delegations" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alabama" ) ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "\u2022 ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alaska" ) ), [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "\u2022 ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arizona" ) ), [8] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [9] = "\u2022 ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arkansas" ) ), [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "\u2022 ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "California" ) ), [14] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [15] = "\u2022 ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Colorado" ) ), [17] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [18] = "\u2022 ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Connecticut" ) ), [20] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [21] = "\u2022 ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Delaware" ) ), [23] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [24] = "\u2022 ", [25] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Florida" ) ), [26] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [27] = "\u2022 ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [29] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [30] = "\u2022 ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hawaii" ) ), [32] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [33] = "\u2022 ", [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Idaho" ) ), [35] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [36] = "\u2022 ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Illinois" ) ), [38] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [39] = "\u2022 ", [40] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indiana" ) ), [41] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [42] = "\u2022 ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iowa" ) ), [44] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [45] = "\u2022 ", [46] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kansas" ) ), [47] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [48] = "\u2022 ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kentucky" ) ), [50] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [51] = "\u2022 ", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Louisiana" ) ), [53] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [54] = "\u2022 ", [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maine" ) ), [56] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [57] = "\u2022 ", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maryland" ) ), [59] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [60] = "\u2022 ", [61] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Massachusetts" ) ), [62] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [63] = "\u2022 ", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Michigan" ) ), [65] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [66] = "\u2022 ", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Minnesota" ) ), [68] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [69] = "\u2022 ", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mississippi" ) ), [71] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [72] = "\u2022 ", [73] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Missouri" ) ), [74] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [75] = "\u2022 ", [76] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Montana" ) ), [77] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [78] = "\u2022 ", [79] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nebraska" ) ), [80] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [81] = "\u2022 ", [82] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nevada" ) ), [83] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [84] = "\u2022 ", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Hampshire" ) ), [86] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [87] = "\u2022 ", [88] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Jersey" ) ), [89] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [90] = "\u2022 ", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Mexico" ) ), [92] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [93] = "\u2022 ", [94] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New York" ) ), [95] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [96] = "\u2022 ", [97] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Carolina" ) ), [98] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [99] = "\u2022 ", [100] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Dakota" ) ), [101] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [102] = "\u2022 ", [103] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ohio" ) ), [104] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [105] = "\u2022 ", [106] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oklahoma" ) ), [107] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [108] = "\u2022 ", [109] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oregon" ) ), [110] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [111] = "\u2022 ", [112] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pennsylvania" ) ), [113] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [114] = "\u2022 ", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rhode Island" ) ), [116] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [117] = "\u2022 ", [118] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Carolina" ) ), [119] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [120] = "\u2022 ", [121] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Dakota" ) ), [122] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [123] = "\u2022 ", [124] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tennessee" ) ), [125] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [126] = "\u2022 ", [127] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Texas" ) ), [128] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [129] = "\u2022 ", [130] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Utah" ) ), [131] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [132] = "\u2022 ", [133] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vermont" ) ), [134] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [135] = "\u2022 ", [136] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Virginia" ) ), [137] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [138] = "\u2022 ", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [140] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [141] = "\u2022 ", [142] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West Virginia" ) ), [143] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [144] = "\u2022 ", [145] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wisconsin" ) ), [146] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [147] = "\u2022 ", [148] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyoming" ) ), [149] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [150] = "\u2022 ", [151] = WtXmlElement( {P} name = "small" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Non", [1] = WtXmlCharRef( {P} codePoint = 8209 {P} rtd = RTD[ "‑" ] ), [2] = "voting:" ) ] ), [152] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [153] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of Delegates to the United States House of Representatives from American Samoa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Samoa" ) ), [154] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [155] = "\u2022 ", [156] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the District of Columbia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "District of Columbia" ) ), [157] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [158] = "\u2022 ", [159] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guam's At-large congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Guam" ) ), [160] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [161] = "\u2022 ", [162] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the Northern Mariana Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Northern Mariana Islands" ) ), [163] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [164] = "\u2022 ", [165] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Resident Commissioner of Puerto Rico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Puerto Rico" ) ), [166] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [167] = "\u2022 ", [168] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the United States Virgin Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S. Virgin Islands" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [19] = "\n", [20] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = "Chairpersons and ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ranking member" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ranking Members" ) ), [2] = " of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional committee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "committees" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:100%;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight:bold;" ] ) ], body = WtBody[ [0] = "Chairpersons (Democratic)" ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;font-weight:bold;" ] ) ], body = WtBody[ [0] = "Ranking Members (Republican)" ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = - ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [4] = ") ", [5] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [6] = " ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = - ) ), [10] = " (", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [12] = ") ", [13] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [14] = " ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ) ), [16] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [17] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = - ) ), [18] = " (", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [20] = ") ", [21] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [22] = " ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ) ), [24] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [25] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tim Johnson" ) ) ), [26] = " (", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Dakota" ], title = - ), [28] = ") ", [29] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [30] = " ", [31] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ) ), [32] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [33] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = - ) ), [34] = " (", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Dakota" ], title = - ), [36] = ") ", [37] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [38] = " ", [39] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ) ), [40] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [41] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = - ) ), [42] = " (", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Virginia" ], title = - ), [44] = ") ", [45] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [46] = " ", [47] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ) ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = - ) ), [50] = " (", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Mexico" ], title = - ), [52] = ") ", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [54] = " ", [55] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ) ), [56] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [57] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ), [58] = " (", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [60] = ") ", [61] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [62] = " ", [63] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ) ), [64] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [65] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = - ) ), [66] = " (", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Montana" ], title = - ), [68] = ") ", [69] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [70] = " ", [71] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ) ), [72] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [73] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = - ) ), [74] = " (", [75] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Massachusetts" ], title = - ), [76] = ") ", [77] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [78] = " ", [79] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ) ), [80] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [81] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ) ), [82] = " (", [83] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [84] = ") ", [85] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [86] = " ", [87] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ) ), [88] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [89] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = - ) ), [90] = " (", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Connecticut" ], title = - ), [92] = ") ", [93] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [94] = " ", [95] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ) ), [96] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [97] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = - ) ), [98] = " (", [99] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [100] = ") ", [101] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [102] = " ", [103] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ) ), [104] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = - ) ), [106] = " (", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vermont" ], title = - ), [108] = ") ", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [110] = " ", [111] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ) ), [112] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [113] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = - ) ), [114] = " (", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New York" ], title = - ), [116] = ") ", [117] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [118] = " ", [119] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ) ), [120] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [121] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = - ) ), [122] = " (", [123] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [124] = ") ", [125] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [126] = " ", [127] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ) ), [128] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [129] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = - ) ), [130] = " (", [131] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Washington (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [132] = ") ", [133] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [134] = " ", [135] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ) ), [136] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [137] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ) ), [138] = " (", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [140] = ") ", [141] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [142] = " ", [143] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [1] = " (Select)" ), [144] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [145] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = - ) ), [146] = " (", [147] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [148] = ") ", [149] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [150] = " ", [151] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [1] = " (Select)" ), [152] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [153] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = - ) ), [154] = " (", [155] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wisconsin" ], title = - ), [156] = ") ", [157] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [158] = " ", [159] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [1] = " (Special)" ), [160] = "\n" ] ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:50%;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = - ) ), [2] = " (", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kansas" ], title = - ), [4] = ") ", [5] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [6] = " ", [7] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ) ), [8] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ) ), [10] = " (", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ), [12] = ") ", [13] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [14] = " ", [15] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ) ), [16] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [17] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ) ), [18] = " (", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [20] = ") ", [21] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [22] = " ", [23] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ) ), [24] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [25] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = - ) ), [26] = " (", [27] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [28] = ") ", [29] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [30] = " ", [31] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ) ), [32] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [33] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = - ) ), [34] = " (", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [36] = ") ", [37] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [38] = " ", [39] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ) ), [40] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [41] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = - ) ), [42] = " (", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Texas" ], title = - ), [44] = ") ", [45] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [46] = " ", [47] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ) ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = - ) ), [50] = " (", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alaska" ], title = - ), [52] = ") ", [53] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [54] = " ", [55] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ) ), [56] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [57] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = - ) ), [58] = " (", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oklahoma" ], title = - ), [60] = ") ", [61] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [62] = " ", [63] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ) ), [64] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [65] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = - ) ), [66] = " (", [67] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Utah" ], title = - ), [68] = ") ", [69] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [70] = " ", [71] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ) ), [72] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [73] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = - ) ), [74] = " (", [75] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Indiana" ], title = - ), [76] = ") ", [77] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [78] = " ", [79] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ) ), [80] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [81] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = - ) ), [82] = " (", [83] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [84] = ") ", [85] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [86] = " ", [87] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ) ), [88] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [89] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = - ) ), [90] = " (", [91] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [92] = ") ", [93] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [94] = " ", [95] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ) ), [96] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [97] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = - ) ), [98] = " (", [99] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [100] = ") ", [101] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [102] = " ", [103] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ) ), [104] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [105] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = - ) ), [106] = " (", [107] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [108] = ") ", [109] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [110] = " ", [111] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ) ), [112] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [113] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = - ) ), [114] = " (", [115] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [116] = ") ", [117] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [118] = " ", [119] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ) ), [120] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [121] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = - ) ), [122] = " (", [123] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [124] = ") ", [125] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [126] = " ", [127] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ) ), [128] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [129] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = - ) ), [130] = " (", [131] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ), [132] = ") ", [133] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [134] = " ", [135] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ) ), [136] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [137] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ) ), [138] = " (", [139] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [140] = ") ", [141] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [142] = " ", [143] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [1] = " (Select)" ), [144] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [145] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ) ), [146] = " (", [147] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [148] = ") ", [149] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [150] = " ", [151] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [1] = " (Select)" ), [152] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [153] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = - ) ), [154] = " (", [155] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [156] = ") ", [157] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [158] = " ", [159] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [1] = " (Special)" ), [160] = "\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [21] = "\n", [22] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ], body = WtBody[ [0] = "v" ] ) ) ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ], body = WtBody[ [0] = "d" ] ) ) ), [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ], body = WtBody[ [0] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ) ] ), [2] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ) ] ), [4] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ], body = WtBody[ [0] = "e" ] ) ] ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Current members of the United States Senate" ) ) ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:auto;margin-left:auto;margin-right:auto;" ] ) ], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:5em;" ] ) ], body = WtBody[ [0] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ) ] ), [1] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AL" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shelby" ) ), [1] = " (R)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sessions" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AK" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murkowski" ) ), [1] = " (R)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Begich" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Begich" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AZ" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCain" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Kyl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kyl" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AR" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Pryor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pryor" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Boozman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boozman" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CA" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Feinstein" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boxer" ) ), [1] = " (D)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CO" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "M. Udall" ) ), [1] = " (D)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michael Bennet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bennet" ) ), [1] = " (D)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CT" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lieberman" ) ), [1] = " (I)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Blumenthal" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blumenthal" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DE" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Carper" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Carper" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chris Coons" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coons" ) ), [1] = " (D)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "FL" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bill Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "C.W. Nelson" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marco Rubio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rubio" ) ), [1] = " (R)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "GA" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ), [1] = " (R)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ), [1] = " (R)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HI" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inouye" ) ), [1] = " (D)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Akaka" ) ), [1] = " (D)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ID" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Crapo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crapo" ) ), [1] = " (R)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Risch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Risch" ) ), [1] = " (R)" ] ), [83] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [84] = "\n", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IL" ) ), [86] = ":\n", [87] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dick Durbin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Durbin" ) ), [1] = " (D)" ] ), [88] = ",\n", [89] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Kirk" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kirk" ) ), [1] = " (R)" ] ), [90] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [91] = "\n" ] ) ] ), [2] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IN" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lugar" ) ), [1] = " (R)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dan Coats" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coats" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IA" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grassley" ) ), [1] = " (R)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harkin" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KS" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roberts" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jerry Moran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Moran" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KY" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mitch McConnell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McConnell" ) ), [1] = " (R)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rand Paul" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "LA" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Landrieu" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Vitter" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vitter" ) ), [1] = " (R)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ME" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Snowe" ) ), [1] = " (R)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Collins" ) ), [1] = " (R)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MD" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Mikulski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mikulski" ) ), [1] = " (D)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Cardin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cardin" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MA" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kerry" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scott Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.P. Brown" ) ), [1] = " (R)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MI" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Levin" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stabenow" ) ), [1] = " (D)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MN" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amy Klobuchar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Klobuchar" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Al Franken" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Franken" ) ), [1] = " (D)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MS" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cochran" ) ), [1] = " (R)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roger Wicker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wicker" ) ), [1] = " (R)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MO" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claire McCaskill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCaskill" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roy Blunt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blunt" ) ), [1] = " (R)" ] ), [83] = "\n" ] ) ] ), [3] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MT" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baucus" ) ), [1] = " (D)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Tester" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tester" ) ), [1] = " (D)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NE" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "E.B. Nelson" ) ), [1] = " (D)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Johanns" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johanns" ) ), [1] = " (R)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NV" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Harry Reid" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reid" ) ), [1] = " (D)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Ensign" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ensign" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NH" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeanne Shaheen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shaheen" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kelly Ayotte" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ayotte" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NJ" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lautenberg" ) ), [1] = " (D)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Menendez" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Menendez" ) ), [1] = " (D)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NM" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bingaman" ) ), [1] = " (D)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Udall" ) ), [1] = " (D)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NY" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Schumer" ) ), [1] = " (D)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kirsten Gillibrand" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gillibrand" ) ), [1] = " (D)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NC" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Burr" ) ), [1] = " (R)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Hagan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hagan" ) ), [1] = " (D)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ND" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Conrad" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Hoeven" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hoeven" ) ), [1] = " (R)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OH" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sherrod Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.C. Brown" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Portman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Portman" ) ), [1] = " (R)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OK" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inhofe" ) ), [1] = " (R)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Coburn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coburn" ) ), [1] = " (R)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OR" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Wyden" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyden" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Merkley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Merkley" ) ), [1] = " (D)" ] ), [83] = "\n" ] ) ] ), [4] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "PA" ) ), [2] = ":\n", [3] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Casey, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Casey" ) ), [1] = " (D)" ] ), [4] = ",\n", [5] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Toomey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toomey" ) ), [1] = " (R)" ] ), [6] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "RI" ) ), [9] = ":\n", [10] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Reed (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reed" ) ), [1] = " (D)" ] ), [11] = ",\n", [12] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sheldon Whitehouse" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Whitehouse" ) ), [1] = " (D)" ] ), [13] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [14] = "\n", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SC" ) ), [16] = ":\n", [17] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Graham" ) ), [1] = " (R)" ] ), [18] = ",\n", [19] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim DeMint" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DeMint" ) ), [1] = " (R)" ] ), [20] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SD" ) ), [23] = ":\n", [24] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Johnson" ) ), [1] = " (D)" ] ), [25] = ",\n", [26] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Thune" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Thune" ) ), [1] = " (R)" ] ), [27] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [28] = "\n", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TN" ) ), [30] = ":\n", [31] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alexander" ) ), [1] = " (R)" ] ), [32] = ",\n", [33] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Corker" ) ), [1] = " (R)" ] ), [34] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [35] = "\n", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TX" ) ), [37] = ":\n", [38] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hutchison" ) ), [1] = " (R)" ] ), [39] = ",\n", [40] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Cornyn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cornyn" ) ), [1] = " (R)" ] ), [41] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [42] = "\n", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "UT" ) ), [44] = ":\n", [45] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hatch" ) ), [1] = " (R)" ] ), [46] = ",\n", [47] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Lee (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lee" ) ), [1] = " (R)" ] ), [48] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [49] = "\n", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VT" ) ), [51] = ":\n", [52] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Leahy" ) ), [1] = " (D)" ] ), [53] = ",\n", [54] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernie Sanders" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sanders" ) ), [1] = " (I)" ] ), [55] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [56] = "\n", [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VA" ) ), [58] = ":\n", [59] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Webb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Webb" ) ), [1] = " (D)" ] ), [60] = ",\n", [61] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Warner" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warner" ) ), [1] = " (D)" ] ), [62] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [63] = "\n", [64] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WA" ) ), [65] = ":\n", [66] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murray" ) ), [1] = " (D)" ] ), [67] = ",\n", [68] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maria Cantwell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cantwell" ) ), [1] = " (D)" ] ), [69] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [70] = "\n", [71] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WV" ) ), [72] = ":\n", [73] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rockefeller" ) ), [1] = " (D)" ] ), [74] = ",\n", [75] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Manchin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Manchin" ) ), [1] = " (D)" ] ), [76] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [77] = "\n", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WI" ) ), [79] = ":\n", [80] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kohl" ) ), [1] = " (D)" ] ), [81] = ",\n", [82] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Johnson (Wisconsin politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R. Johnson" ) ), [1] = " (R)" ] ), [83] = WtXmlElement( {P} name = "br" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [84] = "\n", [85] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WY" ) ), [86] = ":\n", [87] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Enzi" ) ), [1] = " (R)" ] ), [88] = ",\n", [89] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrasso" ) ), [1] = " (R)" ] ), [90] = "\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [4] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic (51)" ) ) ] ), [1] = " \u2022 ", [2] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican (47)" ) ) ] ), [3] = " \u2022 ", [4] = WtXmlElement( {P} name = "span" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ], body = WtBody[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Independent (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Independent (2)" ) ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [23] = "\n\n" ] ), [10] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "References" ), body = WtBody[ [0] = "\n\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "div" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "reflist references-column-count references-column-count-2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; list-style-type: decimal;" ] ) ], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "references" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "group" ], value = WtValue[] ) ], body = WtBody[] ) ] ), [3] = "\n\n", [4] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:1943 births" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:20th-century American Episcopalians" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:21st-century American Episcopalians" ], title = - ), [5] = "\n", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) lawyers" ], title = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Living people" ], title = - ), [9] = "\n", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Members of the United States House of Representatives from Georgia (U.S. state)" ], title = - ), [11] = "\n", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Warren County, North Carolina" ], title = - ), [13] = "\n", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:United States Senators from Georgia (U.S. state)" ], title = - ), [15] = "\n", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Georgia alumni" ], title = - ), [17] = "\n", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Tennessee alumni" ], title = - ), [19] = "\n", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:C. E. Byrd High School alumni" ], title = - ), [21] = "\n", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Shreveport, Louisiana" ], title = - ), [23] = "\n", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) Republicans" ], title = - ) ], [5] = "\n\n", [6] = WtParagraph[ [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:Saxby Chambliss" ], title = - ), [1] = "\n", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:Saxby Chambliss" ], title = - ), [3] = "\n", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ga:Saxby Chambliss" ], title = - ), [5] = "\n", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "it:Saxby Chambliss" ], title = - ), [7] = "\n", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:Saxby Chambliss" ], title = - ), [9] = "\n", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "no:Saxby Chambliss" ], title = - ), [11] = "\n", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pl:Saxby Chambliss" ], title = - ), [13] = "\n", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Saxby Chambliss" ], title = - ), [15] = "\n", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sv:Saxby Chambliss" ], title = - ) ], [7] = "\n" ] ) ) ignored_stuff-01.ast000066400000000000000000000003651335270560400501650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(" Only visible when included ") } {P} warnings = C[] [0] = "\n", [1] = WtIgnored(" Only visible when included "), [2] = "\n" ) ignored_stuff-02.ast000066400000000000000000000004501335270560400501610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtIgnored("") } {P} warnings = C[] [0] = "\n", [1] = WtSemiPre[ [0] = WtIgnored(""), [1] = " only visible when viewed directly ", [2] = WtIgnored("") ], [2] = "\n" ) ignored_stuff-03.ast000066400000000000000000000007231335270560400501650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtIgnored("") } {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "This will not get transcluded" ], [2] = "\n\n", [3] = WtSemiPre[ [0] = WtIgnored(""), [1] = " Only the stuff in here would get transcluded ", [2] = WtIgnored("") ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Nor will this get transcluded" ], [6] = "\n" ) ilink_test-01.ast000066400000000000000000000004751335270560400474760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Es kommt ein Link: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = - ), [2] = " und er ist wieder weg ..." ] ) ilink_test-02.ast000066400000000000000000000043261335270560400474760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/ilink_test-02.wikitext:4:57: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = "\n", [1] = WtParagraph[ [0] = "Es kommt ein Link: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mit ", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "fettem Titel" ] ) ) ), [2] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " der ordentlich leaked..." ] ), [3] = " " ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Es kommt ein ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "kursiver Link: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "aber der Titel " ) ) ] ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "" "" "]]" ] target = WtPageName( {P} rtd = RTD[ ] [0] = "Hallo" ), title = WtLinkTitle[ [0] = " ist nur so halb-halb" ] ), [3] = " und vorbei ists." ], [4] = "\n\n", [5] = WtParagraph[ [0] = "Es kommt ein ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "kursiver Link: ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "mit voll kursivem Titel" ) ), [2] = " auch hier noch." ] ), [2] = " Und vorbei ists." ], [6] = "\n" ) link-3.ast000066400000000000000000000007261335270560400462070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X" ], options = WtLinkOptions[ [0] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Left:" ) ] ) ] ) misnested-tags-12.2.8.1.ast000066400000000000000000000015641335270560400507270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/misnested-tags-12.2.8.1.wikitext:1:15: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "

    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "3" ] ) ] ), [2] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "4" ] ), [3] = "5" ] ) ) misnested-tags-12.2.8.2.ast000066400000000000000000000011661335270560400507260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "1" ] ) ], [1] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "

    " ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "2" ] ), [1] = "3" ] ) ) native_bold_and_italics.ast000066400000000000000000000012731335270560400517300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Italics" ), [1] = "\n", [2] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Bold" ) ], [2] = "\n\n", [3] = WtParagraph[ [0] = "Jetzt wirds funky:\n'", [1] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "What?" ), [2] = "\n", [3] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "What'" ), [4] = "s up?" ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = WtBold( {P} rtd = RTD[ "'''" "'''" ] [0] = "Boah" ) ) ], [6] = "\n" ) native_list-01.ast000066400000000000000000000010461335270560400476450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "List 1" ], [1] = "\n", [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Item 1" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Item 2" ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = "List 2" ], [5] = "\n", [6] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = " Item 1" ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = " Item 2" ) ], [7] = "\n\n" ) native_list-02.ast000066400000000000000000000034121335270560400476450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/native_list-02.wikitext:9:3: : 12.2.5.4.7 - R30 (3) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "List 1" ], [1] = "\n", [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " normal", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "bold" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " bold" ] ), [1] = "normal" ) ], [3] = "\n\n", [4] = WtParagraph[ [0] = "List 2" ], [5] = "\n", [6] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = " normal", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "bold" ] ) ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " bold" ] ) ) ], [7] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [8] = WtParagraph[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "bold\n" ] ), [1] = "\nnormal" ], [9] = "\n" ) native_list_and_html-01.ast000066400000000000000000000011341335270560400515110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R23 (1) @ WtXmlEndTag. ] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Hallo " ), [1] = " zwischen den Welten", [2] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "\n" ] ), [3] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " du schn\u00F6de " ), [4] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " Welt" ] ) ], [1] = "\n" ) newlines-and-paragraphs-03.ast000066400000000000000000000001621335270560400520360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = "\n", [1] = WtParagraph[ [0] = "\nHallo" ] ) only_text.ast000066400000000000000000000001511335270560400471270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!" ] ) paragraph-table-test.ast000066400000000000000000000013661335270560400511220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astLazyParsedPage( Properties: {N} entityMap = EntityMap {} parse errors = [ Tree construction error: 12.2.5.4.7 - R22 (1); XmlElementClose @ /nopkg-tree/input.wikitext/paragraph-table-test.wikitext:3:3 ] {N} warnings = [] [ Paragraph([ ]) XmlElement( Properties: RTD = RtData: [0] = " "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT: [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) ], [1] = "\n" ) redirect.ast000066400000000000000000000005271335270560400467120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) ], [1] = "\n" ) table-fostering.ast000066400000000000000000000014451335270560400501760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "foo\n" ], [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n\n ", [1] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "td" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "x\n \n", [1] = WtParagraph[ [0] = " y" ] ] ) ] ), [1] = "\n" ] ) ] ), [2] = "\nfoo" ) table-test-01.ast000066400000000000000000000004401335270560400473650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astLazyParsedPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ Paragraph([ ]) XmlElement( Properties: RTD = RtData: [0] = " : 12.2.5.4.13 R02 @ WtXmlStartTag., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {A} repair = true {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "S" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "B\n" ] ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [2] = "\nA" ) tables-and-sections-2.ast000066400000000000000000000040161335270560400511040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/tables-and-sections-2.wikitext:2:9: : 12.2.5.4.13 R02 @ WtXmlStartTag., Warning: /nopkg-tree/input.wikitext/tables-and-sections-2.wikitext:1:6: : 12.2.5.4.7 - R20 (2) @ WtBody., Warning: : : 12.2.5.4.15 R01 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/tables-and-sections-2.wikitext:1:1: : 12.2.5.4.7 R10 (1) @ WtParsedWikitextPage., Warning: /nopkg-tree/input.wikitext/tables-and-sections-2.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage., Warning: /nopkg-tree/input.wikitext/tables-and-sections-2.wikitext:1:1: : 12.2.5.4.7 R10 (2) @ WtParsedWikitextPage. ] [0] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "0" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[], [2] = WtXmlElement( {P} name = "table" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableImplicitTableBody( body = WtBody[ [0] = WtXmlElement( {A} repair = true {P} name = "tr" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "th" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "1" ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "B\n" ] ] ) ] ) ] ), [1] = WtXmlElement( {P} name = "tr" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ) ] ), [3] = "\nA" ] ) ) template_stuff.ast000066400000000000000000000024631335270560400501340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Some Template" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Some Template Argument" ] ) ] ), [1] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "Some Template Parameter" ], default = WtValue[ [0] = "Some Template Parameter Default Value" ], garbage = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtParagraph[ [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Some Template" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Some Template Argument" ] ) ] ), [1] = "\n", [2] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "Some Template Parameter" ], default = WtValue[ [0] = "Some Template Parameter Default Value" ], garbage = WtTemplateArguments[] ) ], [1] = "\n" ) text_and_address.ast000066400000000000000000000004631335270560400504230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n" ], [1] = WtXmlElement( {P} name = "address" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Test" ] ), [2] = "\nTsch\u00FCss!\n" ) text_and_comment.ast000066400000000000000000000007251335270560400504410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " This is a comment " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) } {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n", [1] = WtXmlComment( {P} content = " This is a comment " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [2] = "Tsch\u00FCss!" ], [1] = "\n" ) text_and_dt_dd.ast000066400000000000000000000007301335270560400500510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n" ], [1] = WtXmlElement( {P} name = "dd" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Some item" ] ), [2] = "\n", [3] = WtXmlElement( {P} name = "dt" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Some item" ] ), [4] = "\nTsch\u00FCss!\n" ) text_and_h1.ast000066400000000000000000000004511335270560400473030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n" ], [1] = WtXmlElement( {P} name = "h1" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "A heading" ] ), [2] = "\nTsch\u00FCss!\n" ) text_and_li.ast000066400000000000000000000004511335270560400473770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n" ], [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Some item" ] ), [2] = "\nTsch\u00FCss!\n" ) text_and_nested_headings.ast000066400000000000000000000014401335270560400521160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/text_and_nested_headings.wikitext:2:8: : 12.2.5.4.7 - R13 @ WtXmlStartTag., Warning: /nopkg-tree/input.wikitext/text_and_nested_headings.wikitext:2:42: : 12.2.5.4.7 - R25 (1) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "Hallo Welt!\n" ], [1] = WtXmlElement( {P} name = "h1" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "A " ] ), [2] = WtXmlElement( {P} name = "h2" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "An inner heading" ] ), [3] = " heading", [4] = WtXmlEndTag( {P} name = "h1" {P} rtd = RTD[ "" ] ), [5] = "\nTsch\u00FCss!\n" ) text_and_pre.ast000066400000000000000000000010431335270560400475570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tSome special pre text\n") ) } {P} warnings = C[] [0] = WtParagraph[ [0] = "Hallo Welt!\n", [1] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tSome special pre text\n") ), [2] = "\nTsch\u00FCss!" ], [1] = "\n" ) too_much_i_after_section.ast000066400000000000000000000013631335270560400521420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R20 (2) @ WtHeading., Warning: /nopkg-tree/input.wikitext/too_much_i_after_section.wikitext:2:14: : 12.2.5.4.7 - R20 (2) @ WtBody. ] [0] = "\n", [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " A ", [1] = WtXmlElement( {P} name = "i" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = " B " ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "i" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "C" ], [2] = "\n" ] ) ] ) ) unclosed_formatting_elements-12.2.8.6.ast000066400000000000000000000165231335270560400537500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:6: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:10: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:14: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:18: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:22: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unclosed_formatting_elements-12.2.8.6.wikitext:4:26: : 12.2.5.4.7 - R30 (1) @ WtXmlEndTag. ] [0] = WtParagraph[], [1] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ), [2] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X\n" ] ) ] ) ] ) ] ) ] ) ] ), [3] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes( {P} rtd = RTD[ ] [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ), body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "X\n" ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), [4] = WtXmlElement( {P} name = "p" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [1] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [2] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [3] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [4] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [5] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [6] = "X" ] ) ) unknown-elements.ast000066400000000000000000000031421335270560400504160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: /nopkg-tree/input.wikitext/unknown-elements.wikitext:5:2: : 12.2.4 Element should not be an empty tag! @ WtXmlEmptyTag., Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/unknown-elements.wikitext:7:2: : 12.2.4 Element should not be an empty tag! @ WtXmlEmptyTag., Warning: /nopkg-tree/input.wikitext/unknown-elements.wikitext:8:3: : 12.2.5.4.7 - R52 (2) @ WtXmlEndTag. ] [0] = "\n", [1] = WtParagraph[ [0] = "Hello World" ], [2] = "\n\n", [3] = WtParagraph[ [0] = WtXmlElement( {P} name = "form" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n", [1] = WtXmlElement( {P} name = "input" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "type" ], value = WtValue[ [0] = "text" ] ) ], body = - ) ] ) ], [4] = "\n\n", [5] = WtParagraph[ [0] = WtXmlElement( {P} name = "input" {P} rtd = RTD[ " " />" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "type" ], value = WtValue[ [0] = "submit" ] ) ], body = - ), [1] = "\n", [2] = WtXmlEndTag( {P} name = "form" {P} rtd = RTD[ "" ] ) ], [6] = "\n\n", [7] = WtParagraph[ [0] = "Bye bye!" ], [8] = "\n" ) unrecognized_link_title.ast000066400000000000000000000012541335270560400520210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ] ) ] ) wrong_nesting_of_fmt_and_li.ast000066400000000000000000000032001335270560400526230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[ Warning: : : 12.2.5.4.7 - R22 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/wrong_nesting_of_fmt_and_li.wikitext:3:24: : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag., Warning: /nopkg-tree/input.wikitext/wrong_nesting_of_fmt_and_li.wikitext:8:22: : 12.2.5.4.7 - R23 (2) @ WtXmlEndTag. ] [0] = WtParagraph[ [0] = "Hallo!\n", [1] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Ich bin fett\n" ] ) ], [1] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Ich bin ein Item!" ] ) ] ), [2] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\n" ] ), [3] = "\nIch sollte wieder d\u00FCnn sein...\n\n", [4] = WtParagraph[ [0] = "Hallo!\n" ], [5] = WtXmlElement( {P} name = "li" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "Ich bin fett" ] ) ] ), [6] = WtXmlElement( {P} name = "b" {P} rtd = RTD[ "" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = "\nIch sollte noch fett sein\n" ] ), [7] = "\nIch aber nicht mehr...\n" ) xml_entity_and_char_refs.ast000066400000000000000000000004731335270560400521430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/after-postprocessing.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtParagraph[ [0] = "Hello World! A ", [1] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [2] = " ", [3] = WtXmlCharRef( {P} codePoint = 79 {P} rtd = RTD[ "O" ] ) ], [1] = "\n" ) input.wikitext/000077500000000000000000000000001335270560400424335ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-treea_signature.wikitext000066400000000000000000000000211335270560400465170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHello World ~~~~ block-table-7.wikitext000066400000000000000000000000541335270560400465470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext {| ! Header |} br_end_tag.wikitext000066400000000000000000000000421335270560400463050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextI say yes
    And I say goodbye empty_page.wikitext000066400000000000000000000000001335270560400463450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitexthorrible-1.wikitext000066400000000000000000000000741335270560400461720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextbefore [[User:User|User]]'''[[User talk:User|User''']] afterhorrible-1b.wikitext000066400000000000000000000000751335270560400463350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextbefore [[User:User|User]]'''[[User talk:User|User'''x]] afterhorrible-2.wikitext000066400000000000000000000001221335270560400461650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextbefore ... [[User:User|User]]''' afterhorrible-3.wikitext000066400000000000000000000000501335270560400461660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextbefore ¹''' afterhorrible-4.wikitext000066400000000000000000000004641335270560400462000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextbefore '''Hallo schoene Welt before Hallo''' schoene Welt before Hallo schoene Welt before Hallo''' schoene Welt before Hallo''''' schoene Welt before Hallo''''' schoene Welt before '''Hallo schoene Welt before '''''Hallo schoene Welt before Hallo''' schoene Welt ignore_throws_exception.wikitext000066400000000000000000001746241335270560400512120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan="2" class="n" style="text-align: center; font-size: 125%; font-weight: bold" |Clarence Saxby Chambliss Jr |- | colspan="2" style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- | colspan="2" style="text-align:center; font-size:110%;" |
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- | colspan="2" style="text-align:center; background:lavender;" | '''[[Incumbent]]''' |- | colspan="2" style="text-align:center;" |'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- | colspan="2" style="text-align:center; font-size:110%;" |
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- ! colspan="2" style="text-align:center; font-size:110%;" |
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- | colspan="2" |
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! |- |[[U.S. House election, 1994|1994]] | | style="background:#B0CEFF" |Craig Mathis | style="background:#B0CEFF" align="right" |53,408 | style="background:#B0CEFF" |37% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |89,591 | style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | | style="background:#B0CEFF" |Jim Wiggins | style="background:#B0CEFF" align="right" |84,506 | style="background:#B0CEFF" |47% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |93,619 | style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | | style="background:#B0CEFF" |Ronald L. Cain | style="background:#B0CEFF" align="right" |53,079 | style="background:#B0CEFF" |38% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |87,993 | style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | | style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] | style="background:#B0CEFF" align="right" |79,051 | style="background:#B0CEFF" |41% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |113,380 | style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! !3rd Party !Party !Votes !Pct ! |- |[[U.S. Senate election, 2002|2002]] | | style="background:#B0CEFF" |[[Max Cleland]] | style="background:#B0CEFF" align="right" |932,422 | style="background:#B0CEFF" |46% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |1,071,352 | style="background:#FFB6B6" |53% | | style="background:#ffff66" |Claude "Sandy" Thomas | style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] | style="background:#ffff66" align="right" |27,830 | style="background:#ffff66" align="right" |1% | |} {| border="1" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan="6" |2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan="2" style="width: 130px" |Party ! style="width: 17em" |Candidate ! style="width: 5em" |Votes ! style="width: 3.5em" |% ! style="width: 3.5em" |±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[J. Roy Rowland]] | width="40%" style="text-align: center;" rowspan="1" |'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Max Cleland]] | width="40%" style="text-align: center;" rowspan="1" |'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' | width="30%" align="center" rowspan="1" |'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    | width="40%" style="text-align: center;" rowspan="1" |'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    | width="40%" style="text-align: center;" rowspan="1" |'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''''''''
    61st | width="30%" align="center" rowspan="1" | Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] ignored_stuff-01.wikitext000066400000000000000000000000711335270560400472770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext Only visible when included ignored_stuff-02.wikitext000066400000000000000000000000741335270560400473030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext only visible when viewed directly ignored_stuff-03.wikitext000066400000000000000000000002111335270560400472750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext This will not get transcluded Only the stuff in here would get transcluded Nor will this get transcluded ilink_test-01.wikitext000066400000000000000000000000661335270560400466120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextEs kommt ein Link: [[Hallo]] und er ist wieder weg ...ilink_test-02.wikitext000066400000000000000000000004331335270560400466110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext Es kommt ein Link: [[Hallo|Mit fettem Titel]] der ordentlich leaked... Es kommt ein kursiver Link: [[Hallo|aber der Titel ist nur so halb-halb]] und vorbei ists. Es kommt ein kursiver Link: [[Hallo|mit voll kursivem Titel]] auch hier noch. Und vorbei ists. link-3.wikitext000066400000000000000000000000201335270560400453120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext[[File:X|Left:]]misnested-tags-12.2.8.1.wikitext000066400000000000000000000000321335270560400500340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext

    12345

    misnested-tags-12.2.8.2.wikitext000066400000000000000000000000211335270560400500330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext1

    23

    native_bold_and_italics.wikitext000066400000000000000000000001261335270560400510440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext ''Italics'' '''Bold''' Jetzt wirds funky: '''What?'' ''What'''s up? '''''Boah''''' native_list-01.wikitext000066400000000000000000000000641335270560400467640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextList 1 * Item 1 * Item 2 List 2 # Item 1 # Item 2 native_list-02.wikitext000066400000000000000000000001301335270560400467570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextList 1 * normalbold * boldnormal List 2 # normalbold # bold bold normal native_list_and_html-01.wikitext000066400000000000000000000000721335270560400506310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext* Hallo zwischen den Welten * du schnöde
  • Welt newlines-and-paragraphs-03.wikitext000066400000000000000000000000071335270560400511540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext Halloonly_text.wikitext000066400000000000000000000000131335270560400462440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!paragraph-table-test.wikitext.disabled000066400000000000000000000000321335270560400517750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext

    redirect-colon.wikitext000066400000000000000000000000401335270560400471300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext#REDIRECT: [[Wohin auch immer]] redirect.wikitext000066400000000000000000000000371335270560400460260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext#REDIRECT [[Wohin auch immer]] table-fostering.wikitext000066400000000000000000000000741335270560400473130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextfoo
    x y
    footable-test-01.wikitext.disabled000066400000000000000000000000201335270560400502450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext
    table-test-02.wikitext.disabled000066400000000000000000000000101335270560400502450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext table-test-03.wikitext.disabled000066400000000000000000000000461335270560400502570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextBefore table
    In table
    table-test-04.wikitext.disabled000066400000000000000000000000371335270560400502600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext
    Hallo
    table-test-05.wikitext.disabled000066400000000000000000000001151335270560400502560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHi! Fett
    nicht fett?
    fett?
    Sicher nicht fett.tables-and-sections-1.wikitext000066400000000000000000000000421335270560400502160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext
    ==S== B
    Atables-and-sections-2.wikitext000066400000000000000000000000501335270560400502160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext==0==
    ==1== B
    Atemplate_stuff.wikitext000066400000000000000000000001551335270560400472500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext{{Some Template|Some Template Argument}} {{{Some Template Parameter|Some Template Parameter Default Value}}} text_and_address.wikitext000066400000000000000000000000561335270560400475410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!
    Test
    Tschüss! text_and_comment.wikitext000066400000000000000000000000611335270560400475520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt! Tschüss! text_and_dt_dd.wikitext000066400000000000000000000000741335270560400471720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!
    Some item
    Some item
    Tschüss! text_and_h1.wikitext000066400000000000000000000000511335270560400464170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!

    A heading

    Tschüss! text_and_li.wikitext000066400000000000000000000000511335270560400465130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!
  • Some item
  • Tschüss! text_and_nested_headings.wikitext000066400000000000000000000001031335270560400512310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!

    A

    An inner heading

    heading Tschüss! text_and_pre.wikitext000066400000000000000000000000721335270560400467000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo Welt!
    	Some special pre text
    
    Tschüss! too_much_i_after_section.wikitext000066400000000000000000000000211335270560400512500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext == A B == C unclosed_formatting_elements-12.2.8.6.wikitext000066400000000000000000000001561335270560400530630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext

    X

    X

    X

    Xunknown-elements.wikitext000066400000000000000000000001261335270560400475350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext Hello World

    Bye bye! unrecognized_link_title.wikitext000066400000000000000000000000671335270560400511420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitext[[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]wrong_nesting_of_fmt_and_li.wikitext000066400000000000000000000002561335270560400517530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHallo! Ich bin fett
  • Ich bin ein Item!
  • Ich sollte wieder dünn sein... Hallo!
  • Ich bin fett
  • Ich sollte noch fett sein Ich aber nicht mehr... xml_entity_and_char_refs.wikitext000066400000000000000000000000341335270560400512540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/input.wikitextHello World! A & O only-parsed.ast/000077500000000000000000000000001335270560400424505ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-treea_signature.ast000066400000000000000000000004541335270560400454650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hello World ", [2] = WtSignature( {P} rtd = RTD[ "~~~~" ] {P} tildeCount = 4 ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ) block-table-7.ast000066400000000000000000000020101335270560400454750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtXmlStartTag( {P} name = "tbody" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "\n", [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Header", [2] = WtNewline("\n"), [3] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [4] = WtXmlEndTag( {P} name = "tbody" {P} rtd = RTD[ "" ] ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ) ] ), [2] = WtNewline("\n") ) br_end_tag.ast000066400000000000000000000005631335270560400452510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "I say yes", [2] = WtNewline("\n"), [3] = WtXmlEndTag( {P} name = "br" {P} rtd = RTD[ "
    " ] ), [4] = WtNewline("\n"), [5] = "And I say goodbye", [6] = WtImEndTag( {P} name = "@p" ), [7] = WtNewline("\n") ) empty_page.ast000066400000000000000000000000771335270560400453170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] ) horrible-1.ast000066400000000000000000000014441335270560400451300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "before ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ), [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User", [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ) ) ), [5] = " after", [6] = WtImEndTag( {P} name = "@p" ) ) horrible-1b.ast000066400000000000000000000014621335270560400452720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "before ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User" ) ), [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User talk:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "User", [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "x" ) ), [5] = " after", [6] = WtImEndTag( {P} name = "@p" ) ) horrible-2.ast000066400000000000000000000020511335270560400451240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "before ", [2] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-face: bold" ] ) ] ), [3] = "... ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "User:User" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1] = "User", [2] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "
    " ] ) ) ), [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [7] = " after", [8] = WtImEndTag( {P} name = "@p" ) ) horrible-3.ast000066400000000000000000000010651335270560400451310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "before ", [2] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "color:red;" ] ) ] ), [3] = "\u00B9", [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = " after", [6] = WtImEndTag( {P} name = "@p" ) ) horrible-4.ast000066400000000000000000000074531335270560400451410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "before ", [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = "Hallo schoene", [4] = WtNewline("\n"), [5] = "Welt", [6] = WtImEndTag( {P} name = "@p" ), [7] = WtNewline("\n"), [8] = WtNewline("\n"), [9] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [10] = "before ", [11] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [12] = "Hallo", [13] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [14] = " schoene", [15] = WtNewline("\n"), [16] = "Welt", [17] = WtImEndTag( {P} name = "@p" ), [18] = WtNewline("\n"), [19] = WtNewline("\n"), [20] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [21] = "before ", [22] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [23] = "Hallo schoene", [24] = WtNewline("\n"), [25] = "Welt", [26] = WtNewline("\n"), [27] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [28] = WtImEndTag( {P} name = "@p" ), [29] = WtNewline("\n"), [30] = WtNewline("\n"), [31] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [32] = "before ", [33] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [34] = "Hallo", [35] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [36] = " schoene", [37] = WtNewline("\n"), [38] = "Welt", [39] = WtImEndTag( {P} name = "@p" ), [40] = WtNewline("\n"), [41] = WtNewline("\n"), [42] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [43] = "before ", [44] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [45] = "Hallo", [46] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [47] = " schoene", [48] = WtNewline("\n"), [49] = "Welt", [50] = WtImEndTag( {P} name = "@p" ), [51] = WtNewline("\n"), [52] = WtNewline("\n"), [53] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [54] = "before ", [55] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [56] = "Hallo", [57] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [58] = " schoene", [59] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [60] = WtNewline("\n"), [61] = "Welt", [62] = WtImEndTag( {P} name = "@p" ), [63] = WtNewline("\n"), [64] = WtNewline("\n"), [65] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [66] = "before ", [67] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [68] = "Hallo", [69] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [70] = " schoene", [71] = WtNewline("\n"), [72] = "Welt", [73] = WtImEndTag( {P} name = "@p" ), [74] = WtNewline("\n"), [75] = WtNewline("\n"), [76] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [77] = "before ", [78] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [79] = "Hallo", [80] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [81] = " schoene", [82] = WtNewline("\n"), [83] = "Welt", [84] = WtImEndTag( {P} name = "@p" ), [85] = WtNewline("\n"), [86] = WtNewline("\n"), [87] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [88] = "before ", [89] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [90] = "Hallo", [91] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [92] = " schoene", [93] = WtNewline("\n"), [94] = "Welt", [95] = WtImEndTag( {P} name = "@p" ), [96] = WtNewline("\n") ) ignore_throws_exception.ast000066400000000000000000017455061335270560400501520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ), [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ), [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ), [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ), [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ), [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ), [8] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ), [10] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [14] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ), [15] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [16] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [18] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ), [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [20] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [21] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [22] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ), [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [26] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ), [29] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [30] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ), [31] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ), [32] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [33] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ), [34] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [35] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ), [36] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [37] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ), [38] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [39] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ), [40] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ), [41] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [42] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ), [43] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ), [44] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ), [45] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [46] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [47] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [48] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ), [49] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [50] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [51] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ) } {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "infobox vcard" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 22em; font-size: 90%; text-align: left" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "n" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center; font-size: 125%; font-weight: bold" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ] ), [2] = "Clarence Saxby Chambliss Jr", [3] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ] ), [3] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [4] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [6] = WtImEndTag( {P} name = "@p" ), [7] = WtNewline("\n") ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlEmptyTag( {P} name = "hr" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [2] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ] ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = "from ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [7] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ] ) ] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; background:lavender;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Incumbent" ], title = - ), [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Assumed", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "office", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [7] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [8] = "January 3, 2003", [9] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [10] = "Serving", [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "with", [13] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [15] = WtImEndTag( {P} name = "@p" ), [16] = WtNewline("\n") ] ) ] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlEmptyTag( {P} name = "hr" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [2] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender; font-weight:bold;" ] ) ] ), [3] = "Member of the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [5] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [6] = "from ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [8] = "'s ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "8th" ) ), [10] = " district", [11] = WtNewline("\n"), [12] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n") ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "In", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "office", [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [7] = "January 3, 1995", [8] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [9] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [10] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [11] = "January 3, 2003", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n") ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Succeeded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [3] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = WtTagExtensionBody("In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented.") ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center; font-size:110%;" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n"), [2] = WtNewline("\n"), [3] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [4] = WtXmlEmptyTag( {P} name = "hr" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:lavender;" ] ) ] ), [6] = "Chairman of the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Committee on Agriculture, Nutrition and Forestry" ) ), [8] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [9] = WtImEndTag( {P} name = "@p" ), [10] = WtNewline("\n") ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-bottom:none; text-align:center;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "In", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "office", [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [7] = "January 3, 2005", [8] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [9] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [10] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [11] = "January 3, 2007", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n") ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [15] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Succeeded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [17] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [18] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [19] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [20] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [21] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [22] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [23] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [24] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [25] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [26] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [27] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [28] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlEmptyTag( {P} name = "hr" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ) ] ), [29] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Born", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " November 10, 1943", [2] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "display:none" ] ) ] ), [3] = " (", [4] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "bday" ] ) ] ), [5] = "1943-11-10", [6] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [7] = ")", [8] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [9] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint" ] ) ] ), [10] = " (age", [11] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [12] = "67)", [13] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [14] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warrenton" ) ), [16] = ", ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ), [18] = WtImEndTag( {P} name = "@p" ), [19] = WtNewline("\n") ] ) ] ), [30] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Political", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "party", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [31] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Spouse(s)", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Julianne Chambliss", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ) ] ), [32] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Residence", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "label" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [33] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alma mater" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alma", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "mater" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [3] = ", ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "University of Tennessee College of Law" ) ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ) ] ), [34] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Occupation", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Lawyer", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ) ] ), [35] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Religion", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopal Church in the United States of America" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Episcopalian" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [36] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Website", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "www.Saxby.org" ] ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [37] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [2] = WtNewline("\n"), [3] = WtNewline("\n"), [4] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = "Clarence Saxby Chambliss", [7] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [8] = " (born November 10, 1943) is the senior ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senator" ) ), [10] = " from ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [12] = ". He is a member of the ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Republican Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Party" ) ), [14] = ". In the 110th Congress, Chambliss serves as the ranking Republican member of the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = - ), [16] = ", chairing the committee during the 109th Congress (2005-2007).", [17] = WtImEndTag( {P} name = "@p" ), [18] = WtNewline("\n"), [19] = WtNewline("\n"), [20] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Early life, education, and family" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = "Chambliss, the son of an ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Episcopalian" ], title = - ), [5] = " minister,", [6] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = WtTagExtensionBody("\"R. Saxby Chambliss.\" Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009.") ), [7] = " was born in ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Warrenton, North Carolina" ], title = - ), [9] = ". He graduated from ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "C.E. Byrd High School" ], title = - ), [11] = " in ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Shreveport" ], title = - ), [13] = ", ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [15] = ", in 1961. He attended ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana Tech University" ], title = - ), [17] = " from 1961-1962 and earned a ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "bachelor's degree" ], title = - ), [19] = " in Business Administration from the ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Georgia" ], title = - ), [21] = " in 1966, working his way through college at a bakery in ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Athens, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Athens" ) ), [23] = ".", [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "BRC" ] ) ], body = - ), [25] = " He received his ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Juris Doctor" ], title = - ), [27] = " from the ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "University of Tennessee" ], title = - ), [29] = " College of Law in 1968. He is a member of the ", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sigma Chi" ], title = - ), [31] = " Fraternity.", [32] = WtImEndTag( {P} name = "@p" ), [33] = WtNewline("\n"), [34] = WtNewline("\n"), [35] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [36] = "During the ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vietnam War" ], title = - ), [38] = ", Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "football" ], title = - ), [40] = " injury.", [41] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html \"The Sunshine Patriots\"], ''[[Village Voice]]'', August 17, 2004") ), [42] = WtImEndTag( {P} name = "@p" ), [43] = WtNewline("\n"), [44] = WtNewline("\n"), [45] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [46] = "\t ", [47] = WtNewline("\n"), [48] = WtNewline("\n"), [49] = "Chambliss is a member of ", [50] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. John's Episcopal Church (Moultrie, Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "St. John's Episcopal Church" ) ), [51] = " in ", [52] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Moultrie, Georgia" ], title = - ), [53] = ". He married Julianne Frohbert in 1966 and they have two children and two grandchildren.", [54] = WtImEndTag( {P} name = "@p" ), [55] = WtNewline("\n"), [56] = WtNewline("\n"), [57] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [58] = "Chambliss's son Bo is a registered lobbyist for the ", [59] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chicago Mercantile Exchange" ], title = - ), [60] = " and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the ", [61] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [62] = ", of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.", [63] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' \u2014 USNews.com 3/7/06]") ), [64] = WtImEndTag( {P} name = "@p" ), [65] = WtNewline("\n"), [66] = WtNewline("\n") ] ), [21] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "House of Representatives, 1995-2003" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = "Chambliss was elected to the ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House of Representatives" ], title = - ), [5] = " in 1994 as one of the new ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Conservatism" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "conservative" ) ), [7] = " Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Newt Gingrich" ], title = - ), [9] = ", was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Revolution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Class of '94" ) ), [11] = ".", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n"), [14] = WtNewline("\n"), [15] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [16] = "Chambliss was elected from the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Macon, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Macon" ) ), [18] = "-based 8th District, after six-term incumbent ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [20] = " retired. He was elected with 63% of the vote\u2014an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000.", [21] = WtImEndTag( {P} name = "@p" ), [22] = WtNewline("\n"), [23] = WtNewline("\n"), [24] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [25] = "During his four terms in the House, Chambliss served on the ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives Permanent Select Committee on Intelligence" ], title = - ), [27] = " and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security.", [28] = WtImEndTag( {P} name = "@p" ), [29] = WtNewline("\n"), [30] = WtNewline("\n"), [31] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [32] = "Less than a month after the ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "September 11 attacks" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "September 11, 2001, terrorist attacks" ) ), [34] = ", the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.", [35] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001") ), [36] = WtImEndTag( {P} name = "@p" ), [37] = WtNewline("\n"), [38] = WtNewline("\n"), [39] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [40] = "Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Valdosta, Georgia" ], title = - ), [42] = ", where he said that homeland security would be improved by turning the sheriff loose to \"arrest every ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Muslim" ], title = - ), [44] = " that crosses the state line.\" Chambliss apologized for the remarks.", [45] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Melanie Eversley, \"Chambliss apologizes for remark on Muslims\", ''[[Atlanta Journal-Constitution]]'', November 21, 2001.") ), [46] = WtImEndTag( {P} name = "@p" ), [47] = WtNewline("\n"), [48] = WtNewline("\n"), [49] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [50] = "In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Abramoff" ], title = - ), [52] = ".", [53] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006") ), [54] = WtImEndTag( {P} name = "@p" ), [55] = WtNewline("\n"), [56] = WtNewline("\n") ] ), [22] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Senate, 2003-present" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Committee assignments" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Agriculture, Nutrition, and Forestry" ) ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = " (Ranking Member)", [4] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = "As Ranking Member of the full committee, Sen. Chambliss may serve as an ", [1] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [2] = "ex officio", [3] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [4] = " member of all subcommittees." ) ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Armed Services" ) ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = WtUnorderedList( {P} rtd = RTD[ "\n" "" ] [0] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Airland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Airland" ) ) ), [1] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Personnel" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Personnel" ) ) ), [2] = WtListItem( {P} rtd = RTD[ "**" "\n" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Armed Services Subcommittee on Readiness and Management Support" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Subcommittee on Readiness and Management Support" ) ) ) ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Committee on Rules and Administration" ) ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Select Committee on Intelligence" ) ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ) ), [4] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Commission on Security and Cooperation in Europe" ], title = - ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ) ) ], [3] = WtNewline("\n"), [4] = WtNewline("\n"), [5] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [6] = "Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee (", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition, and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture" ) ), [8] = ") after serving in the Senate for just two years.", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:All articles with unsourced statements" ], title = - ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Articles with unsourced statements from December 2008" ], title = - ), [11] = WtXmlStartTag( {P} name = "sup" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "Template-Fact" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "This claim needs references to reliable sources", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[], body = - ), [2] = " from December 2008" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ] ), [12] = WtXmlCharRef( {P} codePoint = 91 {P} rtd = RTD[ "[" ] ), [13] = WtXmlStartTag( {P} name = "i" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikipedia:Citation needed" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "citation needed" ) ), [15] = WtXmlEndTag( {P} name = "i" {P} rtd = RTD[ "" ] ), [16] = WtXmlCharRef( {P} codePoint = 93 {P} rtd = RTD[ "]" ] ), [17] = WtXmlEndTag( {P} name = "sup" {P} rtd = RTD[ "" ] ), [18] = WtImEndTag( {P} name = "@p" ), [19] = WtNewline("\n"), [20] = WtNewline("\n"), [21] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [22] = "In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as \"staggering.\" ", [23] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008") ), [24] = WtImEndTag( {P} name = "@p" ), [25] = WtNewline("\n"), [26] = WtNewline("\n") ] ), [3] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Caucus memberships" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Fire Services Caucus" ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Congressional Sportsmen Foundation" ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Juvenile Diabetes Caucus" ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "National Guard Caucus" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Rural Health Caucus" ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Senate Caucus on Military Depots, Arsenals and Ammunition Plants" ), [6] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = "Co-Chair, Senate Reserve Caucus" ), [7] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = "Steering Committee" ) ], [3] = WtNewline("\n"), [4] = WtNewline("\n") ] ), [4] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Elections" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2002 race" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ] ), [4] = "Main article: ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2002" ) ), [6] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [7] = WtNewline("\n"), [8] = "Chambliss ran for the Senate in 2002, facing freshman ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [10] = " incumbent ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [12] = ". Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 1st congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1st district" ) ), [14] = ", represented by fellow Republican ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [16] = ".", [17] = WtImEndTag( {P} name = "@p" ), [18] = WtNewline("\n"), [19] = WtNewline("\n"), [20] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [21] = "Chambliss focused on the issue of ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "national defense" ], title = - ), [23] = " and ", [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "homeland security" ], title = - ), [25] = " during his campaign, and released an ad that included ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Osama bin Laden" ], title = - ), [27] = " and ", [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saddam Hussein" ], title = - ), [29] = ", highlighting Cleland's record on the issues of war and terrorism.", [30] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006") ), [31] = WtImEndTag( {P} name = "@p" ), [32] = WtNewline("\n"), [33] = WtNewline("\n"), [34] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [35] = "Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator ", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [37] = " of ", [38] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [39] = " said of one ad, \"", [40] = WtText( {A} warnings = C[ Warning (none): /nopkg-tree/input.wikitext/ignore_throws_exception.wikitext:147:380 - 381: "[" : This looks like a External Link, however the actual URL is missing. ] {P} content = "[" ), [41] = "I]t's worse than disgraceful, it's reprehensible;\" Senator ", [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Hagel" ], title = - ), [43] = " of ", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nebraska" ], title = - ), [45] = " said the ads were \"beyond offensive to me.\"", [46] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' \u2014 Media Matters, July 30, 2004]") ), [47] = " On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.", [48] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}}") ), [49] = WtNewline("\n"), [50] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "anncoulter.com" ] ) ], body = WtTagExtensionBody("{{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}}") ), [51] = WtImEndTag( {P} name = "@p" ), [52] = WtNewline("\n"), [53] = WtNewline("\n"), [54] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [55] = "Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent.", [56] = WtImEndTag( {P} name = "@p" ), [57] = WtNewline("\n"), [58] = WtNewline("\n") ] ), [3] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "2008 race" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "relarticle mainarticle" ] ) ] ), [4] = "Main article: ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ), [6] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [7] = WtImEndTag( {P} name = "@p" ), [8] = WtNewline("\n"), [9] = WtNewline("\n"), [10] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [11] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ] ), [12] = WtNewline("\n"), [13] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [14] = WtNewline("\n"), [15] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ] ), [16] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikinews-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ), [17] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [18] = WtNewline("\n"), [19] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [20] = " Wikinews has related news:", [21] = WtNewline("\n"), [22] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":wikinews:Republican Senator from Georgia wins run-off election" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican Senator from Georgia wins run-off election" ) ), [24] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [25] = " ", [26] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [27] = WtNewline("\n"), [28] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [29] = WtNewline("\n"), [30] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [31] = WtNewline("\n"), [32] = "On November 4, 2008, Chambliss received 49.8% of the vote, while ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Democratic Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [34] = " challenger ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ), [36] = " received 46.8% and ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Libertarian Party" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ), [38] = " ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Allen Buckley" ], title = - ), [40] = " received 3.4% of the vote.", [41] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "secretaryofstate" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \" Georgia Election Results\"\n | publisher = ''[[Secretary of State of Georgia]]''\n | date = 2008-11-04\n | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm\n | accessdate = 2008-11-12 }}") ), [42] = WtImEndTag( {P} name = "@p" ), [43] = WtNewline("\n"), [44] = WtNewline("\n"), [45] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [46] = "Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008.", [47] = WtImEndTag( {P} name = "@p" ), [48] = WtNewline("\n"), [49] = WtNewline("\n"), [50] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [51] = "Chambliss defeated Martin 57.5% to 42.5% in the runoff election.", [52] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "runoffreturns" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = \"U.S. Senate Election Results\"\n | publisher = ''Action News, Atlanta''\n | date = 2008-12-02\n | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/\n | accessdate = 2008-12-02 }}") ), [53] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = WtTagExtensionBody("{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}}") ), [54] = WtImEndTag( {P} name = "@p" ), [55] = WtNewline("\n"), [56] = WtNewline("\n") ] ), [4] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Imperial Sugar" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = "During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Imperial Sugar" ], title = - ), [5] = " that claims that Imperial \"wrongfully\" failed to remove hazards that caused the disaster of a ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Savannah, Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Savannah" ) ), [7] = "-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of \"harassing\"", [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}}") ), [9] = " a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: \"I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families.\" Savannah attorney Mark Tate, \"an active backer of Democratic candidates,\" insisted that \"there is nothing political\" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed \"legislative immunity.\"", [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}") ), [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}") ), [12] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }}") ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n") ] ) ] ), [5] = WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = "Political positions" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Voting Record" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = "Chambliss's voting record is typically that of voting in line with conservative issues.", [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}") ), [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}}") ), [6] = " He is the primary sponsor in the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [8] = " of the tax-reform proposal ", [9] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "FairTax" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The Fair Tax Act" ) ), [11] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [12] = " (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced.", [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = "Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation\u2014such as the ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Food, Conservation, and Energy Act of 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2007 Farm Bill" ) ), [19] = ", the bi-partisan immigration reform (led by ", [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [21] = " and ", [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ted Kennedy" ], title = - ), [23] = ") in 2007", [24] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = WtTagExtensionBody("{{cite news\n | title = Scrambling the red states\n | publisher = ''The Economist''\n | date = 2008-10-23\n | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320\n | accessdate = 2008-10-23 }}") ), [25] = " and the ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Emergency Economic Stabilization Act of 2008" ], title = - ), [27] = ",", [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "economist" ] ) ], body = - ), [29] = ". He is also the Republican leader of the ", [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gang of 10" ], title = - ), [31] = ", a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States.", [32] = WtImEndTag( {P} name = "@p" ), [33] = WtNewline("\n"), [34] = WtNewline("\n") ] ), [3] = WtSection( {P} level = 4 heading = WtHeading( {P} rtd = RTD[ "====" "====" ] [0] = "Interest groups ratings" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = "On abortion issues, the ratings given Chambliss as of 2007 by ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nrlc" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "National Right to Life Committee" ) ), [5] = " and ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NARAL" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NARAL Pro-Choice America" ) ), [7] = " identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.", [8] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}") ), [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}}") ), [10] = WtImEndTag( {P} name = "@p" ), [11] = WtNewline("\n"), [12] = WtNewline("\n"), [13] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [14] = "On ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Second Amendment to the United States Constitution" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2nd Amendment" ) ), [16] = " issues, in 2008, the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Rifle Association" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NRA" ) ), [18] = " gave Chambliss an \"A+\" rating and the NRA also endorsed him.", [19] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}") ), [20] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}}") ), [21] = WtImEndTag( {P} name = "@p" ), [22] = WtNewline("\n"), [23] = WtNewline("\n"), [24] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [25] = "On agricultural issues, the ", [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Farm Bureau" ], title = - ), [27] = " gave Chambliss its \"Friend of the Farm Bureau\" award throughout his service in the U.S. Senate.", [28] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}}") ), [29] = WtImEndTag( {P} name = "@p" ), [30] = WtNewline("\n"), [31] = WtNewline("\n"), [32] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [33] = "On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,", [34] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}}") ), [35] = " and the group ", [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Americans for Tax Reform" ], title = - ), [37] = " gave him a 100% rating.", [38] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}}") ), [39] = WtImEndTag( {P} name = "@p" ), [40] = WtNewline("\n"), [41] = WtNewline("\n"), [42] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [43] = "On civil liberties and civil rights issues, in 2007, the ", [44] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "American Civil Liberties Union" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Civil Liberties Union (ACLU)" ) ), [45] = " gave him a 17% rating,", [46] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}}") ), [47] = " and the ", [48] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NAACP" ], title = - ), [49] = " gave him a 27% rating.", [50] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}}") ), [51] = WtImEndTag( {P} name = "@p" ), [52] = WtNewline("\n"), [53] = WtNewline("\n"), [54] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [55] = "On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a \"real reformer\",", [56] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}}") ), [57] = " while the ", [58] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "National Education Association" ], title = - ), [59] = " gave him an \"F\" in 2007.", [60] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}}") ), [61] = WtImEndTag( {P} name = "@p" ), [62] = WtNewline("\n"), [63] = WtNewline("\n"), [64] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [65] = "On organized labor issues, in 2007 the ", [66] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "AFL-CIO" ], title = - ), [67] = " gave Chambliss a 11% rating,", [68] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}}") ), [69] = " and the ", [70] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "International Foodservice Distributors Association" ], title = - ), [71] = " gave him an 85% rating.", [72] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}}") ), [73] = WtImEndTag( {P} name = "@p" ), [74] = WtNewline("\n"), [75] = WtNewline("\n"), [76] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [77] = "On environmental issues, in 2003 the ", [78] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "LCV" ], title = - ), [79] = " gave Chambliss a 0% rating.", [80] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}}") ), [81] = WtImEndTag( {P} name = "@p" ), [82] = WtNewline("\n"), [83] = WtNewline("\n") ] ) ] ) ] ), [23] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "Electoral history" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "rellink", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody(" ") ), [2] = "boilerplate seealso" ] ) ] ), [4] = "See also: ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":United States Senate election in Georgia, 2008" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate election in Georgia, 2008" ) ), [6] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [7] = WtImEndTag( {P} name = "@p" ), [8] = WtNewline("\n"), [9] = WtNewline("\n"), [10] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ " |+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [3] = ": Results 1994\u20132000", [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = WtTagExtensionBody("{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }}") ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Year", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Democrat", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Pct", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [6] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [7] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Republican", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Pct", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [10] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1994" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1994" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Craig Mathis", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "53,408", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "37%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Saxby Chambliss", [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "89,591", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "63%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1996" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1996" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Jim Wiggins", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "84,506", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "47%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Saxby Chambliss", [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "93,619", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "53%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ) ] ), [13] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 1998" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "1998" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Ronald L. Cain", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "53,079", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "38%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Saxby Chambliss", [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "87,993", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "62%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ) ] ), [14] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. House election, 2000" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2000" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Marshall (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Marshall" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "79,051", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "41%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Saxby Chambliss", [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "113,380", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "59%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ) ] ) ] ), [11] = WtNewline("\n"), [12] = WtNewline("\n"), [13] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em ; font-size:95%" ] ) ], body = WtBody[ [0] = WtTableCaption( {P} rtd = RTD[ " |+" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia Senator (Class II)" ) ), [3] = ": 2002 results", [4] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "clerkresults" ] ) ], body = - ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Year", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Democrat", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Pct", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [6] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [7] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Republican", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Pct", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [10] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [11] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "3rd Party", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [12] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Party", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [13] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [14] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Pct", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [15] = WtTableHeader( {P} rtd = RTD[ " !" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [16] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "U.S. Senate election, 2002" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "2002" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "932,422", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "46%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [6] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;" ] ) ] ), [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = "Saxby Chambliss", [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [6] = WtImEndTag( {P} name = "@p" ), [7] = WtNewline("\n") ] ), [7] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "1,071,352", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [8] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "53%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [9] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ), [10] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Claude \"Sandy\" Thomas", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [11] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Libertarian Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Libertarian" ) ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [12] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "27,830", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [13] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#ffff66" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "right" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "1%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [14] = WtTableCell( {P} rtd = RTD[ " |" "" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtNewline("\n") ] ) ] ) ] ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "border" ], value = WtValue[ [0] = "1" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellpadding" ], value = WtValue[ [0] = "4" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [3] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" ] ) ], body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "6" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "2008 Georgia U.S. Senator general election runoff", [2] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "Georgia Election Results" ] ) ], body = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#E9E9E9" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Party", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [1] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 17em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Candidate", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [2] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Votes", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 3.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "\u00B1%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#FF3333") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Saxby Chambliss (", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "incumbent" ], title = - ), [3] = ")", [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 1,226,528", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 57.5%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n") ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "vcard" ] ) ], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color: ", [1] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("#3333FF") ), [2] = "; width: 5px;" ] ) ], body = WtBody[ [0] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "org" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width: 130px" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "fn" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Martin (Georgia politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jim Martin" ) ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 907,916", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [4] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 42.5%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [5] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n") ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = "Majority", [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 318,612", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 14.9%", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n") ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background-color:#F6F6F6" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Voter turnout" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Turnout" ) ), [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " 2,134,444", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n") ] ), [3] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: right; margin-right: 0.5em" ] ) ], body = WtBody[ [0] = " ", [1] = WtNewline("\n") ] ) ] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [17] = WtNewline("\n"), [18] = WtNewline("\n") ] ), [24] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "External links" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ] ), [4] = WtNewline("\n"), [5] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [6] = WtNewline("\n"), [7] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ] ), [8] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Commons-logo.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ), [9] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [10] = WtNewline("\n"), [11] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [12] = " Wikimedia Commons has media related to: ", [13] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":commons:Category:Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ), [15] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [16] = " ", [17] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [18] = WtNewline("\n"), [19] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [20] = WtNewline("\n"), [21] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [22] = WtImEndTag( {P} name = "@p" ), [23] = WtNewline("\n"), [24] = WtNewline("\n"), [25] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.saxby.org" {P} protocol = "http" {P} rtd = RTD[ "http://www.saxby.org" ] ), title = WtLinkTitle[ [0] = "Chambliss for US Senate" ] ), [1] = ", ", [2] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [3] = "official campaign site", [4] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.youtube.com/saxbychambliss08" {P} protocol = "http" {P} rtd = RTD[ "http://www.youtube.com/saxbychambliss08" ] ), title = WtLinkTitle[ [0] = "Chambliss For Senate YouTube Channel" ] ), [1] = ", official YouTube Channel" ), [2] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.facebook.com/enjoythego" {P} protocol = "http" {P} rtd = RTD[ "http://www.facebook.com/enjoythego" ] ), title = WtLinkTitle[ [0] = "Saxby Chambliss Facebook Page" ] ), [1] = ", Facebook Page" ) ], [26] = WtNewline("\n"), [27] = WtNewline("\n"), [28] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [29] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "metadata mbox-small plainlinks" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border:1px solid #aaa; background-color:#f9f9f9; " ] ) ] ), [30] = WtNewline("\n"), [31] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [32] = WtNewline("\n"), [33] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-image" ] ) ] ), [34] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = 40 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 40 target = WtPageName[ [0] = "Image:Wikiquote-logo-en.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = 40 {P} rtd = RTD[ "|40x40px" ] {P} width = 40 ), [1] = WtLinkOptionLinkTarget( {P} rtd = RTD[ "|link=" "" ] {P} targetType = NO_LINK target = - ), [2] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] [0] = "\n " ) ] ), [35] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [36] = WtNewline("\n"), [37] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "mbox-text" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [38] = " ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wikiquote" ], title = - ), [40] = " has a collection of quotations related to: ", [41] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [42] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = ":q:Special:Search/Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ), [43] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [44] = " ", [45] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [46] = WtNewline("\n"), [47] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [48] = WtNewline("\n"), [49] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [50] = WtImEndTag( {P} name = "@p" ), [51] = WtNewline("\n"), [52] = WtNewline("\n"), [53] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//chambliss.senate.gov/" {P} protocol = "http" {P} rtd = RTD[ "http://chambliss.senate.gov/" ] ), title = WtLinkTitle[ [0] = "United States Senator Saxby Chambliss" ] ), [1] = ", ", [2] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [3] = "official U.S. Senate site", [4] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ) ) ], [54] = WtNewline("\n"), [55] = WtNewline("\n"), [56] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" {P} protocol = "http" {P} rtd = RTD[ "http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = " at the ", [3] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Biographical Directory of the United States Congress" ], title = - ), [5] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ) ), [1] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//projects.washingtonpost.com/congress/members/c000286" {P} protocol = "http" {P} rtd = RTD[ "http://projects.washingtonpost.com/congress/members/c000286" ] ), title = WtLinkTitle[ [0] = "Voting record" ] ), [2] = " maintained by ", [3] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "The Washington Post" ], title = - ), [5] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ) ), [2] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/bio.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/bio.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "Biography" ] ), [2] = ", ", [3] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/voting_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/voting_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "voting record" ] ), [4] = ", and ", [5] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" {P} protocol = "http" {P} rtd = RTD[ "http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909" ] ), title = WtLinkTitle[ [0] = "interest group ratings" ] ), [6] = " at ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Project Vote Smart" ], title = - ) ), [3] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.ontheissues.org/Senate/Saxby_Chambliss.htm" {P} protocol = "http" {P} rtd = RTD[ "http://www.ontheissues.org/Senate/Saxby_Chambliss.htm" ] ), title = WtLinkTitle[ [0] = "Issue positions and quotes" ] ), [2] = " at On The Issues" ), [4] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.opensecrets.org/politicians/summary.php?CID=N00002685" {P} protocol = "http" {P} rtd = RTD[ "http://www.opensecrets.org/politicians/summary.php?CID=N00002685" ] ), title = WtLinkTitle[ [0] = "Financial information" ] ), [2] = " at ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Center for Responsive Politics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OpenSecrets.org" ) ) ), [5] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " ", [1] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" {P} protocol = "http" {P} rtd = RTD[ "http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118" ] ), title = WtLinkTitle[ [0] = "Campaign finance reports and data" ] ), [2] = " at the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Federal Election Commission" ], title = - ) ), [6] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//www.sourcewatch.org/index.php?title=Saxby_Chambliss" {P} protocol = "http" {P} rtd = RTD[ "http://www.sourcewatch.org/index.php?title=Saxby_Chambliss" ] ), title = WtLinkTitle[ [0] = "SourceWatch Congresspedia \u2014 Saxby Chambliss" ] ), [1] = " profile" ) ], [57] = WtNewline("\n"), [58] = WtNewline("\n"), [59] = WtTable( {P} rtd = RTD[ "{|" "\n" " |}" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "wikitable succession-box" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "margin:0.5em auto; font-size:95%;clear:both;" ] ) ], body = WtBody[ [0] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States House of Representatives" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [1] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "J. Roy Rowland" ], title = - ), [7] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Member", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "the", [7] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S.", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "House", [3] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [4] = "of", [5] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [6] = "Representatives" ) ), [9] = " ", [10] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [11] = "from ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia's 8th congressional district" ], title = - ), [13] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [14] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [15] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [16] = "1995 \u2013 2003 ", [17] = WtImEndTag( {P} name = "@p" ), [18] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Succeeded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mac Collins" ], title = - ), [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "sucessessordistrict" ] ) ], body = - ), [8] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [9] = WtImEndTag( {P} name = "@p" ), [10] = WtNewline("\n") ] ) ] ), [2] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [3] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #cccccc" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [4] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ) ], body = WtBody[] ), [5] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = - ), [7] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia " ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = " United States Senator (Class 2) from Georgia" ) ), [3] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [4] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [5] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [6] = "2003 ", [7] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [8] = " present ", [9] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [10] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [11] = "Served alongside: ", [12] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = - ), [14] = ", ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [16] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [17] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [18] = WtImEndTag( {P} name = "@p" ), [19] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Incumbent", [3] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ) ] ), [6] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [7] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccccff;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Political offices", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ] ) ] ), [8] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [7] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [8] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [9] = "R-", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ), [11] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [12] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [18] = WtNewline("\n"), [19] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [20] = WtImEndTag( {P} name = "@p" ), [21] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [2] = "Chairman of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senate Agriculture Committee" ) ), [4] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [7] = "2005 \u2013 2007 ", [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Succeeded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [7] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [8] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [9] = "D-", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [11] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [12] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [18] = WtNewline("\n"), [19] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [20] = WtImEndTag( {P} name = "@p" ), [21] = WtNewline("\n") ] ) ] ), [9] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ), [10] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[ [0] = WtTableHeader( {P} rtd = RTD[ " !" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background: #ccffcc;" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States order of precedence" ], title = - ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ] ), [11] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:center;" ] ) ], body = WtBody[ [0] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Preceded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = - ), [7] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [8] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [9] = "D-", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Jersey" ], title = - ), [11] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [12] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [18] = WtNewline("\n"), [19] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [20] = WtImEndTag( {P} name = "@p" ), [21] = WtNewline("\n") ] ), [1] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "40%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align: center;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators by seniority" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators by seniority" ) ), [3] = WtTicks( {P} rtd = RTD[ "''''''''" ] {P} tickCount = 8 ), [4] = WtTagExtension( {P} name = "nowiki" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("") ), [5] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [6] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [7] = "61st ", [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ] ), [2] = WtTableCell( {P} rtd = RTD[ " |" " |" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "width" ], value = WtValue[ [0] = "30%" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "align" ], value = WtValue[ [0] = "center" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "1" ] ) ], body = WtBody[ [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = " Succeeded", [2] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [3] = "by", [4] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight: bold" ] ) ] ), [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = - ), [7] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [8] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [9] = "R-", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Carolina" ], title = - ), [11] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [12] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n") ] ) ] ), [12] = WtTableRow( {P} implicit = false {P} rtd = RTD[ " |-" "\n" "" ] xmlAttributes = WtXmlAttributes[], body = WtBody[] ) ] ), [60] = WtNewline("\n"), [61] = WtNewline("\n"), [62] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [63] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ] ), [64] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [65] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ] ), [66] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ] ), [67] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [68] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "3" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ] ), [69] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ] ), [70] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [71] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ] ), [72] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ] ), [1] = "v", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [73] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [74] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [75] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [76] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [77] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [78] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [79] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [80] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenGA" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ] ), [1] = "d", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [81] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [82] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [83] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [84] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [85] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [86] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [87] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [88] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenGA&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ] ), [1] = "e", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ] ), [89] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [90] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [91] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [92] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ] ), [93] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senators from Georgia" ) ), [94] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [95] = WtXmlEndTag( {P} name = "th" {P} rtd = RTD[ "" ] ), [96] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [97] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [98] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [99] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [100] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [101] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [102] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ] ), [103] = "Class 2", [104] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [105] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [106] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [107] = WtNewline("\n"), [108] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Few" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Few" ) ), [109] = " \u2022 ", [110] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [111] = " \u2022 ", [112] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Walton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walton" ) ), [113] = " \u2022 ", [114] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Josiah Tattnall (Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tattnall" ) ), [115] = " \u2022 ", [116] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Abraham Baldwin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baldwin" ) ), [117] = " \u2022 ", [118] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Jones (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jones" ) ), [119] = " \u2022 ", [120] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William H. Crawford" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crawford" ) ), [121] = " \u2022 ", [122] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Bellinger Bulloch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bulloch" ) ), [123] = " \u2022 ", [124] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Wyatt Bibb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bibb" ) ), [125] = " \u2022 ", [126] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [127] = " \u2022 ", [128] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [129] = " \u2022 ", [130] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Freeman Walker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walker" ) ), [131] = " \u2022 ", [132] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Nicholas Ware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ware" ) ), [133] = " \u2022 ", [134] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Cobb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cobb" ) ), [135] = " \u2022 ", [136] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oliver H. Prince" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Prince" ) ), [137] = " \u2022 ", [138] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "George Troup" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Troup" ) ), [139] = " \u2022 ", [140] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Pendleton King" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "King" ) ), [141] = " \u2022 ", [142] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wilson Lumpkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lumpkin" ) ), [143] = " \u2022 ", [144] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [145] = " \u2022 ", [146] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert M. Charlton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Charlton" ) ), [147] = " \u2022 ", [148] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Robert Toombs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toombs" ) ), [149] = " \u2022 ", [150] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Homer V. M. Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "H. Miller" ) ), [151] = " \u2022 ", [152] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas M. Norwood" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Norwood" ) ), [153] = " \u2022 ", [154] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Benjamin Harvey Hill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "B. Hill" ) ), [155] = " \u2022 ", [156] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Middleton P. Barrow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrow" ) ), [157] = " \u2022 ", [158] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred H. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "A. Colquitt" ) ), [159] = " \u2022 ", [160] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Walsh (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Walsh" ) ), [161] = " \u2022 ", [162] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Augustus Octavius Bacon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bacon" ) ), [163] = " \u2022 ", [164] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Stanley West" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West" ) ), [165] = " \u2022 ", [166] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas W. Hardwick" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hardwick" ) ), [167] = " \u2022 ", [168] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William J. Harris" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harris" ) ), [169] = " \u2022 ", [170] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John S. Cohen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cohen" ) ), [171] = " \u2022 ", [172] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Russell, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Russell" ) ), [173] = " \u2022 ", [174] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David H. Gambrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gambrell" ) ), [175] = " \u2022 ", [176] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sam Nunn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nunn" ) ), [177] = " \u2022 ", [178] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Cleland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cleland" ) ), [179] = " \u2022 ", [180] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ), [181] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [182] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [183] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:0%;padding:0px 0px 0px 2px;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "rowspan" ], value = WtValue[ [0] = "3" ] ) ] ), [184] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 80 target = WtPageName[ [0] = "Image:Senate Seal.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|80px" ] {P} width = 80 ), [1] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Senate" ) ] ), [185] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [186] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [187] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ] ), [188] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [189] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [190] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [191] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [192] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;" ] ) ] ), [193] = "Class 3", [194] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [195] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ] ), [196] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [197] = WtNewline("\n"), [198] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Gunn (senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gunn" ) ), [199] = " \u2022 ", [200] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "James Jackson (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Jackson" ) ), [201] = " \u2022 ", [202] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Milledge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Milledge" ) ), [203] = " \u2022 ", [204] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charles Tait" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tait" ) ), [205] = " \u2022 ", [206] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Elliott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Elliott" ) ), [207] = " \u2022 ", [208] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John M. Berrien" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Berrien" ) ), [209] = " \u2022 ", [210] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Forsyth (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Forsyth" ) ), [211] = " \u2022 ", [212] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Cuthbert" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cuthbert" ) ), [213] = " \u2022 ", [214] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter T. Colquitt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "W. Colquitt" ) ), [215] = " \u2022 ", [216] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herschel Vespasian Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johnson" ) ), [217] = " \u2022 ", [218] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William Crosby Dawson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Dawson" ) ), [219] = " \u2022 ", [220] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alfred Iverson, Sr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iverson" ) ), [221] = " \u2022 ", [222] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joshua Hill (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "J. Hill" ) ), [223] = " \u2022 ", [224] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [225] = " \u2022 ", [226] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph E. Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Brown" ) ), [227] = " \u2022 ", [228] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Brown Gordon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gordon" ) ), [229] = " \u2022 ", [230] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alexander S. Clay" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Clay" ) ), [231] = " \u2022 ", [232] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joseph M. Terrell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Terrell" ) ), [233] = " \u2022 ", [234] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "M. Hoke Smith" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Smith" ) ), [235] = " \u2022 ", [236] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thomas E. Watson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Watson" ) ), [237] = " \u2022 ", [238] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rebecca Latimer Felton" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Felton" ) ), [239] = " \u2022 ", [240] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Walter F. George" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "George" ) ), [241] = " \u2022 ", [242] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herman Talmadge" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Talmadge" ) ), [243] = " \u2022 ", [244] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mack Mattingly" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mattingly" ) ), [245] = " \u2022 ", [246] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyche Fowler" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Fowler" ) ), [247] = " \u2022 ", [248] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Coverdell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coverdell" ) ), [249] = " \u2022 ", [250] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Zell Miller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Z. Miller" ) ), [251] = " \u2022 ", [252] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ), [253] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [254] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [255] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [256] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [257] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [258] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [259] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [260] = WtNewline("\n"), [261] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ] ), [262] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [263] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ] ), [264] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ] ), [265] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [266] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ] ), [267] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ] ), [268] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [269] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ] ), [270] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ] ), [1] = "v", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [271] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [272] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [273] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [274] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [275] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [276] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [277] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [278] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:GA-FedRep" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ] ), [1] = "d", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [279] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [280] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [281] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [282] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [283] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [284] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [285] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [286] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:GA-FedRep&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ] ), [1] = "e", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ] ), [287] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [288] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [289] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [290] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ] ), [291] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia's current delegation" ) ), [292] = " to the ", [293] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "112th United States Congress" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "United States Congress" ) ), [294] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [295] = WtXmlEndTag( {P} name = "th" {P} rtd = RTD[ "" ] ), [296] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [297] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [298] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [299] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [300] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [301] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [302] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ] ), [303] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Senators" ) ), [304] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [305] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [306] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [307] = WtNewline("\n"), [308] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ), [309] = " (R), ", [310] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [311] = " (R)", [312] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [313] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [314] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [315] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ] ), [316] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [317] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [318] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [319] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [320] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ] ), [321] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Representatives from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Representatives" ) ), [322] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [323] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-even" ] ) ] ), [324] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [325] = WtNewline("\n"), [326] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Kingston" ], title = - ), [327] = " (R), ", [328] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sanford Bishop" ], title = - ), [329] = " (D), ", [330] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lynn Westmoreland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lynn", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Westmoreland" ) ), [331] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [332] = "(R), ", [333] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hank Johnson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hank", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Johnson" ) ), [334] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [335] = "(D), ", [336] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Lewis (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Lewis" ) ), [337] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [338] = "(D), ", [339] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Price (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Price" ) ), [340] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [341] = "(R), ", [342] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Woodall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rob", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Woodall" ) ), [343] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [344] = "(R), ", [345] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Austin Scott (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Austin", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [346] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [347] = "(R), ", [348] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Graves (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tom", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Graves" ) ), [349] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [350] = "(R), ", [351] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Paul Broun" ], title = - ), [352] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [353] = "(R), ", [354] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Phil Gingrey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Phil", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Gingrey" ) ), [355] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [356] = "(R), ", [357] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrow (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "John", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Barrow" ) ), [358] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [359] = "(D), ", [360] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Scott (Georgia)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "David", [1] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [2] = "Scott" ) ), [361] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [362] = "(D)", [363] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [364] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [365] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [366] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px" ] ) ] ), [367] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [368] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [369] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [370] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [371] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-group" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";vertical-align:top;;" ] ) ] ), [372] = "Other states' delegations", [373] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [374] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;;;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [375] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [376] = WtNewline("\n"), [377] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alabama" ) ), [378] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [379] = "\u2022 ", [380] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alaska" ) ), [381] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [382] = "\u2022 ", [383] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arizona" ) ), [384] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [385] = "\u2022 ", [386] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Arkansas" ) ), [387] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [388] = "\u2022 ", [389] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "California" ) ), [390] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [391] = "\u2022 ", [392] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Colorado" ) ), [393] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [394] = "\u2022 ", [395] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Connecticut" ) ), [396] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [397] = "\u2022 ", [398] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Delaware" ) ), [399] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [400] = "\u2022 ", [401] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Florida" ) ), [402] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [403] = "\u2022 ", [404] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [405] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [406] = "\u2022 ", [407] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hawaii" ) ), [408] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [409] = "\u2022 ", [410] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Idaho" ) ), [411] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [412] = "\u2022 ", [413] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Illinois" ) ), [414] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [415] = "\u2022 ", [416] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indiana" ) ), [417] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [418] = "\u2022 ", [419] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Iowa" ) ), [420] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [421] = "\u2022 ", [422] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kansas" ) ), [423] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [424] = "\u2022 ", [425] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kentucky" ) ), [426] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [427] = "\u2022 ", [428] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Louisiana" ) ), [429] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [430] = "\u2022 ", [431] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maine" ) ), [432] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [433] = "\u2022 ", [434] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Maryland" ) ), [435] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [436] = "\u2022 ", [437] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Massachusetts" ) ), [438] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [439] = "\u2022 ", [440] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Michigan" ) ), [441] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [442] = "\u2022 ", [443] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Minnesota" ) ), [444] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [445] = "\u2022 ", [446] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mississippi" ) ), [447] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [448] = "\u2022 ", [449] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Missouri" ) ), [450] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [451] = "\u2022 ", [452] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Montana" ) ), [453] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [454] = "\u2022 ", [455] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nebraska" ) ), [456] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [457] = "\u2022 ", [458] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Nevada" ) ), [459] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [460] = "\u2022 ", [461] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Hampshire" ) ), [462] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [463] = "\u2022 ", [464] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Jersey" ) ), [465] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [466] = "\u2022 ", [467] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New Mexico" ) ), [468] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [469] = "\u2022 ", [470] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "New York" ) ), [471] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [472] = "\u2022 ", [473] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Carolina" ) ), [474] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [475] = "\u2022 ", [476] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "North Dakota" ) ), [477] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [478] = "\u2022 ", [479] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ohio" ) ), [480] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [481] = "\u2022 ", [482] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oklahoma" ) ), [483] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [484] = "\u2022 ", [485] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Oregon" ) ), [486] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [487] = "\u2022 ", [488] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pennsylvania" ) ), [489] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [490] = "\u2022 ", [491] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rhode Island" ) ), [492] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [493] = "\u2022 ", [494] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Carolina" ) ), [495] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [496] = "\u2022 ", [497] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "South Dakota" ) ), [498] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [499] = "\u2022 ", [500] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tennessee" ) ), [501] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [502] = "\u2022 ", [503] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Texas" ) ), [504] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [505] = "\u2022 ", [506] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Utah" ) ), [507] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [508] = "\u2022 ", [509] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vermont" ) ), [510] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [511] = "\u2022 ", [512] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Virginia" ) ), [513] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [514] = "\u2022 ", [515] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [516] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [517] = "\u2022 ", [518] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "West Virginia" ) ), [519] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [520] = "\u2022 ", [521] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wisconsin" ) ), [522] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [523] = "\u2022 ", [524] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyoming" ) ), [525] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [526] = "\u2022 ", [527] = WtXmlStartTag( {P} name = "small" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [528] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [529] = "Non", [530] = WtXmlCharRef( {P} codePoint = 8209 {P} rtd = RTD[ "‑" ] ), [531] = "voting:", [532] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [533] = WtXmlEndTag( {P} name = "small" {P} rtd = RTD[ "" ] ), [534] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [535] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of Delegates to the United States House of Representatives from American Samoa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "American Samoa" ) ), [536] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [537] = "\u2022 ", [538] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the District of Columbia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "District of Columbia" ) ), [539] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [540] = "\u2022 ", [541] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Guam's At-large congressional district" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Guam" ) ), [542] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [543] = "\u2022 ", [544] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the Northern Mariana Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Northern Mariana Islands" ) ), [545] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [546] = "\u2022 ", [547] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Resident Commissioner of Puerto Rico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Puerto Rico" ) ), [548] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [549] = "\u2022 ", [550] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional delegations from the United States Virgin Islands" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "U.S. Virgin Islands" ) ), [551] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [552] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [553] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [554] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [555] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [556] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [557] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [558] = WtNewline("\n"), [559] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ] ), [560] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [561] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ] ), [562] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ] ), [563] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [564] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ] ), [565] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ] ), [566] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [567] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ] ), [568] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ] ), [1] = "v", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [569] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [570] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [571] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [572] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [573] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [574] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [575] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [576] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:USSenChairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ] ), [1] = "d", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [577] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [578] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [579] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [580] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [581] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [582] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [583] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [584] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:USSenChairs&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ] ), [1] = "e", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ] ), [585] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [586] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [587] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [588] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ] ), [589] = "Chairpersons and ", [590] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ranking member" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ranking Members" ) ), [591] = " of ", [592] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate" ], title = - ), [593] = " ", [594] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States congressional committee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "committees" ) ), [595] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [596] = WtXmlEndTag( {P} name = "th" {P} rtd = RTD[ "" ] ), [597] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [598] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [599] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [600] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [601] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [602] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [603] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [604] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0em 0.25em" ] ) ] ), [605] = WtNewline("\n"), [606] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ] ), [607] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [608] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ] ), [609] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ] ), [610] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [611] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [612] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ] ), [613] = WtNewline("\n"), [614] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:100%;" ] ) ] ), [615] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [616] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-weight:bold;" ] ) ] ), [617] = "Chairpersons (Democratic)", [618] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [619] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "1" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;font-weight:bold;" ] ) ] ), [620] = "Ranking Members (Republican)", [621] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [622] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [623] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [624] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [625] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [626] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [627] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ] ), [628] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:50%;" ] ) ] ), [629] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [630] = WtNewline("\n"), [631] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [632] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = - ), [633] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [634] = " (", [635] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [636] = ") ", [637] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [638] = " ", [639] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [640] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ), [641] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [642] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [643] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [644] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = - ), [645] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [646] = " (", [647] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [648] = ") ", [649] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [650] = " ", [651] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [652] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ), [653] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [654] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [655] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [656] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = - ), [657] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [658] = " (", [659] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michigan" ], title = - ), [660] = ") ", [661] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [662] = " ", [663] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [664] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ), [665] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [666] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [667] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [668] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tim Johnson" ) ), [669] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [670] = " (", [671] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "South Dakota" ], title = - ), [672] = ") ", [673] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [674] = " ", [675] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [676] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ), [677] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [678] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [679] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [680] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = - ), [681] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [682] = " (", [683] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Dakota" ], title = - ), [684] = ") ", [685] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [686] = " ", [687] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [688] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ), [689] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [690] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [691] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [692] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = - ), [693] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [694] = " (", [695] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Virginia" ], title = - ), [696] = ") ", [697] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [698] = " ", [699] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [700] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ), [701] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [702] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [703] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [704] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = - ), [705] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [706] = " (", [707] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New Mexico" ], title = - ), [708] = ") ", [709] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [710] = " ", [711] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [712] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ), [713] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [714] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [715] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [716] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ), [717] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [718] = " (", [719] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [720] = ") ", [721] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [722] = " ", [723] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [724] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ), [725] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [726] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [727] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [728] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = - ), [729] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [730] = " (", [731] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Montana" ], title = - ), [732] = ") ", [733] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [734] = " ", [735] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [736] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ), [737] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [738] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [739] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [740] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = - ), [741] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [742] = " (", [743] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Massachusetts" ], title = - ), [744] = ") ", [745] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [746] = " ", [747] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [748] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ), [749] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [750] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [751] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [752] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = - ), [753] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [754] = " (", [755] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [756] = ") ", [757] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [758] = " ", [759] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [760] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ), [761] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [762] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [763] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [764] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = - ), [765] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [766] = " (", [767] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Connecticut" ], title = - ), [768] = ") ", [769] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [770] = " ", [771] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [772] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ), [773] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [774] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [775] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [776] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = - ), [777] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [778] = " (", [779] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hawaii" ], title = - ), [780] = ") ", [781] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [782] = " ", [783] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [784] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ), [785] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [786] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [787] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [788] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = - ), [789] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [790] = " (", [791] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Vermont" ], title = - ), [792] = ") ", [793] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [794] = " ", [795] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [796] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ), [797] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [798] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [799] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [800] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = - ), [801] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [802] = " (", [803] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "New York" ], title = - ), [804] = ") ", [805] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [806] = " ", [807] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [808] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ), [809] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [810] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [811] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [812] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = - ), [813] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [814] = " (", [815] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louisiana" ], title = - ), [816] = ") ", [817] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [818] = " ", [819] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [820] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ), [821] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [822] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [823] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [824] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = - ), [825] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [826] = " (", [827] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Washington (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Washington" ) ), [828] = ") ", [829] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [830] = " ", [831] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [832] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ), [833] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [834] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [835] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [836] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = - ), [837] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [838] = " (", [839] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [840] = ") ", [841] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [842] = " ", [843] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [844] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [845] = " (Select)", [846] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [847] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [848] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [849] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = - ), [850] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [851] = " (", [852] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "California" ], title = - ), [853] = ") ", [854] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [855] = " ", [856] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [857] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [858] = " (Select)", [859] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [860] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [861] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [862] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = - ), [863] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [864] = " (", [865] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wisconsin" ], title = - ), [866] = ") ", [867] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [868] = " ", [869] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [870] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [871] = " (Special)", [872] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [873] = WtNewline("\n"), [874] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [875] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [876] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:50%;" ] ) ] ), [877] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [878] = WtNewline("\n"), [879] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [880] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = - ), [881] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [882] = " (", [883] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kansas" ], title = - ), [884] = ") ", [885] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [886] = " ", [887] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [888] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Agriculture, Nutrition and Forestry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Agriculture, Nutrition and Forestry" ) ), [889] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [890] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [891] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [892] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = - ), [893] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [894] = " (", [895] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mississippi" ], title = - ), [896] = ") ", [897] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [898] = " ", [899] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [900] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Appropriations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Appropriations" ) ), [901] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [902] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [903] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [904] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = - ), [905] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [906] = " (", [907] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arizona" ], title = - ), [908] = ") ", [909] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [910] = " ", [911] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [912] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Armed Services" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Armed Services" ) ), [913] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [914] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [915] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [916] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = - ), [917] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [918] = " (", [919] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [920] = ") ", [921] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [922] = " ", [923] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [924] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Banking, Housing, and Urban Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Banking, Housing, and Urban Affairs" ) ), [925] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [926] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [927] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [928] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = - ), [929] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [930] = " (", [931] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alabama" ], title = - ), [932] = ") ", [933] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [934] = " ", [935] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [936] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Budget" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Budget" ) ), [937] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [938] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [939] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [940] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = - ), [941] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [942] = " (", [943] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Texas" ], title = - ), [944] = ") ", [945] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [946] = " ", [947] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [948] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Commerce, Science and Transportation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Commerce, Science and Transportation" ) ), [949] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [950] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [951] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [952] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = - ), [953] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [954] = " (", [955] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Alaska" ], title = - ), [956] = ") ", [957] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [958] = " ", [959] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [960] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Energy and Natural Resources" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Energy and Natural Resources" ) ), [961] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [962] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [963] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [964] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = - ), [965] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [966] = " (", [967] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Oklahoma" ], title = - ), [968] = ") ", [969] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [970] = " ", [971] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [972] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Environment and Public Works" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Environment and Public Works" ) ), [973] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [974] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [975] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [976] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = - ), [977] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [978] = " (", [979] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Utah" ], title = - ), [980] = ") ", [981] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [982] = " ", [983] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [984] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Finance" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Finance" ) ), [985] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [986] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [987] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [988] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = - ), [989] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [990] = " (", [991] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Indiana" ], title = - ), [992] = ") ", [993] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [994] = " ", [995] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [996] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Foreign Relations" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Foreign Relations" ) ), [997] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [998] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [999] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1000] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = - ), [1001] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1002] = " (", [1003] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [1004] = ") ", [1005] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1006] = " ", [1007] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1008] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Health, Education, Labor, and Pensions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Health, Education, Labor, and Pensions" ) ), [1009] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1010] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1011] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1012] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = - ), [1013] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1014] = " (", [1015] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [1016] = ") ", [1017] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1018] = " ", [1019] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1020] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Homeland Security and Governmental Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Homeland Security and Governmental Affairs" ) ), [1021] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1022] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1023] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1024] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = - ), [1025] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1026] = " (", [1027] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wyoming" ], title = - ), [1028] = ") ", [1029] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1030] = " ", [1031] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1032] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Indian Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Indian Affairs" ) ), [1033] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1034] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1035] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1036] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = - ), [1037] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1038] = " (", [1039] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Iowa" ], title = - ), [1040] = ") ", [1041] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1042] = " ", [1043] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1044] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on the Judiciary" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Judiciary" ) ), [1045] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1046] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1047] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1048] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = - ), [1049] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1050] = " (", [1051] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [1052] = ") ", [1053] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1054] = " ", [1055] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1056] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Rules and Administration" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rules and Administration" ) ), [1057] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1058] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1059] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1060] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = - ), [1061] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1062] = " (", [1063] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maine" ], title = - ), [1064] = ") ", [1065] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1066] = " ", [1067] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1068] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Small Business and Entrepreneurship" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Small Business and Entrepreneurship" ) ), [1069] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1070] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1071] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1072] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = - ), [1073] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1074] = " (", [1075] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "North Carolina" ], title = - ), [1076] = ") ", [1077] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1078] = " ", [1079] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1080] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Committee on Veterans' Affairs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Veterans' Affairs" ) ), [1081] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1082] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1083] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1084] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = - ), [1085] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1086] = " (", [1087] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [1088] = ") ", [1089] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1090] = " ", [1091] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1092] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Ethics" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ethics" ) ), [1093] = " (Select)", [1094] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1095] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1096] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1097] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = - ), [1098] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1099] = " (", [1100] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Georgia (U.S. state)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Georgia" ) ), [1101] = ") ", [1102] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1103] = " ", [1104] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1105] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Select Committee on Intelligence" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Intelligence" ) ), [1106] = " (Select)", [1107] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1108] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1109] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1110] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = - ), [1111] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [1112] = " (", [1113] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tennessee" ], title = - ), [1114] = ") ", [1115] = WtXmlEntityRef( {P} name = "ndash" {P} resolved = "\u2013" {P} rtd = RTD[ "–" ] ), [1116] = " ", [1117] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1118] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United States Senate Special Committee on Aging" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Aging" ) ), [1119] = " (Special)", [1120] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [1121] = WtNewline("\n"), [1122] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1123] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1124] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1125] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1126] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1127] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1128] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1129] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1130] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1131] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1132] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1133] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1134] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1135] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1136] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1137] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1138] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1139] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1140] = WtNewline("\n"), [1141] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox " ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ) ] ), [1142] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1143] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:2px;" ] ) ] ), [1144] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "nowraplinks collapsible autocollapse " ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;background:transparent;color:inherit;;" ] ) ] ), [1145] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1146] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-title" ] ) ] ), [1147] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "float:left;width:6em;text-align:left;" ] ) ] ), [1148] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "noprint plainlinks navbar" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[] ) ] ), [1149] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "white-space:nowrap;word-spacing:-.12em;" ] ) ] ), [1150] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "View this template" ] ) ] ), [1] = "v", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [1151] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [1152] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1153] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1154] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [1155] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [1156] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1157] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1158] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Template talk:Current U.S. Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Discuss this template" ] ) ] ), [1] = "d", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ) ), [1159] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ) ] ), [1160] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1161] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1162] = WtXmlEntityRef( {P} name = "middot" {P} resolved = "\u00B7" {P} rtd = RTD[ "·" ] ), [1163] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [1164] = WtXmlCharRef( {P} codePoint = 32 {P} rtd = RTD[ " " ] ), [1165] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1166] = WtExternalLink( {P} rtd = RTD[ "[" " " "]" ] target = WtUrl( {P} path = "//en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" {P} protocol = "http" {P} rtd = RTD[ "http://en.wikipedia.org/w/index.php?title=Template:Current_U.S._Senators&action=edit" ] ), title = WtLinkTitle[ [0] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";;background:none transparent;border:none;font-size:100%;" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "title" ], value = WtValue[ [0] = "Edit this template" ] ) ] ), [1] = "e", [2] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ) ] ), [1167] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1168] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1169] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1170] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "font-size:110%;" ] ) ] ), [1171] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of current United States Senators" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Current members of the United States Senate" ) ), [1172] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1173] = WtXmlEndTag( {P} name = "th" {P} rtd = RTD[ "" ] ), [1174] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1175] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [1176] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1177] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1178] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1179] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1180] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:100%;padding:0px;;;background:transparent;color:inherit;" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-list navbox-odd" ] ) ] ), [1181] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;" ] ) ] ), [1182] = WtNewline("\n"), [1183] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "cellspacing" ], value = WtValue[ [0] = "0" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-columns-table" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "text-align:left;width:auto;margin-left:auto;margin-right:auto;" ] ) ] ), [1184] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "vertical-align:top;" ] ) ] ), [1185] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "width:5em;" ] ) ] ), [1186] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1187] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1188] = WtXmlEntityRef( {P} name = "nbsp" {P} resolved = "\u00A0" {P} rtd = RTD[ " " ] ), [1189] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1190] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "padding:0px;;;;width:25%;;" ] ) ] ), [1191] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1192] = WtNewline("\n"), [1193] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alabama" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AL" ) ), [1194] = ":", [1195] = WtNewline("\n"), [1196] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1197] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Shelby" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shelby" ) ), [1198] = " (R)", [1199] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1200] = ",", [1201] = WtNewline("\n"), [1202] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1203] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Sessions" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sessions" ) ), [1204] = " (R)", [1205] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1206] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1207] = WtNewline("\n"), [1208] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Alaska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AK" ) ), [1209] = ":", [1210] = WtNewline("\n"), [1211] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1212] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lisa Murkowski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murkowski" ) ), [1213] = " (R)", [1214] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1215] = ",", [1216] = WtNewline("\n"), [1217] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1218] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Begich" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Begich" ) ), [1219] = " (D)", [1220] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1221] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1222] = WtNewline("\n"), [1223] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arizona" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AZ" ) ), [1224] = ":", [1225] = WtNewline("\n"), [1226] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1227] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John McCain" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCain" ) ), [1228] = " (R)", [1229] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1230] = ",", [1231] = WtNewline("\n"), [1232] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1233] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Kyl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kyl" ) ), [1234] = " (R)", [1235] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1236] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1237] = WtNewline("\n"), [1238] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Arkansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "AR" ) ), [1239] = ":", [1240] = WtNewline("\n"), [1241] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1242] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Pryor" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Pryor" ) ), [1243] = " (D)", [1244] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1245] = ",", [1246] = WtNewline("\n"), [1247] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1248] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Boozman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boozman" ) ), [1249] = " (R)", [1250] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1251] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1252] = WtNewline("\n"), [1253] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from California" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CA" ) ), [1254] = ":", [1255] = WtNewline("\n"), [1256] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1257] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dianne Feinstein" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Feinstein" ) ), [1258] = " (D)", [1259] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1260] = ",", [1261] = WtNewline("\n"), [1262] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1263] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Boxer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Boxer" ) ), [1264] = " (D)", [1265] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1266] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1267] = WtNewline("\n"), [1268] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Colorado" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CO" ) ), [1269] = ":", [1270] = WtNewline("\n"), [1271] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1272] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "M. Udall" ) ), [1273] = " (D)", [1274] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1275] = ",", [1276] = WtNewline("\n"), [1277] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1278] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Michael Bennet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bennet" ) ), [1279] = " (D)", [1280] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1281] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1282] = WtNewline("\n"), [1283] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Connecticut" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "CT" ) ), [1284] = ":", [1285] = WtNewline("\n"), [1286] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ] ), [1287] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Lieberman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lieberman" ) ), [1288] = " (I)", [1289] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1290] = ",", [1291] = WtNewline("\n"), [1292] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1293] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Blumenthal" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blumenthal" ) ), [1294] = " (D)", [1295] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1296] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1297] = WtNewline("\n"), [1298] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Delaware" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DE" ) ), [1299] = ":", [1300] = WtNewline("\n"), [1301] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1302] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Carper" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Carper" ) ), [1303] = " (D)", [1304] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1305] = ",", [1306] = WtNewline("\n"), [1307] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1308] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chris Coons" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coons" ) ), [1309] = " (D)", [1310] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1311] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1312] = WtNewline("\n"), [1313] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Florida" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "FL" ) ), [1314] = ":", [1315] = WtNewline("\n"), [1316] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1317] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bill Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "C.W. Nelson" ) ), [1318] = " (D)", [1319] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1320] = ",", [1321] = WtNewline("\n"), [1322] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1323] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Marco Rubio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rubio" ) ), [1324] = " (R)", [1325] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1326] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1327] = WtNewline("\n"), [1328] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Georgia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "GA" ) ), [1329] = ":", [1330] = WtNewline("\n"), [1331] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1332] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Saxby Chambliss" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Chambliss" ) ), [1333] = " (R)", [1334] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1335] = ",", [1336] = WtNewline("\n"), [1337] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1338] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Johnny Isakson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Isakson" ) ), [1339] = " (R)", [1340] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1341] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1342] = WtNewline("\n"), [1343] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Hawaii" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "HI" ) ), [1344] = ":", [1345] = WtNewline("\n"), [1346] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1347] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Inouye" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inouye" ) ), [1348] = " (D)", [1349] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1350] = ",", [1351] = WtNewline("\n"), [1352] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1353] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Daniel Akaka" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Akaka" ) ), [1354] = " (D)", [1355] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1356] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1357] = WtNewline("\n"), [1358] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Idaho" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ID" ) ), [1359] = ":", [1360] = WtNewline("\n"), [1361] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1362] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Crapo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Crapo" ) ), [1363] = " (R)", [1364] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1365] = ",", [1366] = WtNewline("\n"), [1367] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1368] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Risch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Risch" ) ), [1369] = " (R)", [1370] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1371] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1372] = WtNewline("\n"), [1373] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Illinois" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IL" ) ), [1374] = ":", [1375] = WtNewline("\n"), [1376] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1377] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dick Durbin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Durbin" ) ), [1378] = " (D)", [1379] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1380] = ",", [1381] = WtNewline("\n"), [1382] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1383] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Kirk" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kirk" ) ), [1384] = " (R)", [1385] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1386] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1387] = WtNewline("\n"), [1388] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1389] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1390] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ] ), [1391] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1392] = WtNewline("\n"), [1393] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Indiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IN" ) ), [1394] = ":", [1395] = WtNewline("\n"), [1396] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1397] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Lugar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lugar" ) ), [1398] = " (R)", [1399] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1400] = ",", [1401] = WtNewline("\n"), [1402] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1403] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Dan Coats" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coats" ) ), [1404] = " (R)", [1405] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1406] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1407] = WtNewline("\n"), [1408] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Iowa" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "IA" ) ), [1409] = ":", [1410] = WtNewline("\n"), [1411] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1412] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Grassley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Grassley" ) ), [1413] = " (R)", [1414] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1415] = ",", [1416] = WtNewline("\n"), [1417] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1418] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Harkin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Harkin" ) ), [1419] = " (D)", [1420] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1421] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1422] = WtNewline("\n"), [1423] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kansas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KS" ) ), [1424] = ":", [1425] = WtNewline("\n"), [1426] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1427] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Roberts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roberts" ) ), [1428] = " (R)", [1429] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1430] = ",", [1431] = WtNewline("\n"), [1432] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1433] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jerry Moran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Moran" ) ), [1434] = " (R)", [1435] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1436] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1437] = WtNewline("\n"), [1438] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Kentucky" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "KY" ) ), [1439] = ":", [1440] = WtNewline("\n"), [1441] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1442] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mitch McConnell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McConnell" ) ), [1443] = " (R)", [1444] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1445] = ",", [1446] = WtNewline("\n"), [1447] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1448] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rand Paul" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Paul" ) ), [1449] = " (R)", [1450] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1451] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1452] = WtNewline("\n"), [1453] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Louisiana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "LA" ) ), [1454] = ":", [1455] = WtNewline("\n"), [1456] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1457] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary Landrieu" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Landrieu" ) ), [1458] = " (D)", [1459] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1460] = ",", [1461] = WtNewline("\n"), [1462] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1463] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "David Vitter" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Vitter" ) ), [1464] = " (R)", [1465] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1466] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1467] = WtNewline("\n"), [1468] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maine" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ME" ) ), [1469] = ":", [1470] = WtNewline("\n"), [1471] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1472] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Olympia Snowe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Snowe" ) ), [1473] = " (R)", [1474] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1475] = ",", [1476] = WtNewline("\n"), [1477] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1478] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Susan Collins" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Collins" ) ), [1479] = " (R)", [1480] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1481] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1482] = WtNewline("\n"), [1483] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Maryland" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MD" ) ), [1484] = ":", [1485] = WtNewline("\n"), [1486] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1487] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Barbara Mikulski" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mikulski" ) ), [1488] = " (D)", [1489] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1490] = ",", [1491] = WtNewline("\n"), [1492] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1493] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Cardin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cardin" ) ), [1494] = " (D)", [1495] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1496] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1497] = WtNewline("\n"), [1498] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Massachusetts" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MA" ) ), [1499] = ":", [1500] = WtNewline("\n"), [1501] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1502] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Kerry" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kerry" ) ), [1503] = " (D)", [1504] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1505] = ",", [1506] = WtNewline("\n"), [1507] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1508] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Scott Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.P. Brown" ) ), [1509] = " (R)", [1510] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1511] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1512] = WtNewline("\n"), [1513] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Michigan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MI" ) ), [1514] = ":", [1515] = WtNewline("\n"), [1516] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1517] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carl Levin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Levin" ) ), [1518] = " (D)", [1519] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1520] = ",", [1521] = WtNewline("\n"), [1522] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1523] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Debbie Stabenow" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Stabenow" ) ), [1524] = " (D)", [1525] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1526] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1527] = WtNewline("\n"), [1528] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Minnesota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MN" ) ), [1529] = ":", [1530] = WtNewline("\n"), [1531] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1532] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Amy Klobuchar" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Klobuchar" ) ), [1533] = " (D)", [1534] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1535] = ",", [1536] = WtNewline("\n"), [1537] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1538] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Al Franken" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Franken" ) ), [1539] = " (D)", [1540] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1541] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1542] = WtNewline("\n"), [1543] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Mississippi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MS" ) ), [1544] = ":", [1545] = WtNewline("\n"), [1546] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1547] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Thad Cochran" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cochran" ) ), [1548] = " (R)", [1549] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1550] = ",", [1551] = WtNewline("\n"), [1552] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1553] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roger Wicker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wicker" ) ), [1554] = " (R)", [1555] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1556] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1557] = WtNewline("\n"), [1558] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Missouri" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MO" ) ), [1559] = ":", [1560] = WtNewline("\n"), [1561] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1562] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Claire McCaskill" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "McCaskill" ) ), [1563] = " (D)", [1564] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1565] = ",", [1566] = WtNewline("\n"), [1567] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1568] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roy Blunt" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Blunt" ) ), [1569] = " (R)", [1570] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1571] = WtNewline("\n"), [1572] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1573] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1574] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ] ), [1575] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1576] = WtNewline("\n"), [1577] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Montana" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "MT" ) ), [1578] = ":", [1579] = WtNewline("\n"), [1580] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1581] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Max Baucus" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Baucus" ) ), [1582] = " (D)", [1583] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1584] = ",", [1585] = WtNewline("\n"), [1586] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1587] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jon Tester" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Tester" ) ), [1588] = " (D)", [1589] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1590] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1591] = WtNewline("\n"), [1592] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nebraska" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NE" ) ), [1593] = ":", [1594] = WtNewline("\n"), [1595] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1596] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ben Nelson" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "E.B. Nelson" ) ), [1597] = " (D)", [1598] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1599] = ",", [1600] = WtNewline("\n"), [1601] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1602] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Johanns" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Johanns" ) ), [1603] = " (R)", [1604] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1605] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1606] = WtNewline("\n"), [1607] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Nevada" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NV" ) ), [1608] = ":", [1609] = WtNewline("\n"), [1610] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1611] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Harry Reid" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reid" ) ), [1612] = " (D)", [1613] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1614] = ",", [1615] = WtNewline("\n"), [1616] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1617] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Ensign" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ensign" ) ), [1618] = " (R)", [1619] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1620] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1621] = WtNewline("\n"), [1622] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Hampshire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NH" ) ), [1623] = ":", [1624] = WtNewline("\n"), [1625] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1626] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeanne Shaheen" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Shaheen" ) ), [1627] = " (D)", [1628] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1629] = ",", [1630] = WtNewline("\n"), [1631] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1632] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kelly Ayotte" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Ayotte" ) ), [1633] = " (R)", [1634] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1635] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1636] = WtNewline("\n"), [1637] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Jersey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NJ" ) ), [1638] = ":", [1639] = WtNewline("\n"), [1640] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1641] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Frank Lautenberg" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lautenberg" ) ), [1642] = " (D)", [1643] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1644] = ",", [1645] = WtNewline("\n"), [1646] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1647] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Menendez" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Menendez" ) ), [1648] = " (D)", [1649] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1650] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1651] = WtNewline("\n"), [1652] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New Mexico" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NM" ) ), [1653] = ":", [1654] = WtNewline("\n"), [1655] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1656] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Bingaman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Bingaman" ) ), [1657] = " (D)", [1658] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1659] = ",", [1660] = WtNewline("\n"), [1661] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1662] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Udall" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Udall" ) ), [1663] = " (D)", [1664] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1665] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1666] = WtNewline("\n"), [1667] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from New York" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NY" ) ), [1668] = ":", [1669] = WtNewline("\n"), [1670] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1671] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Chuck Schumer" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Schumer" ) ), [1672] = " (D)", [1673] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1674] = ",", [1675] = WtNewline("\n"), [1676] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1677] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kirsten Gillibrand" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Gillibrand" ) ), [1678] = " (D)", [1679] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1680] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1681] = WtNewline("\n"), [1682] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "NC" ) ), [1683] = ":", [1684] = WtNewline("\n"), [1685] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1686] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Richard Burr" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Burr" ) ), [1687] = " (R)", [1688] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1689] = ",", [1690] = WtNewline("\n"), [1691] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1692] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Hagan" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hagan" ) ), [1693] = " (D)", [1694] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1695] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1696] = WtNewline("\n"), [1697] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from North Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "ND" ) ), [1698] = ":", [1699] = WtNewline("\n"), [1700] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1701] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kent Conrad" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Conrad" ) ), [1702] = " (D)", [1703] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1704] = ",", [1705] = WtNewline("\n"), [1706] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1707] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Hoeven" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hoeven" ) ), [1708] = " (R)", [1709] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1710] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1711] = WtNewline("\n"), [1712] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Ohio" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OH" ) ), [1713] = ":", [1714] = WtNewline("\n"), [1715] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1716] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sherrod Brown" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "S.C. Brown" ) ), [1717] = " (D)", [1718] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1719] = ",", [1720] = WtNewline("\n"), [1721] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1722] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rob Portman" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Portman" ) ), [1723] = " (R)", [1724] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1725] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1726] = WtNewline("\n"), [1727] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oklahoma" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OK" ) ), [1728] = ":", [1729] = WtNewline("\n"), [1730] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1731] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Inhofe" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Inhofe" ) ), [1732] = " (R)", [1733] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1734] = ",", [1735] = WtNewline("\n"), [1736] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1737] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tom Coburn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Coburn" ) ), [1738] = " (R)", [1739] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1740] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1741] = WtNewline("\n"), [1742] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Oregon" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "OR" ) ), [1743] = ":", [1744] = WtNewline("\n"), [1745] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1746] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Wyden" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Wyden" ) ), [1747] = " (D)", [1748] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1749] = ",", [1750] = WtNewline("\n"), [1751] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1752] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeff Merkley" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Merkley" ) ), [1753] = " (D)", [1754] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1755] = WtNewline("\n"), [1756] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1757] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1758] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "border-left:2px solid #fdfdfd;padding:0px;;;;width:25%;;" ] ) ] ), [1759] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1760] = WtNewline("\n"), [1761] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Pennsylvania" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "PA" ) ), [1762] = ":", [1763] = WtNewline("\n"), [1764] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1765] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Casey, Jr." ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Casey" ) ), [1766] = " (D)", [1767] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1768] = ",", [1769] = WtNewline("\n"), [1770] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1771] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Pat Toomey" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Toomey" ) ), [1772] = " (R)", [1773] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1774] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1775] = WtNewline("\n"), [1776] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Rhode Island" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "RI" ) ), [1777] = ":", [1778] = WtNewline("\n"), [1779] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1780] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jack Reed (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Reed" ) ), [1781] = " (D)", [1782] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1783] = ",", [1784] = WtNewline("\n"), [1785] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1786] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Sheldon Whitehouse" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Whitehouse" ) ), [1787] = " (D)", [1788] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1789] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1790] = WtNewline("\n"), [1791] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Carolina" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SC" ) ), [1792] = ":", [1793] = WtNewline("\n"), [1794] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1795] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lindsey Graham" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Graham" ) ), [1796] = " (R)", [1797] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1798] = ",", [1799] = WtNewline("\n"), [1800] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1801] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim DeMint" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "DeMint" ) ), [1802] = " (R)", [1803] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1804] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1805] = WtNewline("\n"), [1806] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from South Dakota" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "SD" ) ), [1807] = ":", [1808] = WtNewline("\n"), [1809] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1810] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Tim Johnson (U.S. Senator)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "T. Johnson" ) ), [1811] = " (D)", [1812] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1813] = ",", [1814] = WtNewline("\n"), [1815] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1816] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Thune" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Thune" ) ), [1817] = " (R)", [1818] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1819] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1820] = WtNewline("\n"), [1821] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Tennessee" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TN" ) ), [1822] = ":", [1823] = WtNewline("\n"), [1824] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1825] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Lamar Alexander" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Alexander" ) ), [1826] = " (R)", [1827] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1828] = ",", [1829] = WtNewline("\n"), [1830] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1831] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bob Corker" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Corker" ) ), [1832] = " (R)", [1833] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1834] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1835] = WtNewline("\n"), [1836] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Texas" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "TX" ) ), [1837] = ":", [1838] = WtNewline("\n"), [1839] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1840] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kay Bailey Hutchison" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hutchison" ) ), [1841] = " (R)", [1842] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1843] = ",", [1844] = WtNewline("\n"), [1845] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1846] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Cornyn" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cornyn" ) ), [1847] = " (R)", [1848] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1849] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1850] = WtNewline("\n"), [1851] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Utah" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "UT" ) ), [1852] = ":", [1853] = WtNewline("\n"), [1854] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1855] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Orrin Hatch" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hatch" ) ), [1856] = " (R)", [1857] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1858] = ",", [1859] = WtNewline("\n"), [1860] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1861] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Lee (U.S. politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Lee" ) ), [1862] = " (R)", [1863] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1864] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1865] = WtNewline("\n"), [1866] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Vermont" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VT" ) ), [1867] = ":", [1868] = WtNewline("\n"), [1869] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1870] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patrick Leahy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Leahy" ) ), [1871] = " (D)", [1872] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1873] = ",", [1874] = WtNewline("\n"), [1875] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ] ), [1876] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Bernie Sanders" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Sanders" ) ), [1877] = " (I)", [1878] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1879] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1880] = WtNewline("\n"), [1881] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "VA" ) ), [1882] = ":", [1883] = WtNewline("\n"), [1884] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1885] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jim Webb" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Webb" ) ), [1886] = " (D)", [1887] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1888] = ",", [1889] = WtNewline("\n"), [1890] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1891] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mark Warner" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Warner" ) ), [1892] = " (D)", [1893] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1894] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1895] = WtNewline("\n"), [1896] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Washington" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WA" ) ), [1897] = ":", [1898] = WtNewline("\n"), [1899] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1900] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Patty Murray" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Murray" ) ), [1901] = " (D)", [1902] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1903] = ",", [1904] = WtNewline("\n"), [1905] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1906] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Maria Cantwell" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Cantwell" ) ), [1907] = " (D)", [1908] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1909] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1910] = WtNewline("\n"), [1911] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from West Virginia" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WV" ) ), [1912] = ":", [1913] = WtNewline("\n"), [1914] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1915] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jay Rockefeller" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rockefeller" ) ), [1916] = " (D)", [1917] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1918] = ",", [1919] = WtNewline("\n"), [1920] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1921] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Joe Manchin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Manchin" ) ), [1922] = " (D)", [1923] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1924] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1925] = WtNewline("\n"), [1926] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wisconsin" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WI" ) ), [1927] = ":", [1928] = WtNewline("\n"), [1929] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1930] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Herb Kohl" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kohl" ) ), [1931] = " (D)", [1932] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1933] = ",", [1934] = WtNewline("\n"), [1935] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1936] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Ron Johnson (Wisconsin politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "R. Johnson" ) ), [1937] = " (R)", [1938] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1939] = WtXmlEmptyTag( {P} name = "br" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[] ), [1940] = WtNewline("\n"), [1941] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of United States Senators from Wyoming" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WY" ) ), [1942] = ":", [1943] = WtNewline("\n"), [1944] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1945] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mike Enzi" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Enzi" ) ), [1946] = " (R)", [1947] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1948] = ",", [1949] = WtNewline("\n"), [1950] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1951] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "John Barrasso" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Barrasso" ) ), [1952] = " (R)", [1953] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1954] = WtNewline("\n"), [1955] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1956] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1957] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1958] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1959] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [1960] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1961] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1962] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "height:2px;" ] ) ] ), [1963] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1964] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1965] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1966] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [1967] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "navbox-abovebelow" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = ";" ] ), [2] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "colspan" ], value = WtValue[ [0] = "2" ] ) ] ), [1968] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#B0CEFF" ] ) ] ), [1969] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Democratic Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Democratic (51)" ) ), [1970] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1971] = " \u2022 ", [1972] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#FFB6B6" ] ) ] ), [1973] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Republican Party (United States)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Republican (47)" ) ), [1974] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1975] = " \u2022 ", [1976] = WtXmlStartTag( {P} name = "span" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "background:#cccccc" ] ) ] ), [1977] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Independent (politician)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Independent (2)" ) ), [1978] = WtXmlEndTag( {P} name = "span" {P} rtd = RTD[ "" ] ), [1979] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1980] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1981] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1982] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [1983] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [1984] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [1985] = WtImEndTag( {P} name = "@p" ), [1986] = WtNewline("\n"), [1987] = WtNewline("\n") ] ), [25] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "References" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtNewline("\n"), [2] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "div" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "reflist references-column-count references-column-count-2" ] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "style" ], value = WtValue[ [0] = "column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; list-style-type: decimal;" ] ) ] ), [4] = WtNewline("\n"), [5] = WtXmlStartTag( {P} name = "references" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "group" ], value = WtValue[] ) ] ), [6] = WtXmlEndTag( {P} name = "references" {P} rtd = RTD[ "" ] ), [7] = WtXmlEndTag( {P} name = "div" {P} rtd = RTD[ "" ] ), [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n"), [10] = WtNewline("\n"), [11] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:1943 births" ], title = - ), [13] = WtNewline("\n"), [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:20th-century American Episcopalians" ], title = - ), [15] = WtNewline("\n"), [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:21st-century American Episcopalians" ], title = - ), [17] = WtNewline("\n"), [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) lawyers" ], title = - ), [19] = WtNewline("\n"), [20] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Living people" ], title = - ), [21] = WtNewline("\n"), [22] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Members of the United States House of Representatives from Georgia (U.S. state)" ], title = - ), [23] = WtNewline("\n"), [24] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Warren County, North Carolina" ], title = - ), [25] = WtNewline("\n"), [26] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:United States Senators from Georgia (U.S. state)" ], title = - ), [27] = WtNewline("\n"), [28] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Georgia alumni" ], title = - ), [29] = WtNewline("\n"), [30] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:University of Tennessee alumni" ], title = - ), [31] = WtNewline("\n"), [32] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:C. E. Byrd High School alumni" ], title = - ), [33] = WtNewline("\n"), [34] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:People from Shreveport, Louisiana" ], title = - ), [35] = WtNewline("\n"), [36] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Category:Georgia (U.S. state) Republicans" ], title = - ), [37] = WtImEndTag( {P} name = "@p" ), [38] = WtNewline("\n"), [39] = WtNewline("\n"), [40] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "de:Saxby Chambliss" ], title = - ), [42] = WtNewline("\n"), [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fr:Saxby Chambliss" ], title = - ), [44] = WtNewline("\n"), [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "ga:Saxby Chambliss" ], title = - ), [46] = WtNewline("\n"), [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "it:Saxby Chambliss" ], title = - ), [48] = WtNewline("\n"), [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "nl:Saxby Chambliss" ], title = - ), [50] = WtNewline("\n"), [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "no:Saxby Chambliss" ], title = - ), [52] = WtNewline("\n"), [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "pl:Saxby Chambliss" ], title = - ), [54] = WtNewline("\n"), [55] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "fi:Saxby Chambliss" ], title = - ), [56] = WtNewline("\n"), [57] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "sv:Saxby Chambliss" ], title = - ), [58] = WtImEndTag( {P} name = "@p" ), [59] = WtNewline("\n") ] ) ) ignored_stuff-01.ast000066400000000000000000000004131335270560400462330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(" Only visible when included ") } {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtIgnored(" Only visible when included "), [2] = WtNewline("\n") ) ignored_stuff-02.ast000066400000000000000000000005621335270560400462410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtIgnored("") } {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtSemiPre[ [0] = WtSemiPreLine( {P} rtd = RTD[ WtIgnored("") + " " "" ] [0] = "only visible when viewed directly ", [1] = WtIgnored("") ) ], [2] = WtNewline("\n") ) ignored_stuff-03.ast000066400000000000000000000014501335270560400462370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtIgnored(""), [1] = WtIgnored("") } {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "This will not get transcluded", [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n"), [5] = WtNewline("\n"), [6] = WtSemiPre[ [0] = WtSemiPreLine( {P} rtd = RTD[ WtIgnored("") + " " "" ] [0] = "Only the stuff in here would get transcluded ", [1] = WtIgnored("") ) ], [7] = WtNewline("\n"), [8] = WtNewline("\n"), [9] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [10] = "Nor will this get transcluded", [11] = WtImEndTag( {P} name = "@p" ), [12] = WtNewline("\n") ) ilink_test-01.ast000066400000000000000000000006251335270560400455470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Es kommt ein Link: ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = - ), [3] = " und er ist wieder weg ...", [4] = WtImEndTag( {P} name = "@p" ) ) ilink_test-02.ast000066400000000000000000000041351335270560400455500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "Es kommt ein Link: ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Mit ", [1] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "fettem Titel" ) ), [4] = " der ordentlich leaked...", [5] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [6] = " ", [7] = WtImEndTag( {P} name = "@p" ), [8] = WtNewline("\n"), [9] = WtNewline("\n"), [10] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [11] = "Es kommt ein ", [12] = WtXmlStartTag( {P} name = "i" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [13] = "kursiver Link: ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "aber der Titel ", [1] = WtXmlEndTag( {P} name = "i" {P} rtd = RTD[ "" ] ), [2] = " ist nur so halb-halb" ) ), [15] = " und vorbei ists.", [16] = WtImEndTag( {P} name = "@p" ), [17] = WtNewline("\n"), [18] = WtNewline("\n"), [19] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [20] = "Es kommt ein ", [21] = WtXmlStartTag( {P} name = "i" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [22] = "kursiver Link: ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hallo" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "mit voll kursivem Titel" ) ), [24] = " auch hier noch.", [25] = WtXmlEndTag( {P} name = "i" {P} rtd = RTD[ "" ] ), [26] = " Und vorbei ists.", [27] = WtImEndTag( {P} name = "@p" ), [28] = WtNewline("\n") ) link-3.ast000066400000000000000000000010461335270560400442570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:X" ], options = WtLinkOptions[ [0] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Left:" ) ] ), [2] = WtImEndTag( {P} name = "@p" ) ) misnested-tags-12.2.8.1.ast000066400000000000000000000014131335270560400467740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "1", [3] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "2", [5] = WtXmlStartTag( {P} name = "i" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [6] = "3", [7] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [8] = "4", [9] = WtXmlEndTag( {P} name = "i" {P} rtd = RTD[ "" ] ), [10] = "5", [11] = WtXmlEndTag( {P} name = "p" {P} rtd = RTD[ "

    " ] ), [12] = WtImEndTag( {P} name = "@p" ) ) misnested-tags-12.2.8.2.ast000066400000000000000000000010761335270560400470020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "1", [3] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "2", [5] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [6] = "3", [7] = WtXmlEndTag( {P} name = "p" {P} rtd = RTD[ "

    " ] ), [8] = WtImEndTag( {P} name = "@p" ) ) native_bold_and_italics.ast000066400000000000000000000026321335270560400500040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [3] = "Italics", [4] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [5] = WtNewline("\n"), [6] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [7] = "Bold", [8] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [9] = WtImEndTag( {P} name = "@p" ), [10] = WtNewline("\n"), [11] = WtNewline("\n"), [12] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [13] = "Jetzt wirds funky:", [14] = WtNewline("\n"), [15] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [16] = "What?", [17] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [18] = WtNewline("\n"), [19] = WtTicks( {P} rtd = RTD[ "''" ] {P} tickCount = 2 ), [20] = "What", [21] = WtTicks( {P} rtd = RTD[ "'''" ] {P} tickCount = 3 ), [22] = "s up?", [23] = WtImEndTag( {P} name = "@p" ), [24] = WtNewline("\n"), [25] = WtNewline("\n"), [26] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [27] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [28] = "Boah", [29] = WtTicks( {P} rtd = RTD[ "'''''" ] {P} tickCount = 5 ), [30] = WtImEndTag( {P} name = "@p" ), [31] = WtNewline("\n") ) native_list-01.ast000066400000000000000000000015101335270560400457150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "List 1", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n"), [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Item 1" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " Item 2" ) ], [5] = WtNewline("\n"), [6] = WtNewline("\n"), [7] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [8] = "List 2", [9] = WtImEndTag( {P} name = "@p" ), [10] = WtNewline("\n"), [11] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = " Item 1" ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = " Item 2" ) ], [12] = WtNewline("\n"), [13] = WtNewline("\n") ) native_list-02.ast000066400000000000000000000027101335270560400457210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "List 1", [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n"), [4] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " normal", [1] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "bold" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " bold", [1] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [2] = "normal" ) ], [5] = WtNewline("\n"), [6] = WtNewline("\n"), [7] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [8] = "List 2", [9] = WtImEndTag( {P} name = "@p" ), [10] = WtNewline("\n"), [11] = WtOrderedList[ [0] = WtListItem( {P} rtd = RTD[ "#" "\n" ] [0] = " normal", [1] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = "bold" ), [1] = WtListItem( {P} rtd = RTD[ "#" "" ] [0] = " bold" ) ], [12] = WtNewline("\n"), [13] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [14] = "bold", [15] = WtNewline("\n"), [16] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [17] = WtNewline("\n"), [18] = "normal", [19] = WtImEndTag( {P} name = "@p" ), [20] = WtNewline("\n") ) native_list_and_html-01.ast000066400000000000000000000010161335270560400475640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtUnorderedList[ [0] = WtListItem( {P} rtd = RTD[ "*" "\n" ] [0] = " Hallo ", [1] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "" ] ), [2] = " zwischen den Welten" ), [1] = WtListItem( {P} rtd = RTD[ "*" "" ] [0] = " du schn\u00F6de ", [1] = WtXmlStartTag( {P} name = "li" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = " Welt" ) ], [1] = WtNewline("\n") ) newlines-and-paragraphs-03.ast000066400000000000000000000003661335270560400501200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = WtNewline("\n"), [3] = "Hallo", [4] = WtImEndTag( {P} name = "@p" ) ) only_text.ast000066400000000000000000000003141335270560400452040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtImEndTag( {P} name = "@p" ) ) paragraph-table-test.ast000066400000000000000000000013571335270560400471760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astLazyParsedPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ ImTagOpen( Properties: {N} name = "@p" [ ] ) XmlElementOpen( Properties: RTD = RtData: [0] = " "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) } {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtRedirect( {P} rtd = RTD[ "#REDIRECT: [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ) redirect.ast000066400000000000000000000006771335270560400447740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtRedirect( {P} rtd = RTD[ "#REDIRECT [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ) } {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtRedirect( {P} rtd = RTD[ "#REDIRECT [[" "]]" ] target = WtPageName[ [0] = "Wohin auch immer" ] ), [2] = WtImEndTag( {P} name = "@p" ), [3] = WtNewline("\n") ) table-fostering.ast000066400000000000000000000023411335270560400462460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "foo", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n"), [6] = WtNewline("\n"), [7] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [8] = " ", [9] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [10] = WtXmlStartTag( {P} name = "td" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [11] = "x", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n"), [14] = " ", [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = " y", [18] = WtXmlEndTag( {P} name = "td" {P} rtd = RTD[ "" ] ), [19] = WtXmlEndTag( {P} name = "tr" {P} rtd = RTD[ "" ] ), [20] = WtNewline("\n"), [21] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [22] = WtNewline("\n"), [23] = "foo", [24] = WtImEndTag( {P} name = "@p" ) ) table-test-01.ast000066400000000000000000000007551335270560400454520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astLazyParsedPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ ImTagOpen( Properties: {N} name = "@p" [ ] ) XmlElementOpen( Properties: RTD = RtData: [0] = " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n"), [5] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "S" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "B", [3] = WtNewline("\n"), [4] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = "A", [8] = WtImEndTag( {P} name = "@p" ) ] ) ) tables-and-sections-2.ast000066400000000000000000000022741335270560400471640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "0" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = WtXmlStartTag( {P} name = "table" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [3] = WtXmlStartTag( {P} name = "th" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ] ), [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = "1" ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "B", [3] = WtNewline("\n"), [4] = WtXmlStartTag( {P} name = "tr" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlEndTag( {P} name = "table" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = "A", [8] = WtImEndTag( {P} name = "@p" ) ] ) ) template_stuff.ast000066400000000000000000000026261335270560400462110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Some Template" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Some Template Argument" ] ) ] ), [1] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "Some Template Parameter" ], default = WtValue[ [0] = "Some Template Parameter Default Value" ], garbage = WtTemplateArguments[] ) } {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtTemplate( {P} precededByNewline = false {P} rtd = RTD[ "{{" "" "}}" ] name = WtName[ [0] = "Some Template" ], args = WtTemplateArguments[ [0] = WtTemplateArgument( {P} rtd = RTD[ "|" "" "" ] name = -, value = WtValue[ [0] = "Some Template Argument" ] ) ] ), [2] = WtNewline("\n"), [3] = WtTemplateParameter( {P} precededByNewline = true {P} rtd = RTD[ "{{{" "|" "" "}}}" ] name = WtName[ [0] = "Some Template Parameter" ], default = WtValue[ [0] = "Some Template Parameter Default Value" ], garbage = WtTemplateArguments[] ), [4] = WtImEndTag( {P} name = "@p" ), [5] = WtNewline("\n") ) text_and_address.ast000066400000000000000000000010051335270560400464700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "address" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "Test", [5] = WtXmlEndTag( {P} name = "address" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = "Tsch\u00FCss!", [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ) text_and_comment.ast000066400000000000000000000011171335270560400465110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtXmlComment( {P} content = " This is a comment " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ) } {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlComment( {P} content = " This is a comment " {P} prefix = "" {P} rtd = RTD[ "\n" ] {P} suffix = "\n" ), [4] = "Tsch\u00FCss!", [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ) text_and_dt_dd.ast000066400000000000000000000013341335270560400461260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "dd" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "Some item", [5] = WtXmlEndTag( {P} name = "dd" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = WtXmlStartTag( {P} name = "dt" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [8] = "Some item", [9] = WtXmlEndTag( {P} name = "dt" {P} rtd = RTD[ "" ] ), [10] = WtNewline("\n"), [11] = "Tsch\u00FCss!", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n") ) text_and_h1.ast000066400000000000000000000007661335270560400453700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "h1" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "A heading", [5] = WtXmlEndTag( {P} name = "h1" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = "Tsch\u00FCss!", [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ) text_and_li.ast000066400000000000000000000007661335270560400454640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "li" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "Some item", [5] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "" ] ), [6] = WtNewline("\n"), [7] = "Tsch\u00FCss!", [8] = WtImEndTag( {P} name = "@p" ), [9] = WtNewline("\n") ) text_and_nested_headings.ast000066400000000000000000000013271335270560400501760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "h1" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "A ", [5] = WtXmlStartTag( {P} name = "h2" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [6] = "An inner heading", [7] = WtXmlEndTag( {P} name = "h2" {P} rtd = RTD[ "" ] ), [8] = " heading", [9] = WtXmlEndTag( {P} name = "h1" {P} rtd = RTD[ "" ] ), [10] = WtNewline("\n"), [11] = "Tsch\u00FCss!", [12] = WtImEndTag( {P} name = "@p" ), [13] = WtNewline("\n") ) text_and_pre.ast000066400000000000000000000012631335270560400456370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = { [0] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tSome special pre text\n") ) } {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo Welt!", [2] = WtNewline("\n"), [3] = WtTagExtension( {P} name = "pre" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("\n\tSome special pre text\n") ), [4] = WtNewline("\n"), [5] = "Tsch\u00FCss!", [6] = WtImEndTag( {P} name = "@p" ), [7] = WtNewline("\n") ) too_much_i_after_section.ast000066400000000000000000000010561335270560400502150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtSection( {P} level = 2 heading = WtHeading( {P} rtd = RTD[ "==" "==" ] [0] = " A ", [1] = WtXmlStartTag( {P} name = "i" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = " B " ), body = WtBody[ [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "C", [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n") ] ) ) unclosed_formatting_elements-12.2.8.6.ast000066400000000000000000000054731335270560400520260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [2] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ] ), [3] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ] ), [4] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [5] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ] ), [6] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ] ), [7] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [8] = "X", [9] = WtNewline("\n"), [10] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [11] = "X", [12] = WtNewline("\n"), [13] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [14] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [15] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=" "" ] name = WtName[ [0] = "class" ], value = WtValue[ [0] = "x" ] ) ] ), [16] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [17] = "X", [18] = WtNewline("\n"), [19] = WtXmlStartTag( {P} name = "p" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [20] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [21] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [22] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [23] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [24] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [25] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [26] = "X", [27] = WtImEndTag( {P} name = "@p" ) ) unknown-elements.ast000066400000000000000000000030371335270560400464750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtNewline("\n"), [1] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [2] = "Hello World", [3] = WtImEndTag( {P} name = "@p" ), [4] = WtNewline("\n"), [5] = WtNewline("\n"), [6] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [7] = WtXmlStartTag( {P} name = "form" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [8] = WtNewline("\n"), [9] = WtXmlEmptyTag( {P} name = "input" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "type" ], value = WtValue[ [0] = "text" ] ) ] ), [10] = WtImEndTag( {P} name = "@p" ), [11] = WtNewline("\n"), [12] = WtNewline("\n"), [13] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [14] = WtXmlEmptyTag( {P} name = "input" {P} rtd = RTD[ " " />" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "type" ], value = WtValue[ [0] = "submit" ] ) ] ), [15] = WtNewline("\n"), [16] = WtXmlEndTag( {P} name = "form" {P} rtd = RTD[ "" ] ), [17] = WtImEndTag( {P} name = "@p" ), [18] = WtNewline("\n"), [19] = WtNewline("\n"), [20] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [21] = "Bye bye!", [22] = WtImEndTag( {P} name = "@p" ), [23] = WtNewline("\n") ) unrecognized_link_title.ast000066400000000000000000000013641335270560400500770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = WtImageLink( {P} border = false {P} format = UNRESTRAINED {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = 225 target = WtPageName[ [0] = "file:Saxby Chambliss.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionResize( {P} height = -1 {P} rtd = RTD[ "|225px" ] {P} width = 225 ), [1] = WtLinkOptionAltText( {P} rtd = RTD[ "|alt=" "" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Saxby Chambliss" ) ] ), [2] = WtImEndTag( {P} name = "@p" ) ) wrong_nesting_of_fmt_and_li.ast000066400000000000000000000027721335270560400507140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hallo!", [2] = WtNewline("\n"), [3] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [4] = "Ich bin fett", [5] = WtNewline("\n"), [6] = WtXmlStartTag( {P} name = "li" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [7] = "Ich bin ein Item!", [8] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "" ] ), [9] = WtNewline("\n"), [10] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [11] = WtNewline("\n"), [12] = "Ich sollte wieder d\u00FCnn sein...", [13] = WtImEndTag( {P} name = "@p" ), [14] = WtNewline("\n"), [15] = WtNewline("\n"), [16] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [17] = "Hallo!", [18] = WtNewline("\n"), [19] = WtXmlStartTag( {P} name = "li" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [20] = WtXmlStartTag( {P} name = "b" {P} rtd = RTD[ " ">" ] xmlAttributes = WtXmlAttributes[] ), [21] = "Ich bin fett", [22] = WtXmlEndTag( {P} name = "li" {P} rtd = RTD[ "" ] ), [23] = WtNewline("\n"), [24] = "Ich sollte noch fett sein", [25] = WtNewline("\n"), [26] = WtXmlEndTag( {P} name = "b" {P} rtd = RTD[ "" ] ), [27] = WtNewline("\n"), [28] = "Ich aber nicht mehr...", [29] = WtImEndTag( {P} name = "@p" ), [30] = WtNewline("\n") ) xml_entity_and_char_refs.ast000066400000000000000000000006341335270560400502160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/only-parsed.astWtParsedWikitextPage( {P} entityMap = - {P} warnings = C[] [0] = WtImStartTag( {P} name = "@p" xmlAttributes = WtXmlAttributes[] ), [1] = "Hello World! A ", [2] = WtXmlEntityRef( {P} name = "amp" {P} resolved = "&" {P} rtd = RTD[ "&" ] ), [3] = " ", [4] = WtXmlCharRef( {P} codePoint = 79 {P} rtd = RTD[ "O" ] ), [5] = WtImEndTag( {P} name = "@p" ), [6] = WtNewline("\n") ) pretty-printer.wikitext/000077500000000000000000000000001335270560400443045ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-treebr_end_tag.wikitext000066400000000000000000000000431335270560400501570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextI say yes
    And I say goodbye horrible-1.wikitext000066400000000000000000000000751335270560400500440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextbefore [[User:User|User]]'''[[User talk:User|User]]''' after horrible-1b.wikitext000066400000000000000000000001211335270560400501760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextbefore [[User:User|User]]'''[[User talk:User|User]]'''[[User talk:User|x]] after horrible-2.wikitext000066400000000000000000000001341335270560400500410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextbefore ... [[User:User|User]]''''''''' after''' horrible-3.wikitext000066400000000000000000000000521335270560400500410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextbefore ¹ after horrible-4.wikitext000066400000000000000000000005021335270560400500420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextbefore '''Hallo schoene''' Welt before Hallo schoene Welt before Hallo schoene Welt before Hallo schoene Welt before Hallo'' schoene'' Welt before Hallo'' schoene'' Welt before '''Hallo''' schoene Welt before '''''Hallo''' schoene'' Welt before Hallo''' schoene''' Welt ignore_throws_exception.wikitext000066400000000000000000001746261335270560400530650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext {| class="infobox vcard" style="width: 22em; font-size: 90%; text-align: left" | colspan="2" class="n" style="text-align: center; font-size: 125%; font-weight: bold" |Clarence Saxby Chambliss Jr |- | colspan="2" style="text-align: center" | [[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]]
    |- | colspan="2" style="text-align:center; font-size:110%;" |
    [[United States Senate|United States Senator]]
    from [[Georgia (U.S. state)|Georgia]]
    |- | colspan="2" style="text-align:center; background:lavender;" | '''[[Incumbent]]''' |- | colspan="2" style="text-align:center;" |'''Assumed office '''
    January 3, 2003
    Serving with [[Johnny Isakson]] |- ! Preceded by | [[Max Cleland]] |- |- |- | colspan="2" style="text-align:center; font-size:110%;" |
    Member of the [[United States House of Representatives|U.S. House of Representatives]]
    from [[Georgia (U.S. state)|Georgia]]'s [[Georgia's 8th congressional district|8th]] district
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 1995 – January 3, 2003 |- ! Preceded by | [[J. Roy Rowland]] |- ! Succeeded by | [[Mac Collins]]In 2002, Georgia was redistricted as per the 2000 Census and some districts were renumbered. Democrat [[Jim Marshall (U.S. politician)|Jim Marshall]] took the seat in {{ushr|Georgia|3|}}, which was substantially the same as the old 8th district Chambliss represented. |- ! colspan="2" style="text-align:center; font-size:110%;" |
    Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Committee on Agriculture, Nutrition and Forestry]]
    |- | colspan="2" style="border-bottom:none; text-align:center;" |'''In office'''
    January 3, 2005 – January 3, 2007 |- ! Preceded by | [[Thad Cochran]] |- ! Succeeded by | [[Tom Harkin]] |- |- |- |- |- |- |- |- |- |- |- |- |- | colspan="2" |
    |- ! Born | November 10, 1943 (1943-11-10) (age 67)
    [[Warrenton, North Carolina|Warrenton]], [[North Carolina]] |- ! Political party | [[Republican Party (United States)|Republican]] |- ! Spouse(s) | Julianne Chambliss |- ! Residence | class="label" | [[Moultrie, Georgia]] |- ! [[Alma mater|Alma mater]] | [[University of Georgia]], [[University of Tennessee|University of Tennessee College of Law]] |- ! Occupation | Lawyer |- ! Religion | [[Episcopal Church in the United States of America|Episcopalian]] |- ! Website | [http://www.saxby.org www.Saxby.org] |- |} '''Clarence Saxby Chambliss''' (born November 10, 1943) is the senior [[United States Senate|United States Senator]] from [[Georgia (U.S. state)|Georgia]]. He is a member of the [[U.S. Republican Party|Republican Party]]. In the 110th Congress, Chambliss serves as the ranking Republican member of the [[United States Senate Committee on Agriculture, Nutrition and Forestry]], chairing the committee during the 109th Congress (2005-2007). ==Early life, education, and family== Chambliss, the son of an [[Episcopalian]] minister,"R. Saxby Chambliss." Biography Resource Center Online. Gale Group, 2002. Reproduced in Biography Resource Center. Farmington Hills, Mich.: Gale, 2009. was born in [[Warrenton, North Carolina]]. He graduated from [[C.E. Byrd High School]] in [[Shreveport]], [[Louisiana]], in 1961. He attended [[Louisiana Tech University]] from 1961-1962 and earned a [[bachelor's degree]] in Business Administration from the [[University of Georgia]] in 1966, working his way through college at a bakery in [[Athens, Georgia|Athens]]. He received his [[Juris Doctor]] from the [[University of Tennessee]] College of Law in 1968. He is a member of the [[Sigma Chi]] Fraternity. During the [[Vietnam War]], Chambliss received five student deferments and was also given a medical deferment (1-Y) for bad knees due to a [[football]] injury.Tom Robbins, [http://www.villagevoice.com/news/0434,robbins,56166,1.html "The Sunshine Patriots"], ''[[Village Voice]]'', August 17, 2004 Chambliss is a member of [[St. John's Episcopal Church (Moultrie, Georgia)|St. John's Episcopal Church]] in [[Moultrie, Georgia]]. He married Julianne Frohbert in 1966 and they have two children and two grandchildren. Chambliss's son Bo is a registered lobbyist for the [[Chicago Mercantile Exchange]] and lobbies on commodity futures trading issues that fall under legislative jurisdiction of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]], of which the Senator is a member. The Senator's office enacted a policy that prevents Bo from lobbying the Senator or his staff.[http://www.usnews.com/usnews/news/articles/060307/7congress.htm?track=rss ''Democrats target Georgia's Chambliss over son's lobbying'' — USNews.com 3/7/06] ==House of Representatives, 1995-2003== Chambliss was elected to the [[U.S. House of Representatives]] in 1994 as one of the new [[Conservatism|conservative]] Republican congressmen whose elections caused the party to gain a majority in both houses of Congress. A long-time Congressman and fellow Georgian, [[Newt Gingrich]], was the leader of the movement, and Chambliss and the other Republicans elected that year are known as the [[Republican Revolution|Class of '94]]. Chambliss was elected from the [[Macon, Georgia|Macon]]-based 8th District, after six-term incumbent [[J. Roy Rowland]] retired. He was elected with 63% of the vote—an unexpectedly large margin since the 8th had never elected a Republican. He faced a tough re-election fight in 1996 against Macon attorney Jim Wiggins, but breezed to reelection in 1998 and 2000. During his four terms in the House, Chambliss served on the [[United States House of Representatives Permanent Select Committee on Intelligence]] and chaired the House Intelligence Subcommittee on Terrorism and Homeland Security. Less than a month after the [[September 11 attacks|September 11, 2001, terrorist attacks]], the House Intelligence Subcommittee on Terrorism and Homeland Security, which Chambliss chaired, investigated intelligence issues related to the attacks. The committee's investigation resulted in the first comprehensive report detailing critical shortfalls within the United States intelligence community's performance and technological capabilities.[http://archives.cnn.com/2001/COMMUNITY/10/02/chambliss/ Rep. Saxby Chambliss: Anti-terrorism measures in the U.S.], ''[[CNN.com]]'', October 2, 2001 Chambliss was criticized for remarks he made during a November 19, 2001 meeting with first responders in [[Valdosta, Georgia]], where he said that homeland security would be improved by turning the sheriff loose to "arrest every [[Muslim]] that crosses the state line." Chambliss apologized for the remarks.Melanie Eversley, "Chambliss apologizes for remark on Muslims", ''[[Atlanta Journal-Constitution]]'', November 21, 2001. In 2006, Chambliss was among several congressional Republicans and Democrats who returned campaign donations from [[Jack Abramoff]].[http://www.msnbc.msn.com/id/10723902/ Bush, lawmakers returning Abramoff donations], ''[[MSNBC]]'', January 5, 2006 ==Senate, 2003-present== ===Committee assignments=== *'''[[United States Senate Committee on Agriculture, Nutrition, and Forestry|Committee on Agriculture, Nutrition, and Forestry]]''' (Ranking Member) **As Ranking Member of the full committee, Sen. Chambliss may serve as an ''ex officio'' member of all subcommittees. *'''[[United States Senate Committee on Armed Services|Committee on Armed Services]]''' **[[United States Senate Armed Services Subcommittee on Airland|Subcommittee on Airland]] **[[United States Senate Armed Services Subcommittee on Personnel|Subcommittee on Personnel]] **[[United States Senate Armed Services Subcommittee on Readiness and Management Support|Subcommittee on Readiness and Management Support]] *'''[[United States Senate Committee on Rules and Administration|Committee on Rules and Administration]]''' *'''[[United States Senate Select Committee on Intelligence|Select Committee on Intelligence]]''' *'''[[Commission on Security and Cooperation in Europe]]''' Sen. Chambliss is the only senator since 1947 to have chaired a full standing Senate Committee ([[United States Senate Committee on Agriculture, Nutrition, and Forestry|Agriculture]]) after serving in the Senate for just two years.[[Category:All articles with unsourced statements]][[Category:Articles with unsourced statements from December 2008]][[[Wikipedia:Citation needed|citation needed]]] In 2008, he was named one of 10 worst congressmen by Esquire Magazine, which described the competition as "staggering." [http://www.esquire.com/features/esquire-endorsements-2008/10-worst-members-congress-1108], ''Esquire Magainze'', October 13, 2008 ===Caucus memberships=== *Congressional Fire Services Caucus *Congressional Sportsmen Foundation *Juvenile Diabetes Caucus *National Guard Caucus *Rural Health Caucus *Senate Caucus on Military Depots, Arsenals and Ammunition Plants *Co-Chair, Senate Reserve Caucus *Steering Committee ===Elections=== ====2002 race====
    Main article: [[United States Senate election in Georgia, 2002|United States Senate election in Georgia, 2002]]
    Chambliss ran for the Senate in 2002, facing freshman [[United States Democratic Party|Democratic]] incumbent [[Max Cleland]]. Chambliss's political career would have likely ended if he hadn't run for the Senate; the state legislature had shifted his home in Moultrie (along with most of the southern portion of his district) to the nearby [[Georgia's 1st congressional district|1st district]], represented by fellow Republican [[Jack Kingston]]. Chambliss focused on the issue of [[national defense]] and [[homeland security]] during his campaign, and released an ad that included [[Osama bin Laden]] and [[Saddam Hussein]], highlighting Cleland's record on the issues of war and terrorism.[http://www.youtube.com/watch?v=tKFYpd0q9nE Chambliss Ad (Cleland)], ''You Tube'', August 02, 2006 Chambliss received criticism from Democrats and Republicans for this ad, pointing out that he, who hadn't served in the Vietnam War due to receiving military deferments, had attacked a Vietnam War veteran who lost three limbs during his service for not being tough enough on issues of war and homeland security. Republican Senator [[John McCain]] of [[Arizona]] said of one ad, "[I]t's worse than disgraceful, it's reprehensible;" Senator [[Chuck Hagel]] of [[Nebraska]] said the ads were "beyond offensive to me."[http://mediamatters.org/items/200407300007 ''Carlson attempted to downplay Republican attacks on Cleland'' — Media Matters, July 30, 2004] On the other hand, Chambliss supporters say the ad did not question Cleland's patriotism, but rather his judgment.{{citenews|first=Michael|last=Crowley|authorlink=|author=|coauthors=|title=Former Sen. Max Cleland: How the disabled war veteran became the Democrats' mascot|url=http://slate.msn.com/id/2098171|date=April 2, 2004|accessdate=2009-01-23}} {{citenews|first=Ann|last=Coulter|authorlink=Ann Coulter|author=|coauthors=|title=Teaching Democrats New Tricks|url=http://anncoulter.com/cgi-local/article.cgi?article=291|date=December 31, 2008|accessdate=2009-01-23}} Chambliss won the election, receiving 53 percent of the votes to Cleland's 46 percent. ====2008 race====
    Main article: [[United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    On November 4, 2008, Chambliss received 49.8% of the vote, while [[United States Democratic Party|Democratic]] challenger [[Jim Martin (Georgia politician)|Jim Martin]] received 46.8% and [[United States Libertarian Party|Libertarian]] [[Allen Buckley]] received 3.4% of the vote.{{cite news | title = " Georgia Election Results" | publisher = ''[[Secretary of State of Georgia]]'' | date = 2008-11-04 | url = http://www.sos.georgia.gov/elections/election_results/2008_1104/swfed.htm | accessdate = 2008-11-12 }} Since no candidate exceeded 50% of the vote, a runoff election between Chambliss and Martin was held on December 2, 2008. Chambliss defeated Martin 57.5% to 42.5% in the runoff election.{{cite news | title = "U.S. Senate Election Results" | publisher = ''Action News, Atlanta'' | date = 2008-12-02 | url = http://projects.ajc.com/election-results/2008/12/02/us-senate/ | accessdate = 2008-12-02 }}{{cite news |title=Georgia Election Results |curly=y |url=http://sos.georgia.gov/elections/election_results/2008_1202/003.htm |work=State of Georgia Secretary of State |date=December 2, 2008 |accessdate=3 December 2008}} ====Imperial Sugar==== During the run-off period, Chambliss received a subpoena regarding the investigation of a lawsuit against [[Imperial Sugar]] that claims that Imperial "wrongfully" failed to remove hazards that caused the disaster of a [[Savannah, Georgia|Savannah]]-based sugar refinery that exploded on Feb. 7, 2008. Chambliss was accused of "harassing"{{cite news | last = Peterson | first = Larry | title = Chambliss in sugar furor | publisher = Savannah morning news| date = 2008-07-31| url = http://savannahnow.com/node/542481 | accessdate = 2008-11-25}} a former sugar company executive. In a statement, Chambliss said he has referred the matter to Senate lawyers. Chambliss has stated: "I continue to sympathize with the families who were devastated by this tragedy and I will continue to work to protect the interests of those families." Savannah attorney Mark Tate, "an active backer of Democratic candidates," insisted that "there is nothing political" about the timing of the subpoena. When Tate subpoenaed Chambliss to testify in the case, Chambliss claimed "legislative immunity."{{cite news | last = Peterson | first = Larry | title = Chambliss subpoenaed in Imperial Sugar case | publisher = Savannah morning news| date = 2008-10-24| url = http://savannahnow.com/node/601053 | accessdate = 2008-11-25}}{{cite news | last = Peterson | first = Larry | title = Chambliss says he doesn't have to obey order to testify in Imperial Sugar lawsuit | publisher = Savannah morning news| date = 2008-11-16| url = http://savannahnow.com/node/618254 | accessdate = 2008-11-25}}{{cite news | last = ATKINS | first = MICHAEL| title = Imperial Sugar executive defends Chambliss | publisher = Savannah morning news| date = 2008-11-20| url = http://savannahnow.com/node/620312 | accessdate = 2008-11-25 }} ===Political positions=== ====Voting Record==== Chambliss's voting record is typically that of voting in line with conservative issues.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3960 | title=American Conservative Union Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4279 | title=Christian Coalition Ratings | publisher=Project Vote Smart}} He is the primary sponsor in the [[United States Senate]] of the tax-reform proposal ''[[FairTax|The Fair Tax Act]]'' (S. 1025), attracting more cosponsors than any other fundamental tax reform bill introduced. Although Chambliss has a conservative voting record, he has participated in bi-partisan legislation—such as the [[Food, Conservation, and Energy Act of 2008|2007 Farm Bill]], the bi-partisan immigration reform (led by [[John McCain]] and [[Ted Kennedy]]) in 2007{{cite news | title = Scrambling the red states | publisher = ''The Economist'' | date = 2008-10-23 | url = http://www.economist.com/world/unitedstates/displaystory.cfm?story_id=12480320 | accessdate = 2008-10-23 }} and the [[Emergency Economic Stabilization Act of 2008]],. He is also the Republican leader of the [[Gang of 10]], a bipartisan group which has worked to create a compromise surrounding the energy policy of the United States. ====Interest groups ratings==== On abortion issues, the ratings given Chambliss as of 2007 by [[Nrlc|National Right to Life Committee]] and [[NARAL|NARAL Pro-Choice America]] identify him as having a anti-abortion voting record. The National Right to Life Committee gave him a 100% rating, while NARAL Pro-Choice America gave him a 0% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=154 | title=National Right to Life Committee Ratings | publisher=Project Vote Smart}}{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3920 | title=NARAL Pro-Choice America Ratings | publisher=Project Vote Smart}} On [[Second Amendment to the United States Constitution|2nd Amendment]] issues, in 2008, the [[National Rifle Association|NRA]] gave Chambliss an "A+" rating and the NRA also endorsed him.{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.109c | title= Friend of Farm Bureau - 109th Congress | publisher=American Farm Bureau Federation}}{{cite web | url=http://www.fb.org/index.php?fuseaction=legislative.108c | title= Friend of Farm Bureau - 108th Congress | publisher=American Farm Bureau Federation}} On agricultural issues, the [[American Farm Bureau]] gave Chambliss its "Friend of the Farm Bureau" award throughout his service in the U.S. Senate.{{cite web | url=http://www.nrapvf.org/Elections/State.aspx?y=2008&State=GA | title=Vote Freedom First | publisher=NRA-Political Victory Fund}} On economic issues including voting on the national budget, national spending, and taxes, in 2007, the National Tax Limitation Committee gave Chambliss a 90% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4234 | title=National Tax Limitation Committee Ratings | publisher=Project Vote Smart}} and the group [[Americans for Tax Reform]] gave him a 100% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4183 | title=Americans for Tax Reform Ratings | publisher=Project Vote Smart}} On civil liberties and civil rights issues, in 2007, the [[American Civil Liberties Union|American Civil Liberties Union (ACLU)]] gave him a 17% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3864 | title=American Civil Liberties Union Ratings | publisher=Project Vote Smart}} and the [[NAACP]] gave him a 27% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3919 | title=National Association for the Advancement of Colored People Ratings | publisher=Project Vote Smart}} On education issues, in 2008, the Center for Education Reform, gave Chambliss a score of 9 out of 9, and called him a "real reformer",{{cite web| url=http://www.edreform.com/2008votersguide/states/CER_SenateScorecard08.pdf | format=PDF | title=US Senate Candidate Scorecard | publisher=The Center for Education Reform}} while the [[National Education Association]] gave him an "F" in 2007.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4224 | title=National Education Association Ratings | publisher=Project Vote Smart}} On organized labor issues, in 2007 the [[AFL-CIO]] gave Chambliss a 11% rating,{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=3929 | title=AFL-CIO Ratings | publisher=Project Vote Smart}} and the [[International Foodservice Distributors Association]] gave him an 85% rating.{{cite web | url=http://www.votesmart.org/issue_rating_detail.php?r_id=4268 | title=International Foodservice Distributors Association Ratings | publisher=Project Vote Smart}} On environmental issues, in 2003 the [[LCV]] gave Chambliss a 0% rating.{{cite web | url=http://www.ontheissues.org/Senate/Saxby_Chambliss.htm#Environment | title=OnTheIssues Ratings | publisher=OnTheIssues}} ==Electoral history==
    See also: [[:United States Senate election in Georgia, 2008|United States Senate election in Georgia, 2008]]
    {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[Georgia's 8th congressional district]]: Results 1994–2000{{cite web |url=http://clerk.house.gov/member_info/electionInfo/index.html |title=Election Statistics |accessdate=2007-08-08 |publisher=Office of the Clerk of the House of Representatives }} !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! |- |[[U.S. House election, 1994|1994]] | | style="background:#B0CEFF" |Craig Mathis | style="background:#B0CEFF" align="right" |53,408 | style="background:#B0CEFF" |37% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |89,591 | style="background:#FFB6B6" |63% | |- |[[U.S. House election, 1996|1996]] | | style="background:#B0CEFF" |Jim Wiggins | style="background:#B0CEFF" align="right" |84,506 | style="background:#B0CEFF" |47% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |93,619 | style="background:#FFB6B6" |53% | |- |[[U.S. House election, 1998|1998]] | | style="background:#B0CEFF" |Ronald L. Cain | style="background:#B0CEFF" align="right" |53,079 | style="background:#B0CEFF" |38% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |87,993 | style="background:#FFB6B6" |62% | |- |[[U.S. House election, 2000|2000]] | | style="background:#B0CEFF" |[[Jim Marshall (U.S. politician)|Jim Marshall]] | style="background:#B0CEFF" align="right" |79,051 | style="background:#B0CEFF" |41% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |113,380 | style="background:#FFB6B6" |59% | |} {| class="wikitable" style="margin:0.5em ; font-size:95%" |+ [[List of United States Senators from Georgia|Georgia Senator (Class II)]]: 2002 results !Year ! !Democrat !Votes !Pct ! !Republican !Votes !Pct ! !3rd Party !Party !Votes !Pct ! |- |[[U.S. Senate election, 2002|2002]] | | style="background:#B0CEFF" |[[Max Cleland]] | style="background:#B0CEFF" align="right" |932,422 | style="background:#B0CEFF" |46% | | style="background:#FFB6B6" |'''Saxby Chambliss''' | style="background:#FFB6B6" align="right" |1,071,352 | style="background:#FFB6B6" |53% | | style="background:#ffff66" |Claude "Sandy" Thomas | style="background:#ffff66" |[[Libertarian Party (United States)|Libertarian]] | style="background:#ffff66" align="right" |27,830 | style="background:#ffff66" align="right" |1% | |} {| border="1" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" |- style="background-color:#E9E9E9" ! colspan="6" |2008 Georgia U.S. Senator general election runoff |- style="background-color:#E9E9E9" ! colspan="2" style="width: 130px" |Party ! style="width: 17em" |Candidate ! style="width: 5em" |Votes ! style="width: 3.5em" |% ! style="width: 3.5em" |±% |- |- class="vcard" ! style="background-color: #FF3333; width: 5px;" | | class="org" style="width: 130px" | [[Republican Party (United States)|Republican]] | class="fn" | Saxby Chambliss ([[incumbent]]) | style="text-align: right; margin-right: 0.5em" | 1,226,528 | style="text-align: right; margin-right: 0.5em" | 57.5% | style="text-align: right; margin-right: 0.5em" | |- |- class="vcard" ! style="background-color: #3333FF; width: 5px;" | | class="org" style="width: 130px" | [[Democratic Party (United States)|Democratic]] | class="fn" | [[Jim Martin (Georgia politician)|Jim Martin]] | style="text-align: right; margin-right: 0.5em" | 907,916 | style="text-align: right; margin-right: 0.5em" | 42.5% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''Majority''' | style="text-align: right; margin-right: 0.5em" | 318,612 | style="text-align: right; margin-right: 0.5em" | 14.9% | style="text-align: right; margin-right: 0.5em" | |- |- style="background-color:#F6F6F6" | colspan="3" style="text-align: right; margin-right: 0.5em" | '''[[Voter turnout|Turnout]]''' | style="text-align: right; margin-right: 0.5em" | 2,134,444 | style="text-align: right; margin-right: 0.5em" | | style="text-align: right; margin-right: 0.5em" | |- |} ==External links== *[http://www.saxby.org Chambliss for US Senate], ''official campaign site'' *[http://www.youtube.com/saxbychambliss08 Chambliss For Senate YouTube Channel], official YouTube Channel *[http://www.facebook.com/enjoythego Saxby Chambliss Facebook Page], Facebook Page *[http://chambliss.senate.gov/ United States Senator Saxby Chambliss], ''official U.S. Senate site'' * [http://bioguide.congress.gov/scripts/biodisplay.pl?index=c000286 Biography] at the ''[[Biographical Directory of the United States Congress]]'' * [http://projects.washingtonpost.com/congress/members/c000286 Voting record] maintained by ''[[The Washington Post]]'' * [http://www.votesmart.org/bio.php?can_id=CNIP7909 Biography], [http://www.votesmart.org/voting_category.php?can_id=CNIP7909 voting record], and [http://www.votesmart.org/issue_rating_category.php?can_id=CNIP7909 interest group ratings] at [[Project Vote Smart]] * [http://www.ontheissues.org/Senate/Saxby_Chambliss.htm Issue positions and quotes] at On The Issues * [http://www.opensecrets.org/politicians/summary.php?CID=N00002685 Financial information] at [[Center for Responsive Politics|OpenSecrets.org]] * [http://herndon1.sdrdc.com/cgi-bin/can_detail/S2GA00118 Campaign finance reports and data] at the [[Federal Election Commission]] *[http://www.sourcewatch.org/index.php?title=Saxby_Chambliss SourceWatch Congresspedia — Saxby Chambliss] profile {| class="wikitable succession-box" style="margin:0.5em auto; font-size:95%;clear:both;" |- ! colspan="3" style="background: #cccccc" | [[United States House of Representatives]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[J. Roy Rowland]] | width="40%" style="text-align: center;" rowspan="1" |'''Member of the [[List of United States Representatives from Georgia|U.S. House of Representatives]]
    from [[Georgia's 8th congressional district]]'''
    1995 – 2003 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Mac Collins]] |- |- ! colspan="3" style="background: #cccccc" | [[United States Senate]] |- style="text-align: center;" |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Max Cleland]] | width="40%" style="text-align: center;" rowspan="1" |'''[[List of United States Senators from Georgia | United States Senator (Class 2) from Georgia]]'''
    2003 – present
    Served alongside: '''[[Zell Miller]], [[Johnny Isakson]]''' | width="30%" align="center" rowspan="1" |'''Incumbent''' |- |- ! colspan="3" style="background: #ccccff;" | Political offices |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Thad Cochran]]
    R-[[Mississippi]]
    | width="40%" style="text-align: center;" rowspan="1" |'''Chairman of the [[United States Senate Committee on Agriculture, Nutrition and Forestry|Senate Agriculture Committee]]'''
    2005 – 2007 | width="30%" align="center" rowspan="1" | Succeeded by
    [[Tom Harkin]]
    D-[[Iowa]]
    |- |- ! colspan="3" style="background: #ccffcc;" | [[United States order of precedence]] |- style="text-align:center;" | width="30%" align="center" rowspan="1" |Preceded by
    [[Frank Lautenberg]]
    D-[[New Jersey]]
    | width="40%" style="text-align: center;" rowspan="1" |'''''[[List of current United States Senators by seniority|United States Senators by seniority]]'''''''''''
    61st ''' | width="30%" align="center" rowspan="1" | Succeeded by
    [[Lindsey Graham]]
    R-[[South Carolina]]
    |- |} ==References==
    [[Category:1943 births]] [[Category:20th-century American Episcopalians]] [[Category:21st-century American Episcopalians]] [[Category:Georgia (U.S. state) lawyers]] [[Category:Living people]] [[Category:Members of the United States House of Representatives from Georgia (U.S. state)]] [[Category:People from Warren County, North Carolina]] [[Category:United States Senators from Georgia (U.S. state)]] [[Category:University of Georgia alumni]] [[Category:University of Tennessee alumni]] [[Category:C. E. Byrd High School alumni]] [[Category:People from Shreveport, Louisiana]] [[Category:Georgia (U.S. state) Republicans]] [[de:Saxby Chambliss]] [[fr:Saxby Chambliss]] [[ga:Saxby Chambliss]] [[it:Saxby Chambliss]] [[nl:Saxby Chambliss]] [[no:Saxby Chambliss]] [[pl:Saxby Chambliss]] [[fi:Saxby Chambliss]] [[sv:Saxby Chambliss]] ignored_stuff-01.wikitext000066400000000000000000000000701335270560400511470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext Only visible when included ignored_stuff-02.wikitext000066400000000000000000000000731335270560400511530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext only visible when viewed directly ignored_stuff-03.wikitext000066400000000000000000000002101335270560400511450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextThis will not get transcluded Only the stuff in here would get transcluded Nor will this get transcluded ilink_test-01.wikitext000066400000000000000000000000671335270560400504640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextEs kommt ein Link: [[Hallo]] und er ist wieder weg ... ilink_test-02.wikitext000066400000000000000000000004531335270560400504640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextEs kommt ein Link: [[Hallo|Mit fettem Titel]] der ordentlich leaked... Es kommt ein kursiver Link: [[Hallo|aber der Titel ]][[Hallo| ist nur so halb-halb]] und vorbei ists. Es kommt ein kursiver Link: [[Hallo|mit voll kursivem Titel]] auch hier noch. Und vorbei ists. link-3.wikitext000066400000000000000000000000211335270560400471640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext[[File:X|Left:]] misnested-tags-12.2.8.1.wikitext000066400000000000000000000000421335270560400517060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext

    12345

    misnested-tags-12.2.8.2.wikitext000066400000000000000000000000331335270560400517070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext1

    23

    native_bold_and_italics.wikitext000066400000000000000000000001251335270560400527140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext''Italics'' '''Bold''' Jetzt wirds funky: '''What?'' ''What'''s up? '''''Boah''''' native_list-01.wikitext000066400000000000000000000000651335270560400506360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextList 1 * Item 1 * Item 2 List 2 # Item 1 # Item 2 native_list-02.wikitext000066400000000000000000000001721335270560400506360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextList 1 * normalbold * boldnormal List 2 # normalbold # bold bold normal native_list_and_html-01.wikitext000066400000000000000000000001121335270560400524750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextIGNORE THIS TEST The pretty printer if faulty and cannot handle this testnewlines-and-paragraphs-03.wikitext000066400000000000000000000000061335270560400530240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo only_text.wikitext000066400000000000000000000000141335270560400501160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt! redirect-colon.wikitext000066400000000000000000000000361335270560400510060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext#REDIRECT[[Wohin auch immer]] redirect.wikitext000066400000000000000000000000361335270560400476760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext#REDIRECT[[Wohin auch immer]] table-fostering.wikitext000066400000000000000000000001001335270560400511520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextfoo
    x y
    foo tables-and-sections-1.wikitext000066400000000000000000000000711335270560400520710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext
    ==S== B
    A tables-and-sections-2.wikitext000066400000000000000000000001011335270560400520640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext ==0==
    ==1== B
    A text_and_address.wikitext000066400000000000000000000000571335270560400514130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt!
    Test
    Tschüss! text_and_dt_dd.wikitext000066400000000000000000000000751335270560400510440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt!
    Some item
    Some item
    Tschüss! text_and_h1.wikitext000066400000000000000000000000521335270560400502710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt!

    A heading

    Tschüss! text_and_li.wikitext000066400000000000000000000000521335270560400503650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt!
  • Some item
  • Tschüss! text_and_nested_headings.wikitext000066400000000000000000000001111335270560400531010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo Welt!

    A

    An inner heading

    heading Tschüss! too_much_i_after_section.wikitext000066400000000000000000000000401335270560400531220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext == A B == C unclosed_formatting_elements-12.2.8.6.wikitext000066400000000000000000000004571335270560400547400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext

    X

    X

    X

    X

    unknown-elements.wikitext000066400000000000000000000001341335270560400514050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHello World
    Bye bye! unrecognized_link_title.wikitext000066400000000000000000000000701335270560400530050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitext[[file:Saxby Chambliss.jpg|225px|alt=|Saxby Chambliss]] wrong_nesting_of_fmt_and_li.wikitext000066400000000000000000000003061335270560400536200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHallo! Ich bin fett
  • Ich bin ein Item!
  • Ich sollte wieder dünn sein... Hallo!
  • Ich bin fett
  • Ich sollte noch fett sein Ich aber nicht mehr... xml_entity_and_char_refs.wikitext000066400000000000000000000000331335270560400531240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-tree/pretty-printer.wikitextHello World! A & O nopkg-warnings/000077500000000000000000000000001335270560400403165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesast/000077500000000000000000000000001335270560400411055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warningsblock-horizontal-rule.ast000066400000000000000000000011251335270560400460430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warnings/astWtParsedWikitextPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ WtParagraph([ WtText("\n--\n\n") ]) WtText( Properties: {N} content = "---" warnings = [Warning: This looks like a Horizontal Rule, however a horizontal rule consists of at least 4 dashes: "---"] ) WtParagraph([ WtText("\n\n") ]) WtHorizontalRule( Properties: {N} rtd = RTD[ "----" ] ) WtParagraph([ WtText("\n\n") ]) WtHorizontalRule( Properties: {N} rtd = RTD[ "-----" ] ) WtParagraph([ WtText("\n") ]) ] ) inline-external-link.ast000066400000000000000000000024471335270560400456560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warnings/astWtParsedWikitextPage( Properties: {N} entityMap = EntityMap {} {N} warnings = [] [ WtParagraph([ WtText( Properties: {N} content = "\n[" warnings = [Warning: This looks like a External Link, however the finishing `]' is missing: "[http://example.com"] ) WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) WtText(" Example\n\n") ]) WtParagraph([ WtText( Properties: {N} content = "[" warnings = [Warning: This looks like a External Link, however the finishing `]' is missing: "[http://example.com"] ) WtUrl( Properties: {N} path = "//example.com" {N} protocol = "http" {N} rtd = RTD[ "http://example.com" ] ) WtText("\n\n") ]) WtParagraph([ WtText( Properties: {N} content = "[http:\n\n" warnings = [Warning: This looks like a External Link, however the actual URL is missing: "["] ) ]) WtParagraph([ WtText( Properties: {N} content = "[\n" warnings = [Warning: This looks like a External Link, however the actual URL is missing: "["] ) ]) ] ) wikitext/000077500000000000000000000000001335270560400421665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warningsblock-horizontal-rule.wikitext000066400000000000000000000000261335270560400502040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warnings/wikitext -- --- ---- ----- inline-external-link.wikitext000066400000000000000000000000751335270560400500130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-warnings/wikitext [http://example.com Example [http://example.com [http: [ nopkg-xpath/000077500000000000000000000000001335270560400376125ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resourcesast/000077500000000000000000000000001335270560400404015ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpathraw-France.ast000066400000000000000000001004511335270560400431000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpath/ast-------------------------------------------------------------------------------- /WtParagraph[3] -------------------------------------------------------------------------------- WtParagraph[ [0] = "France is a ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "unitary state" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "unitary" ) ), [2] = " ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "semi-presidential system" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "semi-presidential" ) ), [4] = " ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "republic" ], title = - ), [6] = " with its main ideals expressed in the ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Declaration of the Rights of Man and of the Citizen" ], title = - ), [8] = ". France is one of the most ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "developed country" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "developed countries" ) ), [10] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web|url=http://hdr.undp.org/en/media/HDR_2009_EN_Complete.pdf |title=UNDP.org |format=PDF |date= |accessdate=27 April 2010}}") ), [11] = " and possesses the fifth largest economy by ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (nominal)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "nominal GDP" ) ), [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[https://www.cia.gov/library/publications/the-world-factbook/fields/2195.html Field listing \u2013 GDP (official exchange rate)], CIA World Factbook") ), [14] = " and seventh largest economy by ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by GDP (PPP)" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "purchasing power parity" ) ), [16] = ".", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web |url=https://www.cia.gov/library/publications/the-world-factbook/rankorder/2001rank.html |title=CIA \u2013 The World Factbook \u2013 Country Comparisons \u2013 GDP (purchasing power parity) |publisher=Cia.gov |date= |accessdate=26 April 2009}}") ), [18] = " France enjoys a ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "standard of living" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "high standard of living" ) ), [20] = " as well as a ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Education Index" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "high public education level" ) ), [22] = ", and has also one of the world's highest ", [23] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries by life expectancy" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "life expectancies" ) ), [24] = ".", [25] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "
    " ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web|url=http://www.un.org/esa/population/publications/wpp2006/WPP2006_Highlights_rev.pdf |title=Microsoft Word - WPP2006_Highlights_0823.doc |format=PDF |date= |accessdate=27 April 2010}}") ), [26] = " It is the most visited country in the world, receiving 82 million foreign tourists annually.", [27] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "tourism.stat" ] ) ], body = WtTagExtensionBody("{{fr}} {{cite web |publisher=Direction du Tourisme (French government's tourism agency) |url=http://www.tourisme.gouv.fr/fr/z2/stat/tis/att00018288/TIS_EVE2007_2008-5.pdf |archiveurl=http://web.archive.org/web/20080624195206/http://www.tourisme.gouv.fr/fr/z2/stat/tis/att00018288/TIS_EVE2007_2008-5.pdf |archivedate=2008-06-24 |title=Tourisme international en France en 2007 |accessdate=5 June 2008|format=PDF}}") ), [28] = " France is a founding member of the ", [29] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United Nations" ], title = - ), [30] = ", and a member of the ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Francophonie" ], title = - ), [32] = ", the ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G8" ], title = - ), [34] = ", ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "G-20 major economies" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "G20" ) ), [36] = ", ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "NATO" ], title = - ), [38] = ", ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "OECD" ], title = - ), [40] = ", ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "World Trade Organisation" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "WTO" ) ), [42] = ", and the ", [43] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Latin Union" ], title = - ), [44] = ". It is one of the five ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "United Nations Security Council#Permanent members" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "permanent members of the UN Security Council" ) ), [46] = " and possesses the third largest ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of countries with nuclear weapons" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "nuclear weapons stockpile" ) ), [48] = " in the world ", [49] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite web|url=http://www.fas.org/programs/ssp/nukes/nuclearweapons/nukestatus.html |title=Federation of American Scientists : Status of World Nuclear Forces |publisher=Fas.org |date=2010-05-26 |accessdate=2010-08-09}}") ), [50] = " with ~300 active warheads as of May 25 2010. In 2009, France was listed 8th on the ", [51] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Human Development Index" ], title = - ), [52] = " and 24th on the ", [53] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Corruption Perception Index" ], title = - ), [54] = "." ] ================================================================================ -------------------------------------------------------------------------------- (//WtSection[@level=3])[1] -------------------------------------------------------------------------------- WtSection( {P} level = 3 heading = WtHeading( {P} rtd = RTD[ "===" "===" ] [0] = " Rome to Revolution " ), body = WtBody[ [0] = "\n", [1] = WtParagraph[ [0] = "The borders of modern France are approximately the same as those of ancient ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Gaul" ], title = - ), [2] = ", which was inhabited by ", [3] = WtInternalLink( {P} postfix = "ic" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]ic" ] target = WtPageName[ [0] = "Celt" ], title = - ), [4] = " ", [5] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Gauls" ), [6] = ". Gaul was conquered by ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Roman Empire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Rome" ) ), [8] = " under ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Julius Caesar" ], title = - ), [10] = " in the 1st century BC,", [11] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[[Plutarch]] claimed that one million people (probably 1 in 4 of the [[Gauls]]) died, another million were enslaved, 300 tribes were subjugated and 800 cities were destroyed during the [[Gallic Wars]].") ), [12] = " and the Gauls eventually adopted ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Romance languages" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Roman" ) ), [14] = " speech (", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Latin" ], title = - ), [16] = ", from which the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French language" ], title = - ), [18] = " evolved) and Roman culture. ", [19] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "History of Christianity" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Christianity" ) ), [20] = " first appeared in the 2nd and 3rd centuries AD, and became so firmly established by the fourth and 5th centuries that ", [21] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. Jerome" ], title = - ), [22] = " wrote that Gaul was the only region \u201Cfree from heresy\u201D. " ], [2] = "\n\n", [3] = WtParagraph[], [4] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Map France 1477-fr.svg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "France after the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hundred Years War" ], title = - ), [2] = ". Red line: Boundary of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Kingdom of France" ], title = - ), [4] = "; Light blue: the directly held royal domain" ) ] ), [5] = "\nIn the 4th century AD, Gaul\u2019s eastern frontier along the ", [6] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Rhine" ], title = - ), [7] = " was overrun by ", [8] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Germanic peoples" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Germanic tribes" ) ), [9] = ", principally the ", [10] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Franks" ], title = - ), [11] = ", from whom the ancient name of \u201CFrancie\u201D was derived. The modern name \u201CFrance\u201D derives from the name of the feudal domain of the ", [12] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Capet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Capetian" ) ), [13] = " Kings of France around Paris. The Franks were the first tribe among the Germanic conquerors of Europe after the fall of the Roman Empire to convert to ", [14] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Catholic Church" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Catholic" ) ), [15] = " Christianity rather than ", [16] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Arianism" ], title = - ), [17] = " (their King ", [18] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Clovis I" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Clovis" ) ), [19] = " did so in 498); thus France obtained the title \u201CEldest daughter of the Church\u201D (", [20] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "La fille a\u00EEn\u00E9e de l\u2019\u00C9glise" ), [21] = "),", [22] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.wf-f.org/03-1-France.html Faith of the Eldest Daughter - Can France retain her Catholic heritage?] - [http://www.wf-f.org/ Women for Faith and Family]") ), [23] = " and the French would adopt this as justification for calling themselves \u201Cthe Most Christian Kingdom of France\u201D.\n\n", [24] = WtParagraph[], [25] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = RIGHT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = false {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Francois Dubois 001.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "right" {P} rtd = RTD[ "|right" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "The ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. Bartholomew's Day massacre" ], title = - ), [2] = " (1572) during the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French Wars of Religion" ], title = - ), [4] = "." ) ] ), [26] = "\n", [27] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = UNSPECIFIED {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Ingres, Napoleon on his Imperial throne.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [2] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Napoleon I" ], title = - ), [1] = ", ", [2] = WtItalics( {P} rtd = RTD[ "''" "''" ] [0] = "Empereur des Fran\u00E7ais" ), [3] = ", built a ", [4] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "First French Empire" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Great Empire" ) ), [5] = " across Europe." ) ] ), [28] = "\n", [29] = WtImageLink( {P} border = false {P} format = THUMBNAIL {P} hAlign = LEFT {P} height = -1 {P} rtd = RTD[ "[[" "" "]]" ] {P} upright = true {P} vAlign = MIDDLE {P} width = -1 target = WtPageName[ [0] = "File:Jeanne d Arc Orleanide.jpg" ], options = WtLinkOptions[ [0] = WtLinkOptionKeyword( {P} keyword = "thumb" {P} rtd = RTD[ "|thumb" ] ), [1] = WtLinkOptionKeyword( {P} keyword = "left" {P} rtd = RTD[ "|left" ] ), [2] = WtLinkOptionKeyword( {P} keyword = "upright" {P} rtd = RTD[ "|upright" ] ), [3] = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Jeanne d'Arc" ], title = - ), [1] = " by ", [2] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philippe-Alexandre Le Brun de Charmettes" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Le Brun de Charmettes" ) ), [3] = "." ) ] ), [30] = "\nExistence as a separate entity began with the ", [31] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Treaty of Verdun" ], title = - ), [32] = " (843), with the division of ", [33] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Charlemagne" ], title = - ), [34] = "'s ", [35] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carolingian Empire" ], title = - ), [36] = " into ", [37] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "East Francia" ], title = - ), [38] = ", ", [39] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Middle Francia" ], title = - ), [40] = " and ", [41] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "West Francia" ], title = - ), [42] = ". Western Francia approximated the area occupied by modern France and was the precursor to modern France.", [43] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://history.howstuffworks.com/european-history/treaty-of-verdun.htm Treaty of Verdun] - Howstuffworks") ), [44] = "\nThe ", [45] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Carolingian dynasty" ], title = - ), [46] = " ruled France until 987, when ", [47] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hugh Capet of France" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Hugh Capet" ) ), [48] = ", Duke of France and Count of Paris, was crowned ", [49] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "King of France" ], title = - ), [50] = ".", [51] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.historyworld.net/wrldhis/PlainTextHistories.asp?groupid=1008&HistoryID=ab03>rack=pthc History of France : The Capetian kings of France: AD 987-1328] - History World") ), [52] = " \n\n", [53] = WtParagraph[ [0] = "His descendants, the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Capet" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Direct Capetians" ) ), [2] = ", the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Valois" ], title = - ), [4] = " and the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "House of Bourbon" ], title = - ), [6] = ", progressively unified the country through a series of wars and dynastic inheritance into a ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "centralised kingdom" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Kingdom of France" ) ), [8] = ".\nThe ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Albigensian Crusade" ], title = - ), [10] = " was launched in 1209 to eliminate the heretical ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Cathars" ], title = - ), [12] = " of ", [13] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Occitania" ], title = - ), [14] = " (the southern area of modern-day France). In the end, both the Cathars and the independence of southern France were exterminated.", [15] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("{{cite news\n | title = Massacre of the Pure\n | url = http://www.time.com/time/magazine/article/0,9171,897752-2,00.html\n | newspaper = Time\n | location = New York\n | date = 28 April 1961\n }}") ), [16] = "\nIn 1066, the ", [17] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "William the Conqueror" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Duke of Normandy" ) ), [18] = " added King of England to his titles. Later Kings expanded their territory to cover over half of modern continental France, including most of the North, Centre and West of France." ], [54] = "\n\n", [55] = WtParagraph[ [0] = "The exact boundaries changed greatly with time, but French landholdings of the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "List of English monarchs" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "English Kings" ) ), [2] = " remained extensive for centuries. Strong French counterattacks, helped by English weakness during the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Wars of the Roses" ], title = - ), [4] = ", won back mainland territory until only ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Calais" ], title = - ), [6] = " remained. Under ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Mary I of England" ], title = - ), [8] = " this was lost to the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Spanish Netherlands" ], title = - ), [10] = "." ], [56] = "\n\n", [57] = WtParagraph[ [0] = "Charles IV (The Fair) died without an heir in 1328.", [1] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "guerard" ] ) ], body = WtTagExtensionBody("Albert Guerard, ''France: A Modern History'' ([[University of Michigan Press]]: Ann Arbor, 1959) pp. 100, 101.") ), [2] = " Under the rules of the ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Salic Law" ], title = - ), [4] = " adopted in 1316, the crown of France could not pass to a woman, nor could the line of kinship pass through the female line.", [5] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "guerard" ] ) ], body = - ), [6] = " Accordingly, the crown passed to the cousin of Charles, Philip of Valois, rather than through the female line to Charles' nephew, Edward, who would soon become Edward III of England. In the reign of ", [7] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Philip IV of France" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Philip of Valois" ) ), [8] = ", the French monarchy reached the height of its medieval power.", [9] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " "/>" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " "=\"" "\"" ] name = WtName[ [0] = "name" ], value = WtValue[ [0] = "guerard" ] ) ], body = - ), [10] = " However, Philip's seat on the throne was contested by Edward III of England and in 1337, on the eve of the first wave of the ", [11] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Black Death" ], title = - ), [12] = ",", [13] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[ [0] = WtXmlAttribute( {P} rtd = RTD[ " " " =" "" ] name = WtName[ [0] = "name" ], value = WtValue[] ), [1] = WtXmlAttribute( {P} rtd = RTD[ " " "" "" ] name = WtName[ [0] = "Encarta" ], value = - ) ], body = WtTagExtensionBody("[http://encarta.msn.com/text_761568934___117/France.html France VII. \u2014 History] Microsoft Encarta Online Encyclopedia 2009. [http://www.webcitation.org/5kwcLOXgw Archived] 31 October 2009.") ), [14] = " England and France went to war in what would become known as the ", [15] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Hundred Years' War" ], title = - ), [16] = ".", [17] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("Don O'Reilly. \"[http://www.historynet.com/magazines/military_history/3031536.html Hundred Years' War: Joan of Arc and the Siege of Orl\u00E9ans]\". ''TheHistoryNet.com''.") ) ], [58] = "\n\n", [59] = WtParagraph[ [0] = "In the most notorious incident during the ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French Wars of Religion" ], title = - ), [2] = " (1562\u201398), thousands of ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Huguenots" ], title = - ), [4] = " were murdered in the ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "St. Bartholomew's Day massacre" ], title = - ), [6] = " of 1572.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.britannica.com/EBchecked/topic/516821/Massacre-of-Saint-Bartholomews-Day Massacre of Saint Bartholomew\u2019s Day]. [[Encyclopaedia Britannica]].") ) ], [60] = "\n\n", [61] = WtParagraph[ [0] = "The monarchy reached its height during the 17th century and the reign of ", [1] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Louis XIV of France" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Louis XIV" ) ), [2] = ". At this time, France possessed the largest population in Europe (see ", [3] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Demographics of France" ], title = - ), [4] = ") and had tremendous influence over European politics, economy, and culture. Since the 18th century, ", [5] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "French language" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "French" ) ), [6] = " was the most used language in diplomacy, science, literature and international affairs, before English took the lead in the 20th century.", [7] = WtTagExtension( {P} name = "ref" {P} rtd = RTD[ " ">" "" ] xmlAttributes = WtXmlAttributes[], body = WtTagExtensionBody("[http://www.nakedtranslations.com/en/2004/language-and-diplomacy/ Language and Diplomacy] - Naked Translations") ), [8] = " Much of the ", [9] = WtInternalLink( {P} postfix = "" {P} prefix = "" {P} rtd = RTD[ "[[" "" "]]" ] target = WtPageName[ [0] = "Age of Enlightenment" ], title = WtLinkTitle( {P} rtd = RTD[ "|" "" ] [0] = "Enlightenment" ) ), [10] = " occurred in French intellectual circles, and major scientific breakthroughs were achieved by French scientists in the 18th century. In addition, France obtained many overseas possessions in the Americas, Africa and Asia." ], [62] = "\n\n" ] ) ================================================================================ -------------------------------------------------------------------------------- //WtTemplate[contains(name//WtText[@content],"Infobox Country")]//WtTemplateArgument[contains(name//WtText[@content],"capital")]/value -------------------------------------------------------------------------------- WtValue[ [0] = " [[Paris]]\n" ] ================================================================================ raw-Germany.ast000066400000000000000000000006351335270560400433070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpath/ast-------------------------------------------------------------------------------- //WtTemplate[contains(name//WtText[@content],"Infobox country")]//WtTemplateArgument[contains(name//WtText[@content],"capital")]/value -------------------------------------------------------------------------------- WtValue[ [0] = "[[Berlin]]\n" ] ================================================================================ wikitext/000077500000000000000000000000001335270560400414625ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpathNOTICE000066400000000000000000000012361335270560400423700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpath/wikitextThe articles in this directory are taken from the English Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 "France", Revision: 390256740 http://en.wikipedia.org/w/index.php?oldid=390256740 Expansion is done using the script bin/enwp-expand.php. raw-France.wikitext000066400000000000000000005413461335270560400452560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpath/wikitext{{pp-semi|small=yes}} {{About|the country}} {{Fix bunching|beg}} {{Infobox Country |native_name = ''République française''{{Spaces|2}}{{Fr icon}}The country's long name in its [[Languages of France|regional languages]] include: *{{lang-gsw|Französisch Republik}}; *{{lang-eu|Frantziako Errepublika}}; *{{lang-br|Republik C'hall}}; *{{lang-ca|República Francesa}}; *{{lang-co|Republica Francese}}; *{{lang-nl|Franse Republiek}}; *{{lang-vls|Fransche Republiek}}; *{{lang-frp|Rèpublica francêsa}}; *{{lang-de|Französische Republik}}; *[[Norman language|Norman]]: ''Républyique fraunceise''; *{{lang-oc|Republica Francesa}}; *[[Picard language|Picard]]: ''République franchoèse'' |conventional_long_name = French Republic |common_name = France |official_languages = [[French language|French]] |languages_type = Regional languages
    (both official
    and not official) |languages = {{Collapsible list|title={{nbsp}} |[[Alsatian language|Alsatian]]; [[Basque language|Basque]]; [[Breton language|Breton]]; [[New Caledonian languages]]{{Smallsup|2}}; [[Catalan language|Catalan]]; [[Corsican language|Corsican]]; [[Creole language|Creoles]]{{Smallsup|2}}; [[West Flemish language|Flemish]]; [[Franco-Provençal language|Franco-Provençal]]; [[Lorrain language]]; [[Shimaore dialect]] (Mayotte){{Smallsup|2}}; [[Occitan language|Occitan]]; [[Oïl languages]]; [[Tahitian language|Tahitian]]{{Smallsup|2}}{{fr}} {{cite web|author=Ministère de la culture et de la communication – Délégation générale à la langue française et aux langues de France |url=http://www.culture.gouv.fr/culture/dglf/lang-reg/methodes-apprentissage/1langreg.htm |title=DGLF – Langues régionales et " trans-régionales " de France |publisher=Culture.gouv.fr |date= |accessdate=27 January 2010}}}} |demonym = French |national_motto = ''[[Liberté, égalité, fraternité|Liberté, Égalité, Fraternité]]''
    (Liberty, Equality, Fraternity) |national_anthem = ''[[La Marseillaise]]'' |image_flag = Flag of France.svg |image_coat = Armoiries république française.svg |symbol_type = National Emblem (unofficial) |image_map = EU-France.svg |map_caption = {{map_caption |location_color=dark green |country='''[[Metropolitan France]]''' |region=Europe |region_color=dark grey |subregion = the European Union |subregion_color=green |legend=EU-France.svg}} |image_map2 = Outre-mer en sans Terre Adelie.png |map_caption2 =

    Territory of the '''French Republic''' in the world
    (excl. Antarctica where sovereignty is suspended)
    |ethnic_groups= ~85% [[French people|French]] (included ~15% people with at least one ancestor from other [[Genetic history of Europe|European]] countries),
    ~15% other ([[Arab people|Arab]], [[Berber people|Berber]], [[Black people in France|Black]], [[Asian people|Asian]], [[Multiracial]]...)| |capital = [[Paris]] |latd = 48 |latm = 51.4 |latNS = N |longd = 2 |longm = 21.05 |longEW = E |largest_city = capital |government_type = [[Unitary state|Unitary]] [[Semi-presidential system|semi-presidential]] [[republic]] |leader_title1 = [[President of France|President]] |leader_title2 = [[Prime Minister of France|Prime Minister]] |leader_name1 = [[Nicolas Sarkozy]] ([[Union for a popular movement|UMP]]) |leader_name2 = [[François Fillon]] ([[Union for a popular movement|UMP]]) |legislature = [[Parliament of France|Parliament]] |upper_house = [[Senate of France|Senate]] |lower_house = [[National Assembly of France|National Assembly]] |sovereignty_type = [[History of France|Formation]] |sovereignty_note = |established_event1 = Traditional date |established_event2 = Western Francia |established_event3 = [[Constitution of France|Current constitution]] |established_date1 = 496 (baptism of [[Clovis I|Clovis]]) |established_date2 = 10 August 843 ([[Treaty of Verdun]]) |established_date3 = 5 October 1958 ([[French Fifth Republic|5th Republic]]) |accessionEUdate = 25 March 1957 |EUseats = 78 |FR_metropole = [[Metropolitan France|Metropolitan France]] |FR_IGN_area_km2 = 551695 |FR_IGN_area_rank = 47th |FR_IGN_area_magnitude = 1 E11 |FR_cadastre_area_magnitude = 1 E11 |FR_IGN_area_sq_mi = 213010 |FR_cadastre_area_km2 = 543965 |FR_cadastre_area_rank = 47th |FR_cadastre_area_sq_mi = 210026 |area_km2 = 674843 |area_sq_mi = 260558 |area_rank = 43rd |area_magnitude = 1 E11 |FR_foot = Whole territory of the French Republic, including all the overseas departments and [[Overseas territory (France)|territories]], but excluding the French territory of Terre Adélie in Antarctica where sovereignty is suspended since the signing of the [[Antarctic Treaty]] in 1959. |FR_foot2 = {{fr}} French [[Institut Géographique National|National Geographic Institute]] data. |FR_foot3 = French [[Land Register]] data, which exclude lakes, ponds and [[glacier]]s larger than 1 km² (0.386 sq mi or 247 acres) as well as the estuaries of rivers. |FR_foot4 = |FR_foot5 = [[Metropolitan France]] only. |FR_total_population_estimate = 65,447,374 |FR_total_population_estimate_year = 1 January 2010 estimate |FR_total_population_estimate_rank = 20th |FR_metropole_population = 62,793,432{{fr}} {{cite web|url=http://www.insee.fr/fr/themes/detail.asp?reg_id=0&ref_id=bilan-demo&page=donnees-detaillees/bilan-demo/pop_age2.htm|title=Population totale par sexe et âge au 1er janvier 2010, France métropolitaine|first=[[Government of France]]|last=[[INSEE]]|accessdate=19 January 2010}} |FR_metropole_population_estimate_rank = 22nd |population_density_km2 = 115 |population_density_sq_mi = 299 |population_density_rank = 89th |GDP_nominal = $2.676 trillion |GDP_nominal_rank = |GDP_nominal_year = 2009 |GDP_nominal_per_capita = $42,747 |GDP_nominal_per_capita_rank = |GDP_PPP_year = 2009 |GDP_PPP = $2.108 trillion{{cite web|url=http://www.imf.org/external/pubs/ft/weo/2010/01/weodata/weorept.aspx?sy=2007&ey=2010&scsm=1&ssd=1&sort=country&ds=.&br=1&c=132&s=NGDPD%2CNGDPDPC%2CPPPGDP%2CPPPPC%2CLP&grp=0&a=&pr.x=22&pr.y=10 |title=France|publisher=International Monetary Fund|accessdate=21 April 2010}} |GDP_PPP_rank = |GDP_PPP_per_capita = $33,678 |GDP_PPP_per_capita_rank = |Gini = 32.7 |Gini_year = 2008 |HDI_year = 2007 |HDI = {{increase}} 0.961[http://hdr.undp.org/en/media/HDR_2009_EN_Complete.pdf Human Development Report 2009]. The United Nations. Retrieved 5 October 2009. |HDI_rank = 8th |HDI_category = very high |currency = [[Euro]],Whole of the French Republic except the overseas territories in the Pacific Ocean. [[CFP Franc]]French overseas territories in the Pacific Ocean only.
      |currency_code = EUR,{{Spaces|4}}XPF |time_zone = CET |utc_offset = +1 |time_zone_DST = CEST |utc_offset_DST = +2 |drives_on = right |cctld = [[.fr]]In addition to [[.fr]], several other Internet TLDs are used in French overseas ''départements'' and territories: [[.re]], [[.mq]], [[.gp]], [[.tf]], [[.nc]], [[.pf]], [[.wf]], [[.pm]], [[.gf]] and [[.yt]]. France also uses [[.eu]], shared with other members of the European Union. The [[.cat]] domain is used in [[Catalan Countries|Catalan-speaking territories]]. |calling_code = [[Telephone numbers in France|33]]{{Smallsup|1}} |ISO_3166-1_alpha2 = |ISO_3166-1_alpha3 = FRA |ISO_3166-1_numeric = |sport_code = FRA |vehicle_code = F |footnote1 = The overseas regions and collectivities form part of the [[French telephone numbering plan]], but have their own country calling codes: [[Guadeloupe]] +590; [[Martinique]] +596; [[French Guiana]] +594, [[Réunion]] and [[Mayotte]] +262; [[Saint Pierre et Miquelon]] +508. The overseas territories are not part of the French telephone numbering plan; their country calling codes are: [[New Caledonia]] +687, [[French Polynesia]] +689; [[Wallis and Futuna]] +681 |footnote2 = Spoken mainly in overseas territories }} '''France''' ({{IPAc-en|en-us-France.ogg|ˈ|f|r|æ|n|s}} {{respell|franss}} or {{IPAc-en|ˈ|f|r|ɑː|n|s}} {{respell|frahnss}}; {{Audio|france.ogg|French pronunciation}}: {{IPA-fr|fʁɑ̃s|}}), officially the '''French Republic''' ({{lang-fr|République française}}, {{IPA-fr|ʁepyblik fʁɑ̃sɛz|pron}}), is a [[sovereign state|state]] in [[Western Europe]] with several [[Overseas departments and territories of France|overseas territories and islands]] located on other [[continents]] and in the Indian, Pacific, and [[Atlantic Ocean|Atlantic]] oceans.For more information, see [[:Category:Overseas departments, collectivities and territories of France]]. [[Metropolitan France]] extends from the [[Mediterranean Sea]] to the [[English Channel]] and the [[North Sea]], and from the [[Rhine]] to the Atlantic Ocean. It is often referred to as ''L’Hexagone'' ("The [[Hexagon]]") because of the geometric shape of its territory. It is bordered (clockwise starting from the northeast) by [[Belgium]], [[Luxembourg]], [[Germany]], [[Switzerland]], [[Italy]] and [[Monaco]]; with [[Spain]] and [[Andorra]] to the south. France is linked to the [[United Kingdom]] by the [[Channel Tunnel]], which passes underneath the English Channel. France is a founding [[member state of the European Union]] and is the largest one by area. France has been a [[major power]] for [[History of France#Early Modern France (1453–1789)|several centuries]] with strong cultural, economic, military and political influence in Europe and in the world. During the 17th and 18th centuries, France colonised great parts of North America; during the 19th and early 20th centuries, France built the [[French colonial empire|second largest empire]] of the time, including large portions of [[North Africa|North]], [[West Africa|West]] and [[Central Africa]], [[Southeast Asia]], and many [[Pacific islands]]. France is a [[unitary state|unitary]] [[semi-presidential system|semi-presidential]] [[republic]] with its main ideals expressed in the [[Declaration of the Rights of Man and of the Citizen]]. France is one of the most [[developed country|developed countries]]{{cite web|url=http://hdr.undp.org/en/media/HDR_2009_EN_Complete.pdf |title=UNDP.org |format=PDF |date= |accessdate=27 April 2010}} and possesses the fifth largest economy by [[List of countries by GDP (nominal)|nominal GDP]][https://www.cia.gov/library/publications/the-world-factbook/fields/2195.html Field listing – GDP (official exchange rate)], CIA World Factbook and seventh largest economy by [[List of countries by GDP (PPP)|purchasing power parity]].{{cite web |url=https://www.cia.gov/library/publications/the-world-factbook/rankorder/2001rank.html |title=CIA – The World Factbook – Country Comparisons – GDP (purchasing power parity) |publisher=Cia.gov |date= |accessdate=26 April 2009}} France enjoys a [[standard of living|high standard of living]] as well as a [[Education Index|high public education level]], and has also one of the world's highest [[List of countries by life expectancy|life expectancies]].{{cite web|url=http://www.un.org/esa/population/publications/wpp2006/WPP2006_Highlights_rev.pdf |title=Microsoft Word - WPP2006_Highlights_0823.doc |format=PDF |date= |accessdate=27 April 2010}} It is the most visited country in the world, receiving 82 million foreign tourists annually.{{fr}} {{cite web |publisher=Direction du Tourisme (French government's tourism agency) |url=http://www.tourisme.gouv.fr/fr/z2/stat/tis/att00018288/TIS_EVE2007_2008-5.pdf |archiveurl=http://web.archive.org/web/20080624195206/http://www.tourisme.gouv.fr/fr/z2/stat/tis/att00018288/TIS_EVE2007_2008-5.pdf |archivedate=2008-06-24 |title=Tourisme international en France en 2007 |accessdate=5 June 2008|format=PDF}} France is a founding member of the [[United Nations]], and a member of the [[Francophonie]], the [[G8]], [[G-20 major economies|G20]], [[NATO]], [[OECD]], [[World Trade Organisation|WTO]], and the [[Latin Union]]. It is one of the five [[United Nations Security Council#Permanent members|permanent members of the UN Security Council]] and possesses the third largest [[List of countries with nuclear weapons|nuclear weapons stockpile]] in the world {{cite web|url=http://www.fas.org/programs/ssp/nukes/nuclearweapons/nukestatus.html |title=Federation of American Scientists : Status of World Nuclear Forces |publisher=Fas.org |date=2010-05-26 |accessdate=2010-08-09}} with ~300 active warheads as of May 25 2010. In 2009, France was listed 8th on the [[Human Development Index]] and 24th on the [[Corruption Perception Index]]. == Etymology == {{Main|Name of France}} {{See also|List of country name etymologies}} The word "Frank" had been loosely used from the fall of Rome to the Middle Ages, yet from [[Hugh Capet]]'s coronation as "King of the Franks" ("Rex Francorum") it became usual to strictly refer to the [[Kingdom of France|Kingdom of Francia]], which would become France. The [[House of Capet|Capetian Kings]] were descended from the [[Robertians|Robertines]], who had produced two Frankish kings, and previously held the title of "[[Duke of the Franks]]" ("dux Francorum"). [[Île-de-France (region)|This Frankish duchy]] encompassed most of modern [[Neustria|northern France]] but because the royal power was sapped by regional princes the term was then applied to the royal [[demesne]] as shorthand. It was finally the name adopted for the entire Kingdom as central power was affirmed over the entire kingdom.Elizabeth M. Hallam & Judith Everard – Capetian France 937–1328, chapter 1 "The origins of Western Francia" page 7: "What did the name Francia mean in the tenth and eleventh centuries? It still retained a wide general use; both Byzantine and western writers at the time of the crusades described the western forces as Franks. But it was also taking on more specific meanings. From 911 onwards the west Frankish king was known as the ''Rex Francorum'' -king of the Franks- and the name Francia could be used to describe his kingdom, as it was also used by the east Frankish, or German, kingdom... The Robertines, forerunners of the Capetians, were ''duces francorum'', dukes of the Franks, and their 'duchy' covered in theory most of northern France. Then as royal power contracted further, leaving the early Capetians only a small bloc of lands around Paris and Orleans, the term Francia was used for this region." The name "France" itself comes from [[Latin]] ''Francia'', which literally means "land of the [[Franks]]," or "country of the Franks".[http://www.discoverfrance.net/France/History/DF_history.shtml History of France] on DiscoverFrance There are various theories as to the origin of the name of the Franks. One is that it is derived from the [[Proto-Germanic language|Proto-Germanic]] word ''frankon'' which translates as ''javelin'' or ''lance'' as the throwing axe of the Franks was known as a [[francisca]].{{cite book |last2=Blair |first2=Claude |last1=Tarassuk |first1=Leonid |url=http://books.google.com/?id=UJbyPwAACAAJ&dq=The+Complete+Encyclopedia+of+Arms+and+Weapons&cd=1 |year=1982 |title=The Complete Encyclopedia of Arms and Weapons: the most comprehensive reference work ever published on arms and armor from prehistoric times to the present with over 1,250 illustrations |page=186 |publisher=[[Simon & Schuster]] |isbn=067142257X}} Another proposed etymology is that in an ancient [[Germanic languages|Germanic language]], Frank means ''free'' as opposed to [[slave]]. This usage still survives in the name of the national currency prior to the adoption of the [[euro]], the [[French franc|franc]]. However, it is also possible that the word is derived from the ethnic name of the Franks,{{Cite paper |last1=Reisman |first1=Arnold |last2=Saha |first2=P.K. |authorlink1=Arnold Reisman |title=French as Lingua Franca: An Asset or Liability in the Development of Nations?{{ndash}} page 2 |url=http://papers.ssrn.com/sol3/papers.cfm?abstract_id=690221 |format=PDF |date=21 March 2005 |publisher=Social Science Research Network (SSRN) |accessdate=7 March 2010 |postscript={{ndash}} '''click on "One-Click Download"'''}} because as the conquering class only the Franks had the status of freemen. In German (and other Germanic language, such as Scandinavian languages and Dutch), France is still called "[[Frankish Realm|Realm of the Franks]]" (''Frankreich'', ''Frankrike'', ''Frankrige''). In order to distinguish from the Frankish Empire of [[Charlemagne]], Modern France is called ''Frankreich'' in German, while the Frankish Realm is called ''Frankenreich''. In some languages, such as [[Greek language|Greek]], France is still known as ''Gaul''. == History == {{Main|History of France|Economic history of France|Territorial formation of France}} {{See also|France in the Middle Ages|Absolute monarchy in France|Ancien Regime|Early Modern France|List of French monarchs}} === Rome to Revolution === The borders of modern France are approximately the same as those of ancient [[Gaul]], which was inhabited by [[Celt]]ic ''Gauls''. Gaul was conquered by [[Roman Empire|Rome]] under [[Julius Caesar]] in the 1st century BC,[[Plutarch]] claimed that one million people (probably 1 in 4 of the [[Gauls]]) died, another million were enslaved, 300 tribes were subjugated and 800 cities were destroyed during the [[Gallic Wars]]. and the Gauls eventually adopted [[Romance languages|Roman]] speech ([[Latin]], from which the [[French language]] evolved) and Roman culture. [[History of Christianity|Christianity]] first appeared in the 2nd and 3rd centuries AD, and became so firmly established by the fourth and 5th centuries that [[St. Jerome]] wrote that Gaul was the only region “free from heresy”. [[File:Map France 1477-fr.svg|thumb|left|France after the [[Hundred Years War]]. Red line: Boundary of the [[Kingdom of France]]; Light blue: the directly held royal domain]] In the 4th century AD, Gaul’s eastern frontier along the [[Rhine]] was overrun by [[Germanic peoples|Germanic tribes]], principally the [[Franks]], from whom the ancient name of “Francie” was derived. The modern name “France” derives from the name of the feudal domain of the [[House of Capet|Capetian]] Kings of France around Paris. The Franks were the first tribe among the Germanic conquerors of Europe after the fall of the Roman Empire to convert to [[Catholic Church|Catholic]] Christianity rather than [[Arianism]] (their King [[Clovis I|Clovis]] did so in 498); thus France obtained the title “Eldest daughter of the Church” (''La fille aînée de l’Église''),[http://www.wf-f.org/03-1-France.html Faith of the Eldest Daughter - Can France retain her Catholic heritage?] - [http://www.wf-f.org/ Women for Faith and Family] and the French would adopt this as justification for calling themselves “the Most Christian Kingdom of France”. [[File:Francois Dubois 001.jpg|right|thumb|The [[St. Bartholomew's Day massacre]] (1572) during the [[French Wars of Religion]].]] [[File:Ingres, Napoleon on his Imperial throne.jpg|thumb|upright|[[Napoleon I]], ''Empereur des Français'', built a [[First French Empire|Great Empire]] across Europe.]] [[File:Jeanne d Arc Orleanide.jpg|thumb|left|upright|[[Jeanne d'Arc]] by [[Philippe-Alexandre Le Brun de Charmettes|Le Brun de Charmettes]].]] Existence as a separate entity began with the [[Treaty of Verdun]] (843), with the division of [[Charlemagne]]'s [[Carolingian Empire]] into [[East Francia]], [[Middle Francia]] and [[West Francia]]. Western Francia approximated the area occupied by modern France and was the precursor to modern France.[http://history.howstuffworks.com/european-history/treaty-of-verdun.htm Treaty of Verdun] - Howstuffworks The [[Carolingian dynasty]] ruled France until 987, when [[Hugh Capet of France|Hugh Capet]], Duke of France and Count of Paris, was crowned [[King of France]].[http://www.historyworld.net/wrldhis/PlainTextHistories.asp?groupid=1008&HistoryID=ab03>rack=pthc History of France : The Capetian kings of France: AD 987-1328] - History World His descendants, the [[House of Capet|Direct Capetians]], the [[House of Valois]] and the [[House of Bourbon]], progressively unified the country through a series of wars and dynastic inheritance into a [[centralised kingdom|Kingdom of France]]. The [[Albigensian Crusade]] was launched in 1209 to eliminate the heretical [[Cathars]] of [[Occitania]] (the southern area of modern-day France). In the end, both the Cathars and the independence of southern France were exterminated.{{cite news | title = Massacre of the Pure | url = http://www.time.com/time/magazine/article/0,9171,897752-2,00.html | newspaper = Time | location = New York | date = 28 April 1961 }} In 1066, the [[William the Conqueror|Duke of Normandy]] added King of England to his titles. Later Kings expanded their territory to cover over half of modern continental France, including most of the North, Centre and West of France. The exact boundaries changed greatly with time, but French landholdings of the [[List of English monarchs|English Kings]] remained extensive for centuries. Strong French counterattacks, helped by English weakness during the [[Wars of the Roses]], won back mainland territory until only [[Calais]] remained. Under [[Mary I of England]] this was lost to the [[Spanish Netherlands]]. Charles IV (The Fair) died without an heir in 1328.Albert Guerard, ''France: A Modern History'' ([[University of Michigan Press]]: Ann Arbor, 1959) pp. 100, 101. Under the rules of the [[Salic Law]] adopted in 1316, the crown of France could not pass to a woman, nor could the line of kinship pass through the female line. Accordingly, the crown passed to the cousin of Charles, Philip of Valois, rather than through the female line to Charles' nephew, Edward, who would soon become Edward III of England. In the reign of [[Philip IV of France|Philip of Valois]], the French monarchy reached the height of its medieval power. However, Philip's seat on the throne was contested by Edward III of England and in 1337, on the eve of the first wave of the [[Black Death]],[http://encarta.msn.com/text_761568934___117/France.html France VII. — History] Microsoft Encarta Online Encyclopedia 2009. [http://www.webcitation.org/5kwcLOXgw Archived] 31 October 2009. England and France went to war in what would become known as the [[Hundred Years' War]].Don O'Reilly. "[http://www.historynet.com/magazines/military_history/3031536.html Hundred Years' War: Joan of Arc and the Siege of Orléans]". ''TheHistoryNet.com''. In the most notorious incident during the [[French Wars of Religion]] (1562–98), thousands of [[Huguenots]] were murdered in the [[St. Bartholomew's Day massacre]] of 1572.[http://www.britannica.com/EBchecked/topic/516821/Massacre-of-Saint-Bartholomews-Day Massacre of Saint Bartholomew’s Day]. [[Encyclopaedia Britannica]]. The monarchy reached its height during the 17th century and the reign of [[Louis XIV of France|Louis XIV]]. At this time, France possessed the largest population in Europe (see [[Demographics of France]]) and had tremendous influence over European politics, economy, and culture. Since the 18th century, [[French language|French]] was the most used language in diplomacy, science, literature and international affairs, before English took the lead in the 20th century.[http://www.nakedtranslations.com/en/2004/language-and-diplomacy/ Language and Diplomacy] - Naked Translations Much of the [[Age of Enlightenment|Enlightenment]] occurred in French intellectual circles, and major scientific breakthroughs were achieved by French scientists in the 18th century. In addition, France obtained many overseas possessions in the Americas, Africa and Asia. === Monarchy to Republic === {{Main|France in the nineteenth century|France in the twentieth century}} {{See also|French Revolution|Napoleonic era|French colonial Empire}} [[File:Prise de la Bastille.jpg|thumb|[[Storming of the Bastille]] on 14 July 1789]] The monarchy ruled France until the [[French Revolution]]. It did not fall immediately after the [[storming of the Bastille]] on 14 July 1789, but endured until the creation of the [[French First Republic|First Republic]] in September 1792. [[Louis XVI of France|Louis XVI]] and his wife, [[Marie Antoinette]], were executed (in 1793), along with thousands of other French citizens during the [[Reign of Terror]]. A guerrilla war and [[counterrevolution]], known as the [[Revolt in the Vendée]], cost more than 100,000 lives before it was crushed in 1796.{{cite news | title = Vive la Contre-Révolution! | first = Alice | last = Furlaud | url = http://www.nytimes.com/1989/07/09/travel/vive-la-contre-revolution.html?sec=travel | newspaper = The New York Times | date = 9 July 1989 }} After a series of short-lived governmental schemes, [[Napoleon I|Napoleon Bonaparte]] seized control of the Republic in 1799, making himself [[First Consul]], and later [[Emperor]] of the [[First French Empire|First Empire]] (1804–1814). In the course of [[Napoleonic Wars|several wars]], his armies conquered most of continental Europe, with members of the [[Bonaparte]] family being appointed as monarchs of newly established kingdoms. About a million Frenchmen died during the [[Napoleonic wars]].{{cite news | title = Napoleon and German identity | first = Tim | last = Blanning | url = http://www.questia.com/googleScholar.qst?docId=5001329960 | newspaper = History Today | location = London | date = April 1998 | volume = 48 }} Following Napoleon's final defeat in 1815 at the [[Battle of Waterloo]], the monarchy was [[Bourbon Restoration|re-established]] (1814–1830), but with new constitutional limitations. In 1830, a [[July Revolution|civil uprising]] established the [[constitutional monarchy|constitutional]] [[July Monarchy]], which lasted until 1848. The short-lived [[French Second Republic|Second Republic]] ended in 1852 when [[Napoleon III of France|Louis-Napoléon Bonaparte]] proclaimed the [[Second French Empire|Second Empire]]. Louis-Napoléon was unseated following defeat in the [[Franco-Prussian War|Franco-Prussian war]] of 1870 and his regime was replaced by the [[French Third Republic|Third Republic]]. France had [[French colonial empire|colonial possessions]], in various forms, since the beginning of the 17th century until the 1960s. In the 19th and 20th centuries, its [[global Empire|global]] overseas colonial empire was the second largest in the world behind the [[British Empire]]. At its peak, between 1919 and 1939, the second French colonial empire extended over 12,347,000 square kilometres (4,767,000 sq mi) of land. Including [[metropolitan France]], the total area of land under French [[sovereignty]] reached 12,898,000 square kilometres (4,980,000 sq mi) in the 1920s and 1930s, which is 8.6% of the world's land area. [[File:Eur.fr.100.gif|thumb|France issued the single European currency, the [[euro]], in 2002, together with 16 other EU member states it forms the [[Eurozone]]. Here is shown a [[French euro coins|French side of a one euro coin]].]] A small part of Northern France was occupied during [[World War I]]. The human and material losses in the first war, which left 1.4 million French soldiers dead,{{cite news | title = France's oldest WWI veteran dies | url = http://news.bbc.co.uk/2/hi/europe/7199127.stm | work = BBC News Online | location = London | date = 20 January 2008 }} exceeded those of the second where 567,600 French died. The interbellum phase was marked by a variety of social reforms introduced by the Popular Front government. Following the [[Nazi Germany|German]] ''[[Blitzkrieg]]'' campaign in World War II [[metropolitan France]] was divided in an [[German occupation of France during World War II|occupation zone in the north]] and [[Vichy France]], a newly established authoritarian regime collaborating with Germany, in the south. The [[French Fourth Republic|Fourth Republic]] was established after World War II and, despite spectacular economic growth (''les [[Trente Glorieuses]]''), it struggled to maintain its political status as a dominant [[Nation-state|nation state]]. France attempted to hold on to its [[colonial empires|colonial empire]], but soon ran into trouble. The half-hearted 1946 attempt at regaining control of [[French Indochina]] resulted in the [[First Indochina War]], which ended in French defeat at the [[Battle of Dien Bien Phu]] in 1954. Only months later, France faced a new [[Algerian War|conflict in Algeria]]. The debate over whether or not to keep control of [[French Algeria|Algeria]], then home to over one million [[Pied-noir|European settlers]],{{cite news | title = In France, a War of Memories Over Memories of War | first = Michael | last = Kimmelman | url = http://www.nytimes.com/2009/03/05/arts/design/05abroad.html?_r=1 | newspaper = The New York Times | date = 4 March 2009 }} wracked the country and nearly led to civil war. In 1958, the weak and unstable Fourth Republic gave way to the [[Fifth French Republic|Fifth Republic]], which contained a strengthened Presidency.[http://seacoast.sunderland.ac.uk/~os0tmc/contem/fifth.htm From Fourth to Fifth Republic] - [[University of Sunderland]] In the latter role, [[Charles de Gaulle]] managed to keep the country together while taking steps to end the war. The Algerian War was concluded with [[Évian Accords|peace negotiations]] in 1962 that led to Algerian independence. France has been at the forefront of the European Union member states seeking to exploit the momentum of monetary union to create a more unified and capable European Union political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defense and Security Council] - Elysee.fr May 13, 2004 The French electorate voted against ratification of the [[Treaty establishing a Constitution for Europe|European Constitutional Treaty]] in May 2005,[http://www.telegraph.co.uk/news/uknews/1560765/EU-constitution-timeline.html Eu constitution timeline] - The Daily Telegraph but the successor [[Treaty of Lisbon]] was ratified by Parliament in February 2008.[http://www.france24.com/en/20080208-french-parliament-adopts-lisbon-treaty-france-eu French parliament adopts Lisbon treaty] - [[France 24]] == Geography == [[File:Satellite image of France in August 2002.jpg|thumb|right|Satellite image of France]] {{Main|Geography of France}} {{See also|Outline of France}} While [[Metropolitan France]] is located in [[Western Europe]], France also has [[Overseas departments and territories of France|a number of territories]] in North America, the [[Caribbean]], South America, the southern Indian Ocean, the Pacific Ocean, and Antarctica.Sovereignty claims in Antarctica are governed by the [[Antarctic Treaty System]] These territories have varying forms of government ranging from [[overseas department]] to [[overseas collectivity]]. France's overseas departments and collectivities share land borders with [[Brazil]], and [[Suriname]] (bordering [[French Guiana]]), and the [[Netherlands Antilles]] (bordering [[Saint-Martin]]). Metropolitan France covers {{convert|547030|km2|sqmi|0|lk=on}}, having the largest area among European Union members.[http://europa.eu/abc/european_countries/eu_members/france/index_en.htm France] on [http://europa.eu/index_en.htm Europa Official Site] France possesses a wide variety of landscapes, from coastal plains in the north and west to mountain ranges of the [[Alps]] in the south-east, the [[Massif Central]] in the south-central and [[Pyrenees]] in the south-west. At {{convert|4810.45|m|ft|0}}{{cite news|url=http://www.smh.com.au/environment/mont-blanc-shrinks-by-45cm-in-two-years-20091106-i0kk.html |title=Mont Blanc shrinks by 45cm in two years |publisher=Smh.com.au |date=2009-11-06 |accessdate=2010-08-09}} above sea level, the highest point in Western Europe, [[Mont Blanc]], is situated in the [[Alps]] on the border between France and Italy. Metropolitan France also has extensive river systems such as the [[Seine]], the [[Loire River|Loire]], the [[Garonne]], and the [[Rhône River|Rhône]], which divides the Massif Central from the Alps and flows into the Mediterranean Sea at the [[Camargue]]. Corsica lies off the Mediterranean coast. [[File:EEZ France.png|thumb|left|250px|The Exclusive Economic Zone of France extends over {{convert|11000000|km2|sqmi|sigfig=2|abbr=on}} of ocean across the world.[http://www.spiegel.de/international/world/0,1518,551807,00.html France Eyes Massive Expansion of its Oceans] - Spiegel]] [[File:France cities.png|thumb|Metropolitan French cities with over 100,000 inhabitants]]Metropolitan France is situated between [[41st parallel north|41°]] and [[51st parallel north|51° North]], on the western edge of Europe, and thus lies within the [[northern temperate zone]] France's total land area, with its overseas departments and territories (excluding [[Adélie Land]]), is {{convert|674843|km2|sqmi|0|abbr=on}}, 0.45% of the total land area on Earth. However, France possesses the second-largest [[Exclusive Economic Zone]] (EEZ) in the world,{{fr}} [http://www.developpementdurable.com/economie/2010/07/A2769/mediterranee-la-france-prend-le-controle-en-creant-une-zone-economique-exclusive.html Méditerranée : la France prend le contrôle en créant une zone économique exclusive] covering {{convert|11035000|km2|sqmi|0|abbr=on}}, approximately 8% of the total surface of all the EEZs of the world, just behind the United States ({{convert|11351000|km2|sqmi|0|abbr=on|disp=s}}) and ahead of Australia ({{convert|8232000|km2|sqmi|0|abbr=on|disp=s}}).According to a different calculation cited by the [http://pewresearch.org/ Pew Research Center], the EEZ of France would be {{convert|10084201|km2|sqmi|0|abbr=on}}, still behind the United States ({{convert|12174629|km2|sqmi|0|abbr=on|disp=s}}), and still ahead of Australia ({{convert|8980568|km2|sqmi|0|abbr=on|disp=s}}) and Russia ({{convert|7566673|km2|sqmi|0|abbr=on|disp=s}}). The north and northwest have a temperate climate, while a combination of maritime influences, [[latitude]] and [[altitude]] produce a varied climate in the rest of Metropolitan France.{{cite web |author=[[Minister of Foreign Affairs (France)|Ministry of Foreign Affairs]] |year=2005 |url=http://www.diplomatie.gouv.fr/en/france_159/discovering-france_2005/france-from-to-z_1978/country_2004/geography_4405/geography_1507.html |title=Discovering France: Geography |accessdate=29 December 2006}} In the south-east a [[Mediterranean climate]] prevails. In the west, the climate is predominantly [[oceanic climate|oceanic]] with a high level of rainfall, mild winters and cool to warm summers. Inland the climate becomes more [[continental climate|continental]] with hot, stormy summers, colder winters and less rain. The [[climate of the Alps]] and other mountainous regions is mainly [[alpine climate|alpine]], with the number of days with temperatures below freezing over 150 per year and snow cover lasting for up to six months. == Environment == [[File:Pointe du van.jpg|thumb|The [[pointe du Van]], located in western [[Brittany (administrative region)|Brittany]]]] {{See also|Ministry of Ecology, Energy, Sustainable Development and Sea|National parks of France|Regional natural parks of France}} France was one of the first countries to create a Ministry of the Environment, in 1971.[http://www.ambafrance-ca.org/kid/pages_en/eco6.htm Protection of the Environment] on the [http://www.ambafrance-ca.org/spip.php?rubrique2 Official Site of the French Ambassy in Canada] Although France is one of the most industrialised and developed countries, it is ranked [[List of countries by carbon dioxide emissions|only seventeenth]] by carbon dioxide emissions, behind such less populous nations as [[Canada]], [[Saudi Arabia]] or [[Australia]]. This situation results from the French government's decision to invest in [[nuclear power]] in 1974 (after the [[1973 oil crisis]][http://www.world-nuclear.org/info/inf40.html Nuclear Power in France] - World Nuclear Association), which now accounts for 78% of France's energy production[http://www.eoearth.org/article/Energy_profile_of_France Energy profile of France] - The encyclopedia of Earth and explains why France pollutes less than comparable countries.{{fr}} [http://www.usinenouvelle.com/article/co2-la-france-moins-pollueuse-grace-au-nucleaire.N133933 CO2 : la France mois pollueuse grâce au nucléaire]{{fr}} [http://www.ambafrance-cn.org/L-energie-nucleaire-en-France.html L'énergie nucléaire en France] - Ambassade française en Chine Like all European Union members, France agreed to cut carbon emissions by at least 20% of 1990 levels by the year 2020,[http://www.guardian.co.uk/environment/2007/feb/21/climatechange.climatechangeenvironment EU promises 20% reduction in carbon emissions by 2020] - The Guardian in comparison the USA agreed to a fall of 4% of its emissions{{fr}} [http://www.la-croix.com/Les-quatre-enjeux-de-Copenhague/article/2404715/56150 Les quatres enjeux de Copenhague] - [[La Croix]] whereas China stated it wanted to "reduce its carbon intensity by 40-45% by the year 2020" (compared with 2005 levels),[http://news.bbc.co.uk/2/hi/8380106.stm China unveils emissions targetsahead of Copenhagen] - BBC which means with a GDP growth of 8% yearly an augmentation of 80% to 250%[http://www.wri.org/stories/2007/04/chinas-carbon-intensity-target China's Carbon Intensity Target] - World ressources Institute of the Chinese carbon emissions by 2020. In 2009, the French carbon dioxide emissions per capita level is lower than the Chinese one.[http://green.blogs.nytimes.com/2010/07/01/emissions-soar-in-china-and-india/ Per-Capita Emissions Rising in China] - The New York Times France was even set to impose a [[carbon tax]] in 2009 at 17 Euros per tonne of carbon dioxide emitted.[http://www.nytimes.com/2009/09/11/business/global/11carbon.html France Sets Carbon Tax at 17 Euros a Ton] - The NY Times The carbon tax would have brought in 4.3 billion Euros of revenue per year.[http://news.bbc.co.uk/2/hi/europe/8248392.stm France set to impose carbon tax] - BBC NEWS However, 6 months later, the plan for a carbon tax was abandoned for various reasons, one being that French companies would have a more difficult time competing with companies in neighboring countries who would not have to pay such steep taxes on carbon dioxide emissions. Instituting a carbon tax was also an unpopular political move for President Sarkozy.[http://www.nytimes.com/2010/03/24/business/global/24iht-carbon.html France Abandons Plan for Carbon Tax] - The NY Times In 2010, a study at [[Yale]] and [[Columbia university|Columbia]] universities ranked France the most environmentally conscious nation of the [[G20]].{{cite web|url=http://epi.yale.edu/Countries/France |title=Environmental Performance Index : France |publisher=Epi.yale.edu |date= |accessdate=2010-08-09}}{{fr}} [http://www.lemonde.fr/planete/article/2010/05/29/la-france-au-7e-rang-mondial-pour-l-environnement_1364896_3244.html La France au 7ème rang mondial pour l'environnement] - [[Le Monde]] Forests account for 28,27% of the land area of France,{{cite web|url=http://www.nationmaster.com/red/graph/env_for_are_of_lan_are-environment-forest-area-of-land&date=2005&b_map=1 |title=Forest area by country |publisher=Nationmaster.com |date= |accessdate=2010-08-09}}.[http://www.ifn.fr/spip/?rubrique83&lang=en Evolution of the French forest from 1984 to 1996] - French National Forest Inventory France is the second most wooded country of the EU.{{fr}} [http://www.delegfrance-onu-geneve.org/spip.php?article59 Economie de la France - Mission permanente de la France auprès de l'office des Nations Unies à Genève] French forests are also ones of the most diversified of Europe, with more than 140 differents varieties of trees.{{fr}} [http://www.lepapier.fr/foret_france.htm Une situation privilégiée en France et en Europe] - Papier, bois et forêt There are 9 [[national parks]][http://www.parks.it/world/FR/Eindex.html Parks, Reserves, and Other Protected Areas in France] - [http://www.parks.it/indice/Epremessa.html The portal about parks in Italy] and 46 [[natural park]]s in France.{{fr}} [http://www.parcs-naturels-regionaux.tm.fr/fr/accueil/ Fédération des parcs naturels régionaux de France] France wants to convert 20% of its [[Exclusive Economic Zone]] in a [[Marine Protected Area]] by 2020.{{fr}} [http://www.actu-environnement.com/ae/news/mer_grenelle_zee_meditarrane_borloo_aire_marine_8120.php4 La France veut créer une Zone Économique Exclusive en Méditérannée] - Actu-Environnement == Administrative divisions == [[Image:Toulouse Capitole Night Wikimedia Commons.jpg|thumb|The [[Place du Capitole]] in [[Toulouse]] ([[Haute-Garonne]]) in the [[Midi-Pyrénées]] region]] {{Main|Administrative divisions of France|Regions of France|Departments of France}} {{See also|Aire urbaine|List of communes in France with over 20,000 inhabitants (1999 census)}} France is divided into 26 administrative [[Regions of France|regions]]. 22 are in [[metropolitan France]] (21 are on the continental part of metropolitan France; one is the territorial collectivity of [[Corsica]]), and four are [[overseas region]]s. The regions are further subdivided into 100 [[Departments of France|departments]][http://www.myfrenchproperty.com/departments/departments.php Departments of France] - My French Property which are numbered (mainly alphabetically). This number is used in postal codes and vehicle number plates amongst others. The 100 departments are subdivided into 341 [[Arrondissements of France|arrondissements]] which are, in turn, subdivided into 4,032 [[Cantons of France|cantons]]. These cantons are then divided into 36,680 [[Communes of France|communes]], which are municipalities with an elected municipal council. There also exist 2,588 [[Communes in France#Intercommunality|intercommunal]] entities grouping 33,414 of the 36,680 communes (i.e. 91.1% of all the communes). Three communes, Paris, Lyon and Marseille are also subdivided into 45 [[Municipal arrondissements of France|municipal arrondissements]]. The regions, departments and communes are all known as [[territorial collectivity|territorial collectivities]], meaning they possess local assemblies as well as an executive. Arrondissements and cantons are merely administrative divisions. However, this was not always the case. Until 1940, the arrondissements were also territorial collectivities with an elected assembly, but these were suspended by the [[Vichy France|Vichy regime]] and definitely abolished by the [[French Fourth Republic|Fourth Republic]] in 1946. Historically, the cantons were also territorial collectivities with their elected assemblies. === Metropolitan regions and departments === [[File:France departements regions narrow.jpg|thumb|The 22 [[regions of France|regions]] and 96 [[departments of France|departments]] of [[metropolitan France]] includes [[Corsica]] (''Corse'', lower right). Paris area is expanded (inset at left)]] {| class="wikitable" style="font-size:90%;" |- ! Region ! Departments |- | {{Flag|Alsace}} | [[Bas-Rhin]], [[Haut-Rhin]] |- | {{Flag|Aquitaine}} | [[Dordogne]], [[Gironde]], [[Landes (department)|Landes]], [[Lot-et-Garonne]], [[Pyrénées-Atlantiques]] |- | {{Flag|Auvergne}} | [[Allier]], [[Cantal]], [[Haute-Loire]], [[Puy-de-Dôme]] |- | {{Flag|Basse-Normandie}} | [[Calvados]], [[Manche]], [[Orne]] |- | {{Flag|Bourgogne}} | [[Côte-d'Or]], [[Nièvre]], [[Saône-et-Loire]], [[Yonne]] |- | {{Flag|Brittany}} | [[Côtes-d'Armor]], [[Finistère]], [[Ille-et-Vilaine]], [[Morbihan]] |- | {{Flag|Centre}} | [[Cher (department)|Cher]], [[Eure-et-Loir]], [[Indre]], [[Indre-et-Loire]], [[Loiret]], [[Loir-et-Cher]] |- | {{Flag|Champagne-Ardenne}} | [[Ardennes (department)|Ardennes]], [[Aube]], [[Haute-Marne]], [[Marne]] |- | {{Flag|Corsica}} (''Corse'') | [[Corse-du-Sud]], [[Haute-Corse]] |- | {{Flag|Franche-Comté}} | [[Doubs]], [[Haute-Saône]], [[Jura (department)|Jura]], [[Territoire de Belfort]] |- | {{Flag|Haute-Normandie}} | [[Eure]], [[Seine-Maritime]] |- | {{Flag|Île-de-France}} | [[Essonne]], [[Hauts-de-Seine]], Paris, [[Seine-et-Marne]], [[Seine-Saint-Denis]], [[Val-de-Marne]], [[Val-d'Oise]], [[Yvelines]] |- | {{Flag|Languedoc-Roussillon}} | [[Aude]], [[Gard]], [[Hérault]], [[Lozère]], [[Pyrénées-Orientales]] |- | {{Flag|Limousin}} | [[Corrèze]], [[Creuse]], [[Haute-Vienne]] |- | {{Flag|Lorraine}} | [[Meurthe-et-Moselle]], [[Meuse]], [[Moselle]], [[Vosges]] |- | {{Flag|Midi-Pyrénées}} | [[Ariège]], [[Aveyron]], [[Gers]], [[Haute-Garonne]], [[Hautes-Pyrénées]], [[Lot (department)|Lot]], [[Tarn (department)|Tarn]], [[Tarn-et-Garonne]] |- | {{Flag|Nord-Pas-de-Calais}} | [[Nord (department)|Nord]], [[Pas-de-Calais]] |- | {{Flag|Pays de la Loire}} | [[Loire-Atlantique]], [[Maine-et-Loire]], [[Mayenne]], [[Sarthe]], [[Vendée]] |- | {{Flag|Picardie}} | [[Aisne]], [[Oise]], [[Somme]] |- | {{Flag|Poitou-Charentes}} | [[Charente]], [[Charente-Maritime]], [[Deux-Sèvres]], [[Vienne]] |- | {{Flag|Provence-Alpes-Côte d'Azur}} | [[Alpes-de-Haute-Provence]], [[Alpes-Maritimes]], [[Bouches-du-Rhône]], [[Hautes-Alpes]], [[Var (department)|Var]], [[Vaucluse]] |- | {{Flag|Rhône-Alpes}} | [[Ain]], [[Ardèche]], [[Drôme]], [[Haute-Savoie]], [[Isère]], [[Loire]], [[Rhône]], [[Savoie]] |} === Overseas regions/departments, collectivities, and territories === {{Main|Overseas departments and territories of France}} Among the 100 departments of France, four ([[French Guiana]], [[Guadeloupe]], [[Martinique]], and [[Réunion]]) are in overseas regions (ROMs) that are also simultaneously [[overseas department]]s (DOMs) and are an integral part of France (and the European Union) and thus enjoy a status similar to metropolitan departments. In addition to the 26 regions and 100 departments, the French Republic also has six [[overseas collectivity|overseas collectivities]] ([[French Polynesia]], [[Mayotte]], [[Saint Barthélemy]], [[Saint Martin (France)|Saint Martin]], [[Saint Pierre and Miquelon]], and [[Wallis and Futuna]]), one ''[[sui generis]]'' collectivity ([[New Caledonia]]), one [[overseas territory (France)|overseas territory]] ([[French Southern and Antarctic Lands]]), and one island possession in the Pacific Ocean ([[Clipperton Island]]). [[File:France-Constituent-Lands.png|thumb|The lands making up the French Republic, shown at the same [[scale (map)|geographic scale]].]] {| class="wikitable" style="font-size:90%;" |- ! Name ! Constitutional status |- | {{Flag|Clipperton Island}} | State private property under the direct authority of the French government |- | {{Flag|French Guiana}} | Overseas region (''régions d'outre-mer'') and simultaneously overseas department (''département d'outre-mer'' or DOM) |- | {{Flag|French Polynesia}} | Designated as an overseas land (''pays d'outre-mer'' or POM), the status is the same as an overseas collectivity. |- | {{Flag|French Southern and Antarctic Lands}} |[[overseas territory (France)|overseas territory]] (''territoire d'outre-mer'' or TOM) |- | {{Flag|Guadeloupe|local}} | Overseas region and department (DOM) |- | {{Flag|Martinique|local}} | Overseas region and department (DOM) |- | {{Flag|Mayotte|local}} | Overseas collectivity (''collectivité d'outre-mer'' or COM). In the 2009 [[Mahoran status referendum, 2009|Mahoran status referendum]], Mahorans voted to become an overseas department in 2011. |- | {{Flag|New Caledonia}} | ''[[Sui generis]]'' collectivity |- | {{Flag|Réunion}} | Overseas region and department (DOM) |- | {{Flag|Saint Barthélemy|local}} | Overseas collectivity (''collectivité d'outre-mer'' or COM) |- | {{Flag|Saint Martin}} | Overseas collectivity (''collectivité d'outre-mer'' or COM) |- | {{Flag|Saint Pierre and Miquelon|local}} | Overseas collectivity (''collectivité d'outre-mer'' or COM). Still referred to as a ''collectivité territoriale''. |- | {{Flag|Wallis and Futuna|local}} | Overseas collectivity (''collectivité d'outre-mer'' or COM). Still referred to as a ''territoire''. |} Overseas collectivities and territories form part of the French Republic, but do not form part of the European Union or its fiscal area (with the exception of St. Bartelemy, which seceded from Guadeloupe in 2007). The Pacific Collectivities (COMs) of French Polynesia, Wallis and Fortuna, and New Caledonia continue to use the [[CFP franc|Pacific franc]][http://www.thetahititraveler.com/touristinfo/moneycurr.asp Currency and Exchange Rate] - The Tahiti Traveler[http://www.pacificislandsnetwork.com/islands/wallis/wallis_islands.html Walis and Futuna] - Pacific Islands Network[http://www.southpacific.org/guide/new-caledonia.html New Caledonia travel Guide] - South Pacific Organizer whose value is linked to that of the [[euro]]. In contrast, the four overseas regions used the French franc and now use the euro.[https://www.cia.gov/library/publications/the-world-factbook/rankorder/2085rank.html?countryName=France&countryCode=fr®ionCode=eu&rank=7#fr The euro outside the euro area] - The European Commission == Government == [[File:Logo de la République française.svg|thumb|left|Logo of the French Republic]] {{Main|Government of France|Constitution of France|Politics of France}} The French Republic is a [[unitary state|unitary]] [[semi-presidential system|semi-presidential]] [[republic]] with strong [[democratic]] traditions. The [[Constitution of France|constitution]] of the Fifth Republic was approved by [[referendum]] on 28 September 1958.[http://www.oecd.org/home/0,3305,en_2649_201185_1_1_1_1_1,00.html France: Fifth Republic] - [http://flagspot.net/flags/index.html Flags of the Wolrd] It greatly strengthened the authority of the executive in relation to [[Government of France#Legislative branch|parliament]]. The executive branch itself has two leaders: the [[President of the French Republic|President of the Republic]], currently [[Nicolas Sarkozy]], who is [[head of state]] and is elected directly by universal adult suffrage for a 5-year term (formerly 7 years),{{fr}} [http://www.ladocumentationfrancaise.fr/dossiers/quinquennat/chronologie.shtml Le quinquennat : le référendum du 24 Septembre 2000] and the Government, led by the president-appointed [[Prime Minister of France|Prime Minister]], currently [[François Fillon]]. [[File:Nicolas Sarkozy (2008).jpg|thumb|upright|[[Nicolas Sarkozy]] has been the [[President of France|President of the French Republic]] since 2007]] The French [[Parliament of France|parliament]] is a [[bicameral]] legislature comprising a [[National Assembly of France|National Assembly]] (''Assemblée Nationale'') and a [[Senate of France|Senate]].[http://www.assemblee-nationale.fr/english/synthetic_files/file_4.asp The National Assembly and the Senate - General Characteristics of the Parliament] on the [http://www.assemblee-nationale.fr/english/index.asp Official Site of the French National Assembly] The National Assembly deputies represent local constituencies and are directly elected for 5-year terms.[http://www.assemblee-nationale.fr/english/election.asp#election Election of deputies] on the [http://www.assemblee-nationale.fr/english/index.asp Official Site of the National Assembly] The Assembly has the power to dismiss the cabinet, and thus the majority in the Assembly determines the choice of government. Senators are chosen by an electoral college for 6-year terms (originally 9-year terms), and one half of the seats are submitted to election every 3 years starting in September 2008.[http://www.senat.fr/lng/en/election_senateurs.html The senatorial elections] - on the [http://www.senat.fr/lng/en/index.html Official Site of the Senate] The [[French Senate|Senate's]] legislative powers are limited; in the event of disagreement between the two chambers, the National Assembly has the final say.{{fr}} [http://www.politique.net/2007081801-le-role-du-senat.htm Le role du Sénat] The government has a strong influence in shaping the agenda of Parliament. French politics are characterised by two politically opposed groupings: one left-wing, centred around the [[Socialist Party (France)|French Socialist Party]], and the other right-wing, centred previously around the [[Rally for the Republic|Rassemblement pour la République (RPR)]] and now its successor the [[Union for a Popular Movement|Union for a Popular Movement (UMP)]].{{fr}} {{cite book |title=La France vers le bipartisme ? : La présidentialisation du PS et de l'UMP|last=Grunberg |first=Gérard |authorlink= |coauthors= |year=2007 |publisher= |location= |isbn=2724610105|page= |pages= |url=http://www.pressesdesciencespo.fr/fr/livre/?GCOI=27246100617740|accessdate=}} The executive branch is currently composed mostly of the UMP. == Law == {{Main|Law of France}} [[File:Declaration of Human Rights.jpg|thumb|upright|The basic principles that the French Republic must respect are found in the 1789 [[Declaration of the Rights of Man and of the Citizen]]]] France uses a [[civil law (legal system)|civil legal]] system; that is, law arises primarily from written statutes; judges are not to make law, but merely to interpret it (though the amount of judge interpretation in certain areas makes it equivalent to [[case law]]). Basic principles of the [[rule of law]] were laid in the [[Napoleonic Code]]. In agreement with the principles of the [[Declaration of the Rights of Man and of the Citizen]] law should only prohibit actions detrimental to society. As [[Guy Canivet]], first president of the [[Court of Cassation (France)|Court of Cassation]], wrote about the management of prisons: :''Freedom is the rule, and its restriction is the exception; any restriction of Freedom must be provided for by Law and must follow the principles of necessity and proportionality.'' That is, Law should lay out prohibitions only if they are needed, and if the inconveniences caused by this restriction do not exceed the inconveniences that the prohibition is supposed to remedy. French law is divided into two principal areas: [[private law]] and [[public law]]. Private law includes, in particular, [[civil law (legal system)|civil law]] and [[criminal law]]. Public law includes, in particular, [[administrative law]] and [[constitutional law]]. However, in practical terms, French law comprises three principal areas of law: civil law, criminal law and administrative law. France does not recognise [[religious law]], nor does it recognise religious beliefs or morality as a motivation for the enactment of prohibitions. As a consequence, France has long had neither [[blasphemy]] laws nor [[sodomy law]]s (the latter being abolished in 1791). However, "offences against [[public decency]]" (''contraires aux bonnes mœurs'') or [[breach of the peace|disturbing public order]] (''trouble à l'ordre public'') have been used to repress public expressions of [[homosexuality]] or street [[prostitution]]. Criminal laws can only address the future and not the past (criminal ''[[ex post facto]]'' laws are prohibited) ; and to be applicable, laws must be officially published in the ''[[Journal Officiel de la République Française]]''. == Foreign relations == {{Main|Foreign relations of France}} {{See also|European Union|Latin Union|Francophonie|United Nations Security Council|NATO}} [[File:Signing of the Maastricht Treaty.jpg|thumb|upright|France is a founding member of the [[European community|EC]] in 1957, and the European Union in 1993 (Signing of the Maastricht Treaty).]] France is a member of the United Nations and serves as one of the permanent members of the [[U.N. Security Council]] with [[veto]] rights.[http://www.un.org/sc/members.asp Membership of the Security Councils of the UN] on the [http://www.un.org/en/index.shtml Official Site of the UN] It is also a member of the [[G8]], [[World Trade Organisation]] (WTO),[http://www.wto.org/english/thewto_e/whatis_e/tif_e/org6_e.htm Understanding the WTO - Members] the [[Secretariat of the Pacific Community]] (SPC)[http://www.spc.int/en/about-spc/history.html History] on the [http://www.spc.int/ Official Site of the SPC] and the [[Indian Ocean Commission]] (COI).{{fr}} [http://www.coi-ioc.org/index.php?id=36 Pays membres] - [http://www.coi-ioc.org/index.php?id=72 Site officiel de la COI] It is an associate member of the [[Association of Caribbean States]] (ACS)[http://www.acs-aec.org/about.htm About the Association of Caribbean States] on the [http://www.acs-aec.org/ Official site of the ACS] and a leading member of the [[La Francophonie|International Francophone Organisation]] (OIF) of fifty-one fully or partly French-speaking countries.{{fr}} [http://www.francophonie.org/-Etats-et-gouvernements-.html États et gouvernements : le monde de la Francophonie] - [http://www.francophonie.org/ Site officiel de l'OIF] It hosts the headquarters of the [[Organisation for Economic Co-operation and Development|OECD]],[http://www.oecd.org/document/8/0,3343,en_2649_201185_1956607_1_1_1_1,00.html History of the Château de la Muette, OECD headquarters, Paris] - [http://www.oecd.org/home/0,3305,en_2649_201185_1_1_1_1_1,00.html Official Site of the OECD] [[UNESCO]],[http://www.unesco.org/new/en/unesco/about-us/who-we-are/history/paris-headquarters/ Paris Headquarters] on the [http://www.unesco.org/new/en/unesco/ Official Site of the UNESCO] [[Interpol]],{{cite web|author=Interpol |url=http://www.interpol.int/ |title=Official Site of the Interpol |publisher=Interpol.int |date= |accessdate=2010-08-09}} [[Alliance Base]]{{fr}} [http://www.lexpress.fr/actualite/politique/alliance-base-existe-bien_460124.html "Alliance Base" existe bien] - [[L'Express (France)|L'Express]] and the [[International Bureau of Weights and Measures|International Bureau for Weights and Measures]].{{cite web|url=http://www.bipm.org/en/home/ |title=Home page of the IBWM |publisher=Bipm.org |date= |accessdate=2010-08-09}} In 1953, France received a request from the United Nations to pick a [[coat of arms]] that would represent it internationally. Thus the [[French coat of arms|French emblem]] was adopted and is currently used on passports.{{fr}} [http://www.elysee.fr/president/la-presidence/les-symboles-de-la-republique-francaise/le-faisceau-de-licteur/le-faisceau-de-licteur.5979.html Le faisceau de licteur] - Présidence de la République French foreign policy has been largely shaped by membership of the European Union, of which it was a founding member. In the 1960s, France sought to exclude the British from the organisation,[http://news.bbc.co.uk/onthisday/hi/dates/stories/november/27/newsid_4187000/4187714.stm De Gaulle says 'non' to Britain - again] BBC seeking to build its own standing in continental Europe. Since the [[Élysée Treaty|1960s]], France has developed close ties with reunified Germany to become the [[Franco-German cooperation|most influential driving force of the EU]].{{fr}} [http://www.oftt.eu/perspectives/article/l-alliance-franco-allemande-au-coeur-de-la-puissance-europeenne L'alliance franco-allemande au coeur de la puissance européenne] France is a member of the [[North Atlantic Treaty Organisation]], but under President de Gaulle, it excluded itself from the joint military command to avoid the American domination of its foreign and security policies.{{fr}} [http://www.lefigaro.fr/international/2009/03/11/01003-20090311ARTFIG00073-quand-mitterrand-deja-negociait-le-retour-dans-l-otan-.php Quand Mitterand, déjà, négociait le retour de la France dans l'OTAN] - Le Figaro However, as a result of [[Nicolas Sarkozy]]'s (much criticised in France by the leftists and by a part of the right)[http://news.bbc.co.uk/2/hi/europe/7937666.stm France ends four-decade Nato rift] - BBC{{fr}} {{cite news | title = Le retour de la France dans l'OTAN suscite un malaise dans les rangs de la droite | first = Patrick | last = Roger | url = http://www.lemonde.fr/politique/article/2009/03/11/le-retour-de-la-france-dans-l-otan-suscite-un-malaise-dans-les-rangs-de-la-droite_1166352_823448.html | newspaper = Le Monde | location = Paris | date = 11 March 2009 }} ''pro-American'' politics, France rejoined the NATO joint military command on 4 April 2009. In the early 1990s, the country drew considerable criticism from other nations for its underground nuclear tests in [[French Polynesia]].[http://edition.cnn.com/WORLD/9512/france_nuclear/ Fifth French nuclear test sparks international outrage] - CNN France vigorously opposed the [[2003 invasion of Iraq]],[http://edition.cnn.com/2003/WORLD/asiapcf/east/01/23/sprj.irq.china/index.html China adds voice to Iraq war doubts] CNN[http://news.bbc.co.uk/2/hi/europe/2683409.stm EU allies unite against Iraq war] BBC straining bilateral relations with the US{{cite web|url=http://usforeignpolicy.about.com/od/newsiss3/tp/iraqwarrelations.htm |title=Foreign Policy Implications of the Iraq War |publisher=Usforeignpolicy.about.com |date=2004-03-11 |accessdate=2010-08-09}}[http://edition.cnn.com/2003/ALLPOLITICS/03/11/sprj.irq.fries/ House cafeterias change names for 'french' fries and 'french' toast] CNN and the UK.{{fr}} [http://www.diplomatie.gouv.fr/fr/pays-zones-geo_833/royaume-uni_202/index.html France-Diplomatie : Royaume-Uni] - [[Minister of Foreign Affairs (France)|Ministère des Affaires Étrangères]] France retains strong political and economic influence in its former African colonies ([[Françafrique]]){{fr}} [http://www.memo.fr/article.asp?ID=CON_COL_009 L'empire colonial français] and has supplied economic aid and troops for peace-keeping missions in the [[Ivory Coast]] and [[Chad]].{{cite web|url=http://www.delegfrance-onu-geneve.org/spip.php?article417 |title=France involvement in peace-keeping operations |publisher=Delegfrance-onu-geneve.org |date= |accessdate=2010-08-09}} France has the [[List of diplomatic missions of France|second largest network]] of [[diplomatic missions]] in the world, second only to the USA.[http://www.diplomatie.gouv.fr/en/ministry_158/embassies-and-consulates_2052/bilateral-embassies_1580.html Embassies and consulates] on the [http://www.diplomatie.gouv.fr/fr/ Official Site of the Ministry of Foreign Affairs of France] === Development aid === In 2007, France is the third largest donor of [[development aid]] in the world, behind the US and Germany, but ahead of Japan and the UK.[http://www.oecd.org/dataoecd/47/25/41724314.pdf Aids targets slipping out of reach ?] - OECD This represents 0.5 % of its GDP, one of the highest rate of the developed countries.[http://www.diplomatie.gouv.fr/en/france_159/france-in-the-world_6820/development-assistance-and-humanitarian-action_6908/index.html Development assistance and humanitarian action] - France Diplomatie The organism managing the French help is the [[French Development Agency]], which finances primarily humatarian projects in [[sub-Saharan Africa]]. The main goals of this help are "developing infrastructure, access to health care and education, the implementation of appropriate economic policies and the consolidation of the rule of law and democracy."[http://www.diplomatie.gouv.fr/en/france-priorities_1/index.html France priorities] - France Diplomatie == Military == {{Main|French Armed Forces}} {{See also|Military history of France|France and weapons of mass destruction}} [[File:Gaule96.jpg|thumb|[[Charles de Gaulle (R 91)|Nuclear aircraft carrier ''Charles de Gaulle'']]]] Being a [[United Nations Security Council#Permanent members|permanent member of the Security Council of the UN]], and a [[List of states with nuclear weapons#Five nuclear-weapon states under the NPT|recognised nuclear state]] since 1960, spending the [[List of countries by military expenditures|third or fourth largest amount of money in military]], France has one of the most technologically advanced and powerful armies on Earth. Amongst members of the EU, only the United Kingdom has an army equal to that of France in terms of size. The French [[armed forces]] are divided into four branches: * [[French Army|Armée de Terre]] (Army) * [[French Navy|Marine Nationale]] (Navy) * [[French Air Force|Armée de l'Air]] (Air Force) * [[French Gendarmerie|Gendarmerie Nationale]] (A military force which acts as a National Rural Police and as a [[Military police]] for the entire French military). After the [[Algerian War]], [[conscription]] was steadily reduced and was finally suspended in 1997 by President [[Jacques Chirac]].{{fr}} [http://www.ladocumentationfrancaise.fr/dossiers/service-civil/fin-service-militaire-obligatoire.shtml La fin du service militaire obligatoire] - La documentation française The total number of military personnel is approximately 347,000.{{fr}} [http://wikiwix.com/cache/?url=http://www.defense.gouv.fr/defense/le_ministere/organisation_et_missions/organisation/effectifs/militaires/personnel_militaire&title=Personnel%20militaire Personnel militaire] - [http://www.defense.gouv.fr/portail-defense Ministère de la Défense] France spends in 2010 2.5% of its [[GDP]] on defence,{{fr}} {{cite web|url=http://www.defense.gouv.fr/defense/content/download/162068/1397838/file/PLF-MINDEF-2010-10POINTS.pdf|title=Budget de la Défense - Les 10 principales mesures et chiffres clés pour 2010|auteur=Ministère de la Défense|site=defense.gouv.fr|consulté le=3 mars 2010}} slightly more than the United Kingdom (2.3%)[http://www.nato.int/docu/pr/2005/p05-161.pdf NATO-Russia compendium of financial and economic data relating to defence] - NATO and the highest in the European Union where defence spending generally accounts to less than 1.5% of GDP. Thus, France has the [[List of countries by military expenditures|third or fourth largest military budget in the world]]. About 10% of France's defence budget goes towards its [[force de frappe|nuclear deterrence]], or [[France and weapons of mass destruction|nuclear weapons]] force. [[File:ERC-90 Sagaie 008 FR.JPG|thumb|[[ERC 90 Sagaie]] on the [[Champs Élysées]] for the [[14 juillet]] celebrations]] France has major military industries that have produced the [[Rafale]] fighter, the [[Charles de Gaulle (R 91)|Charles de Gaulle]] aircraft carrier, the [[Exocet]] missile and the [[Leclerc]] tank amongst others. Some weaponry, like the [[E-2 Hawkeye]] or the [[E-3 Sentry]] was bought from the United States. Despite withdrawing from the [[Eurofighter]] project, France is actively investing in European joint projects such as the [[Eurocopter Tiger]], [[FREMM multipurpose frigate|multipurpose frigates]], the [[UCAV]] demonstrator [[nEUROn]] and the [[Airbus A400M]]. France has the most powerful [[aerospace industry]] in Europe.[http://www.yale.edu/ynhti/curriculum/units/1990/7/90.07.06.x.html The aerospace industry : XII. Foreign countries in aerospace] - Yale University{{cite web|url=http://www.bbfrenchtranslation.com/aerospace-industry-of-france.html |title=Aerospace industry of France |publisher=Bbfrenchtranslation.com |date= |accessdate=2010-08-09}} France is a major arms seller,"En 2001, la France a vendu pour 1,288 milliard de dollars d'équipements militaires, ce qui la met au troisième rang mondial des exportateurs derrière les Etats-Unis et la Russie." " In 2001, France sold for $1,288 billion of military equipments, ranking 3rd in the world for arms exportations behind the USA and Russia" [http://www.lexpansion.com/economie/actualite-entreprise/la-france-demeure-un-fournisseur-d-armes-de-premier-plan_95084.html France stays one of the biggest arms supplier] - L'express"La France est au 4ème rang mondial des exportateurs d'armes, derrière les Etats-Unis, le Royaume-Uni et la Russie, et devant Israël, selon un rapport du ministère de la Défense publié l'an dernier." "France is 4th biggest arms exportator, behind the USA, the UK and Russia, and ahead of Israel, according to a report of the Ministry of Defense published a year ago" [http://www.20minutes.fr/article/551139/Economie-Les-ventes-d-armes-explosent-en-2009.php Arms sellings explode in 2009] - 20 minutes as most of its arsenal's designs are available for the export market with the notable exception of nuclear-powered devices. Some of the French designed equipments are specifically designed for exports like the Franco-Spanish [[Scorpène class submarine|''Scorpène'' class submarine]]s. Some French equipments have been largely modified to fit allied countries' requirements like the [[Formidable class frigate|''Formidable'' class frigate]]s (based on the ''La Fayette'' class) or the [[Agosta 90B class submarine|''Hashmat'' class submarines]] (based on the ''Agosta'' class submarines). * Although it includes very competent anti-terrorist units such as the [[GIGN]] or the [[Escadron Parachutiste d'Intervention de la Gendarmerie Nationale|EPIGN]], the gendarmerie is a military police force which serves for the most part as a rural and general purpose police force. Since its creation the GIGN has taken part in roughly one thousand operations and freed over five-hundred hostages; the [[Air France Flight 8969]]'s hijacking brought them to the world's attention with a very successful antiterrorist operation.[http://www.time.com/time/magazine/article/0,9171,163487,00.html Anatomy of a Hijack] - Time * French intelligence consists of two major units: the [[Direction générale de la sécurité extérieure|DGSE]] (the external agency) and the [[Direction centrale du renseignement intérieur|DCRI]] (domestic agency). The latter being part of the police while the former is associated to the army. The DGSE is notorious for the [[Sinking of the Rainbow Warrior|Sinking of the ''Rainbow Warrior'']], but it is also known for revealing the most extensive technological spy network uncovered in Europe and the United States to date through the [[mole (espionage)|mole]] [[Vladimir Vetrov]]. [[File:Rafale-ec-1-7.jpg|thumb|left|A pair of [[Rafale]] [[fighter aircraft]]]] * The French deterrence, (formerly known as “''[[Force de frappe]]''”), relies on a complete independence. The current French nuclear force consists of four submarines equipped with [[M45 SLBM|M45]] ballistic missiles. The current [[Le Triomphant class submarine|''Triomphant'']] class is currently under deployment to replace the former [[Le Redoutable class submarine|''Redoutable'']] class. The [[M51 SLBM|M51]] will replace the M45 in the future and expand the ''Triomphant''s firing range. Aside of the submarines the French dissuasion force uses the [[Dassault Mirage 2000N/2000D|Mirage 2000N]]; it is a variant of the Mirage 2000 and thus is designed to deliver nuclear strikes. Other nuclear devices like the Plateau d'Albion's [[Intermediate-range ballistic missile]] and the short range [[Hadès (missile)|Hadès]] missiles have been disarmed. With 350 nuclear heads stockpiled France is the world's third largest nuclear power.[http://www.globalsecurity.org/wmd/world/summary.htm Comparison of recognised and alleged nuclear powers]. * The [[Marine Nationale]] is regarded as one of the world's most powerful navies. The professional compendium ''flottes de combats'', in its 2006 edition, ranked it world's 6th biggest navy after the American, Russian, Chinese, British and Japanese navies.{{fr}} {{cite web|url=http://www.meretmarine.com/article.cfm?id=958|title=La marine chinoise accède au rang de 3ème puissance mondiale}} [[File:French Marines Afghanistan.JPG|thumb|left|French [[Chasseurs alpins]] patrolling the valleys of Kapisa province in Afghanistan.]] It is equipped with the only non-American nuclear powered Aircraft Carrier in the world. Recently [[Mistral class landing platform dock|''Mistral'']] class ships joined the Marine Nationale, the Mistral itself having taken part to operations in Lebanon. For the 2004 centennial of the [[Entente Cordiale]] President Chirac announced the [[Future French aircraft carrier]] would be jointly designed with Great Britain. The French navy is equipped with the [[La Fayette class frigate|''La Fayette'' class frigate]]s, early examples of stealth ships, and several ships are expected to be retired in the next few years and replaced by more modern ships, examples of future surface ships are the [[Horizon class frigate|Forbin]] and the [[FREMM multipurpose frigate|''Aquitaine'']] class frigates. The attack submarines are also part of the [[Force Océanique Stratégique]] although they do not carry the nuclear dissuasion, the current class is the [[Rubis class submarine|''Rubis'' Class]] and will be replaced in the future by the expected [[French Barracuda class submarine|''Suffren'' Class]]. * The ''[[French Army|Armée de Terre]]'' employs as of 2009 123,100 people.{{fr}} [http://www.defense.gouv.fr/terre/presentation/directions-commandements-et-centres/ressources-humaines/direction-des-ressources-humaines-de-l-armee-de-terre Direction des ressources humaines de l'armée de Terre] - [http://www.defense.gouv.fr/ Ministère de la Défense] It is famous for the ''[[French Foreign Legion|Légion Etrangère]]'' (French Foreign Legion) though the French special forces are not the Legion but the [[13th Parachute Dragoon Regiment|Dragons Parachutistes]] and the [[1st Marine Infantry Parachute Regiment|Marines Parachutistes]]. The French assault rifle is the [[FAMAS (rifle)|FAMAS]] and future infantry combat system is the [[Félin]]. France uses both tracked and wheeled vehicles to a significant points, examples of wheeled vehicles would be the [[Camion équipé d'un système d'artillerie|Caesar]] or the [[AMX 10 RC]]. Although its main battle tank is the [[Leclerc]] many older [[AMX 30]] tanks are still operational. It uses the [[AMX 30 AuF1]] for artillery and is equipped with [[Eurocopter Tiger]]s helicopters. * The [[French Air Force|Armée de l'Air]] is the oldest and first professional air force worldwide.[http://www.military-aircraft.org/france/french-military-aircraft.php French Military Aircraft] - Military Aircraft It still today retains a significant capacity. It uses mainly two aircraft fighters: the older [[Dassault Mirage F1|Mirage F1]] and the more recent [[Dassault Mirage 2000|Mirage 2000]]. The later model exists in a ground attack version called the [[Dassault Mirage 2000N/2000D|Mirage2000D]]. The modern [[Dassault Rafale|Rafale]] is in deployment in both the French air force and navy. == Transport == {{Main|Transport in France|Rail transport in France}} [[File:TGV at Avignon.jpg|thumb|right|A [[SNCF TGV Sud-Est|TGV Sud-Est]].]] The [[railway]] network of France, which as of 2008 stretches {{convert|29473|km|mi|0}}{{PDF}} {{fr}} {{cite web|format=PDF|url=http://www.developpement-durable.gouv.fr/IMG/pdf/Chiffres_transport-pdf.pdf|title=Chiffres clés du transport 2010|accessdate=2010-10-07}} - [http://www.developpement-durable.gouv.fr/ Site officiel] du [[Ministry of Ecology, Energy, Sustainable Development and Sea|Ministère de l'Écologie, de l'Énergie, du Développement Durable et de la Mer]] is the second most extensive in Western Europe after the German one.[https://www.cia.gov/library/publications/the-world-factbook/rankorder/2121rank.html?countryName=France&countryCode=fr®ionCode=eu&rank=9#fr Coutry comparison : railways] - The World Factbook It is operated by the [[SNCF]], and high-speed trains include the [[Thalys]], the [[Eurostar]] and [[TGV]], which travels at {{convert|320|km/h|mph|0|abbr=on}} in commercial use.[http://www.railway-technology.com/projects/frenchtgv/ TGV High-Speed Rail Network, France] - Railways-technology.com[http://www.bbc.co.uk/dna/h2g2/A711785 TGV - The French High-speed Train Service] - BBC The [[Eurostar]], along with the [[Eurotunnel Shuttle]], connects with the United Kingdom through the [[Channel Tunnel]]. Rail connections exist to all other neighbouring countries in Europe, except [[Andorra]]. Intra-urban connections are also well developed with both [[Rapid transit|underground services]] and tramway services complementing bus services. There are approximately {{convert|1,027,183|km|mi|0}} of serviceable roadway in France, ranking it the most extensive network of the European continent.[https://www.cia.gov/library/publications/the-world-factbook/rankorder/2085rank.html?countryName=France&countryCode=fr®ionCode=eu&rank=7#fr Country Comparison : roadways] - The World Factbook The Paris region is enveloped with the most dense network of roads and highways that connect it with virtually all parts of the country. French roads also handle substantial international traffic, connecting with cities in neighboring Belgium, Spain, Andorra, Monaco, Switzerland, Germany and Italy. There is no annual registration fee or [[road tax]]; however, motorway usage is through tolls except in the vicinity of large communes. The new car market is dominated by domestic brands such as [[Renault]] (27% of cars sold in France in 2003), [[Peugeot]] (20.1%) and [[Citroën]] (13.5%).{{fr}} L'automobile magazine, hors-série 2003/2004 page 294 Over 70% of new cars sold in 2004 had [[diesel engine]]s, far more than contained petrol or [[Liquified petroleum gas|LPG]] engines.{{cite web|url=http://www.ademe.fr/particuliers/Fiches/voiture/rub3.htm |title=Guide pratique de l' ADEME, la voiture |publisher=Ademe.fr |date= |accessdate=22 October 2008}} France possesses the [[Millau Viaduct]], the world's tallest bridge,[http://news.bbc.co.uk/2/hi/europe/3237329.stm France builds world's tallest bridge] - BBC and has built many important bridges such as the [[Pont de Normandie]]. There are 475 [[List of airports in France|airports]] in France.[https://www.cia.gov/library/publications/the-world-factbook/geos/fr.html The World Factbook : France] [[Paris-Charles de Gaulle Airport]] located in the vicinity of Paris is the largest and busiest airport in the country, handling the vast majority of popular and commercial traffic of the country and connecting Paris with virtually all major cities across the world. [[Air France]] is the national carrier airline, although numerous private airline companies provide domestic and international travel services. There are ten major ports in France, the largest of which is in [[Marseille]],[http://www.bdpinternational.com/news/StrikesblockFrenchports.asp Strikes block French ports] - [http://www.bdpinternational.com/default.asp BDP International] which also is the largest bordering the Mediterranean Sea.{{fr}} [http://www.laprovence.com/article/region/marseille-un-grand-port-maritime-qui-ne-demande-qua-se-montrer Marseille : un grand port maritime qui ne demande qu'à se montrer] - La Provence[http://blog.hotelclub.com/marseille/ Marseille – A French Pearl in the Mediterranean Sea] - Hotel Club Travel Blog {{convert|12261|km|mi|0}} of waterways traverse France including the [[Canal du Midi]] which connects the Mediterranean Sea to the Atlantic Ocean through the [[Garonne]] river. == Economy == {{Main|Economy of France|Energy in France}} {{See|List of French companies|Economic history of France}} [[File:A380 Reveal 2.jpg|thumb|The first completed [[Airbus A380]] at the “A380 Reveal” event in [[Toulouse]] on 18 January 2005. Airbus is a symbol of the globalisation of the French and [[European economy]].]] A member of the [[G8]] group of leading industrialised countries, it is ranked as the [[List of countries by GDP (nominal)|fifth largest]] economy by nominal [[GDP]].{{cite web|url=http://siteresources.worldbank.org/DATASTATISTICS/Resources/GDP.pdf|format=PDF|title=Gross domestic product 2009 |publisher=World Bank |accessdate=2010-10-07}} France joined 11 other EU members to launch the [[euro]] on 1 January 1999, with [[euro coins]] and [[euro banknotes|banknotes]] completely replacing the [[French franc]] (₣) in early 2002.[http://news.bbc.co.uk/hi/english/static/in_depth/business/2001/euro_cash/history/ History of the Euro] - BBC [[File:Golfech NPP cropped.jpg|thumb|upright|left|France derives [[Nuclear power in France|79% of its electricity from nuclear power]], the highest percentage in the world.{{Cite news | last = EnerPub | title = France: Energy profile | work = Spero News | accessdate = 25 August 2007 | date = 8 June 2007 | url = http://www.speroforum.com/site/article.asp?idarticle=9839&t=France%3A+Energy+profile }} ]] France has a [[mixed economy]] which combines extensive private enterprise (nearly 2.5 million companies registered){{fr}} {{cite web|url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=0&ref_id=NATTEF09203|title=Entreprises selon le nombre de salariés et l'activité|publisher=[[INSEE]]|date=July 2008}}{{fr}} {{cite web|url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=0&ref_id=NATTEF9303|title=Entreprises publiques selon l'activité économique|publisher=[[INSEE]]|date=March 2009}} with substantial (though declining{{cite web|url=https://www.cia.gov/library/publications/the-world-factbook/geos/fr.html#Econ|work=[[The World Factbook]]|publisher=[[CIA]]|title=France|year=2009}}) state enterprise and government intervention (see [[dirigisme]]). The government retains considerable influence over key segments of infrastructure sectors, with majority ownership of railway, electricity, aircraft, nuclear power and telecommunications. It has been gradually relaxing its control over these sectors since the early [[1990s in economics|1990s]]. The government is slowly [[Corporatization|corporatizing]] the state sector and selling off holdings in [[France Télécom]], [[Air France]], as well as the insurance, banking, and defence industries. France has an important aerospace industry led by the European consortium [[Airbus]], and has its own national [[spaceport]], the ''[[Centre Spatial Guyanais]]''. [[File:Eurozone.svg|thumb|upright|France is part of a monetary union, the [[Eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] According to the [[World Trade Organization|WTO]], in 2009 France was the world's sixth-largest exporter and the fourth-largest importer of manufactured goods.{{cite web|url=http://www.wto.org/english/res_e/statis_e/its2008_e/its2008_e.pdf |title=International Trade Statistics 2008|page=12|sub-title=Leading traders|year=2009|publisher=[[WTO]]}} In 2008, France was the third-largest recipient of [[foreign direct investment]] among OECD countries at $117.9 [[1000000000 (number)|billion]], ranking behind Luxembourg (where foreign direct investment was essentially monetary transfers to banks located in that country) and the United States ($316.1 billion), but above the United Kingdom ($96.9 billion), Germany ($24.9 billion), or Japan ($24.4 billion).{{cite web|url=http://www.unctad.org/sections/dite_dir/docs/wir09_fs_fr_en.pdf|publisher=[[UNCTAD]]|format=PDF|work=World Investment Report 2009|title=Country fact sheet: France|accessdate=2010-10-07}}{{cite web|url=http://www.unctad.org/sections/dite_dir/docs/wir09_fs_jp_en.pdf|publisher=[[UNCTAD]]|format=PDF|work=World Investment Report 2009|title=Country fact sheet: Japan|accessdate=2010-10-07}} In the same year, French companies invested $220 billion outside of France, ranking France as the second most important outward direct investor in the OECD, behind the United States ($311.8 billion), and ahead of the United Kingdom ($111.4 billion), Japan ($128 billion) and Germany ($156.5 billion). With 39 of the 500 biggest companies of the world in 2010, Frances ranks 4th in the [[Fortune Global 500]], behind the USA, Japan and China, but ahead of Germany and the UK.[http://money.cnn.com/magazines/fortune/global500/2010/countries/Australia.html Global 500 by Country] - Fortune France is the smallest emitter of [[Greenhouse gas|carbon dioxide]] among the seven most industrialized countries in the world, due to its [[Nuclear power in France|heavy investment]] in [[nuclear power]].{{cite web|url=http://unstats.un.org/unsd/environment/air_co2_emissions.htm|title=CO2 emissions per capita in 2006|publisher=United Nations|date=August 2009|work=Environmental Indicators |subtitle=Greenhouse Gas Emissions}} As a result of large investments in nuclear technology, most of the electricity produced in the country is generated by 59 nuclear power plants (78% in 2006,{{cite web |author=DGEMP / Observatoire de l'énergie|month=April | year=2007|url=http://www.industrie.gouv.fr/energie/statisti/se_elec.htm|title=Électricité en France: les principaux résultats en 2006|accessdate=23 May 2007}} {{Dead link|date=September 2010|bot=H3llBot}} up from only 8% in 1973, 24% in 1980, and 75% in 1990). In this context, renewable energies (see the power cooperative [[Enercoop]]) are having difficulties taking off the ground. === Agriculture and agrobusiness === [[File:Usson JPG02.jpg|thumb|upright|[[Wheat]] [[Field (agriculture)|fields]] near the village of [[Usson, Puy-de-Dôme|Usson]]]] France has historically been an important producer of agricultural products.[http://www.nationsencyclopedia.com/economies/Europe/France-AGRICULTURE.html France - Agriculture] - Encyclopedia of the Nations Large tracts of fertile land, the application of modern technology, and [[Common agricultural policy|EU subsidies]] have combined to make France the leading agricultural producer and exporter in Europe{{cite web|url= http://www.diplomatie.gouv.fr/en/france_159/economy_6815/overview-of-the-french-economy_6831/key-figures-of-the-french-economy_1402.html#sommaire_1 |publisher= [[Minister of Foreign Affairs (France)|French Ministry of Foreign and European Affairs]]|title=Key figures of the French economy|quote=France is the world’s fifth largest exporter of goods (mainly durables). The country ranks fourth in services and third in agriculture (especially in cereals and the agri-food sector). It is the leading producer and exporter of farm products in Europe.}} (representing alone 20% of the EU's agricultural production[http://agriculture.gouv.fr/IMG/pdf/panorama_agriculture_ed2008EN.pdf A panorama of the agriculture and agri-food industries] - Ministère de l'Alimentation, de l'Agriculture et de la Pêche) and the world's third biggest exportator of agricultural products.{{fr}} [http://agriculture.gouv.fr/un-ministere-au-service-de-votre Un ministère au service de votre alimentation] - Ministère de l'Alimentation, de l'Agriculture et de la Pêche [[Wheat]], [[poultry]], [[dairy]], [[beef]], and [[pork]], as well as an internationally recognized [[food industry|foodstuff]] and [[French wine|wine]] industry are primary French agricultural exports. EU agriculture subsidies to France have decreased for the last years, but still amounted to $8 billion in 2007.{{cite web|url= http://ec.europa.eu/agriculture/fin/directaid/2007/annex1_en.pdf|title=Financial year 2007|work=Distribution of direct aid to farmers |format=PDF |publisher=[[European Commission]]|date=22 April 2009|accessdate=2010-10-07}} This same year, France sold for 33.4 billions euros of transformed agricultural products.{{fr}} [http://www.panoramaiaa.agriculture.gouv.fr/ Les enjeux des industries agroalimentaires françaises] - Panorama des Industries Agroalimentaires Agriculture is thus an important sector of France's economy : 3,5% of the active population is employed in agriculture, whereas the total agri-food industry made up 4.2% of French GDP in 2005. === Labour market === The French GDP per capita is similar the GDP per capita of other comparable European countries such as Germany and the United Kingdom.{{cite web|url=https://www.cia.gov/library/publications/the-world-factbook/rankorder/2004rank.html|title=Rank Order – GDP – per capita (PPP)|year=2008|publisher=The World Factbook}} GDP per capita is determined by (i) productivity per hour worked, which in France is [[List of countries by GDP (PPP) per capita per hour|the highest]] of the [[G8]] countries in 2005, according to the [[OECD]],{{cite web |author=''OECD in Figures'' 2005, [[Organisation for Economic Co-operation and Development]] |publisher= |year=2005 |url=http://ocde.p4.siteinternet.com/publications/doifiles/012005061G006.xls |archiveurl=http://web.archive.org/web/20070123075528/http://ocde.p4.siteinternet.com/publications/doifiles/012005061G006.xls |archivedate=2007-01-23 |title=Labour productivity 2003 |format=[[Microsoft Excel]] |accessdate=20 April 2006}} ; in 2004, the GDP per hour worked in France was $48, ranking France above the United States ($46.3), Germany ($42.1), the United Kingdom ($39.6), or Japan ($32.5) ({{cite web |author=[[Organisation for Economic Co-operation and Development]]|year=2005 |url=http://www.oecd.org/dataoecd/30/40/29867116.xls |title=Differentials in GDP per capita and their decomposition, 2004 |format=[[Microsoft Excel]] |accessdate=20 April 2006}}) (ii) the number of hours worked, which is one the lowest of developed countries,{{fr}} ''Objectif croissance 2008'', OCDE, February 2008, page 67 ; graphic visible in the [http://www.oecd.org/dataoecd/44/19/40212481.pdf Summary page 8]; effective annual working duration in France is 1580 hours, compared to 1750 for developed countries and (iii) the employment rate. France has one of the lowest 15–64 years employment rates of the OECD countries: in 2004, only 69% of the French population aged 15–64 years were in employment, compared to 80% in Japan, 79% in the UK, 77% in the US, and 71% in Germany.{{cite web |author=[[Organisation for Economic Co-operation and Development]] |publisher= |year=2005 |url=http://www.oecd.org/dataoecd/36/30/35024561.pdf |title=OECD Employment Outlook 2005 – Statistical Annex |format=PDF |accessdate=29 June 2006}} [[File:La Defense rascacielos.jpg|thumb|left|[[La Défense]], just outside Paris, is the largest business district in Europe.[http://ecohearth.com/eco-blogs/eco-international/835-la-defense-europes-largest-business-district-sets-a-new-standard-for-sustainable-development.html La Défense: Europe largest buisiness district Sets a New Standart for Sustainable Devloment] - EcoHeart]] This gap is due to the very low employment rates at both age extremes: the employment rate of people aged 55–64 was 38.3% in 2007, compared to 46.6% in the [[EU15]];{{cite web |author=[[INSEE]] |publisher= |year=2008 |url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=98&ref_id=CMPECF03159 |title=Taux d'emploi des travailleurs âgés de 55 à 64 ans |accessdate=1 September 2008 |language=French}} for the 15–24 years old, the employment rate was 31.5% in 2007, compared to 37.2% in [[EU25]].{{cite web |author=[[INSEE]] |publisher= |year=2008 |url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=98&ref_id=CMPTEF03135 |title=Taux d'emploi des jeunes de 15 à 24 ans dans l'Union européenne |accessdate=1 September 2008 |language=French}} These low employment rates are explained by the high [[minimum wages]] which prevent low productivity workers – such as young people – from easily entering the labour market,{{fr}} {{cite web |authorlink=Philippe Aghion|author=Philippe Aghion|coauthors=Gilbert Cette, Élie Cohen and [[Jean Pisani-Ferry]]|publisher=Conseil d'analyse économique|year=2007|url=http://www.cae.gouv.fr/rapports/dl/072.pdf |title=Les leviers de la croissance française |accessdate=1 September 2008|page=55|format=PDF}} ineffective university curricula that fail to prepare students adequately for the labour market,{{cite web|url=http://www.olis.oecd.org/olis/2007doc.nsf/LinkTo/NT00002ECA/$FILE/JT03230693.PDF|title=Enhancing Incentives to Improve Performances in the Education System in France|publisher=OECD|date=1 August 2007|quote=Initial education, especially secondary education and the universities, along with labour market policies themselves, do not always succeed in improving labour market entry for a significant proportion of young people.|format=PDF}} and, concerning the older workers, restrictive legislation on work and incentives for premature retirement.{{cite web|url=http://www.oecd.org/dataoecd/42/35/40904315.pdf|title=Employment Outlook 2008 – How does FRANCE compare?|publisher=OECD|quote=Only 38% of people aged 55 to 64 are working, 15.5 percentage points less than the OECD average.|format=PDF|accessdate=2010-10-07}}{{cite web|url=http://www.oecdobserver.org/news/fullstory.php/aid/1672/|title=France: Jobs and older workers|publisher=OECD Observer}} The unemployment rate decreased from 9% in 2006 to 7% in 2008 but remains one of the highest in Europe.{{fr}} {{cite web |author=[[INSEE]] |publisher= |year=2008 |url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=99&ref_id=CMRSOS03311 |title=Taux de Chômage en France Métropolitaine|accessdate=1 September 2008}}{{fr}} {{cite web |author=[[INSEE]] |publisher= |year=2008 |url=http://www.insee.fr/fr/themes/tableau.asp?reg_id=98&ref_id=CMPTEF03309 |title= Taux de Chômage dans l'Union Européenne|accessdate=1 September 2008}} In June 2009, the unemployment rate for France was 9.4%.[http://epp.eurostat.ec.europa.eu/tgm/table.do?tab=table&language=en&pcode=teilm020&tableSelection=1&plugin=1 Harmonised unemployment rate by gender – total – % (SA)]. Eurostat. Shorter working hours and the reluctance to reform the labour market are mentioned as weak spots of the French economy in the view of the [[right wing politics|right]], when the [[left wing politics|left]] mentions the lack of government policies fostering social justice. [[liberal theory of economics|Liberal economists]] have stressed repeatedly over the years that the main issue of the French economy is an issue of structural reforms, in order to increase the size of the working population in the overall population, reduce the taxes' level and the administrative burden. [[Keynesian economics|Keynesian economists]] have different answers to the unemployment issue, and their theories led to the [[35-hour workweek]] law in the early 2000s, which turned out to be a failure in reducing unemployment. Afterwards, between 2004 and 2008, the Government made some supply-oriented reforms to combat unemployment but met with fierce resistance,[http://edition.cnn.com/2006/WORLD/europe/04/04/france.jobslaw/index.html More than 1 million protest French jobs law] - CNN especially with the ''[[contrat nouvelle embauche]]'' and the ''[[contrat première embauche]]'' which both were eventually repealed.[http://news.bbc.co.uk/2/hi/europe/4816306.stm Q&A: French labour law row] - BBC The current Government is experiencing the ''[[Revenu de solidarité active]]''.{{cite web|url=http://www.rsa.gouv.fr/-English-version-.html |title=Le Revenu de Solidarité active |publisher=Rsa.gouv.fr |date= |accessdate=2010-08-09}} === Tourism === {{Main|Tourism in France}} [[File:Chateau-de-versailles-cour.jpg|thumb|The [[Palace of Versailles]] is one of the most popular tourist destinations in France.]] With 81.9 million foreign tourists in 2007, France is [[World Tourism Rankings|ranked]] as the first tourist destination in the world, ahead of Spain (58.5 million in 2006) and the United States (51.1 million in 2006). This 81.9 million figure excludes people staying less than 24 hours in France, such as [[Northern Europe]]ans crossing France on their way to Spain or Italy during the summer. [[File:Mont Saint-Michel France.jpg|thumb|left|The [[Mont Saint-Michel]] is one of the most visited sites of France]] France features cities of high cultural interest (Paris being the foremost), beaches and seaside resorts, [[ski]] resorts, and rural regions that many enjoy for their beauty and tranquillity ([[green tourism]]). France also attracts many religious pilgrims to [[Lourdes]], a town in the Hautes-Pyrénées département, that hosts a few million visitors a year. [[Disneyland Paris]] is France's and indeed Europe's most popular tourist site, with 15,405,000 combined visitors to the resort's [[Disneyland Park (Paris)|Disneyland Park]] and [[Walt Disney Studios Park]] in 2009.{{cite web|format=PDF|url=http://www.themeit.com/etea/2009report.pdf|title=2009 Theme Index. The Global Attractions Attendance Report, 2009.|accessdate=2010-10-07}} Other popular tourist sites include: (according to a 2003 ranking{{fr}} {{cite web|url=http://www2.culture.gouv.fr/deps/mini_chiff_03/fr/musee.htm|title=Fréquentation des musées et des bâtiments historiques}} visitors per year): [[Eiffel Tower]] (6.2 million), [[Louvre|Louvre Museum]] (5.7 million), [[Palace of Versailles]] (2.8 million), [[Musée d'Orsay]] (2.1 million), [[Arc de Triomphe]] (1.2 million), [[Centre Georges Pompidou|Centre Pompidou]] (1.2 million), [[Mont-Saint-Michel]] (1 million), [[Château de Chambord]] (711,000), [[Sainte-Chapelle]] (683,000), [[Château du Haut-Kœnigsbourg]] (549,000), [[Puy-de-Dôme (mountain)|Puy de Dôme]] (500,000), [[Musée Picasso]] (441,000), [[Carcassonne]] (362,000). == Demographics == {{Main|Demography of France|Languages of France|French people}} === Population === [[File:France population density 40pc.png|thumb|right|[[Population density]] in the French Republic at the 1999 census.]] With an estimated population of 65.4 million people (as of 1 Jan. 2010),{{fr}} {{cite web|url=http://www.insee.fr/fr/themes/document.asp?ref_id=ip1276#inter1|title=Bilan démographique 2009|first=[[Government of France]]|last=[[INSEE]]|accessdate=19 January 2010}} France is the [[List of countries by population#List|20th most populous country in the world]]. In 2003, France's natural population growth (excluding [[immigration]]) was responsible for almost all natural population growth in the European Union. In 2004, population growth was 0.68% and then in 2005 birth and fertility rates continued to increase. The natural increase of births over deaths rose to 299,800 in 2006. The [[total fertility rate]] rose to 2.02 in 2008, from 1.88 in 2002.{{fr}} {{cite web|url=http://www.insee.fr/fr/ppp/bases-de-donnees/irweb/sd2006/dd/excel/sd2006_t44_fe.xls|title=Tableau 44 – Taux de fécondité générale par âge de la mère |first=[[Government of France]]|last=[[INSEE]]|accessdate=13 January 2009}} The [[List of cities in France over 20,000 population (1999 census)|largest cities]] in France, in terms of metropolitan area population, are [[Paris]] (11,769,433), [[Lyon]] (1,748,271), [[Marseille]] (1,605,000), [[Lille]] (1,164,716), [[Nice]] (1,197,751), [[Toulouse]] (1,102,882), [[Bordeaux]] (999,149), [[Nantes]] (804,000) and [[Strasbourg]] (639,000). [[File:New-Map-Francophone World.PNG|thumb|left|France's legacy: a map of the [[French language|Francophone]] world {{legend|#0c5eb1|native language}} {{legend|#0080ff|administrative language}} {{legend|#9fceff|secondary or non-official language}} {{legend|#00ff00|francophone minorities}}]] In 2004, a total of 140,033 people immigrated to France. Of them, 90,250 were from Africa and 13,710 from Europe.{{cite web|url=http://www.migrationinformation.org/datahub/countrydata/data.cfm|title=Inflow of third-country nationals by country of nationality|year=2004}} In 2008, France granted citizenship to 137,000 persons, mostly to people from Morocco, Algeria and Turkey.{{cite news | title = Turks and Moroccans top list of new EU citizens | first = Andrea | last = Swalec | url = http://in.reuters.com/article/idINIndia-49921620100706 | agency = Reuters | date = 6 July 2010 }} It is illegal for the French state to collect data on ethnicity and race, a law with its origins in the [[French Revolution|1789 revolution]] and reaffirmed in the [[French Constitution|constitution of 1958]].{{cite journal |last=Oppenheimer |first=David B. |year=2008| title=Why France needs to collect data on racial identity...in a French way |journal=Hastings International and Comparative Law Review |volume=31 |issue=2 |pages=735–752 |url=http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1236362}} Nonetheless, France is an ethnically diverse nation with about six million North Africans and an estimated 2.5 million blacks.{{cite news | title = Europe's Minority Politicians in Short Supply | first = Keith B. | last = Richburg | url = http://www.washingtonpost.com/wp-dyn/articles/A12396-2005Apr23.html | newspaper = The Washington Post | date = 24 April 2005 }}{{cite news | title = In officially colorblind France, blacks have a dream – and now a lobby | first = Susan | last = Sachs | url = http://www.csmonitor.com/2007/0112/p01s04-woeu.html | newspaper = The Christian Science Monitor | location = Boston, MA | date = 12 January 2007 }} It is currently estimated that 40% of the French population descends at least partially from the different waves of immigration the country has received.{{cite news | title = Paris Riots in Perspective | url = http://abcnews.go.com/International/story?id=1280843 | work = ABC News | location = New York | date = 4 November 2005 }} Between 1921 and 1935 about 1.1 million net immigrants came to France."''[http://books.google.com/books?id=uUsLAAAAIAAJ&pg=PA22&dq&hl=en#v=onepage&q=&f=false Transactions of the American Philosophical Society. III. French Government and the Refugees]''". American Philosophical Society, James E. Hassell (1991). p.22. ISBN 087169817X An estimated 1.6 million European ''[[pieds noirs]]'' returned to France as the country's North African possessions gained independence.{{cite news | title = For Pieds-Noirs, the Anger Endures | first = James M. | last = Markham | url = http://query.nytimes.com/gst/fullpage.html?res=940DEFDE1539F935A35757C0A96E948260&sec=&spon=&pagewanted=all | newspaper = The New York Times | date = 6 April 1988 }}Raimondo Cagiano De Azevedo (1994). ''"[http://books.google.com/books?id=N8VHizsqaH0C&pg=PA25&dq&hl=en#v=onepage&q=&f=false Migration and development co-operation.]"''. p.25. According to the [[INSEE|French National Institute for Statistics and Economic Studies]], it has an estimated 4.9 million foreign-born immigrants, of which 2 million have acquired French citizenship.{{fr}} {{cite web |author=INSEE |publisher= |url=http://www.insee.fr/fr/ffc/ipweb/ip1098/ip1098.html#encadre1 |title=Enquêtes annuelles de recensement 2004 et 2005 |date=25 January 2005|accessdate=14 December 2006|archiveurl = http://web.archive.org/web/20061212212050/http%3A//www.insee.fr/fr/ffc/ipweb/ip1098/ip1098.html#encadre1 |archivedate = December 12, 2006|deadurl=yes}} France is the leading [[refugee|asylum]] destination in Western Europe with an estimated 50,000 applications in 2005 (a 15% decrease from 2004).{{cite web |author=[[UNHCR]] |publisher= |year=2006 |url=http://www.unhcr.org/publ/PUBL/4492677f0.pdf |title=UNHCR Global Report 2005: Western Europe |accessdate=14 December 2006 |format=PDF}} The European Union allows free movement between the member states. While UK and Ireland did not impose restrictions, France put in place controls to curb [[Eastern European]] migration. A perennial political issue concerns [[rural depopulation]]. Over the period 1960–1999 fifteen rural ''départements'' experienced a decline in population. In the most extreme case, the population of [[Creuse]] fell by 24%. According to Article 2 of the Constitution, amended in 1992, French is the sole official language of France.{{fr}} [http://www.legifrance.gouv.fr/html/constitution/constitution2.htm#titre2 La Constitution- La Constitution du 4 Octobre 1958] - Légifrance Therefore, France is the only Western European nation (excluding [[European microstates|microstates]]) to have only one officially recognised language. However, 77 [[Languages of France|regional languages]] are also spoken, in metropolitan France as well as in the overseas departments and territories. Until recently, the French government and state school system discouraged the use of any of these languages, but they are now taught to varying degrees at some schools.{{cite web |url=http://www.anu.edu.au/NEC/Archive/Jeanjean_paper.pdf |author=Jeanjean, Henri. |title=Language Diversity in Europe: Can the EU Prevent the Genocide of French Linguistic Minorities?}}{{Dead link|date=August 2010}} Other languages, such as Portuguese, Italian, [[Maghrebi Arabic]] and several [[Berber languages]] are spoken by immigrants. === Religion === {{Main|Religion in France}} {{bar box |title=[[Religion in France]] in 2006[http://www.ladocumentationfrancaise.fr/dossiers/religions-france/panorama-religieux.shtml Panorama religieux de la France] - La Documentation Française |titlebar=#ddd |left1=Religion |right1=percent |float=right |bars= {{bar percent|[[Roman Catholicism]]|MediumAquamarine|65}} {{bar percent|[[Atheism]] or [[Agnosticism]]|DarkGray|24}} {{bar percent|[[Islam]]|Green|6}} {{bar percent|[[Protestantism]]|Orange|2}} {{bar percent|[[Judaism]]|Yellow|1}} {{bar percent|Others|Lavender|2}} }} [[Christianity]] is the largest religion in France, which is a [[secular]] country, and freedom of religion is a constitutional right. The French government does not keep [[statistics]] on religious adherence, nor on ethnicity or on political affiliation. However, some unofficial survey estimates exist: * A poll published early 2010, presented following figures. Whilst, in 1965, 81% of the French declared themselves as Catholics, they were no more than 64% in 2009, the reduction in active Catholics was even more profound whilst 27% of the French went to Mass once a week or more in 1952, there are no more than 4.5% in 2006.{{fr}} [http://www.la-croix.com/La-France-reste-catholique-mais-moins-pratiquante/article/2407513/4078 La France reste catholique mais moins pratiquante] - La Croix Besides 64 % Catholics, there were 3 % Protestants, 5 % other religions and 28 % without religion. [[File:Sacre-coeur-paris.jpg|thumb|[[Basilique du Sacré-Cœur, Paris|Basilique du Sacré-Cœur]], in Paris]] * According to a January 2007 poll by the Catholic World News:{{cite web |author=Catholic World News |publisher= |year=2003 |url=http://www.catholicculture.org/news/features/index.cfm?recnum=48547 |title=France is no longer Catholic, survey shows |accessdate=19 December 2009}} and only 5 % of the French population attended church regularly (or 10% attend church services regularly among the respondents who did identify themselves as Catholics), the poll showed{{ro icon}} [http://www.cotidianul.ro/franta_nu_mai_e_o_tara_catolica-20395.html Franţa nu mai e o ţară catolică], ''[[Cotidianul]]'' 11 January 2007 51% identified as being [[Catholicism|Catholics]], 31% identified as being [[agnosticism|agnostics]] or [[atheism|atheists]] ''(another pollLa Vie, issue 3209, 1 March 2007 {{Fr icon}} sets the proportion of atheists equal to 27%)'', 10% identified as being from other religions or being without opinion, 4% identified as [[Islam|Muslim]], 3% identified as [[Protestantism|Protestant]], 1% identified as [[Buddhism|Buddhist]], 1% identified as Jewish. According to independent estimates by the politologist Pierre Bréchon, as of 2009 the number of Catholics has fallen to 42% while the number of atheists and agnostics has risen to 50%.[http://www.la-croix.com/article/index.jsp?docId=2389007&rubId=786 « Sur la religion, les Français restent dubitatifs » - A la Une - la-Croix.com] * According to the most recent but in 2010 somewhat outdated [[Eurobarometer|Eurobarometer Poll]] 2005,{{cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 – page 11|accessdate=5 May 2007|format=PDF}} 34% of French citizens responded that “they believe there is a god”, whereas 27% answered that “they believe there is some sort of spirit or life force” and 33% that “they do not believe there is any sort of spirit, god, or life force”. One other study shows 32% of people in France declaring themselves to be [[atheists]], and another 32% declaring themselves “sceptical about the existence of God but not an atheist”.[http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=1131 Religious Views and Beliefs Vary Greatly by Country], Financial Times/Harris Poll, December 2006 Estimates of the number of [[Islam in France|Muslims in France]] vary widely. According to the more than one decade old 1999 French census returns, there were 3.7 million people of “possible Muslim faith” in France (6.3% of the total population). In 2003, the French Ministry of the Interior estimated the total number of Muslims to be between five and six million (8–10%).[http://www.guardian.co.uk/world/2004/apr/23/france.islam France to train imams in 'French Islam'], The Guardian{{cite web|url=http://www.state.gov/g/drl/rls/irf/2005/51552.htm|title=France – International Religious Freedom Report 2005}} The current [[Jews in France|Jewish community in France]] numbers around 600,000 according to the [[World Jewish Congress]] and is the largest in Europe. Since 1905 the French government has followed the principle of ''[[laïcité]]'', in which it is prohibited from recognizing any ''religion'' (except for legacy statutes like that of military [[chaplain]]s and the [[Local law in Alsace-Moselle|local law]] in [[Alsace-Moselle]]). Instead, it merely recognizes ''religious organizations'', according to formal legal criteria that do not address religious doctrine. Conversely, religious organizations should refrain from intervening in policy-making. Certain body of beliefs such as [[Scientology]], [[Children of God (New Religious Movement)|Children of God]], the [[Unification Church]], or the [[Order of the Solar Temple]] are considered [[cult]]s ("''[[sect#Corresponding words in other European languages|sectes]]''" in French),{{cite web|url=http://www.assemblee-nationale.fr/rap-enq/r2468.asp|title=Commission d’enquête sur les sectes}} and therefore do not have the same status as religions in France. ''Secte'' is considered a pejorative term in France.{{cite web|url=http://www.understandfrance.org/France/Society2.html |title=Society2 ; religion in France ; beliefs ; secularism (laicité) |publisher=Understandfrance.org |date= |accessdate=20 September 2009}} === Public health === {{Main|Health in France}} {{See also|Obesity in France|Smoking in France}} [[File:CHPC Cherbourg1.jpg|thumb|Louis-Pasteur Hospital in [[Cherbourg]]]] [[Health in France|The French healthcare system]] was ranked first worldwide by the [[World Health Organization]] in 1997{{cite web|url=http://www.photius.com/rankings/healthranks.html |title=The ranking, see spreadsheet details for a whole analysis}}, photius.com and then again in 2000.[http://www.who.int/entity/healthinfo/paper30.pdf Measuring overall health system performance for 191 countries] - WHO Care is generally free for people affected by [[chronic disease]]s (''Affections de longues durées'') such as cancer, [[AIDS]] or [[Cystic Fibrosis]]. Average life expectancy at birth is 77 years for men and 84 years for women, one of the highest of the European Union.{{fr}} [http://www.insee.fr/fr/themes/tableau.asp?reg_id=98&ref_id=CMPTEF02216 Espérance de vie, taux de mortalité et taux de mortalité infantile dans le monde] - [[INSEE]] There is 3,22 physicians for 1000 inhabitants in France,{{fr}} [http://www.statistiques-mondiales.com/medecins.htm Nombre de médecins pour 1000 habitants] - Statistiques mondiales whereas average health care spending per capita is US$4,719 in 2008.{{fr}} [http://www.statistiques-mondiales.com/sante.htm Dépenses de santé par habitants] - Statistiques mondiales As of 2007, there are approximately 140,000 inhabitants (0.4%) of France who are living with HIV/AIDS. Even if the [[Frenchmen|French]] have the reputation of being one of the thinnest people in developed countries,[http://www.nytimes.com/2005/05/03/world/europe/03iht-obese.html Even the French are fighting obesity] - The NY Times[http://www.dailyfinance.com/story/frances-obesity-crisis-all-those-croissants-really-do-add-up/19235345/ France's obesity crisis: All those croissants really do add up, after all] - Daily Finance{{cite news|last=Lambert |first=Victoria |url=http://www.telegraph.co.uk/health/dietandfitness/3353715/The-French-children-learning-to-fight-obesity.html |title=The French children learning to fight obesity |publisher=Telegraph.co.uk |date=2008-03-08 |accessdate=2010-08-09 | location=London}}[http://www.businessweek.com/bwdaily/dnflash/jul2001/nf2001073_981.htm Why So Few French Are Fat] - Bloomberg Businessweek[http://www.guardian.co.uk/lifeandstyle/2004/nov/07/foodanddrink.features11 Let them eat cake] - The Guardian{{cite web|url=http://www.streetdirectory.com/travel_guide/24041/e_diet/the_french_diet___eat_drink_and_be_thin.html |title=The French diet : Eat, Drink, and be Thin |publisher=Streetdirectory.com |date= |accessdate=2010-08-09}} France - like other rich countries - faces an increasing and recent epidemy of [[obesity]], due mostly of the replacement of traditional healthy French cuisine by the [[junk food]] in eating habits of French people.[http://www.foodnavigator.com/Science-Nutrition/France-heading-for-US-obesity-levels-says-study France heading for US obesity levels says study] - Food Navigator Nevertheless, French obesity rate is far below the one of the USA (for instance, obesity rate in France is the same that the American once was in the 1970s), and is still the lowest of Europe, but it is now regarded by the authorities as one of the main issues on public health,{{cite web|url=http://www.nutraingredients.com/Regulation/New-French-food-guidelines-aimed-at-tackling-obesity |title=New French food guidelines aimes at tabkling obesity |publisher=Nutraingredients.com |date= |accessdate=2010-08-09}} and is fiercely fought : rates of childhood obesity are slowing in France, while continuing to grow in other countries.{{cite web|author=Petah Marian |url=http://www.just-food.com/analysis/france-urged-to-get-tough-on-child-obesity_id102509.aspx |title=France urged to get tough on child obesity |publisher=Just-food.com |date=2008-05-23 |accessdate=2010-08-09}} France, as all EU countries, is under an EU directive to reduce sewage discharge to sensitive areas. As of 2006, France is only 40% in compliance with this directive, placing it as one of the lowest achieving countries within the EU with regard to this [[wastewater treatment]] standard.{{cite web|url=http://epaedia.eea.europa.eu/page.php?pid=502 |title=EEA.Europa.eu |publisher=Epaedia.eea.europa.eu |date= |accessdate=22 October 2008}} The death of [[Chantal Sébire]] revived the debate over [[euthanasia]] in France. It was reported on 21 March 2008.{{cite news|url=http://edition.cnn.com/2008/WORLD/europe/03/21/euthanasia.debate.ap/index.html |title=France searches its soul after euthanasia plea woman dies |work=CNN.com}} {{Dead link|date=August 2010|bot=RjwilmsiBot}} === Education === [[File:EducationFr.svg|thumb|350px|School system in France]] {{main|Education in France}} {{see also|History of education in France|Baccalauréat}} In 1802, [[Napoléon Bonaparte]] created the [[lycée]].[http://www.britannica.com/EBchecked/topic/352505/lycee Lycée] - Encyclopeadia Britannica Nevertheless it is [[Jules Ferry]] who is considered to be the father of the French modern school, which is free, [[secular]], and compulsory until the age of 13 since 1882{{fr}} [http://www.assemblee-nationale.fr/site-jeunes/laicite/fiche-dates/fiche-1881-1882/fiche.pdf 1881-1882 : Lois Ferry Ecole publique gratuite, laïque et obligatoire] - Assemblé Nationale (school attendace in France is now compulsory until the age of 16{{fr}} [http://www.senat.fr/rap/l97-504/l97-5041.html II. L'évolution du contenu de l'obligation scolaire] - Sénat.fr). Nowadays, the schooling system in France is centralized, and is composed of three stages, primary education, secondary education, and higher education. The [[Programme for International Student Assessment]], coordinated by the [[OECD]], currently ranks France's education as the 25th best in the world, being neither significantly higher nor lower than the OECD average.[http://www.oecd.org/dataoecd/42/8/39700724.pdf Range of rank on the PISA 2006 science scale] - OECD Primary and secondary education are predominantly public, run by the [[Minister of National Education (France)|Ministry of National Education]]. === Media === Compared to other developed countries, French do not spend much time reading newspapers, due to the popularity of broadcast media. Best-selling daily national newspapers in France are ''[[Le Monde]]'' and right-wing ''[[Le Figaro]]'', with around 300.000 copies sold daily, but also ''[[L'Équipe]]'', dedicated to sports coverage.{{fr}} OJD, "Observatoire de la Presse", [http://observatoire.ojd.com/report/visu/obs/20/do/GP_PQN/ Presse Quotidienne Nationale] In the past years, free dailies made a breakthrough, with ''[[Metro International|Metro]]'', ''[[20 minutes (France)|20 Minutes]]'' and ''[[Direct Plus]]'' distributed at more than 650.000 copies respectively.{{fr}} OJD, [http://www.ojd.com/pgi/section/ Presse Gratuite d'Information] However, the widest circulations are reached by regional daily ''[[Ouest France]]'' with more than 750.000 copies sold, and the 50 other regional papers have also high sales.{{fr}} Observatoire de la Presse, [http://observatoire.ojd.com/report/visu/obs/20/do/GP_PQRD/ Presse Quotidienne Régionale et Départementale]{{fr}} OJD, "Bureau Presse Payante Grand Public", [http://www.ojd.com/chiffres/section/PPGP/print?submitted=1§ion=PPGP&famille=2&thema=&search=&go=Lancer+la+recherche Presse Quotidienne Régionale et Départementale] The sector of weekly magazines is stronger and diversified with more than 400 specialized weekly magazines published in the country.{{fr}} Observatoire de la Presse, [http://observatoire.ojd.com/report/visu/obs/20/do/GP_PMAG/ Presse Magazine - Synthèse] The most influential news magazine are left-wing ''[[Le Nouvel Observateur]]'', centrist ''[[L'Express (France)|L'Express]]'' and right-wing ''[[Le Point]]'' (more than 400.000 copies),{{fr}} Observatoire de la Presse, [http://observatoire.ojd.com/report/visu/obs/20/do/GP_NEWS/ Presse News] but the highest circulation for weeklies is reached by TV magazines and by women’s magazines, among them ''[[Marie Claire]]'' and ''[[ELLE]]'', which have foreign versions. Influential weeklies also include investigative and satirical papers ''[[Le Canard Enchaîné]]'' and ''[[Charlie Hebdo]]'', as well as ''[[Paris Match]]''. Like in most industrialized nations, the print media have been affected by a [[Newspaper crisis|severe crisis]] in the past decade. In 2008, the government have launched a major initiative to help the sector reform to be financially independent,''[[The Daily Telegraph|The Telegraph]]'', [http://www.telegraph.co.uk/news/worldnews/europe/france/3125110/Nicolas-Sarkozy-French-media-faces-death-without-reform.html Nicolas Sarkozy: French media faces 'death' without reform] 02 October 2008French government portal, [http://www.gouvernement.fr/gouvernement/lancement-des-etats-generaux-de-la-presse Lancement des états généraux de la presse] 02 October 2008 [Launching of General State of written media] but in 2009 it had to give 600.000 euros to help the print media cope with the [[Global financial crisis of 2008-2009|economic crisis]], in addition to existing subsidies.[[Angelique Chrisafis]], ''[[The Guardian]]'', [http://www.guardian.co.uk/media/2009/jan/23/sarkozy-pledges-state-aid-to-newspapers Sarkozy pledges €600m to newspapers], 23 January 2009. In 1974, after years of centralized monopoly on radio and television, the governmental agency [[ORTF]] was split into several national institutions, but the three already-existing TV channels and four national radio stationsRadio France, "L'entreprise", [http://www.radiofrance.fr/lentreprise/reperes/statuts/ Repères] [Landmarks of Radio France company]{{fr}} Vie Publique, [http://www.vie-publique.fr/politiques-publiques/politique-audiovisuel/chronologie/ Chronologie de la politique de l’audiovisuel] 20/08/2004 [Chronology of policy for audiovisual] remained under state-control. It was only in 1981 when the government allowed free broadcasting in the territory, ending state monopoly on radio. French television was partly liberalized in the next two decade with the creation of several commercial channels, mainly thanks to cable and satellite television. In 2005 the national service [[Télévision Numérique Terrestre]] introduced digital television all over the territory, allowing the creation of other channels. The four existing national channels are now owned by state-owned consortium [[France Télévisions]], while public broadcasting group [[Radio France]] run five national radio stations. Among these public media are [[Radio France Internationale]], which broadcasts programs in French all over the world, and franco-german TV channel [[TV5 Monde]]. In 2006, the government created global news channel [[France 24]]. Long-established TV channels [[TF1]] (privatized in 1987), [[France 2]] and [[France 3]] have the highest shares, while radio stations [[RTL (French radio)|RTL]], [[Europe 1]] and state-owned [[France Inter]] are the lost listened to. === Society and reputation === {{See also|LGBT rights in France|High authority for the struggle against discrimination and for equality}} [[File:Voltaire.jpg|thumb|right|[[Voltaire]] fought intolerance and [[fanaticism]], and was a prominent and very prolific philosopher of the [[Age of Enlightenment|Enlightenment]].]] According to a BBC poll based on 29,977 responses in 28 countries, France is globally seen as a positive influence in the world's affairs : 49 % have a positive view of the country's influence, whereas 19 % have a negative view.[http://news.bbc.co.uk/2/hi/8626041.stm World warming to US under Obama, BBC poll suggests] - BBC[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC Wolrd Servie poll] - BBC The [[Nation Brands Index|Nation Brand Index]] of 2008 suggested that France has the second best international reputation, only behind [[Germany#Society|Germany]].{{cite web|url=http://www.gfk.com/group/press_information/press_releases/003055/index.en.html |title=Germany on Top, U.S. Seventh in Nation Brands IndexSM |publisher=Gfk.com |date= |accessdate=2010-08-09}} In January 2010, the [[International Living]] ranked France as "best country to live in", ahead of 193 other countries surveyed, for the fifth year running, according to a survey taking in account 9 criteria of quality of life: Cost of Living, Culture and Leisure, Economy, Environment, Freedom, Health, Infrastructure, Safety and Risk and Climate.[http://www.dailymail.co.uk/news/worldnews/article-1240988/France-tops-list-best-places-live-world-fifth-year-row--Britain-languishes-25th.html Britain falls to 25th best place to live in the world... behind Lithuania, the Czech Republic and Hungary] - Mail Online[http://edition.cnn.com/2010/WORLD/europe/02/11/france.quality.life/index.html Why France is best place to live in world] - CNN France has historical strong ties with [[Human Rights]].[http://www.diplomatie.gouv.fr/en/france-priorities_1/democracy-human-rights_1101/france-human-rights-policy_1672.html France’s human rights policy] - France Diplomatie Since the [[Declaration of the Rights of Man and of the Citizen]] of 1789, France is often nicknamed as "the country of Human Rights".[http://www.dreyfus.culture.fr/en/the-aftermath-of-the-affair/the-struggle-for-human-rights/france-the-country-of-human-rights.htm France, the country of Human Rights] - 1906 : Dreyfus rehabilitated Furthermore, in 1948, a Frenchman, [[René Cassin]], was one of the main redactors of the [[Universal Declaration of Human Rights]] which was adopted by the UN members in [[Paris]]. [[File:Delacroix - La liberte.jpg|thumb|200|right|[[Marianne]], in painting by [[Eugène Delacroix]], ''[[La Liberté guidant le peuple]]'' (1830)]] National symbols strongly reflects the heritage of the Revolution. The four official symbols of the Republic, as stated by the [[Constitution of the French Fifth Republic|Constitution]],Conseil Constitutionnel, [http://www.conseil-constitutionnel.fr/conseil-constitutionnel/root/bank_mm/anglais/constiution_anglais_oct2009.pdf Constitution of October 4, 1958] (page 4) "Title I - Of Sovereignty" all commemorate events from the period. [[Bastille Day]], the national holiday, commemorate the [[Fête de la Fédération]], held on 14 July 1790 to celebrate the [[storming of the Bastille]].Ministry of Foreign Affairs of France, "The symbols of the Republic", [http://www.diplomatie.gouv.fr/en/france_159/institutions-and-politics_6814/the-symbols-of-the-republic_2002/the-14th-of-july-the-bastille-day_13113.html The 14th of July : The Bastille day] The origins of [[Flag of France|Tricolored flag]] also date back to the Revolution, as the [[cockade]] was the symbols adopted by the revolutionaries in 1789.Ministry of Foreign Affairs of France, "The symbols of the Republic", [http://www.diplomatie.gouv.fr/en/france_159/institutions-and-politics_6814/the-symbols-of-the-republic_2002/the-french-flag_1504.html The French Flag] As for the national anthem [[La Marseillaise]], it was written in 1792 as a war song for the French Army.Assemblée Nationale, "History and heritage : La Marseillaise, [http://www.assemblee-nationale.fr/english/la_marseillaise.asp Rouget de Lisle (1760-1836) and La Marseillaise]Ministry of Foreign Affairs of France, "The symbols of the Republic", [http://www.diplomatie.gouv.fr/en/france_159/institutions-and-politics_6814/the-symbols-of-the-republic_2002/the-national-anthem-the-marseillaise_1502.html The national anthem : The Marseillaise] The official motto of the French Republic, "[[Liberté, égalité, fraternité]]" (Liberty, equality, brotherhood) also appeared during the French Revolution.Ministry of Foreign Affairs of France, "The symbols of the Republic", [http://www.diplomatie.gouv.fr/en/france_159/institutions-and-politics_6814/the-symbols-of-the-republic_2002/liberty-equality-fraternity_1503.html Liberty, Equality, Fraternity] [[Marianne]], unofficial symbol, is an allegorical figure of liberty and of the Republic and also appeared at the time of the Revolution.[http://www.diplomatie.gouv.fr/en/france_159/institutions-and-politics_6814/the-symbols-of-the-republic_2002/marianne_1506.html?var_recherche=Marianne The Symbols of the Republic : Marianne] on the [http://www.diplomatie.gouv.fr/en/ Official Site of the Foreign Affairs Ministry of France] France is tolerant of the [[LGBT community]]. Since 1999, [[Pacte civil de solidarité|civil unions]] for homosexual couples are permitted, although [[same-sex marriage]] is illegal in France. Laws sentencing [[racism]], [[sexism]] or [[antisemitism]] are old and important, for instance, laws prohibiting discriminatory speech in the press are as old as 1881.{{fr}} [http://www.ambafrance-dz.org/ambassade/IMG/Lutte_racisme_et_antisemitisme.pdf La lutte contre le racisme et l'antisémintisme en France] - AmbaFrance France is one of the most tolerant countries of the world, religiously speaking, according to a survey conducted in 15 different countries.[http://www.ambafrance-gh.org/spip.php?article469 High degree of tolerance in France] - AmbaFrance French Muslims are also more tolerant than British Muslims are.{{cite news|author=Riazat Butt, Religious affairs correspondent |url=http://www.guardian.co.uk/uk/2009/may/07/muslims-britain-france-germany-homosexuality |title=Muslims in Britain have zero tolerance of homosexuality, says poll |publisher=Guardian |date= 7 May 2009|accessdate=2010-08-09 | location=London}} There are also [[stereotypes]] about the [[French people]]: on one hand, French are seen as "elegant", "sophisticated", "cheerful", "respectful of human rights", however, they may be seen as "arrogant", "rude", "messy" and "noisy".[http://www.understandfrance.org/France/Intercultural.html Intercultural differences] - Understand France A common and traditional symbol of the French people is the [[Gallic rooster]]. Its origins date back to Antiquity, since the Latin word Gallus meant both "rooster" and "inhabitant of Gaul". Then this figure gradually became the most widely shared representation of the French, used by French monarchs, then by the Revolution and under the successive republican regimes as representation of the national identity, used for some stamps and coins.{{fr}} French Presidency, "Les symboles de la République française", [http://www.elysee.fr/president/la-presidence/les-symboles-de-la-republique-francaise/le-coq/le-coq.6052.html Le coq] Although it is not an official symbol of the Republic, it is the most common image to symbolize France in the collective imagination and abroad. === Gastronomy === {{Main|French cuisine}} [[File:Foie gras en cocotte.jpg|thumb|''[[Foie gras]]'']] French cuisine is renowned for being one of the finest in the world.{{fr}} [http://www.ladepeche.fr/article/2008/02/24/436892-Cuisine-sommes-nous-les-meilleurs-du-monde.html Cuisine : sommes-nous les meilleurs du monde ?] - La Dépêche[http://www.discoverfrance.net/France/Food/DF_cuisine.shtml French Cuisine] - Discover France[http://blog.hotelclub.com/top-10-international-cuisine/ Top 10 Most Tasty Cuisines in the World] - Hotel Club Travel Blog{{fr}} [http://www.vbartdevivre.fr/fr/ateliers-de-cuisine-francaise Ateliers de cuisine française] - Art de vivre à Paris[http://www.travour.com/tours-to-france/culture-of-france/ France Culture] on Travour.com{{fr}} [http://www.amour-de-france.com/contenu.php?page=article-51 La Gastronomie Française] - Chinese Lovers of France[http://www.theinternationalkitchen.com/cooking-vacations/france About our vacations in France] -Cooking Vacations to France French cuisine is extremely diverse and has exerted a major influence on other western cuisines.{{fr}} {{cite web|url=http://www.delices-du-monde.fr/recettes-francaise.html|title=Recettes françaises}} - Delices du Monde According to the regions, traditional recipes are differents, the North of the country prefers to use [[butter]] as the preferred [[fat]] for cooking, whereas [[olive oil]] is more commonly used in the South.{{fr}} [http://www.google.com/hostednews/afp/article/ALeqM5jvmxWfyZ2tFVA3qcmC7DkX6SMi5g La France du beurre et celle de l'huile d'olive maintiennent leurs positions] - [[Agence France Presse]] Moreover, each region of France has iconic traditional specialities : [[Cassoulet]] in the Southwest, [[Choucroute]] in [[Alsace]], [[Quiche]] in the [[Lorraine (region)|Lorraine region]], [[Beef bourguignon]] in the [[Burgundy (French region)|Bourgogne]], [[Provence|provençal]] [[Tapenade]], etc. France's most renowned products are [[French wine|wines]],{{cite web|url=http://userweb.cs.utexas.edu/users/walter/wine/france.html |title=Wines of France |publisher=Userweb.cs.utexas.edu |date= |accessdate=2010-08-09}} including [[Champagne (wine)|Champagne]], [[Bordeaux wine|Bordeaux]], [[Burgundy wine|Bourgogne]], and [[Beaujolais (wine)|Beaujolais]] as well as a large variety of different [[List of French cheeses|cheeses]], such as [[Camembert]], [[Roquefort (cheese)|Roquefort]] and [[Brie cheese|Brie]]. There are more than 400 different varieties.[http://www.goodcooking.com/frcheese.htm French Cheese] - GoodCooking[http://www.franceway.com/cheese/ French Cheese] on [http://www.traditionalfrenchfood.com/index.html Traditional French Food] French cuisine is also regarded as a key element of the [[quality of life]] and the attractiveness of France. [[Michelin guide]] awarned 620 stars to French restaurants, more than any other country in the world (Italy came second with 255 stars).[http://www.3starrestaurants.com/michelin-restaurants-star-guide.asp Michelin 3 Star Restaurants around the world] === Sports === {{Main|Sport in France}} [[File:TourDeFrance 2005 07 09.jpg|thumb|[[Tour de France]]]] Popular sports played in France include [[Association football|football]], [[judo]] and [[tennis]].{{fr}} [http://www.insee.fr/fr/themes/tableau.asp?ref_id=NATTEF05401®_id=0 Les licences sportives en France] - Insee France has hosted events such as the [[1938 FIFA World Cup|1938]] and [[1998 FIFA World Cup]]s,[http://www.fifa.com/mm/document/fifafacts/mcwc/ip-201_10e_fwcdraw-history_8842.pdf History of the World Cup Final Draw] - FIFA and hosted the [[2007 Rugby Union World Cup]].[http://www.rugby.com.au/news/2003_april/france_wins_right_to_host_the_2007_rugby_wor_15381,3851.html France wins right to host the 2007 rugby world cup] - Rugby.com [[Stade de France]] in Paris is the largest stadium in France and was the venue for the 1998 FIFA World Cup final, and hosted the 2007 Rugby World Cup final in October 2007. France also hosts the annual [[Tour de France]], the most famous [[road bicycle race]] in the world.[http://www.weightlossdietinformation.com/the-tour-de-france-the-most-famous-bicycle-race-in-the-world.html The Tour De France: The Most Famous Bicycle Race In The World] - Weightlossdietinformation.com{{cite web|url=http://www.faqs.org/sports-science/Ce-Do/Cycling-Tour-de-France.html |title=Cycling: Tour de France |publisher=Faqs.org |date= |accessdate=2010-08-09}} France is also famous for its [[24 Hours of Le Mans]] [[sports car racing|sports car]] [[endurance racing (motorsport)|endurance race]] held in the [[Sarthe]] department.{{fr}} [http://www.lemans.org/fr/courses/24h/histoire.html Une course légendaire] - [http://www.lemans.org/ Site officiel du 24 heures du Mans] Several major tennis tournaments take place in France, including the [[Paris Masters]] and the [[French Open]], one of the four [[Grand Slam (tennis)|Grand Slam]] tournaments. [[File:Christophe Lemaitre Barcelone 2010.jpg|thumb|right|[[Christophe Lemaitre]] is the first [[Caucasian race|Caucasian]] to break the [[10-second barrier]].]] France has a close association with the [[Olympic Games|Modern Olympic Games]]; it was a French aristocrat, Baron [[Pierre de Coubertin]], who suggested the Games' revival, at the end of the 19th century.{{Cite book | last = Hill | first = Christopher R. | title = Olympic Politics | page = 5 |publisher = Manchester University Press ND | year = 1996 | url = http://books.google.com/?id=0o-9AAAAIAAJ&dq=pierre+de+coubertin | isbn = 0719044510}}[http://www.worldatlas.com/aatlas/infopage/olympic.htm Olympic History] - World Atlas of Travel After [[Athens]] was awarded the first Games, in reference to the Greek origins of the ancient Olympics, Paris hosted the second Games [[1900 Summer Olympics|in 1900]].[http://www.olympic.org/en/content/Olympic-Games/All-Past-Olympic-Games/Summer/Paris-1900/ Paris 1900 Summer Olympics] on the [http://www.olympic.org/en/ Official Site of the Olympic Movement] Paris was also the first home of the [[International Olympic Committee]], before it moved to [[Lausanne]].[http://www.lausanne-tourisme.ch/view.asp?DomID=63416&Language=E Lausanne, olympic capital] - Tourism in Lausanne Since that 1900 Games, France has hosted the Olympics on four further occasions: the [[1924 Summer Olympics]], again in Paris and three [[Winter Olympic Games|Winter Games]] ([[1924 Winter Olympics|1924]] in [[Chamonix]], [[1968 Winter Olympics|1968]] in [[Grenoble]] and [[1992 Winter Olympics|1992]] in [[Albertville]]). Both the [[France national football team|national football team]] and the [[France national rugby union team|national rugby union team]] are nicknamed “''Les Bleus''” in reference to the team’s shirt color as well as the national French tricolor flag. The football team is among the most successful in the world, particularly at the turn of the 21st century, with one [[FIFA World Cup]] victory in 1998,[http://sportsillustrated.cnn.com/soccer/world/events/1998/worldcup/ Vive la France] - CNN one FIFA World Cup second place in 2006,[http://news.bbc.co.uk/sport2/hi/football/world_cup_2006/4991652.stm Italy 1-1 France] - BBC and two [[UEFA European Football Championship|European Championships]] in [[1984 UEFA European Football Championship|1984]][http://www.uefa.com/uefaeuro2012/history/season=1984/index.html 1984: Platini shines for flamboyant France] on the [http://en.uefa.com/ UEFA Official Site] and [[2000 UEFA European Football Championship|2000]].[http://www.uefa.com/uefaeuro2012/history/season=2000/index.html 2000: Trezeguet strikes gold for France] on the [http://en.uefa.com/ UEFA Official Site] The top national football club competition is the [[Ligue 1]]. Rugby is also very popular, particularly in Paris and the southwest of France.[http://www.123voyage.com/realsw/tosee/rugby.htm Rugby] - 123 Voyage The national rugby team has competed at every [[Rugby World Cup]], and takes part in the annual [[Six Nations Championship]]. Following from a [[Top 14|strong domestic tournament]] the French rugby team has won sixteen Six Nations Championships, including eight grand slams; and have reached the semi-finals and final of the [[Rugby World Cup]]. === Conventions and notations === * France is the home of the [[International System of Units]] (the metric system).[http://www.nist.gov/physlab/div842/fcdc/si-units.cfm International System of Units (SI)] - Physics Laboratory Some pre-metric units are still used, essentially the ''[[Pound (mass)#French livre|livre]]'' (a unit of weight equal to half a kilogram) and the ''[[quintal]]'' (a unit of weight equal to 100 kilograms). * In [[mathematics]], France uses the [[infix notation]] like most countries. For large numbers the [[long and short scales|long scale]] is used. Thus, the French use the word ''[[billion (word)|billion]]'' for the number 1,000,000,000,000, which in countries using [[Long and short scales|short scale]] is called a [[Trillion (short scale)|trillion]]. However, there exists a French word, ''milliard'', for the number 1,000,000,000, which in countries using the short scale is called a billion. Thus, despite the use of the long scale, one billion is called ''un milliard'' ("one milliard") in French, and not ''mille millions'' ("one thousand million"). It should also be noted that names of numbers above the ''milliard'' are rarely used. Thus, one trillion will most often be called ''mille milliards'' (“one thousand milliard”) in French, and rarely ''un billion''. * In the French numeral notation, the comma (,) is the [[decimal separator]], whereas a space is used between each group of three digits (fifteen million five hundred thousand and thirty-two should be written as 15 500 032). In finance, the currency symbol is used as a decimal separator or put after the number. For example, €25,048.05 is written either 25 048€05 or 25 048,05 € (always with an extra space between the figure and the currency symbol). * In computing, a [[bit]] is called a bit yet a [[byte]] is called an [[octet (computing)|octet]][http://dictionary.reverso.net/french-english/octet English translation of "Octet"] on [http://dictionary.reverso.net/ Reverso] (from the Latin root ''octo'', meaning "8"). [[SI prefix]]es are used. * [[24-hour clock]] time is used, with h being the separator between hours and minutes (for example 2:30 p.m. is 14h30). * The all-numeric form for dates is in the order day-month-year, using a slash as the separator (example: 31/12/1992 or 31/12/92). == Culture and arts == {{Main|Culture of France}} France has been a center of cultural creation for centuries. Many French artists have been among the most renowned of their time, and France is still much recognized and admired in the world for its very rich cultural tradition. The successive political regimes have always promoted artistic creation, and the creation of the [[Minister of Culture (France)|Ministry of Culture]] in 1959 helped preserve the cultural heritage of the country and make it available to public. The Ministry of Culture has been very active since its creation, granting subsidies to artists, promoting French culture in the world, supporting festivals and cultural events, protecting [[Monument historique|historical monuments]]. The French government also succeeded in maintaining a [[cultural exception]] to defend audiovisual products made in the country. France is the country that receive the highest number of tourists per year, largely thanks to the numerous cultural establishments and historical buildings implanted all over the territory. It counts 1,200 [[List of museums in France|museums]] welcoming more than 50 million people annually.Ministère de la Culture et de la Communication, "Cultura statistics", [http://www2.culture.gouv.fr/culture/deps/2008/pdf/minichiffrescles2010-en.pdf Key figures] The most important cultural sites are run by the government, for instance through the public agency [[Centre des monuments nationaux]], which have around hundred [[Monument historique|national historical monuments]] at charge. The 43,180 buildings protected as historical monuments include mainly residences (many [[List of castles in France|castles]], or ''[[château]]x'' in French) and religious buildings ([[List of cathedrals in France|cathedrals]], [[List of basilicas in France|basilicas]], churches, etc), but also statutes, memorials and [[Gardens of France|gardens]]. === Painting === {{Main|French painting}} [[File:Claude Monet 1899 Nadar.jpg|thumb|upright|[[Claude Monet]], founder of the [[Impressionist]] movement]] The origins of [[French painting]] were very much influenced by [[Italian art]]. The two most famous French artists of the time of [[Renaissance]], [[Nicolas Poussin]] and [[Claude Lorrain]], lived in Italy. Louis XIV's prime minister [[Jean-Baptiste Colbert]] founded in 1648 the [[Royal Academy of Painting and Sculpture]] to protect these artists, and in 1666 he created the still-in-activity [[French Academy in Rome]] to have direct relations with Italian artists. French painting also followed the evolution of Italian painters towards a rococo style in the eighteenth century, as an imitation of old baroque style, the works of court-endorsed artists [[Antoine Watteau]], [[François Boucher]] and [[Jean-Honoré Fragonard]] being the most representative in the country. The French Revolution brought great changes, as [[Napoleon I]] favoured painters of [[neoclassicism|neoclassic style]] as [[Jacques-Louis David]]. The middle of the eighteen century was dominated by two successive movements, at first [[Romanticism]] with [[Théodore Géricault]] and [[Eugène Delacroix]], a more realistic painting with [[Camille Corot]], [[Gustave Courbet]] and [[Jean-François Millet]]. In the second part of the eighteenth century, France became a center of artistic creation, developing a new style of painting and counting on the most famous impressionist painters of the period, among them [[Camille Pissarro]], [[Édouard Manet]], [[Edgar Degas]], [[Claude Monet]], [[Auguste Renoir]].The National Gallery of London official website, [http://www.nationalgallery.org.uk/paintings/learn-about-art/guide-to-impressionism/guide-to-impressionism Guide to Impressionism] Second generation of impressionist-style painters [[Paul Cézanne]], [[Paul Gauguin]], [[Toulouse-Lautrec]] and [[Georges Seurat]] were also at the avant-guarde of artistic evolutions,{{fr}} RFI, [http://www.rfi.fr/actufr/articles/063/article_34792.asp Le néo-impressionnisme de Seurat à Paul Klee] 15/03/2005 as well as [[fauvism|fauvist artists]] [[Henri Matisse]], [[André Derain]] and [[Maurice de Vlaminck]].National Gallery of Art (United States), [http://www.nga.gov/feature/artnation/fauve/index.shtm The Fauves (dossier)]{{fr}} RFI, [http://www.rfi.fr/culturefr/articles/098/article_63189.asp Vlaminck, version fauve], 25/02/2008 At the beginning of twentieth century, Cubism was developed by [[Georges Braque]] and Spanish painter [[Pablo Picasso]], living in Paris. Other foreign artists also settled and worked in or near Paris, like [[Vincent van Gogh]], [[Marc Chagall]] and [[Wassily Kandinsky]]. Many museums in France are entirely or partly devoted to painting works. A huge collection of old masterpieces created before or during the eighteenth century are exposed in the state-owned [[Musée du Louvre]], such as [[Mona Lisa]], also known as [[La Joconde]]. While the [[Louvre Palace]] has been for a long time a museum, the [[Musée d'Orsay]] was inaugurated in 1986 in the old railway station [[Gare d'Orsay]], in a major reorganization of national art collections, to gather French paintings from the second part of the nineteenth century (mainly Impressionism and Fauvism movements).Musée d'Orsay (official website), History of the museum - [http://www.musee-orsay.fr/en/collections/history-of-the-museum/home.html From station to museum]Musée d'Orsay official website, [http://www.musee-orsay.fr/en/collections/history-of-the-collections/painting.html History of the painting collection] Modern works are presented in the [[Musée National d'Art Moderne]], which moved in 1976 to the [[Centre Georges Pompidou]]. These three state-owned museums welcome close to 17 million people a year.{{fr}} Ministry of Tourism, [http://www.tourisme.gouv.fr/stat_etudes/memento/2009/sites.pdf Sites touristiques en France] page 2 "Palmarès des 30 premiers sites culturels (entrées comptabilisées)" [Ranking of 30 most visited cultural sites in France] Other national museums hosting paintings include the [[Grand Palais]] (1,3 million visitors in 2008), but there are also many museums owned by cities, the most visited being the [[Musée d'Art Moderne de la Ville de Paris]] (0,8 million entries in 2008), which hosts contemporary works. === Architecture === {{Main|French architecture}} Technically speaking, there is no standard type of "French" architecture, although that has not always been true. [[Gothic Architecture]]'s old name was ''French Architecture'' (or Opus Francigenum).[http://www.answers.com/topic/opus-francigenum-art Opus Francigenum] - Answers.com The term “Gothic” appeared later as a stylistic insult and was widely adopted. The Gothic Architecture was the first French style of Architecture to be copied in all Europe.[http://www.justfrance.org/france/architecture/001.asp The Gothic period] - France Travel Northern France is the home of some of the most important Gothic [[cathedrals]] and [[basilicas]], the first of these being the [[Saint Denis Basilica]] (used as the royal necropolis); other important French Gothic cathedrals are [[Cathedral of Chartres|Notre-Dame de Chartres]] and [[Amiens Cathedral|Notre-Dame d'Amiens]]. The kings were crowned in another important Gothic church: [[Notre-Dame de Reims]].{{fr}} [http://www.cathedrale-reims.culture.fr/histoire.html Histoire et Architecture] - [http://www.cathedrale-reims.culture.fr/ Site officiel de la Cathedrale de Notre-Dame de Reims] Aside from churches, Gothic Architecture had been used for many religious palaces, the most important one being the [[Palais des Papes]] in Avignon. [[File:Sainte chapelle - Upper level.jpg|thumb|left|[[Louis IX of France|Saint Louis']] [[Sainte Chapelle]] represents the French impact on religious architecture.]] During the Middle Ages, fortified [[castle]]s were built by feudal nobles to mark their powers against their rivals. When [[Philip II of France|King Philip II]] took [[Rouen]] from [[John of England|King John]], for example, he demolished the ducal castle to build a bigger one. Fortified cities were also common, unfortunately most French castles did not survive the passage of time. This is why [[Richard I of England|Richard the Lionheart's]] [[Château Gaillard]] was demolished, as well as the [[Château de Lusignan]]. Some important French castles that survived are [[Chinon (castle)|Chinon]], [[Château d'Angers]], the massive [[Château de Vincennes]] and the so called [[Cathar castles]]. Before the appearance of this architecture France had been using [[Romanesque architecture]] like most of Western Europe (with the exception of the Iberian Peninsula, which used Mooresque architecture, which now consists of [[Spain]] and [[Portugal]]). Some of the greatest examples of Romanesque churches in France are the [[Basilique de Saint-Sernin, Toulouse|Saint Sernin Basilica]] in [[Toulouse, France|Toulouse]] (largest romanesque church in Europe[http://www.europeupclose.com/france/southwest-france/toulouses-saint-sernin-largest-romanesque-church-in-europe/ Toulouse’s Saint Sernin, Largest Romanesque Church in Europe] - EuropeUpClose) and the remains of the [[Cluny Abbey|Cluniac Abbey]] (largely destroyed during the Revolution and the Napoleonic Wars). [[File:Le grand foyer-2.jpg|thumb|[[Opéra Garnier]], Paris, a symbol of the French [[Baroque Revival architecture|Neo-Baroque]] style]] The end of the Hundred Years' War marked an important stage in the evolution of French architecture. It was the time of the [[French Renaissance]] and several artists from [[Italy]] and [[Spain]] were invited to the French court; many residential palaces, inspired by the Italians, were built, but mainly in the [[Loire Valley]]. Such residential castles were the [[Château de Chambord]], the [[Château de Chenonceau]], or the [[Château d'Amboise]]. Following the renaissance and the end of the Middle Ages, [[Baroque Architecture]] replaced the traditional gothic style. However, in France, baroque architecture found a greater success in the secular domain than in a religious one.{{fr}} Claude Lébedel – Les Splendeurs du Baroque en France: ''Histoire et splendeurs du baroque en France'' page 9: “Si en allant plus loin, on prononce les mots ‘art baroque en France’, on provoque alors le plus souvent une moue interrogative, parfois seulement étonnée, parfois franchement réprobatrice: Mais voyons, l'art baroque n'existe pas en France!” In the secular domain the [[Palace of Versailles]] has many [[baroque era|baroque]] features. [[Jules Hardouin Mansart]] was said to be the most influential French architect of the baroque era, with his famous dome, [[Les Invalides]]. Some of the most impressive provincial baroque architecture is found in places that were not yet French such as the [[Place Stanislas]] in [[Nancy, France|Nancy]]. On the military architectural side, [[Vauban]] designed some of the most efficient fortresses in Europe and became an influential military architect; as a result, imitations of his works can been found all over Europe, the [[Americas]], [[Russia]] and [[Turkey]].{{cite web|url=http://whc.unesco.org/en/list/1283 |title=Fortifications of Vauban |publisher=Whc.unesco.org |date=2008-07-08 |accessdate=2010-08-09}}{{cite web|url=http://www.unesco.org/new/en/unesco/ |title=Official site of the UNESCO |publisher=Unesco.org |date= |accessdate=2010-08-09}} [[File:Eiffel-tower-2008.jpg|thumb|left|upright|The [[Eiffel Tower]] is an icon of both Paris and France]] After the Revolution the [[Republicanism|Republicans]] favoured [[Neoclassicism]] although neoclassicism was introduced in France prior to the revolution with such building as the [[Panthéon, Paris|Parisian Pantheon]] or the [[Capitole de Toulouse]]. Built during the French Empire the [[Arc de Triomphe]] and [[Église de la Madeleine|Sainte Marie-Madeleine]] represent this trend the best.{{cite book |title= Paris: City Guide |last= |first= |authorlink= |coauthors= |year= 2008 |publisher= Lonely Planet |location= |isbn=1740598504|page= 48 |pages= |url=http://books.google.com/?id=OtabdzMdbboC&pg=PA48&lpg=PA48&dq=arc+de+triomphe+neoclassicism+sainte+marie+madeleine&q|accessdate=}} Under [[Napoleon III]] a new wave of [[urbanism]] and architecture was given birth. If extravagant buildings such as the [[neo-baroque]] [[Palais Garnier]] were built, the urban planning of the time was very organised and rigorous.{{Citation needed|date=July 2010}} For example, [[Baron Haussmann]] [[Haussmann's renovation of Paris|rebuilt Paris]]. The architecture associated to this era is named [[Second Empire (architecture)|Second Empire]] in English, the term being taken from the [[Second French Empire]]. At this time there was a strong Gothic resurgence across Europe and in France the associated architect was [[Eugène Viollet-le-Duc]]. In the late 19th century [[Gustave Eiffel]] designed many bridges, such as [[Garabit viaduct]], and remains one of the most influential bridge designer of his time, although he is best remembered for the iconic [[Eiffel Tower]]. In the 20th century, [[Swiss]] Architect [[Le Corbusier]] designed several buildings in France. More recently French architects have combined both modern and old architectural styles. The [[Louvre Pyramid]] is an example of modern architecture added to an older building. Certainly the most difficult buildings to integrate within French cities are skyscrapers, as they are visible from afar. For instance, in [[Paris]], since 1977, new buildings must have been under 37 meters, or 121 feet.[http://lci.tf1.fr/posez-vos-questions/2008-07/gratte-ciel-paris-pensez-vous-4872555.html Des gratte-ciel à Paris : qu'en pensez-vous ?] - [[La Chaîne Info|LCI]] France's largest financial district is [[La Defense]], where a significant number of skyscrapers are located.[http://www.groupenci.com/uk/ile-de-france/defense.com-square.html In the heart of the main European Business area] - NCI Buisness Center Other massive buildings that are a challenge to integrate into their environment are large bridges; a good example of the way this has been done is the [[Millau Viaduct]]. Some famous modern French architects include [[Jean Nouvel]] or [[Paul Andreu]]. [[File:Molière - Nicolas Mignard (1658).jpg|thumb|upright|[[Molière]] is the most played author in the [[Comédie-Française]]{{fr}} [http://www.comedie-francaise.fr/histoire-et-patrimoine?id=525 Auteurs et répertoires] - Official site of the Comédie Française]] === Literature === {{Main|French literature}} [[File:Bonnat Hugo001z.jpg|thumb|left|190px|[[Victor Hugo]] is one of the most important French novelists and poets, and is sometimes seen as the greatest French writer of all times{{fr}} {{PDF|[http://www.lecavalierbleu.com/images/30/extrait_75.pdf « Victor Hugo est le plus grand écrivain français » ]|19.0 KB}} ]] The earliest French literature dates from the [[Middle Age]]s, when what is now known as modern France did not have a single, uniform language. There were several languages and dialects and each writer used his own spelling and grammar.{{Citation needed|date=July 2010}} The authors of French mediaeval texts are unknown, such as [[Tristan and Iseult]] and [[Lancelot and the Holy Grail]]. Much mediaeval French poetry and literature were inspired by the legends of the [[Matter of France]], such as [[The Song of Roland]] and the various [[Chansons de geste]]. The “Roman de Renart”, written in 1175 by [[Perrout de Saint Cloude]] tells the story of the mediaeval character [[Reynard]] ('the Fox') and is another example of early French writing. The names of some authors from this period are known, for example [[Chrétien de Troyes]] and [[William IX of Aquitaine|Duke William IX of Aquitaine]], who wrote in [[Occitan]]. An important 16th century writer was [[François Rabelais]] who influenced modern French vocabulary and metaphor.{{Citation needed|date=July 2010}} During the 17th century, plays by [[Pierre Corneille]], [[Jean Racine]] and [[Molière]], as well as the moral and philosophical books by [[Blaise Pascal]] and [[René Descartes]], deeply influenced the French aristocracy leaving an important new niche for authors of the following decades, such as [[Jean de La Fontaine]], who was an important poet from this century. [[File:Charles Baudelaire2.jpg|thumb|upright|19th century poet, writer, and translator [[Charles Baudelaire]].]] French literature and poetry flourished in the 18th and 19th centuries. The 18th century saw the works of writers, essayists and moralists such as [[Voltaire]], [[Denis Diderot]] and [[Jean-Jacques Rousseau]]. [[Charles Perrault]] was a prolific writer of famous children's fairy tales including “[[Puss in Boots]]”, “[[Cinderella]]”, “[[Sleeping Beauty]]” and “[[Bluebeard]]”. At the turn of the 19th century [[symbolist poetry]] was an important movement in French literature, with poets such as [[Charles Baudelaire]], [[Paul Verlaine]] and [[Stéphane Mallarmé]].{{Clarify|date=July 2010}}{{fr}} [http://users.skynet.be/litterature/symbolisme/symbolismefrancais.htm Le symbolisme français] The 19th century saw the writings of French authors: [[Victor Hugo]] (''[[Les Misérables]]''), [[Alexandre Dumas]] (''[[The Three Musketeers]]'' and ''[[The Count of Monte-Cristo]]''), and [[Jules Verne]] (''[[Twenty Thousand Leagues Under the Sea]]''), which are amongst the most well-known in France and the world. Other 19th century fiction writers include [[Émile Zola]], [[Honoré de Balzac]], [[Guy de Maupassant]], [[Théophile Gautier]] and [[Stendhal]]. The [[Prix Goncourt]] is a French literary prize first awarded in 1903.{{fr}} [http://www.academie-goncourt.fr/?article=1229174089 La première Académie Goncourt] - [http://www.academie-goncourt.fr/? Site officiel de l'Académie Goncourt] Important writers of the 20th century include [[Marcel Proust]], [[Louis-Ferdinand Céline]], [[Albert Camus]], and [[Jean-Paul Sartre]]. [[Antoine de Saint Exupéry]] wrote ''[[The Little Prince|Little Prince]]'' which has remained popular for decades with children and adults around the world.[http://www.completelynovel.com/books/50599 The Little Prince] - Completely Novel === Music === {{Main|Music of France}} Although the musical creation in France dates back to the Middle Ages, it knew its golden age in the seventeenth century thanks to Louis XIV, who employed several musicians and composers in the royal court. The most renowned composers of this period include [[Marc-Antoine Charpentier]], [[François Couperin]], [[Michel-Richard Delalande]], [[Jean-Baptiste Lully]] and [[Marin Marais]], all of them composers at the court. After the death of the "Roi Soleil", French musical creation lost dynamism, but in the next century the music of [[Jean-Philippe Rameau]] reached some prestige, and today he is still one of the most renowned French composers. French classical music knew a revival in the nineteenth and twentieth century, at the end of the romantic movement, at first with opera composers [[Hector Berlioz]], [[Georges Bizet]], [[Gabriel Fauré]], [[Charles Gounod]], [[Jacques Offenbach]], [[Édouard Lalo]], [[Jules Massenet]] and [[Camille Saint-Saëns]]. This period was a golden age for operas, being popular in the country the [[opéra bouffon]], the [[opera-ballet]] and the [[opéra comique]] genres. Later came precursors of modern classical music [[Érik Satie]], [[Francis Poulenc]], and above all [[Maurice Ravel]] and [[Claude Debussy]], who invented new musical forms.NPR (website), [http://www.npr.org/templates/story/story.php?storyId=4957580 Debussy's 'La Mer' Marks 100th Birthday], October 14, 2005NPR (website), [http://www.npr.org/templates/story/story.php?storyId=92338564 Debussy's Musical Game of Deception], July 12, 2008Classic fM website, [http://www.classicfm.co.uk/music/composers/c-g/claude-debussy/ Biography of Claude Debussy]Classic fM website, [http://www.classicfm.co.uk/music/composers/n-r/maurice-ravel/ Biography of Maurice Ravel] More recently, at the middle of the twentieth century, [[Maurice Ohana]], [[Pierre Schaeffer]] and [[Pierre Boulez]] contributed to the evolutions of [[contemporary classical music]].NPR (website), [http://www.npr.org/templates/story/story.php?storyId=126668117 Composer-Conductor Pierre Boulez At 85], 24 May 2010 [[File:DaftAlive.jpeg|thumb|[[Daft Punk]], pioneers of the [[French house]].]] French music then followed the rapid emergence of pop and rock music at the middle of the twentieth century. Although English-speaking creations has reached some popularity in the country, [[French popular music|French pop music]], known as ''[[chanson française]]'', has remained very popular. Among the most important French artists of the century are [[Edith Piaf]], [[Georges Brassens]], [[Léo Ferré]], [[Charles Aznavour]] and [[Serge Gainsbourg]]. Although there are very few rock bands in France compared to English-speaking countries,[[Radio France Internationale|RFI Musique]], [http://www.rfimusique.com/siteen/biographie/biographie_6049.asp Biography of Noir Désir], March 2009 : “Rock music doesn't come naturally to the French. A Latin country, with more affinity to poetry and melody, France has very rarely produced talented rock musicians. Rock music has other, more Anglo-Saxon ingredients” bands such as [[Noir Désir]], [[Mano Negra]], [[Niagara (band)|Niagara]], [[Rita Mitsouko]] and more recently [[Superbus (band)|Superbus]], [[Phoenix (band)|Phoenix]] and [[Gojira]]France Diplomatie, [http://www.diplomatie.gouv.fr/en/france_159/culture-and-media_6819/culture_6874/music_5335/french-music-has-the-whole-planet-singing_13031.html French music has the whole planet singing], June 2009 have reached worldwide popularity. Others French artists with international careers have been popular in several countries, for example female singers [[Mireille Mathieu]] and [[Mylène Farmer]], electronic music pioneers [[Jean-Michel Jarre]], [[Laurent Garnier]] and [[Bob Sinclar]], and later [[David Guetta]]. In the 1990s and 2000s, electronic duos [[Daft Punk]], [[Justice (French band)|Justice]] and [[Air (band)|Air]] also reached worldwide popularity and contributed to the reputation of modern electronic music in the world.The Telegraph, [http://www.telegraph.co.uk/culture/music/3669339/Daft-Punk-Behind-the-robot-masks.html Daft Punk: Behind the robot masks], 17 November 2007 : "Daft Punk were in many ways responsible for turning the spotlight on a new, cool underground of French music in the late 1990s, including bestselling acts such as Air, and have been a huge influence on the current generation of international star DJs"[[BBC News]], [http://news.bbc.co.uk/2/hi/entertainment/1721450.stm The return of French pop music], 20 December 2001 Among current musical events and institutions in France, many are dedicated to classical music and operas. The most prestigious institutions are the state-owned [[Paris National Opera]] (with its two sites [[Palais Garnier]] and [[Opéra Bastille]]), the [[Opéra National de Lyon]], the [[Théâtre du Châtelet]] in Paris, the [[Théâtre du Capitole]] in [[Toulouse]] and the [[Grand Théâtre de Bordeaux]]. As for music festivals, there are several events organized, the most popular being the [[Eurockéennes]] and [[Rock en Seine]]. The [[Fête de la Musique]], imitated by many foreign cities, was first launched by the French government in 1982.Ministry of Culture of France, [http://www.fetedelamusique.culture.fr/site-2010/?page_id=550 About « Fête de la Musique »]France Diplomatie, [http://www.diplomatie.gouv.fr/en/france_159/culture-and-media_6819/culture_6874/music_5335/fete-musique-21.06.07_9392.html Fête de la Musique], June 21, 2007 Major music halls and venues in France include [[Le Zénith]] sites present in many cities and other places in Paris ([[Paris Olympia]], [[Théâtre Mogador]], [[Élysée Montmartre]], etc.). === Cinema === {{Main|Cinema of France}} [[File:Cinématographe Lumière.jpg|thumb|World's first movie advertising for l'[[L'Arroseur Arrosé|Arroseur Arrosé]], 1895]] France has historical and strong links with [[Filmmaking|cinema]]. It is two [[Frenchmen]], Auguste and Louis Lumière (known as the [[Lumiere Brothers]]) who created the cinema in 1895.{{fr}} [http://www.larousse.fr/encyclopedie/personnage/Lumière/130661 Les frères Lumière] More recently, in 2006, France produced more films than any other European country.[http://stats.uis.unesco.org/unesco/TableViewer/tableView.aspx Cinema: production of feature films] - UNESCO [[Cannes Festival]] is one of the most important and famous film festivals in the world.[http://www.cannesguide.com/basics/ Cannes - a festival virgin's guide] - CannesGuide[http://www.whatsonwhen.com/sisp/index.htm?fx=event&event_id=21731 Cannes Film Festival] - www.whatsonwhen.com Although the French film market is dominated by [[Hollywood]], it is however the Western country (out of the United States) where the share of the American films in the total film revenues is the smallest, at 50,1%, to compare with 77,3% of Germany and 69,4% of Japan.{{fr}} [http://www.erudit.org/revue/hphi/2005/v15/n2/801295ar.pdf] « Cinéma et diversité culturelle : le cinéma indépendant face à la mondialisation des industries culturelles » - Erudit.org Thus, French films account for 34,8% of the total film revenues of France, which is the highest percentage of national films revenues in developed countries (the U.S. not included), to compare with 13,7% in Spain and 8,3% in the UK. France was for centuries, and not so long ago, the cultural center of the world.[http://www.franceinlondon.co.uk/en-Article-335-Is-the-French-obsession-with-cultural-exception-declininge-Culture--london-language.html Is the French obsession with "cultural exception" declining?] - France in London But France's dominant position has been overthrown by [[american culture]], and thus France tries to protect its culture. France has been a strong advocate of the [[cultural exception]].[http://www.wolton.cnrs.fr/EN/collcom/ouvrages/fin_exc_cult.html The End of Cultural Exception ?] - [[CNRS]] France therefore succeeded in convincing all the EU members to refuse to include culture and audiovisuals in the list of liberalized sectors of the WTO in 1993.[http://www.culture.gouv.fr/culture/actualites/politique/diversite/wto-en2.htm The cultural exception is not negotiable by Catherine Trautmann] - Ministry of Culture Moreover, this decision was confirmed in a voting in the [[UNESCO]] in 2005, and the principle of "cultural exception" won an overwhelming victory : 198 countries voted for it, only 2 countries, the U.S and Israel, voted against it.{{fr}} [http://www.fnsac-cgt.com/administration/upload/ARTICLE%20UNESCO%20CONF%201602_06%20(3).pdf La Convention UNESCO pour la diversité culturelle : vers un droit international culturel contraignant ?] - www.fnsac-cgt.com == See also == {{Portal box|France|European Union|Europe}} {{Main|Outline of France|Telecommunications in France}} {{Template group |title = Articles related to France |list = {{Template group |title = [[File:Gnome-globe.svg|25px]]{{nbsp}}Geographic locale |list = {{Coord|47|N|2|E|type:country_region:FR|display=title}} {{Countries of Europe}} {{Countries of North America}} {{Countries of South America}} {{Countries of Africa}} {{Countries and territories of Oceania}} {{Countries and territories bordering the Mediterranean Sea}} }} {{Template group |title = France in the European Union |list = {{EU members}} }} {{Template group |title = International organisations |list = {{G8 nations}} {{G20}} {{UN Security Council}} {{Council of Europe members}} {{Organisation for Economic Co-operation and Development}} {{North Atlantic Treaty Organisation (NATO)}} {{Latinunion}} {{La Francophonie}} }} }} {{Use dmy dates|date=August 2010}} == Notes and references == {{Reflist|2}} == External links == {{Sister project links}} * [http://news.bbc.co.uk/2/hi/europe/country_profiles/998481.stm France], from the BBC * {{CIA World Factbook link|fr|France}} * [http://ucblibraries.colorado.edu/govpubs/for/france.htm France] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/France}} * {{Wikiatlas|France}} ;Economy * [http://www.insee.fr/en/default.asp National Institute of Statistics and Economic Studies ] * [http://stats.oecd.org/WBOS/Index.aspx?QueryId=14594 OECD France statistics] ;Government * {{fr}} [http://www.elysee.fr/president/accueil.1.html Élysée.fr] - Official site of the French Presidency * {{fr}} [http://www.gouvernement.fr/ Official Site of the Government] * [http://www.service-public.fr/etranger/english.html Official site of the French public service] – Links to various administrations and institutions * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-f/france.html Chief of State and Cabinet Members] on ''[[The World Factbook]]'' * [http://www.assemblee-nationale.fr/english/index.asp Official site of the National Assembly] * [http://www.senat.fr/lng/en/index.html Official site of the Senate] ;Culture * [http://cocorico.com/ Cocorico! French culture] * [http://www.french.uiuc.edu/cfc/ ''Contemporary French Civilization''], journal, University of Illinois. * [http://www.frenchculturenow.com/ Frenchculturenow.com: French society, culture, politics news] ;Tourism * [http://us.franceguide.com/ FranceGuide] - Official website of the French Government Tourist Office * {{Wikitravel}} {{Coord|47|N|2|E|type:country_region:FR|display=title}} [[Category:France| ]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries of the Mediterranean Sea]] [[Category:Countries of the Indian Ocean]] [[Category:European countries]] [[Category:European Union member states]] [[Category:French-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Member states of La Francophonie]] [[Category:Republics]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|es}} {{Link GA|fr}} {{Link GA|is}} {{Link GA|lt}} {{Link FA|ceb}} {{Link FA|eo}} {{Link FA|gv}} [[ace:Peurancih]] [[af:Frankryk]] [[als:Frankreich]] [[am:ፈረንሣይ]] [[ang:Francland]] [[ar:فرنسا]] [[an:Francia]] [[arc:ܦܪܢܣܐ]] [[roa-rup:Gallia]] [[frp:France]] [[ast:Francia]] [[gn:Hyãsia]] [[ay:Phransiya]] [[az:Fransa]] [[bm:Franse]] [[bn:ফ্রান্স]] [[zh-min-nan:Hoat-kok]] [[ba:Франция]] [[be:Францыя]] [[be-x-old:Францыя]] [[bcl:Pransya]] [[bi:Franis]] [[bar:Frankreich]] [[bo:ཧྥ་རན་སི།]] [[bs:Francuska]] [[br:Bro-C'hall]] [[bg:Франция]] [[ca:França]] [[cv:Франци]] [[ceb:Pransiya]] [[cs:Francie]] [[co:Francia]] [[cy:Ffrainc]] [[da:Frankrig]] [[pdc:Frankreich]] [[de:Frankreich]] [[dv:ފަރަންސޭސިވިލާތް]] [[nv:Dáághahii Dinéʼiʼ Bikéyah]] [[dsb:Francojska]] [[dz:ཕརཱནསི་]] [[et:Prantsusmaa]] [[el:Γαλλία]] [[eml:Franza]] [[myv:Франция Мастор]] [[es:Francia]] [[eo:Francio]] [[ext:Fráncia]] [[eu:Frantzia]] [[ee:France]] [[fa:فرانسه]] [[hif:France]] [[fo:Frakland]] [[fr:France]] [[fy:Frankryk]] [[ff:Faransi]] [[fur:France]] [[ga:An Fhrainc]] [[gv:Yn Rank]] [[gd:An Fhraing]] [[gl:Francia - France]] [[gan:法國]] [[gu:ફ્રાન્સ]] [[got:𐍆𐍂𐌰𐌲𐌺𐌰𐍂𐌴𐌹𐌺𐌹]] [[hak:Fap-koet]] [[xal:Пранцсин Орн]] [[ko:프랑스]] [[ha:Faransa]] [[haw:Palani]] [[hy:Ֆրանսիա]] [[hi:फ़्रांस]] [[hsb:Francoska]] [[hr:Francuska]] [[io:Francia]] [[ilo:Fransia]] [[bpy:ফ্রান্স]] [[id:Perancis]] [[ia:Francia]] [[ie:Francia]] [[os:Франц]] [[zu:IFlansi]] [[is:Frakkland]] [[it:Francia]] [[he:צרפת]] [[jv:Prancis]] [[kl:Frankrigi]] [[kn:ಫ್ರಾನ್ಸ್]] [[pam:France]] [[krc:Франция]] [[ka:საფრანგეთი]] [[ks:फ्रांस]] [[csb:Francëjô]] [[kk:Франция]] [[kw:Pow Frynk]] [[rw:Ubufaransa]] [[ky:Франция]] [[sw:Ufaransa]] [[kv:Франция]] [[kg:Fwalansa]] [[ht:Frans]] [[ku:Fransa]] [[lad:Fransia]] [[lo:ປະເທດຝະລັ່ງ]] [[la:Francia]] [[lv:Francija]] [[lb:Frankräich]] [[lt:Prancūzija]] [[lij:Fransa]] [[li:Frankriek]] [[ln:Falansia]] [[jbo:fasygu'e]] [[lmo:Frància]] [[hu:Franciaország]] [[mk:Франција]] [[mg:Frantsa]] [[ml:ഫ്രാൻസ്]] [[mt:Franza]] [[mi:Wīwī]] [[mr:फ्रान्स]] [[arz:فرنسا]] [[mzn:فرانسه]] [[ms:Perancis]] [[cdo:Huák-guók]] [[mwl:Fráncia]] [[mdf:Кранцмастор]] [[mn:Франц]] [[my:ပြင်သစ်နိုင်ငံ]] [[nah:Francia]] [[na:France]] [[nl:Frankrijk]] [[nds-nl:Frankriek]] [[ne:फ्रान्स]] [[ja:フランス]] [[nap:Franza]] [[ce:Франце]] [[frr:Frånkrik]] [[pih:France]] [[no:Frankrike]] [[nn:Frankrike]] [[nrm:France]] [[nov:Fransia]] [[oc:França]] [[mhr:Пырансе]] [[uz:Fransiya]] [[pnb:فرانس]] [[pap:Fransia]] [[ps:فرانس]] [[km:បារាំង]] [[pcd:Franche]] [[pms:Fransa]] [[tpi:Pranis]] [[nds:Frankriek]] [[pl:Francja]] [[pnt:Γαλλία]] [[pt:França]] [[kaa:Frantsiya]] [[crh:Frenkistan]] [[ty:Farāni]] [[ksh:Frangkrisch]] [[ro:Franța]] [[rmy:Franchiya]] [[rm:Frantscha]] [[qu:Phransya]] [[ru:Франция]] [[sah:Франция]] [[se:Frankriika]] [[sm:Farani]] [[sa:फ्रांस]] [[sc:Frantza]] [[sco:Fraunce]] [[stq:Frankriek]] [[st:Fora]] [[sq:Franca]] [[scn:Francia]] [[simple:France]] [[ss:IFulansi]] [[sk:Francúzsko]] [[cu:Франкі́ꙗ]] [[sl:Francija]] [[szl:Francyjo]] [[so:Faransiiska]] [[ckb:فەڕەنسا]] [[srn:Franskondre]] [[sr:Француска]] [[sh:Francuska]] [[su:Perancis]] [[fi:Ranska]] [[sv:Frankrike]] [[tl:Pransya]] [[ta:பிரான்சு]] [[kab:Fransa]] [[tt:Франция]] [[te:ఫ్రాన్స్]] [[tet:Fransa]] [[th:ประเทศฝรั่งเศส]] [[tg:Фаронса]] [[tr:Fransa]] [[tk:Fransiýa]] [[udm:Франция]] [[uk:Франція]] [[ur:فرانس]] [[ug:فرانسىيە]] [[za:Fazgoz]] [[vec:Fransa]] [[vi:Pháp]] [[vo:Fransän]] [[fiu-vro:Prantsusmaa]] [[wa:France]] [[zh-classical:法國]] [[vls:Vrankryk]] [[war:Fransya]] [[wo:Faraas]] [[wuu:法国]] [[yi:פראנקרייך]] [[yo:Fránsì]] [[zh-yue:法國]] [[diq:Fransa]] [[zea:Frankriek]] [[bat-smg:Prancūzėjė]] [[zh:法国]]raw-Germany.wikitext000066400000000000000000004650111335270560400454540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wikitext-components-parent/swc-parser-lazy/src/test/resources/nopkg-xpath/wikitext{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=

    [[File:Deutschlandlied played by USAREUR Band.ogg]]

    The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
    Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
    Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
    Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
    {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
    and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;"| [[States of Germany|State]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²)!! style="width:85px;"| Population |- | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"|35,752|| style="text-align:right"|10,717,000 |- | [[Bavaria]] || [[Munich]] || style="text-align:right"|70,549|| style="text-align:right"|12,444,000 |- | Berlin || Berlin ||style="text-align:right"|892|| style="text-align:right"|3,400,000 |- | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"|29,477|| style="text-align:right"|2,568,000 |- | [[Bremen (state)|Bremen]] || [[Bremen]] || style="text-align:right"|404|| style="text-align:right"|663,000 |- | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"|755|| style="text-align:right"|1,735,000 |- | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"|21,115|| style="text-align:right"|6,098,000 |- | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"|23,174|| style="text-align:right"|1,720,000 |- | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"|47,618|| style="text-align:right"|8,001,000 |- | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"|34,043|| style="text-align:right"|18,075,000 |- | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"|19,847|| style="text-align:right"|4,061,000 |- | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"|2,569|| style="text-align:right"|1,056,000 |- | [[Saxony]] || [[Dresden]] || style="text-align:right"|18,416|| style="text-align:right"|4,296,000 |- | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"|20,445|| style="text-align:right"|2,494,000 |- | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"|15,763|| style="text-align:right"|2,829,000 |- | [[Thuringia]] || [[Erfurt]] || style="text-align:right"|16,172|| style="text-align:right"|2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;"| Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.|| style="text-align:center;"| Name|| style="text-align:center;"| Headquarters|| style="text-align:center;"| Revenue
    (Mil. €) || style="text-align:center;"| Profit
    (Mil. €) || style="text-align:center;"| Employees
    (World) |- | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 || 329,305 |- | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 || 272,382 |- | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]]/Berlin || 72,488 || 3,806 || 398,200 |- | 4. || style="text-align:left;"| [[E.ON|E.ON AG]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 || 87,815 |- | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 || 242,378 |- | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 || 475,100 |- | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 || 241,426 |- | 8. || style="text-align:left;"| [[BASF|BASF SE]] || style="text-align:left;"| [[Ludwigshafen am Rhein|Ludwigshafen]] || 57,951 || 4,065 || 95,175 |- | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 || 107,539 |- | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]]/[[Duisburg]] || 51,723 || 2,102 || 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
    {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
    More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
    [[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" !colspan=9 style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan=11 align=center valign=top | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
    [[Berlin]]
    [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
    [[Hamburg]]
    [[File:München Panorama.JPG|border|160px|Munich]]
    [[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 width="50" |   ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 align=center valign=top | [[File:Köln Panorama.jpg|border|160px|Cologne]]
    [[Cologne|Cologne (Köln)]]
    [[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
    [[Frankfurt am Main|Frankfurt]]
    [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
    [[Stuttgart]] |- | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right | 3,442,675 | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right | 520,966 |- | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right | 1,774,224 | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right | 518,862 |- | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right | 1,330,440 | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right | 517,052 |- | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right | 998,105 | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right | 503,673 |- | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main|Frankfurt]] || align=right | 671,927 | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right | 491,931 |- | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right | 601,646 | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right | 376,319 |- | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right | 586,217 | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right | 351,050 |- | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right | 581,308 | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right | 323,084 |- | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right | 576,259 | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right | 319,841 |- | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right | 547,685 | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right | 311,969 |- | colspan=9 align=center | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
    {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
    ===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
    (1749–1832) ! align=center |[[Friedrich Schiller]]
    (1759–1805) ! align=center |[[Brothers Grimm]]
    (1785–1863) ! align=center |[[Thomas Mann]]
    (1875–1955) ! align=center |[[Hermann Hesse]]
    (1877–1962) |- | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]]|| align=left | [[File:Grimm1.jpg|125px]]|| align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[J.S.Bach]]
    [[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align=center |[[Ludwig van Beethoven|L.v. Beethoven]]
    [[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align=center |[[Richard Wagner|R. Wagner]]
    [[Die Walküre]] ! align=center |[[Kraftwerk]]
    [[Computer World|Computerwelt Pt. 2]] ! align=center |[[Modern Talking]]
    [[Brother Louie (Modern Talking song)|Brother Louie]] ! align=center |[[Rammstein]]
    [[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]]|| style="text-align:left; background:silver;"|[[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]]|| style="text-align:left; background:dimGrey;"| [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
    {{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
    {{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
    {{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/000077500000000000000000000000001335270560400234405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/LICENSE000066400000000000000000001033301335270560400244450ustar00rootroot00000000000000 GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/pom.xml000066400000000000000000000062651335270560400247660ustar00rootroot00000000000000 4.0.0 org.sweble sweble-parent 3.1.9 org.sweble.wom3 sweble-wom3-parent pom Sweble WOM v3 Parent 2013 The Sweble Wiki Object Model Version 3 (WOM v3.0) Specification. sweble-wom3-core sweble-wom3-json-tools sweble-wom3-swc-adapter sweble-wom3-example-basic ${project.basedir} ${sweble-wom3-parent.path}/../ com.mycila license-maven-plugin
    ${sweble-parent.etc-path}/agpl-v3-header.txt
    ${sweble-parent.etc-path}/agpl-v3-header-no-copyright.txt
    GNU Affero General Public License http://www.gnu.org/licenses/agpl-3.0.txt repo
    sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/000077500000000000000000000000001335270560400265325ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/pom.xml000066400000000000000000000075001335270560400300510ustar00rootroot00000000000000 4.0.0 org.sweble.wom3 sweble-wom3-parent 3.1.9 sweble-wom3-core jar Sweble WOM 3.0 Core 2013 The Sweble Wiki Object Model Version 3 (WOM 3.0) Specification. ../ joda-time joda-time net.sf.saxon Saxon-HE true xalan xalan true de.fau.cs.osr.utils utils de.fau.cs.osr.utils utils-testing test junit junit test org.apache.maven.plugins maven-dependency-plugin xml-apis:xml-apis sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/000077500000000000000000000000001335270560400273215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/000077500000000000000000000000001335270560400302455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/000077500000000000000000000000001335270560400311665ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/000077500000000000000000000000001335270560400317555ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/000077500000000000000000000000001335270560400332365ustar00rootroot00000000000000wom3/000077500000000000000000000000001335270560400340445ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/swebleWom3Abbr.java000066400000000000000000000020271335270560400363240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes an abbreviation. * * Corresponds to the XHTML 1.0 Transitional element "abbr". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Abbr extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Article.java000066400000000000000000000146261335270560400370510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.util.Collection; /** * The root node of every article. * * Corresponds to the WXML 1.0 element "article". * * Child elements: redirect? category* body */ public interface Wom3Article extends Wom3ElementNode { /** * Returns the full name of an article including namespace and path. * * @return The namespace, path and article name concatenated. */ public String getName(); /** * Returns the version of the XWML object model. * * @return The version of the XWML object model. */ public String getVersion(); /** * Returns the name of the article without namespace and without path. * * Corresponds to the XWML 1.0 attribute "title". * * @return The name of the article without namespace and without path. */ public String getTitle(); /** * Set the name of the article without namespace and without path. * * Corresponds to the XWML 1.0 attribute "title". * * @param title * The new title of the article. * @return The old title of the article. * @throws IllegalArgumentException * Thrown if the given title is empty or not a valid MediaWiki * article title. * @throws NullPointerException * Thrown if the given title is null. */ public String setTitle(String title) throws IllegalArgumentException, NullPointerException; /** * Returns the canonical namespace name. * * Corresponds to the XWML 1.0 attribute "namespace". * * @return The canonoical namespace name or null if the * attribute is not specified. */ public String getNamespace(); /** * Set the canonical namespace name. * * Corresponds to the XWML 1.0 attribute "namespace". * * @param namespace * The new namespace name or null to remove the * attribute. * @return The old namespace name. */ public String setNamespace(String namespace); /** * Returns the path of pages that lead to this subpage. * * Corresponds to the XWML 1.0 attribute "path". * * @return The path of pages that lead to this subpage or null * if this attribute is not given and this article is not a subpage. * The returned path never contains a trailing slash. The path is * also not anchored with a slash at the start but still always * denotes an absolute path. */ public String getPath(); /** * Set the path of pages that lead to this subpage. * * @param path * The new path or null to remove the attribute. The * given path will be stripped of a trailing slash if present. * @return The old path. */ public String setPath(String path); /** * Tell whether this article is a redirecting article. * * @return True if this article redirects to another article, * false otherwise. */ public boolean isRedirect(); /** * Get the redirection statement. * * Operates on the first <redirect> element found among this node's * children. * * @return The redirection statement or null if this article * does not redirect. */ public Wom3Redirect getRedirect(); /** * Set a redirection. * * Operates on the first <redirect> element found among this node's * children. If no redirect node is found, the redirect will be added as the * first child. * * @param redirect * The new redirection to set or null to remove a * redirection. * @return The old redirection. */ public Wom3Redirect setRedirect(Wom3Redirect redirect); /** * Return a collection containing the categories that are assigned to this * article. * * @return A collection of categories. */ public Collection getCategories(); /** * Test if this article belongs to a certain category. * * @param name * The case-insensitive name of the category to test. * @return True if this article belongs to the category with * the specified name, false otherwise. * @throws NullPointerException * Thrown if the specified name is null. */ public boolean hasCategory(String name) throws NullPointerException; /** * Remove a category from this article. * * @param name * The case-insensitive name of the category to remove. * @return The removed category or null if the specified * category does not exist. * @throws NullPointerException * Thrown if the specified name is null. */ public Wom3Category removeCategory(String name) throws NullPointerException; /** * Add a category to this article. * * @param name * The case-insensitive name of the category to add. * @return The added category or an existing category if this article was * already assigned to the specified category. * @throws NullPointerException * Thrown if the specified name is null. */ public Wom3Category addCategory(String name) throws NullPointerException; /** * Get the article body. * * Operates on the first <body> element found among this node's children. * * @return The body. */ public Wom3Body getBody(); /** * Set the article body. * * Operates on the first <body> element found among this node's children. * * @param body * The new body. * @return The old body. * @throws NullPointerException * Thrown if null is given as body. */ public Wom3Body setBody(Wom3Body body) throws NullPointerException; } Wom3Articles.java000066400000000000000000000017571335270560400372350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The body of a page or section. * * Corresponds to the WXML 1.0 element "body". * * Child elements: [Block elements]* */ public interface Wom3Articles extends Wom3ElementNode { } Wom3Attribute.java000066400000000000000000000045411335270560400374240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.Attr; /** * An attribute node. * * Objects of this class represent attributes that can be attached to other * nodes that support attributes. An attribute node can only have other * attribute nodes as siblings. An attribute node cannot have children or * attributes of its own. * * Child elements: - */ public interface Wom3Attribute extends Wom3Node, Attr { /** * Retrieve the name of the attribute. Attribute names are case-insensitive. * * @return The name of the attribute. */ public String getName(); /** * Set the name of the attribute. Attribute names are case-insensitive. * * @param name * The new name of the attribute. * @return The old name of the attribute. * @throws IllegalArgumentException * If an attribute with the given name already exists or the * given name was empty or not a valid XML name. * @throws NullPointerException * Thrown if null was specified as name. */ public String setName(String name) throws IllegalArgumentException, NullPointerException; /** * Return the value of the attribute. * * @return The value of the attribute. */ @Override public String getValue(); /** * Set the value of the attribute. * * @param value * The new value of the attribute. * @return The old value of the attribute. * @throws NullPointerException * Thrown if null was specified as value. */ @Override public void setValue(String value) throws NullPointerException; } Wom3Big.java000066400000000000000000000020641335270560400361600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be displayed in a larger font. * * Corresponds to the XHTML 1.0 Transitional element "big". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Big extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Blockquote.java000066400000000000000000000031451335270560400375700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.net.URL; /** * Denotes a long quotation. * * Corresponds to the XHTML 1.0 Transitional element "blockquote". * * Child elements: [Block elements]* */ public interface Wom3Blockquote extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get source of the quotation. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @return The source of the citation or null if the attribute * is not specified. */ public URL getCite(); /** * Set the source of the quotation. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @param source * The source of the citation or null to remove the * attribute. * @return The source of the citation. */ public URL setCite(URL source); } Wom3Body.java000066400000000000000000000017531335270560400363600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The body of a page or section. * * Corresponds to the WXML 1.0 element "body". * * Child elements: [Block elements]* */ public interface Wom3Body extends Wom3ElementNode { } Wom3Bold.java000066400000000000000000000020561335270560400363400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as bold text. * * Corresponds to the XHTML 1.0 Transitional element "b". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Bold extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Break.java000066400000000000000000000032271335270560400365050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a single line break. * * Corresponds to the XHTML 1.0 Transitional element "br". * * Child elements: - */ public interface Wom3Break extends Wom3ElementNode, Wom3CoreAttributes { /** * Get the sides on which floating elements are not allowed. * * Corresponds to the XHTML 1.0 Transitional attribute "clear". * * @return The sides on which floating elements are not allowed. */ public Wom3Clear getClear(); /** * Set the sides on which floating elements are not allowed. * * Corresponds to the XHTML 1.0 Transitional attribute "clear". * * @param clear * The new sides on which floating elements are not allowed or * null if the attribute is not specified. * @return The old sides on which floating elements are not allowed. */ public Wom3Clear setClear(Wom3Clear clear); } Wom3BulletStyle.java000066400000000000000000000016321335270560400377270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The type of bullet points used by unordered lists. */ public enum Wom3BulletStyle { CIRCLE, DISC, SQUARE, } Wom3Category.java000066400000000000000000000043701335270560400372360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * A category statement. * * Corresponds to the XWML 1.0 element "category". * * Child elements: - */ public interface Wom3Category extends Wom3ElementNode, Wom3Link { /** * Return the name of the category. * * Corresponds to the XWML 1.0 attribute "name". * * @return The name of the category without the category namespace * specifier. */ public String getName(); /** * Set the name of the category. * * Corresponds to the XWML 1.0 attribute "name". * * @param name * The new name of the category without the category namespace * specifier. * @return The old name of the category. * @throws NullPointerException * Thrown if the given category is null. * @throws IllegalArgumentException * Thrown if another category with the given name is already * associated with this page. */ public String setName(String name) throws NullPointerException, IllegalArgumentException; // ==[ Link interface ]===================================================== /** * Returns an empty title since category statements do not provide a title. * * @return An empty title. */ @Override public Wom3Title getLinkTitle(); /** * Return the name of the category this statement is pointing to. * * @return The name of the category including the category namespace * specifier. */ @Override public String getLinkTarget(); } Wom3CdataSection.java000066400000000000000000000016261335270560400400230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.CDATASection; public interface Wom3CdataSection extends CDATASection, Wom3XmlText { } Wom3Center.java000066400000000000000000000020411335270560400366720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a block that will be centered. * * Corresponds to the XHTML 1.0 Transitional element "center". * * Child elements: [Block elements]* */ public interface Wom3Center extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Cite.java000066400000000000000000000020301335270560400363340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text as citation. * * Corresponds to the XHTML 1.0 Transitional element "cite". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Cite extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Clear.java000066400000000000000000000016471335270560400365130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The sides of an element on which floating elements are not allowed. */ public enum Wom3Clear { NONE, LEFT, RIGHT, ALL } Wom3Code.java000066400000000000000000000020411335270560400363240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text as being source code. * * Corresponds to the XHTML 1.0 Transitional element "code". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Code extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Color.java000066400000000000000000000024771335270560400365450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.io.Serializable; /** * A color value. */ public interface Wom3Color extends Cloneable, Serializable { /** * Get the red color component. * * @return A value between 0 and 255. */ public int getRed(); /** * Get the green color component. * * @return A value between 0 and 255. */ public int getGreen(); /** * Get the blue color component. * * @return A value between 0 and 255. */ public int getBlue(); /** * Format color as #RRGGBB. */ @Override public String toString(); } Wom3Comment.java000066400000000000000000000017661335270560400370710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Wraps text that must not be interpreted. * * Corresponds to the WXML 1.0 element "nowiki". * * FIXME: Child elements: WtText */ public interface Wom3Comment extends Wom3ElementNode { } Wom3CoreAttributes.java000066400000000000000000000066241335270560400404240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The XHTML 1.0 Transitional core attributes. */ public interface Wom3CoreAttributes { /** * Get the unique id of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "id". * * @return The unique id of the element or null if the * attribute is not specified. */ public String getId(); /** * Set the unique id of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "id". * * @param id * The new id of the element or null to remove the * attribute. * @return The old unique id of the element. */ public String setId(String id) throws IllegalArgumentException; /** * Get the stylesheet classes assigned to this element. * * Corresponds to the XHTML 1.0 Transitional attribute "class". * * @return A string containing the names of the stylesheet classes, * separated by space. null if the attribute is not * specified. */ public String getClasses(); /** * Set the stylesheet classes assigned to this element. * * Corresponds to the XHTML 1.0 Transitional attribute "class". * * @param classes * A string containing the new classes or null to * remove the attribute. * @return A string containing the old classes. */ public String setClasses(String classes); /** * Get CSS styles directly associated with this element. * * Corresponds to the XHTML 1.0 Transitional attribute "style". * * @return The CSS styles directly associated with this element or * null if the attribute is not specified. */ public String getStyle(); /** * Directly associate CSS styles with this element. * * Corresponds to the XHTML 1.0 Transitional attribute "style". * * @param style * The new CSS styles to associate with this element or * null to remove the attribute. * @return The old CSS styles that were associated with this element. */ public String setStyle(String style); /** * Get the title of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "title". * * @return The title of the element or null if the attribute is * not specified. */ public String getTitle(); /** * Get the title of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "title". * * @param title * The new title of this element or null to remove * the attribute. * @return The old title of this element. */ public String setTitle(String title); } Wom3DefinitionList.java000066400000000000000000000204201335270560400403770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.util.Collection; /** * Denotes a definition list. * * Definition lists can be accessed in two different ways. First by addressing * individual terms and treating the definitions following each term as * belonging to the respective term. Second by addressing terms and definitions * through a common index. * * Term-oriented interface:
    * Terms are accessed via an integer index where 0 denotes the * first term. Only terms are counted using this index. All other child elements * are ignored.However, they can be iterated using the methods provided by the * WomNode interface. * * Item-oriented interface:
    * Terms and definitions can also be accessed via an integer where * 0 denotes the first term or definition. Only terms and * definitions are counted. All other child elements are skipped in the * enumeration and are not accessible through this interface. However, they can * be iterated using the methods provided by the WomNode interface. * * Corresponds to the XHTML 1.0 Transitional element "dl". * * Child elements: ([Preprocessor elements]|dd|dt)* */ public interface Wom3DefinitionList extends Wom3ElementNode, Wom3UniversalAttributes { // ==[ Term-oriented interface ]============================================ /** * Get the number of terms in this list. * * @return The number of terms in this list. */ public int getTermNum(); /** * Get a collection containing all terms. * * @return A collection containing all terms. */ public Collection getTerms(); /** * Get a certain term from the list. * * @param index * The zero-based index of the term to retrieve. Only terms are * counted by this index! * @return The term with the given index. * @throws IndexOutOfBoundsException * Thrown if the given index is out of range. */ public Wom3DefinitionListTerm getTerm(int index) throws IndexOutOfBoundsException; /** * Replace a certain term and all its definitions by another term and its * definitions. * * @param index * The zero-based index of the term to replace. Only terms are * counted by this index! * @param term * The replacement term. * @return The term previously stored at the given index. * @throws IndexOutOfBoundsException * Thrown if the given index is out of range. */ public Wom3DefinitionListTerm replaceTerm( int index, Wom3DefinitionListTerm term) throws IndexOutOfBoundsException; /** * Remove a term and all its definitions from the list. * * @param index * The zero-based index of the term to remove. Only terms are * counted by this index! * @throws IndexOutOfBoundsException * Thrown if the given index is out of range. */ public Wom3DefinitionListTerm removeTerm(int index) throws IndexOutOfBoundsException; /** * Append a term and its definitions to the list. * * @param term * The term to append. */ public void appendTerm(Wom3DefinitionListTerm term); /** * Insert a term and its definitions at the given index into the list. * * @param beforeIndex * The index of the term in front of which the new term and its * definitions is to be inserted. This index only counts terms! * @param term * The term to insert. The term will have the given index * beforeIndex after insertion. * @throws IndexOutOfBoundsException * Thrown if 0 <= beforeIndex <= getItemNum() does * not hold. */ public void insertTerm(int beforeIndex, Wom3DefinitionListTerm term) throws IndexOutOfBoundsException; // ==[ Item-oriented interface ]=========================================== /** * Get the number of terms and definitions in this list. * * @return The number of terms and definitions in this list. */ public int getItemNum(); /** * Get a collection containing all terms and definitions. * * @return A collection with all items of the list. */ public Collection getItems(); /** * Get a certain term or definition from the list. * * @param index * The zero-based index of the item to retrieve. * @return The item with the given index. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListItem getItem(int index) throws IndexOutOfBoundsException; /** * Replace a certain term or definition in the list. * * If the replacement item is a term with definitions attached to it, * definitions will not be replaced. Instead the definitions attached * to the replacement term will be discarded! * * @param index * The zero-based index of the item to replace. * @param item * The replacement item. * @return The old item with the given index. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListItem replaceItem( int index, Wom3DefinitionListItem item) throws IndexOutOfBoundsException; /** * Remove a term or definition from the list. * * If the item that should be removed is a term, only the term will * be removed. Its definitions are left untouched and become the definitions * of the preceding term (if there is a preceding term). * * @param index * The zero-based index of the item to remove. * @return The removed item. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListItem removeItem(int index) throws IndexOutOfBoundsException; /** * Append term or definition to the list. * * If the item that should be appended is a term with definitions attached, * the definitions will not be inserted into the list. Instead the * term's definitions will be discarded. * * @param item * The item to append. */ public void appendItem(Wom3DefinitionListItem item); /** * Insert a term or definition at the given index into the list. * * If the item that should be appended is a term with definitions attached, * the definitions will not be inserted into the list. Instead the * term's definitions will be discarded. * * @param beforeIndex * The index of the item in front of which the new item is to be * inserted. * @param item * The item to insert. The item will have the given index * beforeIndex after insertion. * @throws IndexOutOfBoundsException * Thrown if 0 <= beforeIndex <= getItemNum() does * not hold. */ public void insertItem(int beforeIndex, Wom3DefinitionListItem item) throws IndexOutOfBoundsException; // ==[ The XHTML Attributes ]=============================================== /** * Tells whether the list should be displayed as compact list. * * Corresponds to the XHTML 1.0 Transitional attribute "compact". * * @return Whether the "compact" flag is given or not. */ public boolean isCompact(); /** * Set whether the list should be displayed as compact list. * * Corresponds to the XHTML 1.0 Transitional attribute "compact". * * @param compact * Set (true) or remove (false) the * "compact" flag. * @return The old state. */ public boolean setCompact(boolean compact); } Wom3DefinitionListDef.java000066400000000000000000000020221335270560400410140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a definition list definition. * * Corresponds to the XHTML 1.0 Transitional element "dd". * * Child elements: [Block elements]* */ public interface Wom3DefinitionListDef extends Wom3DefinitionListItem { } Wom3DefinitionListItem.java000066400000000000000000000017241335270560400412240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Interface to the items <dt> and <dd> of a definition list. */ public interface Wom3DefinitionListItem extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3DefinitionListTerm.java000066400000000000000000000110531335270560400412310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.util.Collection; /** * Denotes a definition list term. * * While in HTML a definition list is a loose collection of terms and * definitions, the WOM interfaces also offer a more abstract view on a * definition list in which one or more definitions belong to a term. * * Therefore, if one retrieves a term from a definition list, the definitions * that follow the term can also be addressed and altered through the term * interface (this interface). * * However, the definitions that are considered part of a term are still * not children of that term! They are only attached to the term * "virtually". Altering definitions through the term interface will actually * alter the definition list to which the term belongs. If a term does not yet * belong to a definition list, definitions that get attached to the term will * be temporarily stored in that term (but not as its children) and will be * attached to the definition list once the term is attached to a definition * list. * * Individual definitions are addressed using a zero-based integer index where * 0 denotes the first definition that follows this term in the * definition list. If this term is followed by another term in the definition * list and there are not definitions between the two terms, than this term does * not have any definitions. * * Corresponds to the XHTML 1.0 Transitional element "dt". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3DefinitionListTerm extends Wom3DefinitionListItem { /** * Get the number of definitions of this term. * * @return The number of definitions of this term. */ public int getDefNum(); /** * Get a collection containing all definitions of this term. * * @return A collection containing all definitions of this term. */ public Collection getDefs(); /** * Get a certain definition of this term. * * @param index * The zero-based index of the definition to retrieve. * @return The definition with the given index. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListDef getDef(int index) throws IndexOutOfBoundsException; /** * Replace a definition of this term. * * @param index * The zero-based index of the definition to replace. * @param def * The replacement definition. * @return The replaced definition. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListDef replaceDef(int index, Wom3DefinitionListDef def) throws IndexOutOfBoundsException; /** * Remove a definition if this term. * * @param index * The zero-based index of the definition to remove. * @return The removed definition. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3DefinitionListDef removeDef(int index) throws IndexOutOfBoundsException; /** * Append a definition to the term. * * @param def * The item to append. */ public void appendDef(Wom3DefinitionListDef def); /** * Insert a definition at the given index into the list of definitions of * this term. * * @param beforeIndex * The index of the definition in front of which the new * definition is to be inserted. * @param def * The definition to insert. The definition will have the given * index beforeIndex after insertion. * @throws IndexOutOfBoundsException * Thrown if 0 <= beforeIndex <= getDefNum() does * not hold. */ public void insertDef(int beforeIndex, Wom3DefinitionListDef def) throws IndexOutOfBoundsException; } Wom3Del.java000066400000000000000000000044041335270560400361630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.net.URL; import org.joda.time.DateTime; /** * Denotes text or a block that has been removed. * * Corresponds to the XHTML 1.0 Transitional element "del". * * Child elements: Mixed, [Flow elements]* */ public interface Wom3Del extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the url of a document that specifies the reasons for the change. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @return The url or null if the attribute is not specified. */ public URL getCite(); /** * Set the url of a document that specifies the reasons for the change. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @param url * The new url or null to remove the attribute. * @return The The old url. */ public URL setCite(URL url); /** * Get the timestamp when the text or block was deleted. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @return The date and time of the deletion or null if the * attribute is not specified. */ public DateTime getDatetime(); /** * Set the timestamp when the text or block was deleted. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @param timestamp * The new timestamp or null to remove the * attribute. * @return The old timestamp. */ public DateTime setDatetime(DateTime timestamp); } Wom3Dfn.java000066400000000000000000000020271335270560400361650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a definition term. * * Corresponds to the XHTML 1.0 Transitional element "dfn". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Dfn extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Div.java000066400000000000000000000035051335270560400362020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a general block. * * Corresponds to the XHTML 1.0 Transitional element "div". * * Child elements: Mixed, [Flow elements]* */ public interface Wom3Div extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment or null if the attribute is not * specified. */ public Wom3HorizAlign getAlign(); /** * Set the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new alignment or null to remove the * attribute. Only the values LEFT, RIGHT, CENTER and JUSTIFY are * allowed. * @return The old alignment. * @throws IllegalArgumentException * Thrown if an illegal value is specified as alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align) throws IllegalArgumentException; } Wom3Document.java000066400000000000000000000027251335270560400372410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Node; public interface Wom3Document extends Wom3Node, Document { @Override public Wom3ElementNode getDocumentElement(); @Override public Wom3DocumentFragment createDocumentFragment(); @Override public Wom3ElementNode createElement(String tagName) throws DOMException; @Override public Wom3ElementNode createElementNS( String namespaceURI, String qualifiedName) throws DOMException; @Override public Wom3Node adoptNode(Node source) throws DOMException; @Override public Wom3DomImplementation getImplementation(); boolean getReadOnly(); void setReadOnly(boolean readOnly); } Wom3DocumentFragment.java000066400000000000000000000016361335270560400407250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DocumentFragment; public interface Wom3DocumentFragment extends Wom3Node, DocumentFragment { } Wom3DomConfiguration.java000066400000000000000000000016211335270560400407240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DOMConfiguration; public interface Wom3DomConfiguration extends DOMConfiguration { } Wom3DomImplementation.java000066400000000000000000000021231335270560400411000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DOMException; import org.w3c.dom.DOMImplementation; import org.w3c.dom.DocumentType; public interface Wom3DomImplementation extends DOMImplementation { Wom3Document createDocument( String namespaceURI, String qualifiedName, DocumentType doctype) throws DOMException; } Wom3Element.java000066400000000000000000000015411335270560400370470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Element extends Wom3ElementNode { } Wom3ElementNode.java000066400000000000000000000020421335270560400376520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DOMException; import org.w3c.dom.Element; public interface Wom3ElementNode extends Wom3Node, Element { @Override public Wom3NodeList getElementsByTagNameNS( String namespaceURI, String localName) throws DOMException; } Wom3Emphasize.java000066400000000000000000000020721335270560400374030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as emphasized text. * * Corresponds to the XHTML 1.0 Transitional element "em". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Emphasize extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3EventAttributes.java000066400000000000000000000152261335270560400406130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The XHTML 1.0 Transitional event attributes. */ public interface Wom3EventAttributes { /** * Return the "onclick" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onclick". * * @return The "onclick" event handler call or null if the * attribute is not specified. */ public String getOnclick(); /** * Set the "onclick" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onclick". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnclick(String handler); /** * Return the "ondblclick" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "ondblclick". * * @return The "ondblclick" event handler call or null if the * attribute is not specified. */ public String getOndblclick(); /** * Set the "ondblclick" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "ondblclick". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOndblclick(String handler); /** * Return the "onmousedown" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmousedown". * * @return The "onmousedown" event handler call or null if the * attribute is not specified. */ public String getOnmousedown(); /** * Set the "onmousedown" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmousedown". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnmousedown(String handler); /** * Return the "onmouseup" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseup". * * @return The "onmouseup" event handler call or null if the * attribute is not specified. */ public String getOnmouseup(); /** * Set the "onmouseup" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseup". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnmouseup(String handler); /** * Return the "onmouseover" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseover". * * @return The "onmouseover" event handler call or null if the * attribute is not specified. */ public String getOnmouseover(); /** * Set the "onmouseover" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseover". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnmouseover(String handler); /** * Return the "onmousemove" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmousemove". * * @return The "onmousemove" event handler call or null if the * attribute is not specified. */ public String getOnmousemove(); /** * Set the "onmousemove" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmousemove". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnmousemove(String handler); /** * Return the "onmouseout" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseout". * * @return The "onmouseout" event handler call or null if the * attribute is not specified. */ public String getOnmouseout(); /** * Set the "onmouseout" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onmouseout". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnmouseout(String handler); /** * Return the "onkeypress" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeypressw". * * @return The "onkeypress" event handler call or null if the * attribute is not specified. */ public String getOnkeypress(); /** * Set the "onkeypress" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeypressw". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnkeypress(String handler); /** * Return the "onkeydown" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeydown". * * @return The "onkeydown" event handler call or null if the * attribute is not specified. */ public String getOnkeydown(); /** * Set the "onkeydown" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeydown". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnkeydown(String handler); /** * Return the "onkeyup" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeyup". * * @return The "onkeyup" event handler call or null if the * attribute is not specified. */ public String getOnkeyup(); /** * Set the "onkeyup" event handler call. * * Corresponds to the XHTML 1.0 Transitional attribute "onkeyup". * * @param handler * The new handler or null to remove the attribute. * @return The old handler. */ public String setOnkeyup(String handler); } Wom3ExtLink.java000066400000000000000000000045331335270560400370400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.net.URL; /** * Denotes a Wikitext bracketed external link. * * Corresponds to the WXML 1.0 element "extlink". * * Child elements: title? */ public interface Wom3ExtLink extends Wom3ElementNode, Wom3Link { /** * Set the title of the external link. * * @param title * The new title of the external link or null to * remove the title. * @return The old link title node. */ public Wom3Title setLinkTitle(Wom3Title title); /** * Retrieve the target of this link. * * Corresponds to the XWML 1.0 attribute "target". * * @return The target of this link. */ public URL getTarget(); /** * Set a new target for this external link. * * Corresponds to the XWML 1.0 attribute "target". * * @param target * The new target of the external link. * @return The old target of the external link. * @throws NullPointerException * Thrown if nullis passed as URL. */ public URL setTarget(URL target) throws NullPointerException; public boolean isPlainUrl(); public boolean setPlainUrl(boolean plainUrl); // ==[ Link interface ]===================================================== /** * Returns the title of the external link. If the external link does not * specify a title, an empty title is returned. * * @return The title of the external link. */ @Override public Wom3Title getLinkTitle(); /** * Retrieve the target of this link. * * @return The target of this link. */ @Override public URL getLinkTarget(); } Wom3Font.java000066400000000000000000000052171335270560400363700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Specifies the font color, font face and size of the text content. * * Corresponds to the XHTML 1.0 Transitional element "font". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Font extends Wom3ElementNode, Wom3CoreAttributes, Wom3I18nAttributes { /** * Get the color of the text content. * * Corresponds to the XHTML 1.0 Transitional attribute "color". * * @return The text color or null if the attribute is not * specified. */ public Wom3Color getColor(); /** * Set the color of the text content. * * Corresponds to the XHTML 1.0 Transitional attribute "color". * * @param color * The new color of the text content or null to * remove the attribute. * @return The old color of the text content. */ public Wom3Color setColor(Wom3Color color); /** * Get the name of the font face of the text content. * * Corresponds to the XHTML 1.0 Transitional attribute "face". * * @return The name of the font face or null if the attribute * is not specified. */ public String getFace(); /** * Set the name of the font face. * * Corresponds to the XHTML 1.0 Transitional attribute "face". * * @param face * The name of the new font face. * @return The name of the old font face. */ public String setFace(String face); /** * Get the size of the text content. * * Corresponds to the XHTML 1.0 Transitional attribute "size". * * @return The size of the text content. A value between 1 and 7. */ public Integer getSize(); /** * Set the text size. * * Corresponds to the XHTML 1.0 Transitional attribute "size". * * @param size * The new text size. A value between 1 and 7. * @return The old text size. */ public Integer setSize(Integer size); } Wom3For.java000066400000000000000000000015351335270560400362070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3For extends Wom3ElementNode { } Wom3Heading.java000066400000000000000000000041521335270560400370160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes the heading of a section. * * The level of the heading is stored in the section node which is always the * parent node of a heading. This interface is only concerned with the content * of the heading and the content's formatting. * * Corresponds to the WXML 1.0 element "heading". Also partly corresponds to the * XHTML 1.0 Transitional elements "h1" - "h6". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Heading extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment or null if the attribute is not * specified. */ public Wom3HorizAlign getAlign(); /** * Set the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new alignment or null to remove the * attribute. Only the values LEFT, RIGHT, CENTER and JUSTIFY are * allowed. * @return The old alignment. * @throws IllegalArgumentException * Thrown if an illegal value is specified as alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align) throws IllegalArgumentException; } Wom3HorizAlign.java000066400000000000000000000020361335270560400375240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Alignment attribute on DIV, H1-H6, HR, P, TABLE, TD, TH and TR elements. */ public enum Wom3HorizAlign { LEFT, RIGHT, CENTER, /** * Not applicable to HR and TABLE. */ JUSTIFY, /** * Only applicable to TD, TH and TR. */ CHAR } Wom3HorizontalRule.java000066400000000000000000000070111335270560400404350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a horizontal rule. * * Corresponds to the XHTML 1.0 Transitional element "hr". * * Child elements: - */ public interface Wom3HorizontalRule extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the alignment of the horizontal rule. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment of the horizontal rule or null if the * attribute is not specified. */ public Wom3HorizAlign getAlign(); /** * Set the alignment of the horizontal rule. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The alignment. Only the values left, * center and right are allowed. * @return The old alignment of the horizontal rule. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); /** * Get whether the horizontal rule is display with a 3-D effect (shade) or * without (no-shade). * * Corresponds to the XHTML 1.0 Transitional attribute "noshade". * * @return True for no 3-D effect, false for a 3-D * effect. */ public boolean isNoshade(); /** * Set whether the horizontal rule is display with a 3-D effect (shade) or * without (no-shade). * * Corresponds to the XHTML 1.0 Transitional attribute "noshade". * * @param noshade * The new setting. * @return The old setting. */ public boolean setNoshade(boolean noshade); /** * Get the thickness of the horizontal rule in pixels. * * Corresponds to the XHTML 1.0 Transitional attribute "size". * * @return The thickness in pixels or null if the attribute is * not specified. */ public Integer getSize(); /** * Set the thickness of the horizontal rule in pixels. * * Corresponds to the XHTML 1.0 Transitional attribute "size". * * @param size * The new thickness in pixels or null to remove the * attribute. * @return The old thickness in pixels. */ public Integer setSize(Integer size); /** * Get the width of the horizontal rule. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @return The width in pixels or percent or null if the * attribute is not specified. */ public Wom3ValueWithUnit getWidth(); /** * Set the width of the horizontal rule. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @param width * The new width in pixels or percent or null to * remove the attribute. * @return The old width in pixels or percent. */ public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width); } Wom3I18nAttributes.java000066400000000000000000000053241335270560400402470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * XHTML 1.0 Transitional Internationalization attributes. */ public interface Wom3I18nAttributes { /** * Get the text direction of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "dir". * * @return The text direction of the element's content or null * if the attribute is not specified. */ public Wom3I18nDir getDir(); /** * Get the text direction of the element. * * Corresponds to the XHTML 1.0 Transitional attribute "dir". * * @param dir * The new text direction or null to remove the * attribute. * @return The old text direction. */ public Wom3I18nDir setDir(Wom3I18nDir dir); /** * Get the language code for content inside this element. * * Corresponds to the XHTML 1.0 Transitional attribute "lang". * * @return The language code of the element's content or null * if the attribute is not specified. */ public String getLang(); /** * Get the language code for content inside this element. * * Corresponds to the XHTML 1.0 Transitional attribute "lang". * * @param lang * The new language code or null to remove the * attribute. * @return The old language code. */ public String setLang(String lang); /** * Get the language code for content inside this element. * * Corresponds to the XHTML 1.0 Transitional attribute "xml:lang". * * @return The language code of the element's content or null * if the attribute is not specified. */ public String getXmlLang(); /** * Get the language code for content inside this element. * * Corresponds to the XHTML 1.0 Transitional attribute "xml:lang". * * @param lang * The new language code or null to remove the * attribute. * @return The old language code. */ public String setXmlLang(String lang); } Wom3I18nDir.java000066400000000000000000000015711335270560400366370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * WtText direction inside an element. */ public enum Wom3I18nDir { LTR, RTL } Wom3Image.java000066400000000000000000000225721335270560400365070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.net.URL; /** * Denotes a Wikitext image. * * Corresponds to the WXML 1.0 element "image". * * Child elements: imgcaption? */ public interface Wom3Image extends Wom3ElementNode, Wom3Link { /** * Get the source of the image. * * Corresponds to the XWML 1.0 attribute "source". * * @return The page title of the image. */ public String getSource(); /** * Set the source of the image. * * Corresponds to the XWML 1.0 attribute "source". * * @param source * The page title of the new image source. * @return The page title of the old image source. * @throws IllegalArgumentException * Thrown if an empty source is passed or the source is not a * valid page title. * @throws NullPointerException * Thrown if null is passed as source. */ public String setSource(String source) throws IllegalArgumentException, NullPointerException; /** * Get the image rendering format. * * @return The image rendering format. */ public Wom3ImageFormat getFormat(); /** * Set the image rendering format. * * @param format * The new image rendering format or null to remove * the attribute. Passing unrestrained also removes * the attribute as this is the default. * @return The old image rendering format. * @throws NullPointerException * Thrown if null is given as format. */ public Wom3ImageFormat setFormat(Wom3ImageFormat format) throws NullPointerException; /** * Get whether the image will be rendered with a grey border. * * Corresponds to the XWML 1.0 attribute "border". * * @return True if the image is rendered with a grey border, * false otherwise. */ public boolean isBorder(); /** * Set whether the image should be rendered with a grey border * * Corresponds to the XWML 1.0 attribute "border". * * @param border * True if the image should be rendered with a grey * border, false otherwise. * @return The old setting. */ public boolean setBorder(boolean border); /** * Get the horizontal alignment of the image. * * Corresponds to the XWML 1.0 attribute "halign". * * @return The horizontal alignment or null if the attribute is * not specified. */ public Wom3ImageHAlign getHAlign(); /** * Set the horizontal alignment of the image. * * Corresponds to the XWML 1.0 attribute "halign". * * @param halign * The new setting or null to remove the attribute. * @return The old setting. */ public Wom3ImageHAlign setHAlign(Wom3ImageHAlign halign); /** * Get the vertical alignment of the image. Only applies to inline, * non-floating images. * * Corresponds to the XWML 1.0 attribute "valign". * * @return The vertical alignment of the image or null if the * attribute is not specified. */ public Wom3ImageVAlign getVAlign(); /** * Set the vertical alignment of the image. Only applies to inline, * non-floating images. * * Corresponds to the XWML 1.0 attribute "valign". * * @param valign * The new setting or null to remove the attribute. * @return The old setting. */ public Wom3ImageVAlign setVAlign(Wom3ImageVAlign valign); /** * Get the width to which the image should be scaled before rendering. * * Corresponds to the XWML 1.0 attribute "width". * * @return The width in pixels or null if the attribute is not * specified. */ public Integer getWidth(); /** * Set the width to which the image should be scaled before rendering. * * Corresponds to the XWML 1.0 attribute "width". * * @param width * The new width in pixels or null to remove the * attribute. * @return The old width in pixels. */ public Integer setWidth(Integer width); /** * Get the height to which the image should be scaled before rendering. * * Corresponds to the XWML 1.0 attribute "height". * * @return The height in pixels or null if the attribute is not * specified. */ public Integer getHeight(); /** * Set the height to which the image should be scaled before rendering. * * Corresponds to the XWML 1.0 attribute "height". * * @param height * The new height in pixels or null to remove the * attribute. * @return The old height in pixels. */ public Integer setHeight(Integer height); /** * Whether the image will be resized according to user preferences. * * Corresponds to the XWML 1.0 attribute "upright". * * @return True if the image will be resized according to user * preferences, false otherwise. */ public boolean isUpright(); /** * Set whether the image should will be resized according to user * preferences. * * Corresponds to the XWML 1.0 attribute "upright". * * @param upright * True if the image should be resized according to * user preferences, false otherwise. * * @return The old setting. */ public boolean setUpright(boolean upright); /** * Get the optional URL to which the image will link when clicked. The * optional URL and optional page link are mutually exclusive. * * Corresponds to the XWML 1.0 attribute "urllink". * * @return The URL to link to or null if the attribute is not * specified. */ public URL getExtLink(); /** * Set the optional URL to which the image will link when clicked. The * optional URL and optional page link are mutually exclusive. If the * attribute "pagelink" is specified and this method is called to set a * "urllink", the "pagelink" attribute will be removed. * * Corresponds to the XWML 1.0 attribute "urllink". * * @param url * The new URL to which the image should link or * null to remove the attribute. * @return The old URL. */ public URL setExtLink(URL url); /** * Get the optional page to which the image will link when clicked. The * optional page link and optional URL are mutually exclusive. * * Corresponds to the XWML 1.0 attribute "pagelink". * * @return The page to link to or null if the attribute is not * specified. */ public String getIntLink(); /** * Set the optional page to which the image will link when clicked. The * optional page and link optional URL are mutually exclusive. If the * attribute "urllink" is specified and this method is called to set a * "pagelink", the "urllink" attribute will be removed. * * Corresponds to the XWML 1.0 attribute "pagelink". * * @param page * The new page to which the image should link. * @return The old page. */ public String setIntLink(String page); /** * Get the alternative text of the image. * * Corresponds to the XWML 1.0 attribute "alt". * * @return The alternative text or null if the attribute is not * specified. */ public String getAlt(); /** * Set the alternative text of the image. * * Corresponds to the XWML 1.0 attribute "alt". * * @param alt * The new alternative text of the image or null to * remove the attribute. * @return The old alternative text. */ public String setAlt(String alt); // ==[ Caption ]============================================================ /** * Get the caption of the image. * * @return The caption of the image or null if the link does * not specify a caption. */ public Wom3ImageCaption getCaption(); /** * Set the caption of the image. * * @param caption * The new caption of the image or null to remove * the caption. * @return The old caption. */ public Wom3ImageCaption setCaption(Wom3ImageCaption caption); // ==[ Link interface ]===================================================== /** * Returns the alternative text of the image. If no alternative text is * given an empty title will be returned. * * @return The title of this image. */ @Override public Wom3Title getLinkTitle(); /** * Return the target this image links to. This is the page of the image * itself or another page or url if the pagelink or * urllink attributes are set. * * @return The target this image links to. */ @Override public Object getLinkTarget(); } Wom3ImageCaption.java000066400000000000000000000020011335270560400400060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The caption of a framed image. * * Corresponds to the WXML 1.0 element "imgcaption". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3ImageCaption extends Wom3ElementNode { } Wom3ImageFormat.java000066400000000000000000000070041335270560400376510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The different formats to render and place Wikitext images. */ public enum Wom3ImageFormat { /** *

    Intended use:

    *

    * Custom image formatting by the author. *

    * *

    Should render as follows:

    *

    *

      *
    • Framed: no.
    • *
    • Caption: no.
    • *
    • Floating block: no.
    • *
    • Inline: yes.
    • *
    • Border option: respected.
    • *
    • Sizing: *
        *
      • No size specified: Use original image size.
      • *
      • Size specified: Scale down arbitrarily, scale up arbitrarily.
      • *
      *
    • *
    *

    */ UNRESTRAINED, /** *

    Intended use:

    *

    * A plain, frameless, possibly reduced image that serves as preview to the * full image. *

    *

    * FRAMELESS and THUMBNAIL have the same sizing behavior. *

    * *

    Should render as follows:

    *

    *

      *
    • Framed: no.
    • *
    • Caption: no.
    • *
    • Floating block: no.
    • *
    • Inline: yes.
    • *
    • Border option: respected.
    • *
    • Sizing: *
        *
      • No size specified: Scale down to wiki or user thumbnail size * preferences, but do not scale up.
      • *
      • Size specified: Scale down arbitrarily, scale up but not beyond * original image size.
      • *
      *
    • *
    *

    */ FRAMELESS, /** *

    Intended use:

    *

    * A framed, possibly reduced image that serves as preview to the full * image. *

    *

    * FRAMELESS and THUMBNAIL have the same sizing behavior. *

    * *

    Should render as follows:

    *

    *

      *
    • Framed: yes (appearance according to wiki or user preferences).
    • *
    • Caption: yes (placement according to wiki or user preferences).
    • *
    • Floating block: yes.
    • *
    • Inline: no.
    • *
    • Border option: ignored.
    • *
    • Sizing: *
        *
      • No size specified: Scale down to wiki or user thumbnail size * preferences, but do not scale up.
      • *
      • Size specified: Scale down arbitrarily, scale up but not beyond * original image size.
      • *
      *
    • *
    *

    */ THUMBNAIL, /** *

    Intended use:

    *

    * A framed image with the original image size. *

    * *

    Should render as follows:

    *

    *

      *
    • Framed: yes (appearance according to wiki or user preferences).
    • *
    • Caption: yes (placement according to wiki or user preferences).
    • *
    • Floating block: yes.
    • *
    • Inline: no.
    • *
    • Border option: ignored.
    • *
    • Sizing: *
        *
      • No size specified: Scale down to wiki maximum image size or user,but * do not scale up.
      • *
      • Size specified: Ignore.
      • *
      *
    • *
    *

    */ FRAME } Wom3ImageHAlign.java000066400000000000000000000016411335270560400375640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Horizontal alignment of a Wikitext image. */ public enum Wom3ImageHAlign { DEFAULT, NONE, LEFT, CENTER, RIGHT, } Wom3ImageVAlign.java000066400000000000000000000017261335270560400376060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Vertical alignment of an inline, non-floating Wikitext image. */ public enum Wom3ImageVAlign { BASELINE, SUB, SUPER, TOP, TEXT_TOP, MIDDLE, BOTTOM, TEXT_BOTTOM, } Wom3Ins.java000066400000000000000000000044021335270560400362060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.net.URL; import org.joda.time.DateTime; /** * Denotes text or a block that has been added. * * Corresponds to the XHTML 1.0 Transitional element "ins". * * Child elements: Mixed, [Flow elements]* */ public interface Wom3Ins extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the url of a document that specifies the reasons for the change. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @return The url or null if the attribute is not specified. */ public URL getCite(); /** * Set the url of a document that specifies the reasons for the change. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @param url * The new url or null to remove the attribute. * @return The The old url. */ public URL setCite(URL url); /** * Get the timestamp when the text or block was deleted. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @return The date and time of the deletion or null if the * attribute is not specified. */ public DateTime getDatetime(); /** * Set the timestamp when the text or block was deleted. * * Corresponds to the XHTML 1.0 Transitional attribute "cite". * * @param timestamp * The new timestamp or null to remove the * attribute. * @return The old timestamp. */ public DateTime setDatetime(DateTime timestamp); } Wom3IntLink.java000066400000000000000000000047051335270560400370330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a Wikitext internal link. * * Corresponds to the WXML 1.0 element "intlink". * * Child elements: title? */ public interface Wom3IntLink extends Wom3ElementNode, Wom3Link { /** * Set the title of the internal link. * * @param title * The new title of the internal link or null to * remove the title. * @return The old link title. */ public Wom3Title setLinkTitle(Wom3Title title); /** * Get the target of the internal link. * * Corresponds to the XWML 1.0 attribute "target". * * @return The target of the internal link. */ public String getTarget(); /** * Set the target of this internal link. * * Corresponds to the XWML 1.0 attribute "target". * * @param target * The new target of the internal link. * @return The old target of the internal link. * @throws IllegalArgumentException * Thrown if the given target is empty or not a valid page * title. * @throws NullPointerException * Thrown if null is passed as target. */ public String setTarget(String target) throws IllegalArgumentException, NullPointerException; // ==[ Link interface ]===================================================== /** * Returns the title of the internal link. If the internal link does not * specify a title, the target (which specifies a page title) is returned as * title. * * @return The title of the internal link. */ @Override public Wom3Title getLinkTitle(); /** * Retrieve the target of this link. * * @return The target of this link. */ @Override public String getLinkTarget(); } Wom3Italics.java000066400000000000000000000020631335270560400370460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as italic text. * * Corresponds to the XHTML 1.0 Transitional element "i". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Italics extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Kbd.java000066400000000000000000000020331335270560400361530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a key on the keyboard. * * Corresponds to the XHTML 1.0 Transitional element "kbd". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Kbd extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Link.java000066400000000000000000000023761335270560400363620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * This interface groups elements of Wikitext that link to different pages/urls. */ public interface Wom3Link extends Wom3Node { /** * Returns the title of this link. * * @return The title node or null if the link does not support * a title or does not specify a title. */ public Wom3Title getLinkTitle(); /** * Retrieve the target of this link. * * @return The target of this link. */ public Object getLinkTarget(); } Wom3List.java000066400000000000000000000103521335270560400363710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.util.Collection; /** * Interface to lists like <ul> or <ol>. * * List items are accessed via an integer index where 0 denotes the * first list item. Only valid list items are counted. If a list is given * in HTML that contains invalid content (e.g.: text or elements other than * <li>), these elements are skipped in the enumeration and are * not accessible through this interface. However, they can be iterated using * the methods provided by the WomNode interface. * * Corresponds to the XHTML 1.0 Transitional element "ul" or "ol". * * Child elements: ([Preprocessor elements]|li)* */ public interface Wom3List extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the number of items in the list. * * @return The number of items in the list. */ public int getItemNum(); /** * Get a collection containing all items. * * @return A collection with all items of the list. */ public Collection getItems(); /** * Get a certain item from the list. * * @param index * The zero-based index of the item to retrieve. * @return The item with the given index. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3ListItem getItem(int index) throws IndexOutOfBoundsException; /** * Replace a certain item in the list. * * @param index * The zero-based index of the item to replace. * @param item * The replacement item. * @return The old item with the given index. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3ListItem replaceItem(int index, Wom3ListItem item) throws IndexOutOfBoundsException; /** * Remove an item from the list. * * @param index * The zero-based index of the item to remove. * * @return The removed item. * @throws IndexOutOfBoundsException * If the given index is out of range. */ public Wom3ListItem removeItem(int index) throws IndexOutOfBoundsException; /** * Append an item to the list. * * @param item * The item to append. */ public void appendItem(Wom3ListItem item); /** * Insert an item at the given index into the list. * * @param beforeIndex * The index of the item in front of which the new item is to be * inserted. * @param item * The item to insert. The item will have the given index * beforeIndex after insertion. * @throws IndexOutOfBoundsException * Thrown if 0 <= beforeIndex <= getItemNum() does * not hold. */ public void insertItem(int beforeIndex, Wom3ListItem item) throws IndexOutOfBoundsException; // ==[ The XHTML Attributes ]=============================================== /** * Tells whether the list should be displayed as compact list. * * Corresponds to the XHTML 1.0 Transitional attribute "compact". * * @return Whether the "compact" flag is given or not. */ public boolean isCompact(); /** * Set whether the list should be displayed as compact list. * * Corresponds to the XHTML 1.0 Transitional attribute "compact". * * @param compact * Set (true) or remove (false) the * "compact" flag. * @return The old state. */ public boolean setCompact(boolean compact); } Wom3ListItem.java000066400000000000000000000043161335270560400372130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a list item. * * Corresponds to the XHTML 1.0 Transitional element "li". * * Child elements: [Block elements]* */ public interface Wom3ListItem extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the type of bullet point the list item uses. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @return The type of bullet point or null if the attribute is * not specified. */ public String getItemType(); /** * Get the type of bullet point the list item uses. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @param type * The new type of bullet point or null to remove * the attribute. * @return The old type of bullet point. */ public String setItemType(String type); /** * Get the number of the list item. * * Corresponds to the XHTML 1.0 Transitional attribute "value". * * @return The number of the list item or null if the attribute * is not specified. */ public Integer getItemValue(); /** * Set the number of the list item. * * Corresponds to the XHTML 1.0 Transitional attribute "value". * * @param number * The new number of the list item or null to remove * the attribute. * @return The old number of the list item. */ public Integer setItemValue(Integer number); } Wom3NamedNodeMap.java000066400000000000000000000026151335270560400377510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.DOMException; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; public interface Wom3NamedNodeMap extends NamedNodeMap { public Wom3Node getNamedItem(String name); public Wom3Node setNamedItem(Node arg) throws DOMException; public Wom3Node removeNamedItem(String name) throws DOMException; public Wom3Node item(int index); public Wom3Node getNamedItemNS(String namespaceURI, String localName) throws DOMException; public Wom3Node setNamedItemNS(Node arg) throws DOMException; public Wom3Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException; } Wom3Node.java000066400000000000000000000603751335270560400363550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.io.Serializable; import java.util.Collection; import java.util.Iterator; import org.w3c.dom.DOMException; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.UserDataHandler; /** * The parent interface of every node in the Wiki Object Model. */ public interface Wom3Node extends Cloneable, Serializable, Iterable, Node { /** * The version of the WOM standard represented by these classes. */ public static final String VERSION = "3.0"; public static final String WOM_NS_URI = "http://sweble.org/schema/wom30"; public static final String DEFAULT_WOM_NS_PREFIX = "wom"; // ========================================================================= // // DOM Level 3 Node Interface Attributes // // ========================================================================= /** * The name of this node, depending on its type; see the following table: * *
    	 * 
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 * 
    InterfacenodeName
    Attrsame as Attr.name
    CDATASection#cdata-section
    Comment#comment
    Document#document
    DocumentFragment#document-fragment
    DocumentTypesame as DocumentType.name
    Elementsame as Element.tagName
    Entityentity name
    EntityReferencename of entity referenced
    Notationnotation name
    ProcessingInstructionsame as ProcessingInstruction.target
    Text#text
    *
    * * @since DOM Level 1 * @since WOM Version 3 */ @Override public String getNodeName(); /** * The value of this node, depending on its type; see the following table. * When it is defined to be null, setting it has no effect, including if the * node is read-only. * *
    	 * 
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 * 
    InterfacenodeValue
    Attrsame as Attr.value
    CDATASectionsame as CharacterData.data, the content of the CDATA Section
    Commentsame as CharacterData.data, the content of the comment
    Documentnull
    DocumentFragmentnull
    DocumentTypenull
    Elementnull
    Entitynull
    EntityReferencenull
    Notationnull
    ProcessingInstructionsame as ProcessingInstruction.data
    Textsame as CharacterData.data, the content of the text node
    *
    * * @throws DOMException *
    *
    DOMSTRING_SIZE_ERR
    *
    Raised when it would return more characters than fit in a * DOMString variable on the implementation platform.
    *
    * * @since DOM Level 1 * @since WOM Version 3 */ @Override public String getNodeValue() throws DOMException; /** * The value of this node, depending on its type; see the following table. * When it is defined to be null, setting it has no effect, including if the * node is read-only. * *
    	 * 
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 * 
    InterfacenodeValue
    Attrsame as Attr.value
    CDATASectionsame as CharacterData.data, the content of the CDATA Section
    Commentsame as CharacterData.data, the content of the comment
    Documentnull
    DocumentFragmentnull
    DocumentTypenull
    Elementnull
    Entitynull
    EntityReferencenull
    Notationnull
    ProcessingInstructionsame as ProcessingInstruction.data
    Textsame as CharacterData.data, the content of the text node
    *
    * * @throws DOMException *
    *
    NO_MODIFICATION_ALLOWED_ERR
    *
    Raised when the node is readonly and if it is not defined * to be null.
    *
    * * @since DOM Level 1 * @since WOM Version 3 */ @Override public void setNodeValue(String nodeValue) throws DOMException; /** * A code representing the type of the underlying object. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public short getNodeType(); /** * The Document object associated with this node. This is also the Document * object used to create new nodes. When this node is a Document or a * DocumentType which is not used with any Document yet, this is null. * * @since DOM Level 1, modified in DOM Level 2 * @since WOM Version 3 */ @Override public Wom3Document getOwnerDocument(); /** * The parent of this node. All nodes, except Attr, Document, * DocumentFragment, Entity, and Notation may have a parent. However, if a * node has just been created and not yet added to the tree, or if it has * been removed from the tree, this is null. * *
    	 * 
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 *   
    	 * 
    Interfaceparent
    Attrno
    CDATASectionyes
    Commentyes
    Documentno
    DocumentFragmentno
    DocumentTypeyes
    Elementyes
    Entityno
    EntityReferenceyes
    Notationno
    ProcessingInstructionyes
    Textyes
    *
    * * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node getParentNode(); /** * The first child of this node. If there is no such node, this returns * null. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node getFirstChild(); /** * The last child of this node. If there is no such node, this returns null. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node getLastChild(); /** * The node immediately following this node. If there is no such node, this * returns null. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node getPreviousSibling(); /** * The node immediately preceding this node. If there is no such node, this * returns null. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node getNextSibling(); /** * A NodeList that contains all children of this node. If there are no * children, this is a NodeList containing no nodes. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public NodeList getChildNodes(); /** * A NamedNodeMap containing the attributes of this node (if it is an * Element) or null otherwise. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public NamedNodeMap getAttributes(); /** * The namespace URI of this node, or null if it is unspecified (see XML * Namespaces). * *

    * This is not a computed value that is the result of a namespace lookup * based on an examination of the namespace declarations in scope. It is * merely the namespace URI given at creation time. * *

    * For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and * nodes created with a DOM Level 1 method, such as * Document.createElement(), this is always null. * *

    * Note: Per the Namespaces in XML Specification [XML Namespaces] an * attribute does not inherit its namespace from the element it is attached * to. If an attribute is not explicitly given a namespace, it simply has no * namespace. * * @since DOM Level 2 * @since WOM Version 3 */ @Override public String getNamespaceURI(); /** * The namespace prefix of this node, or null if it is unspecified. * *

    * For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and * nodes created with a DOM Level 1 method, such as createElement from the * Document interface, this is always null. * * @since DOM Level 2 * @since WOM Version 3 */ @Override public String getPrefix(); /** * The namespace prefix of this node. When it is defined to be null, setting * it has no effect, including if the node is read-only. * *

    * Note that setting this attribute, when permitted, changes the nodeName * attribute, which holds the qualified name, as well as the tagName and * name attributes of the Element and Attr interfaces, when applicable. * *

    * Setting the prefix to null makes it unspecified, setting it to an empty * string is implementation dependent. * *

    * Note also that changing the prefix of an attribute that is known to have * a default value, does not make a new attribute with the default value and * the original prefix appear, since the namespaceURI and localName do not * change. * * @throws DOMException *

    *
    INVALID_CHARACTER_ERR
    Raised if the specified * prefix contains an illegal character according to the XML * version in use specified in the Document.xmlVersion * attribute.
    * *
    NO_MODIFICATION_ALLOWED_ERR
    Raised if this node * is readonly.
    * *
    NAMESPACE_ERR
    Raised if the specified prefix is * malformed per the Namespaces in XML specification, if the * namespaceURI of this node is null, if the specified prefix is * "xml" and the namespaceURI of this node is different from * "http://www.w3.org/XML/1998/namespace", if this node is an * attribute and the specified prefix is "xmlns" and the * namespaceURI of this node is different from * "http://www.w3.org/2000/xmlns/", or if this node is an * attribute and the qualifiedName of this node is "xmlns" [XML * Namespaces].
    *
    * * @since DOM Level 2 * @since WOM Version 3 */ @Override public void setPrefix(String prefix) throws DOMException; /** * Returns the local part of the qualified name of this node. * *

    * For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and * nodes created with a DOM Level 1 method, such as * Document.createElement(), this is always null. * * @since DOM Level 2 * @since WOM Version 3 */ public String getLocalName(); /** * The absolute base URI of this node or null if the implementation wasn't * able to obtain an absolute URI. This value is computed as described in * Base URIs. However, when the Document supports the feature "HTML" [DOM * Level 2 HTML], the base URI is computed using first the value of the href * attribute of the HTML BASE element if any, and the value of the * documentURI attribute from the Document interface otherwise. * * @since DOM Level 3 * @since WOM Version 3 */ @Override public String getBaseURI(); /** * This attribute returns the text content of this node and its descendants. * *

    * On getting, no serialization is performed, the returned string does not * contain any markup. No whitespace normalization is performed and the * returned string does not contain the white spaces in element content (see * the attribute Text.isElementContentWhitespace). Similarly, on setting, no * parsing is performed either, the input string is taken as pure textual * content. * *

    * The string returned is made of the text content of this node depending on * its type, as defined below: * *

    	 * 
    	 *   
    	 *     
    	 *     
    	 *   
    	 *   
    	 *     
    	 *     
    	 *   
    	 *   
    	 *     
    	 *     
    	 *   
    	 *   
    	 *     
    	 *     
    	 *   
    	 * 
    Node typeContent
    ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODEconcatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.
    TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODEnodeValue
    DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODEnull
    *
    * * @throws DOMException *
    *
    DOMSTRING_SIZE_ERR
    Raised when it would return * more characters than fit in a DOMString variable on the * implementation platform.
    *
    * * @since DOM Level 3 * @since WOM Version 3 */ @Override public String getTextContent() throws DOMException; /** * Sets the text content of this node. * * When it is defined to be null, setting it has no effect. On setting, any * possible children this node may have are removed and, if it the new * string is not empty or null, replaced by a single Text node containing * the string this attribute is set to. * * @throws DOMException *
    *
    NO_MODIFICATION_ALLOWED_ERR
    *
    Raised when the node is readonly.
    *
    * * @since DOM Level 3 * @since WOM Version 3 */ @Override public void setTextContent(String textContent) throws DOMException; // ========================================================================= // // DOM Level 3 Node Interface Operations // // ========================================================================= /** * Returns whether this node (if it is an element) has any attributes. * * @since DOM Level 2 * @since WOM Version 3 */ @Override public boolean hasAttributes(); /** * Returns whether this node has any children. * * @since DOM Level 1 * @since WOM Version 3 */ @Override public boolean hasChildNodes(); /** * Inserts the node newChild before the existing child node refChild. If * refChild is null, insert newChild at the end of the list of children. * *

    * If newChild is a DocumentFragment object, all of its children are * inserted, in the same order, before refChild. If the newChild is already * in the tree, it is first removed. * *

    * Note: Inserting a node before itself is implementation dependent. * * @return The node being inserted. * * @throws DOMException *

    *
    HIERARCHY_REQUEST_ERR
    Raised if this node is of a * type that does not allow children of the type of the newChild * node, or if the node to insert is one of this node's * ancestors or this node itself, or if this node is of type * Document and the DOM application attempts to insert a second * DocumentType or Element node.
    * *
    WRONG_DOCUMENT_ERR
    Raised if newChild was created * from a different document than the one that created this * node.
    * *
    NO_MODIFICATION_ALLOWED_ERR
    Raised if this node * is readonly or if the parent of the node being inserted is * readonly.
    * *
    NOT_FOUND_ERR
    Raised if refChild is not a child * of this node.
    * *
    NOT_SUPPORTED_ERR
    If this node is of type * Document, this exception might be raised if the DOM * implementation doesn't support the insertion of a * DocumentType or Element node.
    *
    * * @since DOM Level 1, modified in DOM Level 3 * @since WOM Version 3 */ @Override public Wom3Node insertBefore(Node newChild, Node refChild) throws DOMException; /** * Replaces the child node oldChild with newChild in the list of children, * and returns the oldChild node. * *

    * If newChild is a DocumentFragment object, oldChild is replaced by all of * the DocumentFragment children, which are inserted in the same order. If * the newChild is already in the tree, it is first removed. * *

    * Note: Replacing a node with itself is implementation dependent. * * @return The node replaced. * * @throws DOMException *

    *
    HIERARCHY_REQUEST_ERR
    Raised if this node is of a * type that does not allow children of the type of the newChild * node, or if the node to put in is one of this node's * ancestors or this node itself, or if this node is of type * Document and the result of the replacement operation would * add a second DocumentType or Element on the Document node. *
    * *
    WRONG_DOCUMENT_ERR
    Raised if newChild was created * from a different document than the one that created this * node.
    * *
    NO_MODIFICATION_ALLOWED_ERR
    Raised if this node * or the parent of the new node is readonly.
    * *
    NOT_FOUND_ERR
    Raised if oldChild is not a child * of this node.
    * *
    NOT_SUPPORTED_ERR
    if this node is of type * Document, this exception might be raised if the DOM * implementation doesn't support the replacement of the * DocumentType child or Element child.
    *
    * * @since DOM Level 1, modified in DOM Level 3 * @since WOM Version 3 */ @Override public Wom3Node replaceChild(Node newChild, Node oldChild) throws DOMException; /** * Removes the child node indicated by oldChild from the list of children, * and returns it. * * @return The node removed. * * @throws DOMException *
    *
    NO_MODIFICATION_ALLOWED_ERR
    *
    Raised if this node is readonly.
    * *
    NOT_FOUND_ERR
    *
    Raised if oldChild is not a child of this node.
    * *
    NOT_SUPPORTED_ERR
    *
    if this node is of type Document, this exception might be * raised if the DOM implementation doesn't support the removal * of the DocumentType child or the Element child.
    *
    * * @since DOM Level 1, modified in DOM Level 3 * @since WOM Version 3 */ @Override public Wom3Node removeChild(Node child) throws DOMException; /** * Adds the node newChild to the end of the list of children of this node. * If the newChild is already in the tree, it is first removed. * * @return The node added. * * @throws DOMException *
    *
    HIERARCHY_REQUEST_ERR
    *
    Raised if this node is of a type that does not allow * children of the type of the newChild node, or if the node to * append is one of this node's ancestors or this node itself, * or if this node is of type Document and the DOM application * attempts to append a second DocumentType or Element node. * *
    WRONG_DOCUMENT_ERR
    *
    Raised if newChild was created from a different document * than the one that created this node. * *
    NO_MODIFICATION_ALLOWED_ERR
    *
    Raised if this node is readonly or if the previous parent * of the node being inserted is readonly. * *
    NOT_SUPPORTED_ERR
    *
    if the newChild node is a child of the Document node, * this exception might be raised if the DOM implementation * doesn't support the removal of the DocumentType child or * Element child. *
    * * @since DOM Level 1, modified in DOM Level 3 * @since WOM Version 3 */ @Override public Wom3Node appendChild(Node child) throws DOMException; /** * @since DOM Level 1, modified in DOM Level 3 * @since WOM Version 3 */ @Override public void normalize(); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public String lookupPrefix(String namespaceURI); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public String lookupNamespaceURI(String prefix); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public boolean isDefaultNamespace(String namespaceURI); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public boolean isSameNode(Node other); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public boolean isEqualNode(Node arg); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public short compareDocumentPosition(Node other) throws DOMException; /** * @since DOM Level 2 * @since WOM Version 3 */ @Override public boolean isSupported(String feature, String version); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public Object getFeature(String feature, String version); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public Object setUserData(String key, Object data, UserDataHandler handler); /** * @since DOM Level 3 * @since WOM Version 3 */ @Override public Object getUserData(String key); /** * @since DOM Level 1 * @since WOM Version 3 */ @Override public Wom3Node cloneNode(boolean deep); // ========================================================================= // // WOM Version 3 Extensions // // ========================================================================= /** * Returns an immutable collection containing this node's children. */ public Collection getWomChildNodes(); /** * Returns an immutable collection of this node's attributes. */ public Collection getWomAttributes(); /** * Returns a read-only iterator for this node's attributes. */ public Iterator attributeIterator(); // /** // * Returns whether this node supports attributes. // */ // public boolean supportsAttributes(); // /** // * Returns whether this node supports children. // */ // public boolean supportsChildNodes(); // // Later overrides org.w3c.dom.Element // public String getAttribute(String name); // // // Later overrides org.w3c.dom.Element // public Wom3Attribute getAttributeNode(String name); // // // Later overrides org.w3c.dom.Element // public void removeAttribute(String name) throws DOMException; // // // Later overrides org.w3c.dom.Element // public Wom3Attribute removeAttributeNode(Attr attr) throws DOMException; // // // Later overrides org.w3c.dom.Element // public void setAttribute(String name, String value) throws DOMException; // // // Later overrides org.w3c.dom.Element // public Wom3Attribute setAttributeNode(Attr attr) throws DOMException; } Wom3NodeList.java000066400000000000000000000016621335270560400372030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.NodeList; public interface Wom3NodeList extends NodeList, Iterable { public Wom3Node item(int index); } Wom3Nowiki.java000066400000000000000000000017651335270560400367260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Wraps text that must not be interpreted. * * Corresponds to the WXML 1.0 element "nowiki". * * FIXME: Child elements: WtText */ public interface Wom3Nowiki extends Wom3ElementNode { } Wom3OrderedList.java000066400000000000000000000042771335270560400377070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes an ordered list. * * Corresponds to the XHTML 1.0 Transitional element "ol". * * See WomList for details. */ public interface Wom3OrderedList extends Wom3List { /** * Get the number of the first item in the list. * * Corresponds to the XHTML 1.0 Transitional attribute "start". * * @return The number of the first item or null if the * attribute is not specified. */ public Integer getStart(); /** * Set the number of the first list item. * * Corresponds to the XHTML 1.0 Transitional attribute "start". * * @param start * The new number of the first list item or null to * remove the attribute. * @return The old number of the first list item. */ public Integer setStart(Integer start); /** * Get the type of bullet point the list items use. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @return The type of bullet point or null if the attribute is * not specified. */ public String getItemType(); /** * Set the type of bullet point the list items should use. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @param type * The new type of bullet point or null to remove * the attribute. * @return The old type of bullet point. */ public String setItemType(String type); } Wom3Paragraph.java000066400000000000000000000064511335270560400373700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a paragraph. * * Corresponds to the XHTML 1.0 Transitional element "p". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Paragraph extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the number of empty lines in front of the paragraph. * * This is a Wikitext-specific extension. In Wikitext empty lines in front * of the text of a paragraph result in additional empty paragraphs and line * breaks in front of the HTML paragraph. The number of empty lines * determines the number of empty paragraphs and line breaks and is returned * by this method. This attribute counts the number of empty lines minus one * since one of the empty lines is interpreted as paragraph separator and * does not add to the gap itself. * * @return The number of empty lines in front of the paragraph that affect * the size of the gap or 0 if the attribute is not * specified. */ public int getTopGap(); /** * Set the number of empty lines in front of the paragraph. * * See getTopGap() for details. * * @param lines * The number of empty lines in front of the paragraph that * affect the size of the gap. * @return The old number of lines or 0 if the attribute is not * specified. */ public int setTopGap(int lines); /** * Get the number of empty lines following the paragraph. * * See getTopGap() for details. * * @return The number of empty lines following of the paragraph that affect * the size of the gap or 0 if the attribute is not * specified. */ public int getBottomGap(); /** * Set the number of empty lines following the paragraph. * * See getTopGap() for details. * * @param lines * The number of empty lines following the paragraph that affect * the size of the gap. * @return The old number of lines or 0 if the attribute is not * specified. */ public int setBottomGap(int lines); /** * Get the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment. */ public Wom3HorizAlign getAlign(); /** * Set the alignment of the content inside the tag. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new alignment. * @return The old alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); } Wom3Pre.java000066400000000000000000000027471335270560400362150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Pre extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the number of characters per line. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @return The number of characters per line or null if the * attribute is not specified. */ public Integer getWidth(); /** * Set the number of characters per line. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @param width * The new number of characters per line or null to * remove the attribute. * @return The old number of characters per line. */ public Integer setWidth(Integer width); } Wom3Redirect.java000066400000000000000000000034411335270560400372200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Redirect extends Wom3ElementNode, Wom3Link { public String getDisplacementId(); public String setDisplacementId(String did); /** * Return the target page of the redirection. * * Corresponds to the XWML 1.0 attribute "target". * * @return The target page to redirect to. */ public String getTarget(); /** * Set the target page of the redirection. * * Corresponds to the XWML 1.0 attribute "target". * * @param page * The new target of the redirection. * @return The old target of the redirection. */ public String setTarget(String page); // ==[ Link interface ]===================================================== /** * Returns an empty title since redirection statements do not provide a * title. * * @return An empty title. */ @Override public Wom3Title getLinkTitle(); /** * Return the target page of the redirection. * * @return The target page to redirect to. */ @Override public String getLinkTarget(); } Wom3Ref.java000066400000000000000000000016351335270560400361760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Ref extends Wom3ElementNode { public String getType(); public String setType(String type); } Wom3Repl.java000066400000000000000000000015361335270560400363640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Repl extends Wom3ElementNode { } Wom3Rtd.java000066400000000000000000000015351335270560400362120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Rtd extends Wom3ElementNode { } Wom3Samp.java000066400000000000000000000020311335270560400363510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a text as example. * * Corresponds to the XHTML 1.0 Transitional element "samp". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Samp extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Section.java000066400000000000000000000061561335270560400370710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * A section in Wikitext. * * Corresponds to the XWML 1.0 element "section". * * Child elements: heading body */ public interface Wom3Section extends Wom3ElementNode { /** * Get the level of the section. Ranges from 1 (most important) to 6 (least * important). * * Corresponds to the XWML 1.0 attribute "level". * * @return The level of the section. */ public int getLevel(); /** * Set the level of the section. Ranges from 1 (most important) to 6 (least * important). A section with level x cannot be contained in a * section with level y or any of its children if * x <= y. * * Corresponds to the XWML 1.0 attribute "level". * * @param level * The new level of the section. * @return The old level of the section. * @throws IllegalArgumentException * Thrown if this section is contained in a section with level * y or any of its children and * level <= y or if the given level does not lie in * the range [1,6]. */ public int setLevel(int level) throws IllegalArgumentException; /** * Return the heading of this section. * * Operates on the first <heading> element found among this node's * children. * * @return This heading of this section. */ public Wom3Heading getHeading(); /** * Set the heading of this section. * * Operates on the first <heading> element found among this node's * children. * * @param heading * The new heading. * @return The old heading. * @throws NullPointerException * Thrown if null is given as heading. */ public Wom3Heading setHeading(Wom3Heading heading) throws NullPointerException; /** * Return the body of this section. * * Operates on the first <body> element found among this node's children. * * @return The body of this section. */ public Wom3Body getBody(); /** * Set the body of this section. * * Operates on the first <body> element found among this node's children. * * @param body * The new body. * @return The old body. * @throws NullPointerException * Thrown if null is given as body. */ public Wom3Body setBody(Wom3Body body) throws NullPointerException; } Wom3Signature.java000066400000000000000000000057231335270560400374250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.joda.time.DateTime; /** * A Wikitext signature. * * Corresponds to the XWML 1.0 element "signature". * * Child elements: - */ public interface Wom3Signature extends Wom3ElementNode { /** * Get the signature format that describes how the signature should be * rendered. * * Corresponds to the XWML 1.0 attribute "format". * * @return The signature format. */ public Wom3SignatureFormat getSignatureFormat(); /** * Set the signature format that describes how the signature should be * rendered. * * Corresponds to the XWML 1.0 attribute "format". * * @param format * The new signature format. * @return The old signature format. * @throws NullPointerException * Thrown if null is given as format. */ public Wom3SignatureFormat setSignatureFormat(Wom3SignatureFormat format) throws NullPointerException; /** * Get the name of the author. * * Corresponds to the XWML 1.0 attribute "author". * * @return The author name. */ public String getAuthor(); /** * Set the author name. * * Corresponds to the XWML 1.0 attribute "author". * * @param author * The new name of the author. * @return The old author name. * @throws IllegalArgumentException * Thrown if the given author name is not a valid MediaWiki user * name. * @throws NullPointerException * Thrown if null is given as format. */ public String setAuthor(String author) throws IllegalArgumentException, NullPointerException; /** * Get the date and time of the signature. * * Corresponds to the XWML 1.0 attribute "timestamp". * * @return The date and time of the signature. */ public DateTime getTimestamp(); /** * Set the date and time of the signature. * * Corresponds to the XWML 1.0 attribute "timestamp". * * @param timestamp * The new date and time of the signature. * @return The old date and time of the signature. * @throws NullPointerException * Thrown if null is given as format. */ public DateTime setTimestamp(DateTime timestamp) throws NullPointerException; } Wom3SignatureFormat.java000066400000000000000000000016371335270560400405760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Defines how a signature will be rendered. */ public enum Wom3SignatureFormat { USER, TIMESTAMP, USER_TIMESTAMP } Wom3Small.java000066400000000000000000000020711335270560400365250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be displayed in a smaller font. * * Corresponds to the XHTML 1.0 Transitional element "small". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Small extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Span.java000066400000000000000000000020351335270560400363560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a general inline span. * * Corresponds to the XHTML 1.0 Transitional element "span". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Span extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Strike.java000066400000000000000000000021071335270560400367160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be displayed as strikethrough text. * * Corresponds to the XHTML 1.0 Transitional element "strike" and "s". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Strike extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Strong.java000066400000000000000000000021051335270560400367270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as strong (highlighted) text. * * Corresponds to the XHTML 1.0 Transitional element "strong". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Strong extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Sub.java000066400000000000000000000020641335270560400362100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as subscript text. * * Corresponds to the XHTML 1.0 Transitional element "sub". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Sub extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Subst.java000066400000000000000000000021301335270560400365510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Subst extends Wom3ElementNode { public String getDisplacementId(); public String setDisplacementId(String did); public Wom3Repl getRepl(); public Wom3Repl setRepl(Wom3Repl name); public Wom3For getFor(); public Wom3For setFor(Wom3For value) throws NullPointerException; } Wom3Sup.java000066400000000000000000000020661335270560400362300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as superscript text. * * Corresponds to the XHTML 1.0 Transitional element "sup". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Sup extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Table.java000066400000000000000000000202261335270560400365060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.util.Collection; /** * Denotes a table. * * Corresponds to the XHTML 1.0 Transitional element "table". * * Child elements: ([Preprocessor elements]|caption)? ([Preprocessor * elements]|tbody)? */ public interface Wom3Table extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the caption of the table. * * Operates on the first <caption> element found among the table's * children. * * @return The caption of the table. */ public Wom3TableCaption getCaption(); /** * Set the caption of the table. * * Operates on the first <caption> element found among the table's * children. If no caption is found, the caption will be added as the first * child of the table. * * @param caption * The new caption of the table. * @return The old caption of the table. */ public Wom3TableCaption setCaption(Wom3TableCaption caption); // /** // * Get the body of the table. // * // * Operates on the first <tbody> element found among the table's // * children. // * // * @return The body of the table. // */ // public Wom3TableBody getBody(); // // /** // * Set the body of the table. // * // * Operates on the first <tbody> element found among the table's // * children. If no body is found, the body will be added as the first child // * of the table. // * // * @param body // * The new body of the table. // * @return The old body of the table. // */ // public Wom3TableBody setBody(Wom3TableBody body); public Collection getPartitions(); // ==[ The XHTML Attributes ]=============================================== /** * Get the alignment of the table. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment of the table or null if the attribute * is not specified. */ public Wom3HorizAlign getAlign(); /** * Set the alignment of the table. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The alignment or null to remove the attribute. * Only the values left, center and * right are allowed. * @return The old alignment of the table. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); /** * Get the thickness of the table border. * * Corresponds to the XHTML 1.0 Transitional attribute "border". * * @return The thickness of the table border in pixels or null * if the attribute is not given. */ public Integer getBorder(); /** * The the thickness of the table border. * * Corresponds to the XHTML 1.0 Transitional attribute "border". * * @param thickness * the new thickness of the table border in pixels or * null to remove the attribute. * @return The old thickness in pixels. */ public Integer setBorder(Integer thickness); /** * Get the background color of the table. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @return The background color of the table or null if the * attribute is not specified. */ public Wom3Color getBgColor(); /** * Set the background color of the table. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @param color * The new background color of the table or null to * remove the attribute. * @return The old background color of the table. */ public Wom3Color setBgColor(Wom3Color color); /** * Get the spacing between cell wall and cell content. * * Corresponds to the XHTML 1.0 Transitional attribute "cellpadding". * * @return The spacing between cell wall and content in pixels or * null if the attribute is not specified. */ public Wom3ValueWithUnit getCellPadding(); /** * Set the spacing between cell wall and cell content. * * Corresponds to the XHTML 1.0 Transitional attribute "cellpadding". * * @param padding * The new spacing between cell wall and content in pixels or * null to remove the attribute. * @return The old spacing between cell wall and content in pixels. */ public Wom3ValueWithUnit setCellPadding(Wom3ValueWithUnit padding); /** * Get the space between cells. * * Corresponds to the XHTML 1.0 Transitional attribute "cellspacing". * * @return The space between cells in pixels or null if the * attribute is not specified. */ public Wom3ValueWithUnit getCellSpacing(); /** * Set the space between cells. * * Corresponds to the XHTML 1.0 Transitional attribute "cellspacing". * * @param spacing * The new space between cells in pixels or null to * remove the attribute. * @return The old space between cells in pixels. */ public Wom3ValueWithUnit setCellSpacing(Wom3ValueWithUnit spacing); /** * Get the outer border parts that will be rendered. * * Corresponds to the XHTML 1.0 Transitional attribute "frame". * * @return The outer border parts that will be rendered or null * if the attribute is not specified. */ public Wom3TableFrame getFrame(); /** * Set the outer border parts to be rendered. * * Corresponds to the XHTML 1.0 Transitional attribute "frame". * * @param frame * The new outer border parts to render or null to * remove the attribute. * @return The old setting. */ public Wom3TableFrame setFrame(Wom3TableFrame frame); /** * Get the inner border parts that will be rendered. * * Corresponds to the XHTML 1.0 Transitional attribute "rules". * * @return The inner border parts that will be rendered or null * if the attribute is not specified. */ public Wom3TableRules getRules(); /** * Set the inner border parts to be rendered. * * Corresponds to the XHTML 1.0 Transitional attribute "rules". * * @param rules * The new inner border parts to render or null to * remove the attribute. * @return The old setting. */ public Wom3TableRules setRules(Wom3TableRules rules); /** * Get a textual summary of the table's content. * * Corresponds to the XHTML 1.0 Transitional attribute "summary". * * @return A summary or null if the attribute is not specified. */ public String getSummary(); /** * Set a textual summary of the table's content. * * Corresponds to the XHTML 1.0 Transitional attribute "summary". * * @param summary * The new summary or null to remove the attribute. * @return The old summary. */ public String setSummary(String summary); /** * Get the table width. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @return The table width in pixels or percent or null if the * attribute is not specified. */ public Wom3ValueWithUnit getWidth(); /** * Set the table width. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @param width * The new table width in pixels or percent or null * to remove the attribute. * @return The old setting. */ public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width); } Wom3TableBody.java000066400000000000000000000020361335270560400373230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes the body section of a table. * * Corresponds to the XHTML 1.0 Transitional element "tbody". * * See WomTablePartition for details. */ public interface Wom3TableBody extends Wom3TablePartition, Wom3UniversalAttributes { } Wom3TableCaption.java000066400000000000000000000032411335270560400400220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a table caption. * * Corresponds to the XHTML 1.0 Transitional element "caption". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3TableCaption extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the alignment of the caption. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The alignment of the caption or null if the * attribute is not specified. */ public Wom3TableCaptionAlign getAlign(); /** * Set the alignment of the caption. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new alignment of the caption or null to * remove the attribute. * @return The old alignment of the caption. */ public Wom3TableCaptionAlign setAlign(Wom3TableCaptionAlign align); } Wom3TableCaptionAlign.java000066400000000000000000000016311335270560400407760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Defines how a table caption is aligned. */ public enum Wom3TableCaptionAlign { LEFT, RIGHT, TOP, BOTTOM } Wom3TableCell.java000066400000000000000000000020121335270560400372770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a table cell. * * Corresponds to the XHTML 1.0 Transitional element "td". * * See WomTableCellBase for details. */ public interface Wom3TableCell extends Wom3TableCellBase, Wom3UniversalAttributes { } Wom3TableCellBase.java000066400000000000000000000211311335270560400400750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Interface exposing attributes common to table cells and table header cells. * * Corresponds to the XHTML 1.0 Transitional element "th" or "td". * * Child elements: [Block elements]* */ public interface Wom3TableCellBase extends Wom3ElementNode { /** * Get the zero-based index of the row in which this cell is located. * * @return The zero-based index of the row in which this cell is located. */ public int getRowIndex(); /** * Get the zero-based index of the row in which this cell is located. * * @return The zero-based index of the row in which this cell is located. */ public int getColIndex(); // ==[ The XHTML Attributes ]=============================================== /** * Get an abbreviation of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "abbr". * * @return The abbreviation or null if the attribute is not * specified. */ public String getAbbr(); /** * Set an abbreviation of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "abbr". * * @param abbr * The new abbreviation or null to remove the * attribute. * @return The old abbreviation. */ public String setAbbr(String abbr); /** * Get categories assigned to this cell. * * Corresponds to the XHTML 1.0 Transitional attribute "axis". * * @return The categories or null if the attribute is not * specified. */ public String getAxis(); /** * Assign categories to this cell. * * Corresponds to the XHTML 1.0 Transitional attribute "axis". * * @param axis * The new categories or null to remove the * attribute. * @return The old categories. */ public String setAxis(String axis); /** * Get the scope of this cell. * * Corresponds to the XHTML 1.0 Transitional attribute "scope". * * @return The scope of this cell or null if the attribute is * not specified. */ public Wom3TableCellScope getScope(); /** * Set the scope of this cell. * * Corresponds to the XHTML 1.0 Transitional attribute "scope". * * @param scope * The new scope or null to remove the attribute. * @return The old scope. */ public Wom3TableCellScope setScope(Wom3TableCellScope scope); /** * Get the horizontal alignment of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The horizontal alignment or null if the attribute is * not specified. */ public Wom3HorizAlign getAlign(); /** * Set the horizontal alignment of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new horizontal alignment or null to remove * the attribute. * @return The old horizontal alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); /** * Get the vertical alignment of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @return The vertical alignment or null if the attribute is * not specified. */ public Wom3TableVAlign getVAlign(); /** * Set the vertical alignment of the cell's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @param valign * The new vertical alignment or null to remove the * attribute. * @return The old vertical alignment. */ public Wom3TableVAlign setVAlign(Wom3TableVAlign valign); /** * Get background color of the cell. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @return The background color or null if the attribute is not * specified. */ public Wom3Color getBgColor(); /** * Set the background color of the cell. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @param color * The new background color or null to remove the * attribute. * @return The old background color. */ public Wom3Color setBgColor(Wom3Color color); /** * Get number of columns this cell spans. * * Corresponds to the XHTML 1.0 Transitional attribute "colspan". * * @return The number of columns this cell spans or null if the * attribute is not specified. */ public Integer getColspan(); /** * Set the number of columns this cell spans. * * If the cell covers other cells after the change the covered cells will be * removed. If the cell covers less cells after the change new, empty cells * will be created for the uncovered cells. * * Corresponds to the XHTML 1.0 Transitional attribute "colspan". * * @param span * The new number of columns or null to remove the * attribute. * @return The old number of columns. * @throws IllegalArgumentException * Thrown if the cell is spanning beyond the table's dimensions. */ public Integer setColspan(Integer span) throws IllegalArgumentException; /** * Get the number of rows this cell spans. * * Corresponds to the XHTML 1.0 Transitional attribute "rowspan". * * @return The number of rows this cell spans or null if the * attribute is not specified. */ public Integer getRowspan(); /** * Set the number of rows this cell spans. * * If the cell covers other cells after the change the covered cells will be * removed. If the cell covers less cells after the change new, empty cells * will be created for the uncovered cells. * * Corresponds to the XHTML 1.0 Transitional attribute "rowspan". * * @param span * The new number of rows or null to remove the * attribute. * @return The old number of rows. * @throws IllegalArgumentException * Thrown if the cell is spanning beyond the table's dimensions. */ public Integer setRowspan(Integer span) throws IllegalArgumentException; /** * Tell whether content inside a cell should not wrap. * * Corresponds to the XHTML 1.0 Transitional attribute "nowrap". * * @return True if the cell's content should not wrap, * false otherwise. */ public boolean isNowrap(); /** * Set whether the content inside a cell should not wrap. * * Corresponds to the XHTML 1.0 Transitional attribute "nowrap". * * @param nowrap * The new setting. * @return The old setting. */ public boolean setNowrap(boolean nowrap); /** * Get the width of the cell. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @return The width of the cell in pixels or percent or null * if the attribute is not specified. */ public Wom3ValueWithUnit getWidth(); /** * Set the cell's width. * * Corresponds to the XHTML 1.0 Transitional attribute "width". * * @param width * The new width of the cell or null to remove the * attribute. * @return The old width of the cell. */ public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width); /** * Get the height of the cell. * * Corresponds to the XHTML 1.0 Transitional attribute "height". * * @return The height of the cell in pixels or percent or null * if the attribute is not specified. */ public Wom3ValueWithUnit getHeight(); /** * Set the height of the cell. * * Corresponds to the XHTML 1.0 Transitional attribute "height". * * @param height * The new height of the cell or null to remove the * attribute. * @return The old height of the cell. */ public Wom3ValueWithUnit setHeight(Wom3ValueWithUnit height); } Wom3TableCellScope.java000066400000000000000000000016601335270560400403010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Defines an association between a header cell and a data cell. */ public enum Wom3TableCellScope { COL, COLGROUP, ROW, ROWGROUP } Wom3TableColumn.java000066400000000000000000000034531335270560400376670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * A table column. * * This is an auxiliary interface that has no representation in XWML but is * provides easier handling of table column. * * Child elements: - */ public interface Wom3TableColumn { /** * Get the zero-based index of this column. * * @return The zero-based index of this column. */ public int getColIndex(); /** * Get the number of cells (including rowspan calculations) in this column. * * @return The number of cells. */ public int getNumRows(); /** * Get a cell from this column. * * @param row * The row in which the cell is located. If the addressed cell * doesn't exist in itself but is part of a spanning cell then * the spanning cell will be returned instead. * @return The requested cell. * @throws IndexOutOfBoundsException * Thrown if row < 0 or * row >= getNumCols(). */ public Wom3TableCellBase getCell(int row) throws IndexOutOfBoundsException; } Wom3TableFrame.java000066400000000000000000000017251335270560400374640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Specifies which parts of the outside table border should be visible. */ public enum Wom3TableFrame { VOID, ABOVE, BELOW, HSIDES, LHS, RHS, VSIDES, BOX, BORDER } Wom3TableHeaderCell.java000066400000000000000000000020271335270560400404160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a table header cell. * * Corresponds to the XHTML 1.0 Transitional element "th". * * See WomTableCellBase for details. */ public interface Wom3TableHeaderCell extends Wom3TableCellBase, Wom3UniversalAttributes { } Wom3TablePartition.java000066400000000000000000000104641335270560400404030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The interface to access the cells, rows and columns of table head, body or * foot. * * Rows and cells are accessed via integer indices. Only valid items are * counted. If a table partition is given in HTML that contains invalid * content (e.g.: text or elements other than <tr>), these * elements are skipped in the enumeration and are not accessible through this * interface. However, they can be iterated using the methods provided by the * WomNode interface. * * Corresponds to the XHTML 1.0 Transitional element "thead", "tbody" or * "tfoot". * * Child elements: ([Preprocessor elements]|tr)* */ public interface Wom3TablePartition extends Wom3ElementNode { /** * Get the number of columns. * * @return The number of columns. */ public int getNumCols(); /** * Get the number of rows. * * @return The number of rows. */ public int getNumRows(); /** * Get the i'th row. * * @param row * The zero-based index of the row to retrieve. * @return The i'th row. * @throws IndexOutOfBoundsException * Thrown if row < 0 or * row >= getNumRows(). */ public Wom3TableRow getRow(int row) throws IndexOutOfBoundsException; /** * Get the i'th column. * * @param col * The zero-based index of the column to retrieve. * @return The i'th column. * @throws IndexOutOfBoundsException * Thrown if row < 0 or * col >= getNumCols(). */ public Wom3TableColumn getCol(int col) throws IndexOutOfBoundsException; /** * Retrieve the specified cell. * * If the specified cell does not exist but is part of a rowspan/colspan * cell, then the respective rowspan/colspan cell will be returned. * * @param row * The zero-based index of the row in which the cell is found. * @param col * The zero-based index of the column in which the cell is found. * @return The specified cell. * @throws IndexOutOfBoundsException * If the specified cell does not exist. */ public Wom3TableCellBase getCell(int row, int col) throws IndexOutOfBoundsException; // ==[ The XHTML Attributes ]=============================================== /** * Get the horizontal alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The horizontal alignment or null if the attribute is * not specified. */ public Wom3HorizAlign getAlign(); /** * Set the horizontal alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new horizontal alignment or null to remove * the attribute. * @return The old horizontal alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); /** * Get the vertical alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @return The vertical alignment or null if the attribute is * not specified. */ public Wom3TableVAlign getVAlign(); /** * Set the vertical alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @param valign * The new vertical alignment or null to remove the * attribute. * @return The old vertical alignment. */ public Wom3TableVAlign setTableVAlign(Wom3TableVAlign valign); } Wom3TableRow.java000066400000000000000000000077031335270560400372030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * A table row. * * Cells are accessed via integer indices. Only valid items are counted. * If a table row is given in HTML that contains invalid content (e.g.: text or * elements other than <th> or <td>), these * elements are skipped in the enumeration and are not accessible through this * interface. However, they can be iterated using the methods provided by the * WomNode interface. * * Corresponds to the XHTML 1.0 Transitional element "tr". * * Child elements: ([Preprocessor elements]|th|td)* */ public interface Wom3TableRow extends Wom3ElementNode, Wom3UniversalAttributes { /** * Get the zero-based index of this row. * * @return The zero-based index of this row. */ public int getRowIndex(); /** * Get the number of cells (including colspan calculations) in this row. * * @return The number of cells. */ public int getNumCols(); /** * Get a cell from this row. * * @param col * The column in which the cell is located. If the addressed cell * doesn't exist in itself but is part of a spanning cell then * the spanning cell will be returned instead. * @return The requested cell. * @throws IndexOutOfBoundsException * Thrown if col < 0 or * col >= getNumCols(). */ public Wom3TableCellBase getCell(int col) throws IndexOutOfBoundsException; // ==[ The XHTML Attributes ]=============================================== /** * Get the horizontal alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @return The horizontal alignment or null if the attribute is * not specified. */ public Wom3HorizAlign getAlign(); /** * Set the horizontal alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "align". * * @param align * The new horizontal alignment. * @return The old horizontal alignment. */ public Wom3HorizAlign setAlign(Wom3HorizAlign align); /** * Get the vertical alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @return The vertical alignment or null if the attribute is * not specified. */ public Wom3TableVAlign getVAlign(); /** * Set the vertical alignment of the row's content. * * Corresponds to the XHTML 1.0 Transitional attribute "valign". * * @param valign * The new vertical alignment. * @return The old vertical alignment. */ public Wom3TableVAlign setVAlign(Wom3TableVAlign valign); /** * Get background color of the row. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @return The background color or null if the attribute is not * specified. */ public Wom3Color getBgColor(); /** * Set the background color of the row. * * Corresponds to the XHTML 1.0 Transitional attribute "bgcolor". * * @param color * The new background color. * @return The old background color. */ public Wom3Color setBgColor(Wom3Color color); } Wom3TableRules.java000066400000000000000000000016651335270560400375270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Specifies which parts of the inside table borders should be visible. */ public enum Wom3TableRules { NONE, GROUPS, ROWS, COLS, ALL } Wom3TableVAlign.java000066400000000000000000000016541335270560400376130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Defines vertical alignment of content inside a table cell. */ public enum Wom3TableVAlign { TOP, MIDDLE, BOTTOM, BASELINE, } Wom3Teletype.java000066400000000000000000000020671335270560400372550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as teletype text. * * Corresponds to the XHTML 1.0 Transitional element "tt". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Teletype extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Text.java000066400000000000000000000015361335270560400364060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; public interface Wom3Text extends Wom3ElementNode { } Wom3Title.java000066400000000000000000000020351335270560400365360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * The title of an internal or external link. * * Corresponds to the WXML 1.0 element "title". * * Child elements: ([Inline elements] \ {extlink, intlink, image, url})* */ public interface Wom3Title extends Wom3ElementNode { } Wom3Underline.java000066400000000000000000000020711335270560400374020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes text that should be rendered as underlined text. * * Corresponds to the XHTML 1.0 Transitional element "u". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Underline extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3Unit.java000066400000000000000000000015661335270560400364040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * A HTML unit of measurement. */ public enum Wom3Unit { PIXELS, PERCENT, } Wom3UniversalAttributes.java000066400000000000000000000020131335270560400414700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Interface inherited by elements that support the XHTML 1.0 Transitional * universal attributes. */ public interface Wom3UniversalAttributes extends Wom3CoreAttributes, Wom3I18nAttributes, Wom3EventAttributes { } Wom3UnorderedList.java000066400000000000000000000031551335270560400402440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes an unordered list. * * Corresponds to the XHTML 1.0 Transitional element "ul". * * See WomList for details. */ public interface Wom3UnorderedList extends Wom3List { /** * Get the type of bullet point the list items use. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @return The type of bullet point or null if the attribute is * not specified. */ public Wom3BulletStyle getItemType(); /** * Set the type of bullet point the list items should use. * * Corresponds to the XHTML 1.0 Transitional attribute "type". * * @param type * The new type of bullet point or null to remove * the attribute. * @return The old type of bullet point. */ public Wom3BulletStyle setItemType(Wom3BulletStyle type); } Wom3ValueWithUnit.java000066400000000000000000000024321335270560400402260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import java.io.Serializable; /** * An HTML value associated with its unit of measurement. */ public interface Wom3ValueWithUnit extends Cloneable, Serializable { /** * Get the unit of measurement of this value. * * @return The unit. */ public Wom3Unit getUnit(); /** * Get the actual value. * * @return The value. */ public float getValue(); /** * Get the actual value rounded to an integer. * * @return The value as integer. */ public int getIntValue(); } Wom3Var.java000066400000000000000000000020301335270560400362000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; /** * Denotes a text as variable. * * Corresponds to the XHTML 1.0 Transitional element "var". * * Child elements: Mixed, [Inline elements]* */ public interface Wom3Var extends Wom3ElementNode, Wom3UniversalAttributes { } Wom3XmlComment.java000066400000000000000000000016061335270560400375430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.Comment; public interface Wom3XmlComment extends Wom3Node, Comment { } Wom3XmlText.java000066400000000000000000000015751335270560400370720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3; import org.w3c.dom.Text; public interface Wom3XmlText extends Wom3Node, Text { } impl/000077500000000000000000000000001335270560400350055ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3AbbrImpl.java000066400000000000000000000023621335270560400373430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Abbr; public class AbbrImpl extends BackboneWomElemWithUnivAttrs implements Wom3Abbr { private static final long serialVersionUID = 1L; // ========================================================================= public AbbrImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "abbr"; } } ArticleImpl.java000066400000000000000000000242771335270560400400710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.io.Serializable; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.ListIterator; import java.util.Map; import org.sweble.wom3.Wom3Article; import org.sweble.wom3.Wom3Body; import org.sweble.wom3.Wom3Category; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Redirect; public class ArticleImpl extends BackboneContainer implements Wom3Article { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("redirect"), childDesc("category", ChildDescriptor.MULTIPLE), childDesc("body", ChildDescriptor.REQUIRED) }; private RedirectImpl redirect = null; private SiblingRangeCollection categories; private BodyImpl body; // ========================================================================= public ArticleImpl(DocumentImpl owner) { super(owner); setAttributeDirectNoChecks("version", Wom3Node.VERSION); categories = new SiblingRangeCollection( this, new SiblingCollectionsBoundIml()); } private final class SiblingCollectionsBoundIml implements SiblingCollectionBounds, Serializable { private static final long serialVersionUID = 1L; @Override public Backbone getPred() { return redirect; } @Override public Backbone getSucc() { return body; } } // ========================================================================= @Override public String getWomName() { return "article"; } // ========================================================================= @Override public String getName() { String namespace = getNamespace(); String path = getPath(); String title = getTitle(); String name = ""; if (namespace != null) { name += namespace; name += ':'; } if (path != null) { name += path; name += '/'; } name += title; return name; } @Override public String getVersion() { return Wom3Node.VERSION; } @Override public String getTitle() { return getStringAttr("title"); } @Override public String setTitle(String title) throws IllegalArgumentException, NullPointerException { return setAttributeDirect(ATTR_DESC_TITLE, "title", title); } @Override public String getNamespace() { return getStringAttr("namespace"); } @Override public String setNamespace(String namespace) { return setAttributeDirect(ATTR_DESC_NAMESPACE, "namespace", namespace); } @Override public String getPath() { return getStringAttr("path"); } @Override public String setPath(String path) { return setAttributeDirect(ATTR_DESC_PATH, "path", path); } // ========================================================================= @Override public boolean isRedirect() { return redirect != null; } @Override public Wom3Redirect getRedirect() { return redirect; } @Override public Wom3Redirect setRedirect(Wom3Redirect redirect) { return (Wom3Redirect) replaceOrInsertBeforeOrAppend( this.redirect, getFirstChild(), redirect, false); } // ---------------------------------------- @Override public Collection getCategories() { @SuppressWarnings({ "unchecked", "rawtypes" }) Collection uc = (Collection) Collections.unmodifiableCollection(categories); return uc; } @Override public boolean hasCategory(String name) throws NullPointerException { ListIterator i = categories.listIterator(); while (i.hasNext()) { CategoryImpl cat = i.next(); if (cat.getName().equals(name)) return true; } return false; } @Override public Wom3Category removeCategory(String name) throws NullPointerException { assertWritableOnDocument(); if (name == null) throw new NullPointerException(); ListIterator i = categories.listIterator(); while (i.hasNext()) { CategoryImpl cat = i.next(); if (cat.getName().equals(name)) { i.remove(); return cat; } } return null; } @Override public Wom3Category addCategory(String name) throws NullPointerException { assertWritableOnDocument(); ListIterator i = categories.listIterator(); while (i.hasNext()) { CategoryImpl cat = i.next(); if (cat.getName().equals(name)) return cat; } CategoryImpl cat = (CategoryImpl) getOwnerDocument().createElementNS(Wom3Node.WOM_NS_URI, "category"); cat.setName(name); i.add(cat); return cat; } // ---------------------------------------- @Override public Wom3Body getBody() { return body; } @Override public Wom3Body setBody(Wom3Body body) throws NullPointerException { return (Wom3Body) replaceOrAppend(this.body, body, true); } // ========================================================================= @Override public Wom3Node cloneNode(boolean deep) { ArticleImpl newNode = (ArticleImpl) super.cloneNode(deep); newNode.categories = new SiblingRangeCollection( this, new SiblingCollectionsBoundIml()); return newNode; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override protected void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3Redirect) redirect = (RedirectImpl) added; else if (added instanceof Wom3Body) body = (BodyImpl) added; } @Override protected void childRemoved(Backbone prev, Backbone removed) { if (removed == redirect) redirect = null; } // ========================================================================= protected void validateCategoryNameChange( CategoryImpl catImpl, String newName) { ListIterator i = categories.listIterator(); while (i.hasNext()) { CategoryImpl cat = i.next(); if (cat.getName().equals(newName)) { if (cat == catImpl) return; throw new IllegalStateException( "Renaming the attribute leads to name collision in parent node!"); } } } // ========================================================================= protected static final AttrDescVersion ATTR_DESC_VERSION = new AttrDescVersion(); protected static final AttrDescTitle ATTR_DESC_TITLE = new AttrDescTitle(); protected static final AttrDescNamespace ATTR_DESC_NAMESPACE = new AttrDescNamespace(); protected static final AttrDescPath ATTR_DESC_PATH = new AttrDescPath(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.put("version", ATTR_DESC_VERSION); NAME_MAP.put("namespace", ATTR_DESC_NAMESPACE); NAME_MAP.put("path", ATTR_DESC_PATH); NAME_MAP.put("title", ATTR_DESC_TITLE); } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescVersion extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); if (!Wom3Node.VERSION.equals(verified.strValue)) throw new UnsupportedOperationException( "Cannot alter read-only attribute `version'"); return true; } } public static final class AttrDescTitle extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); Toolbox.checkValidTitle(verified.strValue); return true; } } public static final class AttrDescNamespace extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); verified.value = verified.strValue = Toolbox.checkValidNamespace(verified.strValue); return (verified.strValue != null); } } public static final class AttrDescPath extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); verified.value = verified.strValue = Toolbox.checkValidPath(verified.strValue); return (verified.strValue != null); } } } ArticlesImpl.java000066400000000000000000000027161335270560400402460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Articles; public class ArticlesImpl extends BackboneContainer implements Wom3Articles { private static final long serialVersionUID = 1L; // ========================================================================= public ArticlesImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "articles"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } AttributeBase.java000066400000000000000000000151771335270560400404210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Attribute; import org.w3c.dom.DOMException; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.TypeInfo; /** * DOM v1 Attribute Implementation (no namespace awareness) */ public abstract class AttributeBase extends Backbone implements Wom3Attribute { private static final long serialVersionUID = 1L; /** * The fully qualified name of the attribute, if this is a namespace aware * DOM Level 2 attributes node. */ private String name; // ========================================================================= /** * For AttributeNsImpl only! */ protected AttributeBase(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public final short getNodeType() { return Node.ATTRIBUTE_NODE; } @Override public final Backbone getParentNode() { return null; } @Override public final Element getOwnerElement() { return (Element) getParentNodeIntern(); } // ========================================================================= @Override public boolean getSpecified() { // TODO: Implement return true; } @Override public TypeInfo getSchemaTypeInfo() { // TODO: Implement throw new UnsupportedOperationException(); } @Override public boolean isId() { // TODO: Implement return false; } // ========================================================================= @Override public String getName() { return name; } @Override public final String getNodeName() { return getName(); } @Override public String setName(String name) throws IllegalArgumentException, NullPointerException { // DOM Level 1 implementation if (this.name != null && this.name.equals(name)) return this.name; Toolbox.checkValidXmlName(name); return setNameIntern(name); } // ========================================================================= @Override public abstract String getValue(); @Override public final String getNodeValue() throws DOMException { return getValue(); } protected abstract Object getNativeValue(); // ========================================================================= @Override public void setValue(String value) { if (value == null) throw new NullPointerException(); validateValueChangeWithParentAndSet(value); } @Override public final void setNodeValue(String nodeValue) throws DOMException { setValue(nodeValue); } @Override public void setTextContent(String textContent) throws DOMException { // TODO: Actually an attr can hold children and the node value is // composed of those children! setValue(textContent); } @Override public String getTextContent() throws DOMException { // TODO: Actually an attr can hold children and the node value is // composed of those children! return getValue(); } // ========================================================================= private String setNameIntern(String name) { String old = getName(); if ((this.name != null) && this.name.equals(name)) return old; validateNameChangeWithParent(name); return old; } // ========================================================================= private void validateNameChangeWithParent(String name) { BackboneElement parent = (BackboneElement) getOwnerElement(); if (parent == null) { doSetName(name); } else { if (parent.hasAttribute(name)) throw new IllegalArgumentException("Attribute with this name " + "already exists for the corresponding element!"); AttributeDescriptor oldDescriptor = parent.getAttributeDescriptorOrFail( null, null, getName()); AttributeDescriptor newDescriptor = parent.getAttributeDescriptorOrFail( null, null, name); validateNameChangeWithParent(name, parent, oldDescriptor, newDescriptor); } } protected void validateNameChangeWithParent( String name, BackboneElement parent, AttributeDescriptor oldDescriptor, AttributeDescriptor newDescriptor) { // Assert writable before performing a custom action. assertWritableOnDocument(); if (oldDescriptor != newDescriptor) { if (getOwnerDocument().getStrictErrorChecking()) { if (!oldDescriptor.isRemovable()) throw new UnsupportedOperationException( "Attribute `" + name + "' cannot be removed"); } if (oldDescriptor.hasCustomAction()) oldDescriptor.customAction(parent, this, null); doSetName(name); if (newDescriptor.hasCustomAction()) newDescriptor.customAction(parent, null, this); } else { doSetName(name); if (newDescriptor.hasCustomAction()) newDescriptor.customAction(parent, this, this); } } protected void doSetName(String name) { this.name = name; } // ========================================================================= /** * Is expected to check {@link #assertWritableOnDocument()} */ protected abstract void setValue( Object value, String strValue, boolean cloning); private void validateValueChangeWithParentAndSet(String value) { BackboneElement parent = (BackboneElement) getOwnerElement(); if (parent == null) { setValue(value, value, false /* cloning */); } else { String namespaceUri = getNamespaceURI(); String localName = getLocalName(); AttributeDescriptor descriptor = parent.getAttributeDescriptorOrFail( namespaceUri, localName, name); NativeAndStringValuePair verified = new NativeAndStringValuePair(value); if ((value != null) && descriptor.verifyAndConvert(parent, verified)) { assertWritable(this, descriptor); setValue(verified.value, verified.strValue, false /* cloning */); if (descriptor.hasCustomAction()) descriptor.customAction(parent, this, this); } else { throw new UnsupportedOperationException( "Attribute `" + namespaceUri + "' / `" + name + "' cannot remove itself!"); } } } } AttributeCustomAction.java000066400000000000000000000017221335270560400421460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Node; public interface AttributeCustomAction { void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr); } AttributeDescriptor.java000066400000000000000000000130751335270560400416600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Node; public abstract class AttributeDescriptor implements AttributeVerificationAndConverion, AttributeCustomAction { public static final int REMOVABLE = 0x01; public static final int READ_ONLY = 0x02; public static final int NORMALIZATION_MASK = 0x04 | 0x08; public static final int NORMALIZATION_NONE = 0x00; public static final int NORMALIZATION_NON_CDATA = 0x04; public static final int NORMALIZATION_CDATA = 0x08; public static final int CUSTOM_ACTION = 0x10; // ========================================================================= /** * The default implementation only works for attributes whose native value * is of type string. * * @param parent * The node that owns or will own the attribute. * @param verified * Stores the values to convert. The converted and verified * values will be written into this object as well. * @return {@code true} when the attribute should be kept, {@code false} if * the attributes should be removed. */ @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = verified.strValue; else verified.strValue = String.valueOf(verified.value); return true; } /** * Called after the attribute was (re-)set to perform custom alterations on * WOM. Also called when an attribute is renamed. In this case it is called * on the old descriptor with the {@code newAttr} parameter set to * {@code null}. Then it is called on the new descriptor with the * {@code oldAttr} set to {@code null}. If the old and new descriptor are * the same (== equality) then it is only called once on the new descriptor * with both {@code oldAttr} and {@code newAttr} set. * * @param parent * The parent node for which to verify the attribute. * @param oldAttr * The old attribute node. * @param newAttr * The new attribute node or null if the old * attribute was removed. */ @Override public void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr) { } /** * @return A set of flags that describe this attributes behavior. */ public abstract int getFlags(); // ========================================================================= /** * Ask whether this attribute can be removed from its parent node. */ public boolean isRemovable() { return (getFlags() & REMOVABLE) != 0; } /** * Ask whether this attribute cannot be changed. */ public boolean isReadOnly() { return (getFlags() & READ_ONLY) != 0; } /** * Return the normalization mode for the attribute. */ public Normalization getNormalizationMode() { return translateNormalization(getFlags() & NORMALIZATION_MASK); } /** * Whether the descriptor implements the {@link customAction} method. */ public boolean hasCustomAction() { return (getFlags() & CUSTOM_ACTION) != 0; } // ========================================================================= public static int makeFlags( boolean removable, boolean readOnly, boolean customAction, Normalization normalization) { return (removable ? REMOVABLE : 0) | (readOnly ? READ_ONLY : 0) | translateNormalization(normalization) | (customAction ? CUSTOM_ACTION : 0); } // ========================================================================= public static int translateNormalization(Normalization normalization) { switch (normalization) { case CDATA: return NORMALIZATION_CDATA; case NON_CDATA: return NORMALIZATION_NON_CDATA; case NONE: return NORMALIZATION_NONE; default: throw new AssertionError(); } } public static Normalization translateNormalization(int flag) throws AssertionError { switch (flag) { case NORMALIZATION_CDATA: return Normalization.NON_CDATA; case NORMALIZATION_NON_CDATA: return Normalization.NON_CDATA; case NORMALIZATION_NONE: return Normalization.NONE; default: throw new AssertionError(); } } // ========================================================================= public enum Normalization { /** * Only convert the attribute value's WtNodeList into a string. Don't * post-process the resulting string. */ NONE, /** * Normalize the attribute's value after conversion according to these * rules: http://www.w3.org/TR/REC-xml/#AVNormalize. */ CDATA, /** * Normalize the attribute's value after conversion according to these * rules: http://www.w3.org/TR/REC-xml/#AVNormalize. * * Unlike the CDATA normalization, NON_CDATA normalization also * collapses sequences of spaces into a single space and removes leading * and trailing spaces. */ NON_CDATA } } AttributeImpl.java000066400000000000000000000050151335270560400404360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; /** * DOM v1 Attribute Implementation (no namespace awareness) */ public class AttributeImpl extends AttributeBase { private static final long serialVersionUID = 1L; /** * This value must always be normalized. */ private String strValue; private Object value; // ========================================================================= /** * For AttributeNsImpl only! */ AttributeImpl(DocumentImpl owner) { super(owner); } protected AttributeImpl(DocumentImpl owner, String name) { super(owner); setName(name); } // ========================================================================= @Override public String getValue() { return strValue; } protected void setValue(Object value, String strValue, boolean cloning) { if (!cloning) assertWritableOnDocument(); this.value = (value != null) ? value : strValue; this.strValue = (strValue != null) ? strValue : (String) value; } protected Object getNativeValue() { return value; } // ========================================================================= @Override protected Object clone() throws CloneNotSupportedException { AttributeImpl newNode = (AttributeImpl) super.clone(); // We MUST NOT clone the native value. It might be a mutable object! // Well, to be honest, we cannot even clone it if we wanted... if (value != null) { BackboneElement parent = (BackboneElement) getOwnerElement(); AttributeDescriptor descriptor = parent.getAttributeDescriptorOrFail( getNamespaceURI(), getLocalName(), getName()); NativeAndStringValuePair verified = new NativeAndStringValuePair(strValue); descriptor.verifyAndConvert(parent, verified); newNode.value = verified.value; } return newNode; } } AttributeMap.java000066400000000000000000000053131335270560400402530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3NamedNodeMap; import org.sweble.wom3.Wom3Node; import org.w3c.dom.DOMException; import org.w3c.dom.Node; public class AttributeMap extends NodeListImpl implements Wom3NamedNodeMap { private BackboneElement element; // ========================================================================= public AttributeMap(BackboneElement element) { super(element); this.element = element; } // ========================================================================= @Override public Wom3Node getNamedItem(String name) { for (Backbone n = element.getFirstAttr(); n != null; n = n.getNextSibling()) { if (n.getNodeName().equals(name)) return n; } return null; } @Override public Wom3Node getNamedItemNS(String namespaceURI, String localName) throws DOMException { if (namespaceURI.equals(Wom3Node.WOM_NS_URI)) return getNamedItem(localName); return null; } @Override public int getLength() { int len = 0; for (Wom3Node n = element.getFirstAttr(); n != null; n = n.getNextSibling()) ++len; return len; } @Override public Wom3Node item(int index) { int cnt = 0; Wom3Node n = element.getFirstAttr(); while (n != null && cnt++ < index) n = n.getNextSibling(); return n; } @Override public Wom3Node setNamedItem(Node arg) throws DOMException { // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @Override public Wom3Node setNamedItemNS(Node arg) throws DOMException { // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @Override public Wom3Node removeNamedItem(String name) throws DOMException { // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @Override public Wom3Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException { // TODO Auto-generated method stub throw new UnsupportedOperationException(); } } AttributeNsImpl.java000066400000000000000000000153631335270560400407460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.w3c.dom.DOMException; public class AttributeNsImpl extends AttributeImpl { private static final long serialVersionUID = 1L; private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/"; private static final String XML_URI = "http://www.w3.org/XML/1998/namespace"; private String namespaceUri; private String localName; private String prefix; // ========================================================================= public AttributeNsImpl( DocumentImpl owner, String namespaceUri, String qualifiedName) { super(owner); setNamespaceUri(namespaceUri); setPrefixAndLocalName(qualifiedName); } // ========================================================================= @Override public String getNamespaceURI() { return namespaceUri; } @Override public String getLocalName() { return localName; } @Override public String getPrefix() { return prefix; } @Override public void setPrefix(String prefix) throws DOMException { if (prefix != null && !prefix.isEmpty()) { setName(prefix + ":" + localName); } else { setName(localName); } } /** * WOM / Non DOM */ @Override public String setName(String qualifiedName) throws IllegalArgumentException, NullPointerException { return setPrefixAndLocalName(qualifiedName); } // ========================================================================= private void setNamespaceUri(String namespaceUri) { // DOM Level 3 Core // 1.3.3 XML Namespaces // In programming languages where empty strings can be differentiated // from null, empty strings, when given as a namespace URI, are // converted to null. This is true even though the DOM does no lexical // checking of URIs. this.namespaceUri = namespaceUri; if (this.namespaceUri != null && this.namespaceUri.isEmpty()) this.namespaceUri = null; } private String setPrefixAndLocalName(String qualifiedName) { String prefix = null; String localName = null; int colon = qualifiedName.indexOf(':'); if (colon < 0) { // No prefix prefix = null; localName = qualifiedName; checkNamespaceUriAndName(namespaceUri, qualifiedName); } else { // We have a prefix if ((colon == 0) || (colon == qualifiedName.length() - 1) || (qualifiedName.indexOf(':', colon + 1) >= 0)) throw new DOMException( DOMException.NAMESPACE_ERR, "Invalid qualified attribute name: " + qualifiedName); // We have a valid prefix prefix = qualifiedName.substring(0, colon); localName = qualifiedName.substring(colon + 1); checkNamespaceUriAndPrefix(prefix, namespaceUri); // FIXME: Must check according to XML version we have to support Toolbox.checkValidXmlName(prefix); } // FIXME: Must check according to XML version we have to support Toolbox.checkValidXmlName(localName); String old = this.getName(); // Will do nothing if localName is unchanged. // This method does not mess with namespaceUri and a prefix change does not change the nature of an attribute. setNameIntern(namespaceUri, localName, qualifiedName); // Only set values after checks ran this.prefix = prefix; this.localName = localName; return old; } protected String setNameIntern( String namespaceUri, String localName, String name) { String old = getName(); if ((this.localName != null) && this.localName.equals(localName)) return old; validateNameChangeWithParent(namespaceUri, localName, name); return old; } private void validateNameChangeWithParent( String namespaceUri, String localName, String name) { BackboneElement parent = (BackboneElement) getOwnerElement(); if (parent == null) { doSetName(name); } else { boolean exists = (localName != null) ? (parent.getAttributeNodeNS(namespaceUri, localName) != null) : (parent.getAttributeNode(name) != null); if (exists) throw new IllegalArgumentException("Attribute with this name " + "already exists for the corresponding element!"); AttributeDescriptor oldDescriptor = parent.getAttributeDescriptorOrFail( getNamespaceURI(), getLocalName(), getName()); AttributeDescriptor newDescriptor = parent.getAttributeDescriptorOrFail( namespaceUri, localName, name); validateNameChangeWithParent(name, parent, oldDescriptor, newDescriptor); } } private static void checkNamespaceUriAndName( String namespaceUri, String qualifiedName) { assert qualifiedName != null; if (qualifiedName.equals("xmlns") && !XMLNS_URI.equals(namespaceUri)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with name 'xmlns' must have its its namespace URI set to '" + XMLNS_URI + "'"); if (XMLNS_URI.equals(namespaceUri) && !qualifiedName.equals("xmlns")) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with namespace URI '" + XMLNS_URI + "' must be called 'xmlns' or must have a prefix called 'xmlns'"); } private static void checkNamespaceUriAndPrefix( String prefix, String namespaceUri) { assert prefix != null && namespaceUri != null; if (namespaceUri == null) throw new DOMException( DOMException.NAMESPACE_ERR, "A qualified (prefixed) attribute name requires a non-null namespace URI"); if (prefix.equals("xml") && !namespaceUri.equals(XML_URI)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with prefix 'xml' must have its namespace URI set to '" + XML_URI + "'"); if (prefix.equals("xmlns") && !namespaceUri.equals(XMLNS_URI)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with prefix 'xmlns' must have its its namespace URI set to '" + XMLNS_URI + "'"); if (namespaceUri.equals(XMLNS_URI) && !prefix.equals("xmlns")) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with namespace URI '" + XMLNS_URI + "' must be called 'xmlns' or must have a prefix called 'xmlns'"); // TODO: Is it allowed to redefine the xmlns or xml prefixes? } } AttributeVerificationAndConverion.java000066400000000000000000000016651335270560400444740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public interface AttributeVerificationAndConverion { boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified); } AttributeVerifiers.java000066400000000000000000000251111335270560400414720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.joda.time.DateTime; import org.sweble.wom3.Wom3BulletStyle; import org.sweble.wom3.Wom3Clear; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3I18nDir; import org.sweble.wom3.Wom3TableCaptionAlign; import org.sweble.wom3.Wom3TableCellScope; import org.sweble.wom3.Wom3TableFrame; import org.sweble.wom3.Wom3TableRules; import org.sweble.wom3.Wom3TableVAlign; import org.sweble.wom3.Wom3ValueWithUnit; public enum AttributeVerifiers implements AttributeVerificationAndConverion { ID { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { // TODO Auto-generated method stub return true; } }, NMTOKENS { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { // TODO Auto-generated method stub return true; } }, STYLESHEET { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return true; } }, DIR { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToDir(verified.strValue); else verified.strValue = Toolbox.dirToString((Wom3I18nDir) verified.value); return true; } }, LANGUAGE_CODE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { // TODO Auto-generated method stub return true; } }, SCRIPT { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return true; } }, CLEAR { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToClear(verified.strValue); else verified.strValue = Toolbox.clearToString((Wom3Clear) verified.value); return true; } }, URL { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToUrl(verified.strValue); else verified.strValue = Toolbox.urlToString((java.net.URL) verified.value); if (verified.strValue.isEmpty()) throw new IllegalArgumentException("Expected non-empty URL"); return true; } }, DATETIME { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToDateTime(verified.strValue); else verified.strValue = Toolbox.dateTimeToString((DateTime) verified.value); return true; } }, LCR_ALIGN { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToHorizAlign(verified.strValue); else verified.strValue = Toolbox.horizAlignToString((Wom3HorizAlign) verified.value); switch ((Wom3HorizAlign) verified.value) { case CHAR: throw new IllegalArgumentException("`char' not allowed as alignment!"); case JUSTIFY: throw new IllegalArgumentException("`justify' not allowed as alignment!"); default: // Allowed values } return true; } }, LCRJ_ALIGN { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToHorizAlign(verified.strValue); else verified.strValue = Toolbox.horizAlignToString((Wom3HorizAlign) verified.value); if (((Wom3HorizAlign) verified.value) == Wom3HorizAlign.CHAR) throw new IllegalArgumentException("`char' not allowed as alignment!"); return true; } }, PIXELS { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Integer.parseInt(verified.strValue.trim()); else verified.strValue = String.valueOf((Integer) verified.value); if (((Integer) verified.value) < 0) throw new IllegalArgumentException("Expected non-negative integer!"); return true; } }, COLOR { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = ColorImpl.valueOf(verified.strValue); else verified.strValue = verified.value.toString(); return true; } }, FONTSIZE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = verifyRange(verified.strValue, 1, 7); else verified.strValue = String.valueOf(verifyRange((Integer) verified.value, 1, 7)); return true; } }, NUMBER { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Integer.parseInt(verified.strValue.trim()); else verified.strValue = String.valueOf((Integer) verified.value); if (((Integer) verified.value) < 0) throw new IllegalArgumentException("Expected non-negative integer!"); return true; } }, LENGTH { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToLength(verified.strValue); else verified.strValue = Toolbox.lengthToString((Wom3ValueWithUnit) verified.value); return true; } }, OLTYPE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return true; } }, ULTYPE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToBulletStyle(verified.strValue); else verified.strValue = Toolbox.bulletStyleToString((Wom3BulletStyle) verified.value); return true; } }, ITEMTYPE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return true; } }, LCRJC_ALIGN { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { // We omit the "char" option since it's not supported anyway // by todays browsers return LCRJ_ALIGN.verifyAndConvert(parent, verified); } }, TMBB_VALIGN { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToTableVAlign(verified.strValue); else verified.strValue = Toolbox.tableVAlignToString((Wom3TableVAlign) verified.value); return true; } }, TBLR_ALIGN { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToCaptionAlign(verified.strValue); else verified.strValue = Toolbox.captionAlignToString((Wom3TableCaptionAlign) verified.value); return true; } }, SCOPE { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToTableScope(verified.strValue); else verified.strValue = Toolbox.tableScopeToString((Wom3TableCellScope) verified.value); return true; } }, FRAME { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToTableFrame(verified.strValue); else verified.strValue = Toolbox.tableFrameToString((Wom3TableFrame) verified.value); return true; } }, RULES { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToTableRules(verified.strValue); else verified.strValue = Toolbox.tableRulesToString((Wom3TableRules) verified.value); return true; } }, XML_NAME { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { Toolbox.checkValidXmlName( (verified.strValue == null) ? (String) verified.value : verified.strValue); return true; } }; // ========================================================================= public static boolean verifyAndConvertBool( Backbone parent, NativeAndStringValuePair verified, String attrName) { if (verified.strValue != null) { verified.value = true; verified.strValue = attrName; } else verified.strValue = attrName; return (Boolean) verified.value; } // ========================================================================= /** * Throw if the given value exceeds its domain. * * @param valueStr * The value to check. * @param lower * The lower bound (inclusive). * @param upper * The upper bound (inclusive). */ public static int verifyRange(String valueStr, int lower, int upper) { Integer x = Integer.parseInt(valueStr.trim()); verifyRange(x, lower, upper); return x; } /** * Throw if the given value exceeds its domain. * * @param value * The value to check. * @param lower * The lower bound (inclusive). * @param upper * The upper bound (inclusive). */ public static int verifyRange(int value, int lower, int upper) { if (value < lower || value > upper) throw new IllegalArgumentException(String.format( "Attribute value out of bounds: %d <= (%d) <= %d.", lower, value, upper)); return value; } } Backbone.java000066400000000000000000000433641335270560400373660ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.Collection; import java.util.Iterator; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Node; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.UserDataHandler; import de.fau.cs.osr.utils.StringTools; public abstract class Backbone implements Wom3Node { private static final long serialVersionUID = 1L; protected transient int childrenChanges = 0; private DocumentImpl owner; private Backbone parent; private Backbone prevSibling; private Backbone nextSibling; private BackboneUserData userData; // ========================================================================= public Backbone(DocumentImpl owner) { this.owner = owner; } // ========================================================================= // // DOM Level 3 Node Interface Attributes // // ========================================================================= @Override public abstract String getNodeName(); @Override public String getNodeValue() throws DOMException { return null; } @Override public void setNodeValue(String nodeValue) throws DOMException { // Doing nothing is the sensible default // Unless we are in read-only mode... assertWritableOnDocument(); } @Override public abstract short getNodeType(); @Override public Wom3Document getOwnerDocument() { return owner; } /** * The {@code parent} attribute of a {@link Backbone} instance is always * properly set (can be {@code null}) but not all node types (especially * {@link AttributeBase}) return it when getParentNode() is called and * always return {@code null} instead. The {@code parent} attribute can only * be altered by the {@code Backbone} class. */ @Override public abstract Backbone getParentNode(); @Override public Backbone getFirstChild() { return null; } @Override public Backbone getLastChild() { return null; } @Override public Backbone getPreviousSibling() { return prevSibling; } @Override public Backbone getNextSibling() { return nextSibling; } @Override public NodeList getChildNodes() { return new NodeListImpl(this); } @Override public NamedNodeMap getAttributes() { return null; } @Override public String getNamespaceURI() { return null; } @Override public String getPrefix() { // DOM Level 1 implementation return null; } @Override public void setPrefix(String prefix) throws DOMException { // DOM Level 1 implementation // Do nothing since it's defined to be null for all types of nodes. // Unless we are in read-only mode... assertWritableOnDocument(); } @Override public String getLocalName() { // DOM Level 1 implementation return null; } @Override public final String getBaseURI() { // We don't support this attribute. return null; } @Override public String getTextContent() throws DOMException { if (!hasChildNodes()) return ""; if (getFirstChild() == getLastChild()) return getFirstChild().getTextContent(); StringBuilder b = new StringBuilder(); getTextContentRecursive(b); return b.toString(); } // ========================================================================= // // DOM Level 3 Node Interface Operations // // ========================================================================= @Override public boolean hasAttributes() { return getFirstAttr() != null; } @Override public boolean hasChildNodes() { return getFirstChild() != null; } @Override public Wom3Node insertBefore(Node child_, Node before_) throws DOMException { return doesNotSupportChildNodes(); } @Override public Wom3Node replaceChild(Node newChild_, Node oldChild_) throws DOMException { return doesNotSupportChildNodes(); } @Override public Wom3Node removeChild(Node child_) throws DOMException { return doesNotSupportChildNodes(); } @Override public Wom3Node appendChild(Node child_) throws DOMException { return doesNotSupportChildNodes(); } @Override public void normalize() { // TODO: Implement throw new UnsupportedOperationException(); //assertWritable(); } @Override public String lookupPrefix(String namespaceURI) { // TODO: Implement throw new UnsupportedOperationException(); } @Override public String lookupNamespaceURI(String prefix) { // TODO: Implement throw new UnsupportedOperationException(); } @Override public boolean isDefaultNamespace(String namespaceURI) { // FIXME: This does not look like the correct implementation for this method?! return (namespaceURI != null && namespaceURI.equals(WOM_NS_URI)); } @Override public boolean isSameNode(Node other) { return other == this; } @Override public boolean isEqualNode(Node arg) { // TODO: Implement throw new UnsupportedOperationException(); } @Override public short compareDocumentPosition(Node otherNode) throws DOMException { Node thisNode = this; if (thisNode.isSameNode(otherNode)) return 0; if (!(otherNode instanceof Backbone)) throw new DOMException( DOMException.NOT_SUPPORTED_ERR, "Cannot compare nodes from different implementations"); Document thisOwner = getOwnerDocument(); if (thisOwner == null) { assert thisNode.getNodeType() == Node.DOCUMENT_NODE; thisOwner = (Document) thisNode; } Document otherOwner = otherNode.getOwnerDocument(); if (otherOwner == null) { assert otherNode.getNodeType() == Node.DOCUMENT_NODE; otherOwner = (Document) otherNode; } if (thisOwner == null || !thisOwner.isSameNode(otherOwner)) throw new DOMException( DOMException.NOT_SUPPORTED_ERR, "Cannot compare nodes from different documents"); int thisDepth = 1; Node thisAncestor = thisNode; { for (Node n = thisNode.getParentNode(); n != null; n = n.getParentNode()) { if (n.isSameNode(otherNode)) return DOCUMENT_POSITION_CONTAINS | DOCUMENT_POSITION_PRECEDING; thisAncestor = n; ++thisDepth; } } int otherDepth = 1; Node otherAncestor = otherNode; { for (Node n = otherNode.getParentNode(); n != null; n = n.getParentNode()) { if (n.isSameNode(thisNode)) return DOCUMENT_POSITION_CONTAINED_BY | DOCUMENT_POSITION_FOLLOWING; otherAncestor = n; ++otherDepth; } } if (thisAncestor.getNodeType() == Node.ATTRIBUTE_NODE) { Wom3Attribute thisAncestorAttr = (Wom3Attribute) thisAncestor; if (otherAncestor.getNodeType() == Node.ATTRIBUTE_NODE) { Wom3Attribute otherAncestorAttr = (Wom3Attribute) otherAncestor; Element thisOwnerE = thisAncestorAttr.getOwnerElement(); Element otherOwnerE = otherAncestorAttr.getOwnerElement(); if (thisOwnerE == null || otherOwnerE == null) { return DOCUMENT_POSITION_DISCONNECTED; } else if (thisOwnerE.isSameNode(otherOwnerE)) { return (short) (((Backbone) otherAncestorAttr).precedes(thisAncestorAttr) ? (DOCUMENT_POSITION_PRECEDING | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) : (DOCUMENT_POSITION_FOLLOWING | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)); } else ; // Fall through } // otherNode is not an attribute or both are attributes but // of different owner nodes. In both cases we compare the owner // nodes instead of the attributes // This time we start at 0 and not with the parent node to catch the // case in which "otherNode" is the element that owns the attribute // "thisNode". thisDepth = 0; thisNode = thisAncestorAttr.getOwnerElement(); { for (Node n = thisNode; n != null; n = n.getParentNode()) { if (n.isSameNode(otherNode)) return DOCUMENT_POSITION_CONTAINS | DOCUMENT_POSITION_PRECEDING; thisAncestor = n; ++thisDepth; } } } if (otherAncestor.getNodeType() == Node.ATTRIBUTE_NODE) { Wom3Attribute otherAncestorAttr = (Wom3Attribute) otherAncestor; // If we get here either thisNode is not an attribute or both are // attributes but of different owner nodes. In both cases we compare // the owner nodes instead of the attributes // This time we start at 0 and not with the parent node to catch the // case in which "otherNode" is the element that owns the attribute // "thisNode". otherDepth = 0; otherNode = otherAncestorAttr.getOwnerElement(); { for (Node n = otherNode; n != null; n = n.getParentNode()) { if (n.isSameNode(thisNode)) return DOCUMENT_POSITION_CONTAINED_BY | DOCUMENT_POSITION_FOLLOWING; otherAncestor = n; ++otherDepth; } } } if (thisAncestor != otherAncestor || thisAncestor != thisOwner) throw new RuntimeException("This should not happen..."); if (thisDepth > otherDepth) { for (int i = 0; i < thisDepth - otherDepth; i++) { thisNode = thisNode.getParentNode(); if (thisNode.isSameNode(otherNode)) return DOCUMENT_POSITION_PRECEDING; } } else { for (int i = 0; i < otherDepth - thisDepth; i++) { otherNode = otherNode.getParentNode(); if (otherNode.isSameNode(thisNode)) return DOCUMENT_POSITION_FOLLOWING; } } // Find common ancestor Node thisNode2 = thisNode.getParentNode(); Node otherNode2 = otherNode.getParentNode(); while (thisNode2 != otherNode2) { thisNode = thisNode2; thisNode2 = thisNode2.getParentNode(); otherNode = otherNode2; otherNode2 = otherNode2.getParentNode(); } // Find the leftmost. for (Node n = thisNode2.getFirstChild(); n != null; n = n.getNextSibling()) { if (n == otherNode) return DOCUMENT_POSITION_PRECEDING; if (n == thisNode) return DOCUMENT_POSITION_FOLLOWING; } throw new RuntimeException("This should not happen..."); } @Override public boolean isSupported(String feature, String version) { // TODO: Implement return false; } @Override public Object getFeature(String feature, String version) { // TODO: Implement return null; } @Override public Object setUserData(String key, Object data, UserDataHandler handler) { assertWritableOnDocument(); Object oldValue; if (data == null) { if (this.userData == null) return null; oldValue = this.userData.remove(key); if (this.userData.isEmpty()) this.userData = null; } else { if (this.userData == null) this.userData = new BackboneUserData(); oldValue = this.userData.set(key, data, handler); } return oldValue; } @Override public Object getUserData(String key) { if (this.userData == null) return null; return this.userData.get(key); } @Override public Wom3Node cloneNode(boolean deep) { Backbone newNode; try { newNode = (Backbone) this.clone(); } catch (CloneNotSupportedException e) { // Wom3Nodes must always be cloneable throw new AssertionError("Internal error!"); } // Detach from parent and siblings newNode.parent = null; newNode.prevSibling = null; newNode.nextSibling = null; newNode.userData = null; return newNode; } // ========================================================================= // // WOM Level 3 only Extensions // // ========================================================================= @Override public Collection getWomChildNodes() { return new ImmutableSiblingCollection(getFirstChild()); } @Override public Iterator iterator() { return new ImmutableSiblingCollection(getFirstChild()).iterator(); } @Override public Collection getWomAttributes() { return new ImmutableSiblingCollection(getFirstAttr()); } @Override public Iterator attributeIterator() { return new ImmutableSiblingCollection(getFirstAttr()).iterator(); } // ========================================================================= /** * Override in element nodes that can have attributes. */ protected Wom3Attribute getFirstAttr() { return null; } /** * Override according to node type. */ protected void getTextContentRecursive(StringBuilder b) { // Implementation works for all nodes that either should return their // nodeValue or null. String value = getNodeValue(); if (value != null) b.append(value); } /** * Override in text nodes which can potentially be content whitespace only. */ public boolean isContentWhitespace() { // TODO: replace with isElementContentWhitespace()! return false; } // ========================================================================= protected void assertWritableOnDocument() { Wom3Document ownerDocument = getOwnerDocument(); if (ownerDocument == null) ownerDocument = (Wom3Document) this; if (ownerDocument.getReadOnly()) throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This document is read-only!"); } protected void assertWritable( AttributeBase attributeBase, AttributeDescriptor descriptor) { // An uninitialized attribute value may be written once, even if read-only if ((attributeBase != null) /*&& (attributeBase.getValue() != null)*/) { if (descriptor.isReadOnly()) throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "The attribute '" + attributeBase.getName() + "' is read-only!"); } } protected Wom3Node doesNotSupportChildNodes() throws UnsupportedOperationException { throw new UnsupportedOperationException( "Node `" + getNodeName() + "' does not support child nodes!"); } protected void adoptTo(DocumentImpl doc) { this.owner = doc; } protected boolean hasSameOwnerDocument(Backbone other) { Document thisOwner = getOwnerDocument(); if (thisOwner == null) thisOwner = (Document) this; Document otherOwner = other.getOwnerDocument(); if (otherOwner == null) otherOwner = (Document) other; return thisOwner.isSameNode(otherOwner); } protected boolean precedes(Wom3Node other) { for (Wom3Node n = this.getNextSibling(); n != null; n = n.getNextSibling()) { if (n == other) return true; } return false; } protected boolean precedesOrIsSame(Wom3Node other) { for (Backbone n = this; n != null; n = n.getNextSibling()) { if (n == other) return true; } return false; } // ========================================================================= protected Backbone getParentNodeIntern() { return parent; } protected boolean isLinked() { return getParentNodeIntern() != null; } protected void unlink() { parent = null; if (prevSibling != null) prevSibling.nextSibling = nextSibling; if (nextSibling != null) nextSibling.prevSibling = prevSibling; prevSibling = null; nextSibling = null; } protected void link( Backbone parent, Backbone prevSibling, Backbone nextSibling) { if (!hasSameOwnerDocument(parent)) throw new IllegalStateException( "Different owner documents."); if (isLinked()) throw new IllegalStateException( "Node is still child of another WOM node."); this.parent = parent; this.prevSibling = prevSibling; if (prevSibling != null) { if (prevSibling.nextSibling != nextSibling) throw new IllegalStateException( "WOM sibling chain inconsistent."); prevSibling.nextSibling = this; } this.nextSibling = nextSibling; if (nextSibling != null) { if (nextSibling.prevSibling != prevSibling) throw new IllegalStateException( "WOM sibling chain inconsistent."); nextSibling.prevSibling = this; } } // ========================================================================= @Override public String toString() { return toString(new StringBuilder()).toString(); } protected StringBuilder toString(StringBuilder b) { switch (getNodeType()) { case Node.ENTITY_REFERENCE_NODE: case Node.ENTITY_NODE: case Node.PROCESSING_INSTRUCTION_NODE: case Node.DOCUMENT_TYPE_NODE: case Node.NOTATION_NODE: // We don't support these throw new InternalError(); case Node.ATTRIBUTE_NODE: b.append(((Wom3Attribute) this).getName()); b.append("=\""); b.append(StringTools.escHtml(getNodeValue())); b.append('"'); break; case Node.COMMENT_NODE: b.append(""); break; case Node.DOCUMENT_FRAGMENT_NODE: case Node.DOCUMENT_NODE: case Node.ELEMENT_NODE: b.append('<'); b.append(getNodeName()); for (Wom3Attribute attr : getWomAttributes()) { b.append(' '); if (attr instanceof Backbone) ((Backbone) attr).toString(b); else b.append(attr.toString()); } if (hasChildNodes()) { b.append('>'); for (Wom3Node child : getWomChildNodes()) { if (child instanceof Backbone) ((Backbone) child).toString(b); else b.append(child.toString()); } b.append("'); } else { b.append(" />"); } break; case Node.CDATA_SECTION_NODE: b.append(""); break; case Node.TEXT_NODE: b.append(StringTools.escHtml(getNodeValue())); break; } return b; } } BackboneCharacterData.java000066400000000000000000000056241335270560400417720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.w3c.dom.CharacterData; import org.w3c.dom.DOMException; public abstract class BackboneCharacterData extends Backbone implements CharacterData { private static final long serialVersionUID = 1L; // ========================================================================= public BackboneCharacterData(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getLocalName() { return null; } // ========================================================================= @Override public String getNodeValue() throws DOMException { return getData(); } @Override public void setNodeValue(String nodeValue) throws DOMException { setData(nodeValue); } @Override public String getTextContent() throws DOMException { return getData(); } @Override public void setTextContent(String textContent) throws DOMException { setData(textContent); } // ========================================================================= @Override public abstract String getData() throws DOMException; @Override public abstract void setData(String data) throws DOMException; @Override public int getLength() { return this.getData().length(); } @Override public String substringData(int offset, int count) throws DOMException { return this.getData().substring(offset, offset + count); } @Override public void appendData(String arg) throws DOMException { setData(getData() + arg); } @Override public void insertData(int offset, String arg) throws DOMException { String data = getData(); setData(data.substring(0, offset) + arg + data.substring(offset, data.length())); } @Override public void deleteData(int offset, int count) throws DOMException { String data = getData(); setData(data.substring(0, offset) + data.substring(offset + count, data.length())); } @Override public void replaceData(int offset, int count, String arg) throws DOMException { String data = getData(); setData(data.substring(0, offset) + arg + data.substring(offset + count, data.length())); } } BackboneChildOperationChecker.java000066400000000000000000000140221335270560400434650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3XmlComment; import org.sweble.wom3.Wom3XmlText; /** * The description arrays are always expected to contain every kind of node only * once over the whole array. An element that can accept first X, then Y and * then an element of type X again is not supported. */ public final class BackboneChildOperationChecker { private final BackboneWithChildren node; private ChildDescriptor current = null; private int pos = 0; // ========================================================================= BackboneChildOperationChecker(BackboneWithChildren node) { this.node = node; } // ========================================================================= protected boolean isIgnored(Backbone child) { return isIgnoredDefault(child); } /** * By default we ignore RTD node, content whitespace, XML comments and * Wom3Comment nodes as well as every non-WOM node (namespace URI test). */ protected static boolean isIgnoredDefault(Backbone child) { // Sorted by likelihood return (child instanceof Wom3Rtd) || ((child instanceof XmlTextBase) && (((XmlTextBase) child).isContentWhitespace())) || (!Wom3Node.WOM_NS_URI.equals(child.getNamespaceURI())) || (child instanceof Wom3Comment) || (child instanceof Wom3XmlComment) || ((child instanceof Wom3XmlText) && (((Wom3XmlText) child).isElementContentWhitespace())); } // ========================================================================= /** * This method is not supposed to make sure that the body is valid. It's * supposed to make sure that the body does not become invalid. Therefore, * if the body is invalid to begin with, the result is undefined. */ protected void checkInsertion( Backbone prev, Backbone child, ChildDescriptor[] desc) { if (isIgnored(child)) // Ignored nodes can always be inserted anywhere return; forwardDescriptor(prev, desc); if (current != null && current.isMultiple() && current.matches(child)) { // Yay! return; } else { while (true) { if (pos < desc.length) { current = desc[pos]; if (current.matches(child)) { // Yay! return; } else /*if (!current.isRequired())*/// <- the order in which we insert should not matter { ++pos; continue; } } this.node.doesNotAllowInsertion(prev, child); } } } /** * This method is not supposed to make sure that the body is valid. It's * supposed to make sure that the body does not become invalid. Therefore, * if the body is invalid to begin with, the result is undefined. */ protected void checkRemoval(Backbone child, ChildDescriptor[] desc) { forwardDescriptor(child, desc); if (current != null) { // We're removing a node that we cannot ignore if (current.isRequired()) // A required node cannot be removed this.node.doesNotAllowRemoval(child); } } /** * This method is not supposed to make sure that the body is valid. It's * supposed to make sure that the body does not become invalid. Therefore, * if the body is invalid to begin with, the result is undefined. */ protected void checkReplacement( Backbone oldChild, Backbone newChild, ChildDescriptor[] desc) { forwardDescriptor(oldChild, desc); if (current != null) { // We're replacing a node that we cannot ignore if (current.matches(newChild)) { // Yay! return; } else if (current.isRequired()) { // A required node cannot be replaced with a node of different // type this.node.doesNotAllowReplacement(oldChild, newChild); } } // Find out if the new node fits in if (isIgnored(newChild)) { // It was ok to remove the old node and the new node is an ignored // node. Those can be put anywhere return; } /* else if (active != null && active.matches(newChild)) { // Yay! return; } */ else { while (true) { if (pos < desc.length) { current = desc[pos]; if (current.matches(newChild)) { // Yay! return; } else /*if (!current.isRequired())*/// <- the order in which we insert should not matter { ++pos; continue; } } this.node.doesNotAllowReplacement(oldChild, newChild); } } } private void forwardDescriptor(Backbone to, ChildDescriptor[] desc) throws AssertionError { ChildDescriptor active = null; if (to == null) return; for (Backbone n = this.node.getFirstChild();; n = n.getNextSibling()) { if (n == null) { break; } else if (isIgnored(n)) { current = null; } else if (active != null && active.matches(n)) { } else { active = null; while (true) { if (pos >= desc.length) throw new AssertionError("Children already messed up!"); current = desc[pos]; if (current.matches(n)) { if (current.isMultiple()) active = current; ++pos; break; } else /*if (!current.isRequired())*/// <- the order in which we insert should not matter ++pos; /* else throw new AssertionError("Children already messed up!"); */ } } if (n == to) break; } } } BackboneContainer.java000066400000000000000000000027611335270560400412250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public abstract class BackboneContainer extends BackboneWomElement { private static final long serialVersionUID = 1L; // ========================================================================= public BackboneContainer(DocumentImpl owner) { super(owner); } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { // TODO: Restrict accordingly } @Override protected void allowsRemoval(Backbone child) { // Usually container elements allow removal of any element } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { // TODO: Restrict accordingly } } BackboneElement.java000066400000000000000000000473411335270560400406770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3NodeList; import org.w3c.dom.Attr; import org.w3c.dom.DOMException; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.TypeInfo; public abstract class BackboneElement extends BackboneWithChildren implements Wom3ElementNode { private static final long serialVersionUID = 1L; private AttributeBase firstAttr; // ========================================================================= public BackboneElement(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public abstract String getNodeName(); @Override public final String getTagName() { return getNodeName(); } @Override public final short getNodeType() { return Node.ELEMENT_NODE; } @Override public Backbone getParentNode() { return getParentNodeIntern(); } @Override public TypeInfo getSchemaTypeInfo() { // TODO: Implement throw new UnsupportedOperationException(); } // ========================================================================= @Override public Wom3NodeList getElementsByTagName(String name) { return new ElementsByTagNameNodeList(this, name); } @Override public Wom3NodeList getElementsByTagNameNS( String namespaceURI, String localName) throws DOMException { return new ElementsByTagNameNodeList(this, namespaceURI, localName); } // ========================================================================= @Override public Wom3Node cloneNode(boolean deep) { BackboneElement newNode = (BackboneElement) super.cloneNode(deep); newNode.firstAttr = null; // Attributes are integral part of an element and will always be cloned deeply AttributeBase child = this.getFirstAttr(); while (child != null) { newNode.setAttributeNode((AttributeBase) child.cloneNode(deep), true /* cloning */); child = (AttributeBase) child.getNextSibling(); } return newNode; } // ========================================================================= @Override public AttributeBase getFirstAttr() { return firstAttr; } private final void setFirstAttr(AttributeBase firstAttr) { this.firstAttr = firstAttr; } // ========================================================================= @Override public final boolean hasAttribute(String name) { return (getAttributeNode(name) != null); } @Override public final boolean hasAttributeNS(String namespaceUri, String localName) throws DOMException { return (getAttributeNodeNS(namespaceUri, localName) != null); } // ========================================================================= @Override public final NamedNodeMap getAttributes() { return new AttributeMap(this); } // ========================================================================= @Override public final String getAttribute(String name) { Wom3Attribute attributeNode = getAttributeNode(name); if (attributeNode == null) return ""; return attributeNode.getNodeValue(); } @Override public final AttributeBase getAttributeNode(String name) { if (name == null) throw new IllegalArgumentException("Argument `name' is null."); for (Wom3Attribute i = getFirstAttr(); i != null; i = (Wom3Attribute) i.getNextSibling()) { if (i.getName().equals(name)) return (AttributeBase) i; } return null; } @Override public final String getAttributeNS(String namespaceUri, String localName) throws DOMException { Wom3Attribute attributeNode = getAttributeNodeNS(namespaceUri, localName); if (attributeNode == null) return ""; return attributeNode.getNodeValue(); } @Override public final AttributeBase getAttributeNodeNS( String namespaceUri, String localName) throws DOMException { if (localName == null) throw new IllegalArgumentException("Argument `localName' is null."); for (Wom3Attribute i = getFirstAttr(); i != null; i = (Wom3Attribute) i.getNextSibling()) { String iNamespaceUri = i.getNamespaceURI(); String iLocalName = i.getLocalName(); if (namespaceUri == null) { if (iNamespaceUri != null) continue; if (localName.equals(iLocalName)) return (AttributeBase) i; // This one holds when the attribute we search for was added as // DOM Level 1 element. It would neither have a namespace URI // nor a local name. But if we search with a DOM Level 2 method // and the namespace URI we search for is null, a DOM Level 1 // attribute might still match. if (iLocalName == null && localName.equals(i.getNodeName())) return (AttributeBase) i; } else { if (namespaceUri.equals(iNamespaceUri) && localName.equals(iLocalName)) return (AttributeBase) i; } } return null; } // ========================================================================= protected final Object getAttributeNativeData(String name) { AttributeBase attr = getAttributeNode(name); return (attr == null) ? null : attr.getNativeValue(); } // ========================================================================= /** * Override in sub classes to change behavior. */ protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return null; } protected final AttributeDescriptor getAttributeDescriptorOrFail(String name) { return getAttributeDescriptorOrFail(null, null, name); } protected final AttributeDescriptor getAttributeDescriptorOrFail( String namespaceUri, String localName, String qualifiedName) { AttributeDescriptor d = getAttributeDescriptor(namespaceUri, localName, qualifiedName); if (d == null) { if (getOwnerDocument().getStrictErrorChecking()) throw new IllegalArgumentException( "An attribute named `" + namespaceUri + "' / `" + qualifiedName + "' is not supported by this element!"); d = CommonAttributeDescriptors.ATTR_DESC_GENERIC; } return d; } // ========================================================================= @Override public final void setAttribute(String name, String value) throws DOMException { Toolbox.checkValidXmlName(name); AttributeDescriptor descriptor = getAttributeDescriptorOrFail(name); NativeAndStringValuePair verified = new NativeAndStringValuePair(value); if (value != null && descriptor.verifyAndConvert(this, verified)) { // keep attribute setAttribute(descriptor, name, verified); } else { // remove attribute AttributeBase old = getAttributeNode(name); removeAttribute(descriptor, name, old); } } private final AttributeBase setAttribute( AttributeDescriptor descriptor, String name, NativeAndStringValuePair verified) { assertWritableOnDocument(); AttributeBase oldAttr = getAttributeNode(name); assertWritable(oldAttr, descriptor); AttributeBase newAttr = createAttribute(name, verified); replaceAttributeInternal(descriptor, oldAttr, newAttr); return oldAttr; } /** * Test cases may want to overwrite this -> no final */ protected AttributeBase createAttribute( String name, NativeAndStringValuePair verified) { AttributeBase attr = (AttributeBase) getOwnerDocument().createAttribute(name); // We don't check an attribute descriptor for read-only since a new // attribute may be set once anyway. attr.setValue(verified.value, verified.strValue, false /* cloning */); return attr; } @Override public final void setAttributeNS( String namespaceUri, String qualifiedName, String value) throws DOMException { Toolbox.checkValidXmlName(qualifiedName); int index = qualifiedName.indexOf(':'); String localName; if (index < 0) { localName = qualifiedName; } else { localName = qualifiedName.substring(index + 1); } AttributeDescriptor descriptor = getAttributeDescriptorOrFail( namespaceUri, localName, qualifiedName); NativeAndStringValuePair verified = new NativeAndStringValuePair(value); if (value != null && descriptor.verifyAndConvert(this, verified)) { // keep attribute setAttributeNs(descriptor, namespaceUri, localName, qualifiedName, verified); } else { // remove attribute AttributeBase old = getAttributeNodeNS(namespaceUri, localName); removeAttribute(descriptor, localName, old); } } private final AttributeBase setAttributeNs( AttributeDescriptor descriptor, String namespaceUri, String localName, String qualifiedName, NativeAndStringValuePair verified) { assertWritableOnDocument(); AttributeBase oldAttr = getAttributeNodeNS(namespaceUri, localName); assertWritable(oldAttr, descriptor); AttributeBase newAttr = createAttributeNS(namespaceUri, qualifiedName, verified); replaceAttributeInternal(descriptor, oldAttr, newAttr); return oldAttr; } /** * Test cases may want to overwrite this -> no final */ protected AttributeBase createAttributeNS( String namespaceUri, String qualifiedName, NativeAndStringValuePair verified) { AttributeBase attr = (AttributeBase) getOwnerDocument().createAttributeNS(namespaceUri, qualifiedName); // We don't check an attribute descriptor for read-only since a new // attribute may be set once anyway. attr.setValue(verified.value, verified.strValue, false /* cloning */); return attr; } @Override public final Wom3Attribute setAttributeNode(Attr attr_) throws IllegalArgumentException, DOMException { return setAttributeNode(attr_, false /* cloning */); } public final Wom3Attribute setAttributeNode( Attr attr_, boolean cloning) throws IllegalArgumentException, DOMException { if (attr_ == null) throw new IllegalArgumentException("Argument `attr' is null."); Wom3Attribute attr = Toolbox.expectType(Wom3Attribute.class, attr_); if (attr.getOwnerElement() == this) return (AttributeBase) attr; // FIXME: I'm not sure if that's correct. // It's the only way since the XML parser doesn't distinguish between // setAttributeNode and setAttributeNodeNS if (((attr.getNamespaceURI() != null) && (!attr.getNamespaceURI().isEmpty())) || ((attr.getPrefix() != null) && (!attr.getPrefix().isEmpty()))) return setAttributeNodeNS(attr_, cloning); String attrName = attr.getName(); AttributeDescriptor descriptor = getAttributeDescriptorOrFail(attrName); /* An attribute cannot verify its name/value when it is not attached to * a node. Therefore we have to verify it when it gets attached to this * node. */ NativeAndStringValuePair verified = new NativeAndStringValuePair(attr.getNodeValue()); if (attr.getNodeValue() == null || descriptor.verifyAndConvert(this, verified)) { // keep attribute return setAttributeNode(descriptor, attr, verified, cloning); } else if (!cloning) { // remove attribute AttributeBase old = getAttributeNode(attrName); removeAttribute(descriptor, attrName, old); return old; } else { return null; } } private final AttributeBase setAttributeNode( AttributeDescriptor descriptor, Wom3Attribute attr, NativeAndStringValuePair verified, boolean cloning) { if (!cloning) assertWritableOnDocument(); String attrName = attr.getName(); AttributeBase oldAttr = getAttributeNode(attrName); return setAttribute(descriptor, attrName, attr, verified, oldAttr, cloning); } @Override public final Wom3Attribute setAttributeNodeNS(Attr attr_) throws DOMException { return setAttributeNodeNS(attr_, false /* cloning */); } public final Wom3Attribute setAttributeNodeNS(Attr attr_, boolean cloning) throws DOMException { if (attr_ == null) throw new IllegalArgumentException("Argument `attr' is null."); Wom3Attribute attr = Toolbox.expectType(Wom3Attribute.class, attr_); if (attr.getOwnerElement() == this) return (AttributeBase) attr; String namespaceUri = attr.getNamespaceURI(); String localName = attr.getLocalName(); String name = attr.getName(); AttributeDescriptor descriptor = getAttributeDescriptorOrFail( namespaceUri, localName, name); /* An attribute cannot verify its name/value when it is not attached to * a node. Therefore we have to verify it when it gets attached to this * node. */ NativeAndStringValuePair verified = new NativeAndStringValuePair(attr.getNodeValue()); if (attr.getNodeValue() == null || descriptor.verifyAndConvert(this, verified)) { // keep attribute return setAttributeNodeNS(descriptor, attr, verified, cloning); } else if (!cloning) { // remove attribute AttributeBase old = getAttributeNodeNS(namespaceUri, localName); removeAttribute(descriptor, localName, old); return old; } else { return null; } } private final AttributeBase setAttributeNodeNS( AttributeDescriptor descriptor, Wom3Attribute attr, NativeAndStringValuePair verified, boolean cloning) { if (!cloning) assertWritableOnDocument(); String attrLocalName = attr.getLocalName(); AttributeBase oldAttr = getAttributeNodeNS(attr.getNamespaceURI(), attrLocalName); return setAttribute(descriptor, attrLocalName, attr, verified, oldAttr, cloning); } private AttributeBase setAttribute( AttributeDescriptor descriptor, String attrName, Wom3Attribute attr, NativeAndStringValuePair verified, AttributeBase oldAttr, boolean cloning) { if (!cloning) assertWritable(oldAttr, descriptor); AttributeBase newAttr = Toolbox.expectType(AttributeBase.class, attr, "attr"); // Is expected to assertWritable() on doc newAttr.setValue(verified.value, verified.strValue, cloning); if (newAttr.isLinked()) throw new IllegalStateException( "Given attribute `attr' is still attribute of another WOM node."); replaceAttributeInternal(descriptor, oldAttr, newAttr); return oldAttr; } // ========================================================================= /** * For use by direct setters which have access to the native value and thus * require conversion to string. */ protected final T setAttributeDirect( String name, T value) { AttributeDescriptor descriptor = getAttributeDescriptorOrFail(name); return setAttributeDirect(descriptor, name, value); } /** * For use by direct setters which have access to the native value and thus * require conversion to string. */ protected final T setAttributeDirect( AttributeDescriptor descriptor, String name, T value) { AttributeBase old; NativeAndStringValuePair verified = new NativeAndStringValuePair((Object) value); if (value != null && descriptor.verifyAndConvert(this, verified)) { // keep attribute // Is expected to assertWritable() old = setAttribute(descriptor, name, verified); } else { // remove attribute old = getAttributeNode(name); removeAttribute(descriptor, name, old); } if (old == null) return null; @SuppressWarnings("unchecked") T oldT = (T) old.getNativeValue(); return oldT; } /** * For special attributes which are only set once and cannot be changed * (example: "version" on WomPage). */ protected final void setAttributeDirectNoChecks(String name, String value) { NativeAndStringValuePair verified = new NativeAndStringValuePair(value); // Is expected to assertWritable() setAttribute(null, name, verified); } // ========================================================================= private final void replaceAttributeInternal( AttributeDescriptor descriptor, AttributeBase oldAttr, AttributeBase newAttr) { Backbone prev = null; Backbone next = null; if (oldAttr != null) { prev = oldAttr.getPreviousSibling(); next = oldAttr.getNextSibling(); oldAttr.unlink(); } else if (getFirstAttr() != null) { prev = getFirstAttr(); while (prev.getNextSibling() != null) prev = (Backbone) prev.getNextSibling(); } newAttr.link(this, prev, next); if (getFirstAttr() == null || oldAttr == getFirstAttr()) setFirstAttr(newAttr); if ((descriptor != null) && (descriptor.hasCustomAction())) descriptor.customAction(this, oldAttr, newAttr); } // ========================================================================= @Override public void setIdAttribute(String name, boolean isId) throws DOMException { assertWritableOnDocument(); // TODO: Implement if (isId) throw new UnsupportedOperationException(); } @Override public void setIdAttributeNS( String namespaceURI, String localName, boolean isId) throws DOMException { assertWritableOnDocument(); // TODO: Implement if (isId) throw new UnsupportedOperationException(); } @Override public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException { assertWritableOnDocument(); // TODO: Implement if (isId) throw new UnsupportedOperationException(); } // ========================================================================= @Override public final void removeAttribute(String name) { if (name == null) throw new IllegalArgumentException("Argument `name' is null."); AttributeDescriptor descriptor = getAttributeDescriptorOrFail(name); AttributeBase remove = getAttributeNode(name); removeAttribute(descriptor, name, remove); } @Override public final void removeAttributeNS(String namespaceUri, String localName) throws DOMException { if (localName == null) throw new IllegalArgumentException("Argument `localName' is null."); AttributeDescriptor descriptor = getAttributeDescriptorOrFail(namespaceUri, localName, localName); AttributeBase remove = getAttributeNodeNS(namespaceUri, localName); removeAttribute(descriptor, localName, remove); } @Override public final Wom3Attribute removeAttributeNode(Attr attr_) throws DOMException { Wom3Attribute attr = Toolbox.expectType(Wom3Attribute.class, attr_); if (attr == null) throw new IllegalArgumentException("Argument `attr' is null."); if (attr.getOwnerElement() != this) throw new IllegalArgumentException("Given attribute `attr' is not an attribute of this XML element."); String attrName = attr.getName(); removeAttribute(getAttributeDescriptorOrFail(attrName), attrName, (AttributeBase) attr); return attr; } private final void removeAttribute( AttributeDescriptor descriptor, String name, AttributeBase attribute) { assertWritableOnDocument(); if (attribute != null) { checkAttributeRemoval(name, descriptor); Backbone parent = (Backbone) attribute.getOwnerElement(); // remove from WOM if (attribute == getFirstAttr()) setFirstAttr((AttributeBase) attribute.getNextSibling()); attribute.unlink(); if ((descriptor != null) && (descriptor.hasCustomAction())) descriptor.customAction(parent, attribute, null); } else { checkAttributeRemoval(name, descriptor); } } protected final void checkAttributeRemoval( String name, AttributeDescriptor descriptor) { if (getOwnerDocument().getStrictErrorChecking()) { if (descriptor.isReadOnly()) throw new UnsupportedOperationException("Read-only attribute is '" + name + "' is already set!"); if (!descriptor.isRemovable()) throw new UnsupportedOperationException( "Attribute `" + name + "' cannot be removed"); } } } BackboneUserData.java000066400000000000000000000050541335270560400410110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import org.w3c.dom.UserDataHandler; public class BackboneUserData { private String onlyKey; private Object onlyValue; private Map map; // ========================================================================= // public Object remove(String key) { Object oldValue = null; if ((onlyKey != null) && (onlyKey.equals(key))) { oldValue = onlyValue; onlyKey = null; onlyValue = null; } else if (map != null) { Object value = map.remove(key); oldValue = value; normalize(); } return oldValue; } private void normalize() { if (map.size() == 1) { Entry e = map.entrySet().toArray(new Entry[1])[0]; onlyKey = (String) e.getKey(); onlyValue = e.getValue(); map = null; } else if (map.isEmpty()) { map = null; } } public Object set(String key, Object data, UserDataHandler handler) { if (handler != null) { throw new UnsupportedOperationException("Not supported yet."); } Object oldValue = null; if ((map == null) && (onlyKey == null)) { onlyKey = key; onlyValue = data; } else if (onlyKey != null) { if (onlyKey.equals(key)) { oldValue = onlyValue; onlyValue = data; } else { map = new HashMap(); map.put(onlyKey, onlyValue); map.put(key, data); onlyKey = null; onlyValue = null; } } else // if (map != null) { oldValue = map.put(key, data); } return oldValue; } public Object get(String key) { if ((onlyKey != null) && (onlyKey.equals(key))) { return onlyValue; } if (map != null) { return map.get(key); } return null; } boolean isEmpty() { return (onlyKey == null) && (map == null); } } BackboneWithChildren.java000066400000000000000000000477741335270560400417040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3DocumentFragment; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.impl.AttributeDescriptor.Normalization; import org.w3c.dom.DOMException; import org.w3c.dom.Node; public abstract class BackboneWithChildren extends Backbone { private static final long serialVersionUID = 1L; /** * It's vital that this member is only accessed and modified through * get/setFirstChild(). */ private Backbone firstChild; /** * It's vital that this member is only accessed and modified through * get/setLastChild(). */ private Backbone lastChild; // ========================================================================= public BackboneWithChildren(DocumentImpl owner) { super(owner); } // ========================================================================= protected void setFirstChild(Backbone firstChild) { this.firstChild = firstChild; } @Override public Backbone getFirstChild() { return firstChild; } protected void setLastChild(Backbone lastChild) { this.lastChild = lastChild; } @Override public Backbone getLastChild() { return lastChild; } /** * Called when a text node containing content whitespace is inserted into * this element. * * Override to change node type specific behavior. * * @return Returns {@code true} if the node should be ignored silently and * not get inserted. */ protected boolean ignoresContentWhitespace() { // True for most WOM Version 3 nodes return true; } /** * Called on the parent node when a new child node is added. The parent can * then check if he accepts this kind of child node or throw an exception if * he doesn't. * * @param prev * The node after which the child was inserted. * @param child * The child node to add. * @throws IllegalArgumentException * Thrown if the parent does not accept this kind of child node. */ protected void allowsInsertion( Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) doesNotAllowInsertion(prev, child); } protected void allowsReplacement( Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) doesNotAllowReplacement(oldChild, newChild); } protected void allowsRemoval(Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) doesNotAllowRemoval(child); } /** * Called when a node was appended to this node. * * @param prev * The node after which the child was inserted. * @param added * The child node that was added. */ protected void childInserted( Backbone prev, Backbone added) { } /** * Called when a node was removed from this node. * * @param prev * The node after which the child was previously located. * @param removed * The child node that was removed. * @return Return the element preceding the removed element (usually the one * given as the "prev" parameter). This allows this method to * further alter the sequence of children as long as the correct * previous element is returned. This is only important when a child * is replaced. */ protected void childRemoved( Backbone prev, Backbone removed) { } /** * Override according to node type. */ protected void getTextContentRecursive(StringBuilder b) { for (Backbone n = getFirstChild(); n != null; n = n.getNextSibling()) { switch (n.getNodeType()) { case Node.COMMENT_NODE: case Node.PROCESSING_INSTRUCTION_NODE: break; default: n.getTextContentRecursive(b); break; } } } // ========================================================================= // // DOM Level 3 Node Interface Operations // // ========================================================================= @Override public Wom3Node insertBefore(Node child_, Node before_) throws DOMException { Wom3Node child = Toolbox.expectType(Wom3Node.class, child_); if (((Backbone) child).isContentWhitespace() && ignoresContentWhitespace()) return null; Wom3Node before = Toolbox.expectType(Wom3Node.class, before_); if (before instanceof Wom3DocumentFragment) { Wom3Node move = child.getFirstChild(); while (move != null) { Wom3Node next = move.getNextSibling(); child.removeChild(move); Backbone prev = insertBeforeIntern(before, move, true); this.childInserted(prev, (Backbone) move); move = next; } } else { Backbone prev = insertBeforeIntern(before, child, true); this.childInserted(prev, (Backbone) child); } return child; } @Override public Wom3Node replaceChild(Node newChild_, Node oldChild_) throws DOMException { Backbone newChild = Toolbox.expectType(Backbone.class, newChild_); if (((Backbone) newChild).isContentWhitespace() && ignoresContentWhitespace()) return removeChild(oldChild_); Backbone oldChild = Toolbox.expectType(Backbone.class, oldChild_); //Backbone prev = replaceChildIntern(newChild, oldChild, true); Backbone prevSibling = oldChild.getPreviousSibling(); Backbone nextSibling = oldChild.getNextSibling(); if (newChild instanceof Wom3DocumentFragment) { removeChildIntern(oldChild, true /* check */); childRemoved(prevSibling, oldChild); Backbone move = newChild.getFirstChild(); while (move != null) { Backbone next = move.getNextSibling(); newChild.removeChild(move); insertOrAppendIntern(move, nextSibling); childInserted(prevSibling, move); prevSibling = move; move = next; } } else { replaceChildIntern(newChild, oldChild, true /* check */); childRemoved(prevSibling, oldChild); childInserted(prevSibling, newChild); } return oldChild; } private void insertOrAppendIntern(Wom3Node newChild, Wom3Node nextSibling) { if (nextSibling != null) { insertBeforeIntern(nextSibling, newChild, true /* check */); } else { appendChildIntern(newChild, true /* check */, false /* cloning */); } } @Override public Wom3Node removeChild(Node child_) throws DOMException { Wom3Node child = Toolbox.expectType(Wom3Node.class, child_); Backbone prev = removeChildIntern(child, true); this.childRemoved(prev, (Backbone) child); return child; } @Override public Wom3Node appendChild(Node child_) throws DOMException { return appendChild(child_, false /* cloning */); } public Wom3Node appendChild(Node child_, boolean cloning) throws DOMException { Wom3Node child = Toolbox.expectType(Wom3Node.class, child_); if (((Backbone) child).isContentWhitespace() && ignoresContentWhitespace()) return null; if (child instanceof Wom3DocumentFragment) { Wom3Node move = child.getFirstChild(); while (move != null) { Wom3Node next = move.getNextSibling(); child.removeChild(move); Backbone prev = appendChildIntern(move, true /* check */, cloning); childInserted(prev, (Backbone) move); move = next; } } else { Backbone prev = appendChildIntern(child, true /* check */, cloning); childInserted(prev, (Backbone) child); } return child; } @Override public void setTextContent(String textContent) throws DOMException { // Is expected to assertWritable(); clearChildren(); appendChild(getOwnerDocument().createTextNode(textContent)); } // ========================================================================= @Override public Wom3Node cloneNode(boolean deep) { BackboneWithChildren newNode = (BackboneWithChildren) super.cloneNode(deep); newNode.setFirstChild(null); newNode.setLastChild(null); // Do a deep clone if (deep) { Backbone child = this.getFirstChild(); while (child != null) { newNode.appendChild(child.cloneNode(deep), true /* cloning */); child = child.getNextSibling(); } } return newNode; } // ========================================================================= private final Backbone insertBeforeIntern( Wom3Node before, Wom3Node child, boolean check) { assertWritableOnDocument(); if (before == null || child == null) throw new IllegalArgumentException("Argument `before' and/or `child' is null."); final Backbone newChild = Toolbox.expectType(Backbone.class, child, "child"); if (newChild.isLinked()) throw new IllegalStateException( "Given argument `child' is still child of another WOM node."); if (before.getParentNode() != this) throw new IllegalArgumentException("Given node `before' is not a child of this node."); Backbone p = (Backbone) before; Backbone prev = p.getPreviousSibling(); if (check) this.allowsInsertion(prev, newChild); // Indicate change before performing it ++childrenChanges; newChild.link(this, prev, p); if (p == getFirstChild()) setFirstChild(newChild); return prev; } private Backbone replaceChildIntern( Wom3Node replace, Wom3Node search, boolean check) { assertWritableOnDocument(); if (search == null || replace == null) throw new IllegalArgumentException("Argument `search' and/or `replace' is null."); final Backbone newChild = Toolbox.expectType(Backbone.class, replace, "replace"); if (newChild.isLinked()) throw new IllegalStateException( "Given node `replace' is still child of another WOM node."); if (search.getParentNode() != this) throw new IllegalArgumentException("Given node `search' is not a child of this node."); Backbone oldChild = (Backbone) search; if (check) this.allowsReplacement(oldChild, newChild); Backbone prev = oldChild.getPreviousSibling(); Backbone next = oldChild.getNextSibling(); // Indicate change before performing it ++childrenChanges; oldChild.unlink(); newChild.link(this, prev, next); if (oldChild == getFirstChild()) setFirstChild(newChild); if (oldChild == getLastChild()) setLastChild(newChild); ++childrenChanges; return prev; } private final Backbone removeChildIntern( Wom3Node child, boolean check) { assertWritableOnDocument(); if (child == null) throw new IllegalArgumentException("Argument `child' is null."); Backbone remove = Toolbox.expectType(Backbone.class, child, "child"); if (child.getParentNode() != this) throw new IllegalArgumentException("Given node `child' is not a child of this node."); if (check) this.allowsRemoval(remove); Backbone prev = remove.getPreviousSibling(); Backbone next = remove.getNextSibling(); // Indicate change before performing it ++childrenChanges; if (remove == getFirstChild()) setFirstChild(next); if (remove == getLastChild()) setLastChild(prev); remove.unlink(); return prev; } private final Backbone appendChildIntern( Wom3Node child, boolean check, boolean cloning) { if (!cloning) assertWritableOnDocument(); if (child == null) throw new IllegalArgumentException("Argument `child' is null."); final Backbone newChild = Toolbox.expectType(Backbone.class, child, "child"); if (newChild.isLinked()) throw new IllegalStateException( "Given node `child' is still child of another WOM node."); Backbone lastChild = (Backbone) getLastChild(); if (check) this.allowsInsertion(lastChild, newChild); // Indicate change before performing it ++childrenChanges; newChild.link(this, lastChild, null); setLastChild(newChild); if (getFirstChild() == null) setFirstChild(newChild); return lastChild; } // ========================================================================= /* TODO: All these methods are called *NoNotify, and yes, they do not * notify. Seeing how they are only used by the DefinitionListImpl that's * probably the intention. However, they also prevent checks... is that * intentional too? Should it be reflected in the name? */ protected final void insertBeforeNoNotify(Wom3Node before, Wom3Node child) throws IllegalArgumentException { // FIXME: Does not treat DocumentFragment correctly. insertBeforeIntern(before, child, true); } protected final void replaceChildNoNotify(Wom3Node replace, Wom3Node search) { // FIXME: Does not treat DocumentFragment correctly. replaceChildIntern(replace, search, true); } protected final void removeChildNoNotify(Wom3Node child) { removeChildIntern(child, true); } protected final void appendChildNoNotify(Wom3Node child) { // FIXME: Does not treat DocumentFragment correctly. appendChildIntern(child, true /* check */, false /* cloning */); } // ========================================================================= /** * Remove all children from this node. * * Checks assertWritable(); */ protected void clearChildren() { assertWritableOnDocument(); while (getFirstChild() != null) removeChild(getFirstChild()); } /** * For setting the first child of a node with exactly one child. */ protected final Wom3Node replaceOrAdd( Wom3Node replace, Wom3Node replacement, boolean required) { if (replacement == null) { if (required) { if (getOwnerDocument().getStrictErrorChecking()) throw new NullPointerException( "Argument is null but child cannot be removed"); } if (replace != null) { removeChild(replace); } else { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } } else if (replace == replacement) { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } else if (replace != null) { replaceChild(replacement, replace); } else { appendChild(replacement); } return replace; } /** * For setting the first child of a node with exactly two children. */ protected final Wom3Node replaceOrInsertBeforeOrAppend( Wom3Node replace, Wom3Node before, Wom3Node replacement, boolean required) { assertWritableOnDocument(); if (replacement == null) { if (required) { if (getOwnerDocument().getStrictErrorChecking()) throw new NullPointerException( "Argument is null but child cannot be removed"); } if (replace != null) { removeChild(replace); } else { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } } else if (replace == replacement) { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } else if (replace != null) { replaceChild(replacement, replace); } else if (before != null) { insertBefore(replacement, before); } else { appendChild(replacement); } return replace; } /** * For setting the second child of a node with exactly two children. */ protected final Wom3Node replaceOrAppend( Wom3Node replace, Wom3Node replacement, boolean required) { if (replacement == null) { if (required) { if (getOwnerDocument().getStrictErrorChecking()) throw new NullPointerException( "Argument is null but child cannot be removed"); } if (replace != null) { removeChild(replace); } else { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } } else if (replace == replacement) { ; // nothing to do, still let caller know that even though the // operation had no side effects, what he's trying to do is nasty. assertWritableOnDocument(); } else if (replace != null) { replaceChild(replacement, replace); } else { appendChild(replacement); } return replace; } // ========================================================================= protected void checkInsertion( Backbone prev, Backbone child, ChildDescriptor[] desc) { if (getOwnerDocument().getStrictErrorChecking()) new BackboneChildOperationChecker(this).checkInsertion(prev, child, desc); } protected void checkRemoval( Backbone child, ChildDescriptor[] desc) { if (getOwnerDocument().getStrictErrorChecking()) new BackboneChildOperationChecker(this).checkRemoval(child, desc); } protected void checkReplacement( Backbone oldChild, Backbone newChild, ChildDescriptor[] desc) { if (getOwnerDocument().getStrictErrorChecking()) new BackboneChildOperationChecker(this).checkReplacement(oldChild, newChild, desc); } // ========================================================================= public static ChildDescriptor childDesc(String tag) { return childDesc(WOM_NS_URI, tag, 0); } public static ChildDescriptor childDesc(String namespaceUri, String tag) { return new ChildDescriptor(namespaceUri, tag, 0); } public static ChildDescriptor childDesc(String tag, int flags) { return childDesc(WOM_NS_URI, tag, flags); } public static ChildDescriptor childDesc( String namespaceUri, String tag, int flags) { return new ChildDescriptor(namespaceUri, tag, flags); } public static Map attrDescMap( RuntimeAttributeDescriptor... descriptors) { HashMap map = new HashMap(); for (RuntimeAttributeDescriptor desc : descriptors) map.put(desc.getName(), desc); return map; } public static RuntimeAttributeDescriptor attrDesc(String name) { return attrDesc( name, Normalization.NONE); } public static RuntimeAttributeDescriptor attrDesc( String name, Normalization normalization) { return attrDesc( name, true, false, null, null, normalization); } public static RuntimeAttributeDescriptor attrDesc( String name, boolean removable, boolean readOnly, AttributeVerificationAndConverion verifyAndConvert, AttributeCustomAction customAction, Normalization normalization) { return new RuntimeAttributeDescriptor( name, removable, readOnly, verifyAndConvert, customAction, normalization); } // ========================================================================= protected void doesNotAllowInsertion( Backbone prev, Backbone child) { if (prev == null) { if (getFirstChild() != null) { throw new IllegalArgumentException( getNodeName() + " doesn't accept child " + child.getNodeName() + " in front of child " + getFirstChild().getNodeName()); } else { throw new IllegalArgumentException( getNodeName() + " doesn't accept child " + child.getNodeName() + " as first child"); } } else { throw new IllegalArgumentException( getNodeName() + " doesn't accept child " + child.getNodeName() + " after child " + prev.getNodeName()); } } protected void doesNotAllowRemoval(Backbone child) { throw new IllegalArgumentException("Child node " + child.getNodeName() + " cannot be removed from node " + getNodeName()); } protected void doesNotAllowReplacement( Backbone oldChild, Backbone newChild) { throw new IllegalArgumentException("Child node " + oldChild.getNodeName() + " in node " + getNodeName() + " cannot be replaced by node " + newChild.getNodeName()); } } BackboneWomElemWithCoreAttrs.java000066400000000000000000000150701335270560400433300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3I18nDir; /** * This is a base class for all XHTML elements which can technically have * children and attributes. The term "technically" means that you could put * children into those elements notwithstanding that they might not be allowed * to have children. Almost all XHTML elements fall into this category. * * Examples for such elements would be "div" and "br". "div" is allowed to have * children while "br" is not allowed to have children but one could put * children into "br" none the less. An XHTML comment on the other hand would * not fit this category since there is no way to add child elements or * attributes to an XHTML comment. * * Classes which inherit from this class have to be prepared to take any kind of * child node and have arbitrary attributes. Thus they are prepared to deal with * erroneous XHTML. * * This class already provides a child manager. Inheriting classes do not have * to add any child management code. * * This class does not provide an attribute manager. Technically it should since * classes inheriting from this class have to be prepared to take any attribute. * However, since implementing classes might have special, non-universal * attributes, they require additional getters and setters. Defining the * attribute manager field in this class would conflict with the way we pull in * attribute getters and setters from the attribute manager using the lombok * library. */ public abstract class BackboneWomElemWithCoreAttrs extends BackboneWomElement { private static final long serialVersionUID = 1L; // ========================================================================= public BackboneWomElemWithCoreAttrs(DocumentImpl owner) { super(owner); } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { // TODO: Restrict accordingly } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { // TODO: Restrict accordingly } // ==[ Core Attributes ]==================================================== public String getId() { return getStringAttr("id"); } public String setId(String id) throws IllegalArgumentException { return setAttributeDirect(CoreAttributes.ATTR_DESC_ID, "id", id); } public String getClasses() { return getStringAttr("class"); } public String setClasses(String classes) { return setAttributeDirect(CoreAttributes.ATTR_DESC_CLASS, "class", classes); } public String getStyle() { return getStringAttr("style"); } public String setStyle(String style) { return setAttributeDirect(CoreAttributes.ATTR_DESC_STYLE, "style", style); } public String getTitle() { return getStringAttr("title"); } public String setTitle(String title) { return setAttributeDirect(CoreAttributes.ATTR_DESC_TITLE, "title", title); } // ==[ I18n Attributes ]==================================================== public Wom3I18nDir getDir() { return (Wom3I18nDir) getAttributeNativeData("dir"); } public Wom3I18nDir setDir(Wom3I18nDir dir) { return setAttributeDirect(I18nAttributes.ATTR_DESC_DIR, "dir", dir); } public String getLang() { return getStringAttr("lang"); } public String setLang(String lang) { return setAttributeDirect(I18nAttributes.ATTR_DESC_LANG, "lang", lang); } public String getXmlLang() { return getStringAttr("xml:lang"); } public String setXmlLang(String lang) { return setAttributeDirect(I18nAttributes.ATTR_DESC_XML_LANG, "xml:lang", lang); } // ==[ Event Attributes ]=================================================== public String getOnclick() { return getStringAttr("onclick"); } public String setOnclick(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONCLICK, "onclick", handler); } public String getOndblclick() { return getStringAttr("ondblclick"); } public String setOndblclick(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONDBLCLICK, "ondblclick", handler); } public String getOnmousedown() { return getStringAttr("onmousedown"); } public String setOnmousedown(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONMOUSEDOWN, "onmousedown", handler); } public String getOnmouseup() { return getStringAttr("onmouseup"); } public String setOnmouseup(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONMOUSEUP, "onmouseup", handler); } public String getOnmouseover() { return getStringAttr("onmouseover"); } public String setOnmouseover(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONMOUSEOVER, "onmouseover", handler); } public String getOnmousemove() { return getStringAttr("onmousemove"); } public String setOnmousemove(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONMOUSEMOVE, "onmousemove", handler); } public String getOnmouseout() { return getStringAttr("onmouseout"); } public String setOnmouseout(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONMOUSEOUT, "onmouseout", handler); } public String getOnkeypress() { return getStringAttr("onkeypress"); } public String setOnkeypress(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONKEYPRESS, "onkeypress", handler); } public String getOnkeydown() { return getStringAttr("onkeydown"); } public String setOnkeydown(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONKEYDOWN, "onkeydown", handler); } public String getOnkeyup() { return getStringAttr("onkeyup"); } public String setOnkeyup(String handler) { return setAttributeDirect(EventAttributes.ATTR_DESC_ONKEYUP, "onkeyup", handler); } } BackboneWomElemWithUnivAttrs.java000066400000000000000000000031211335270560400433530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; /** * Base class for classes which implement XHTML elements with universal * attributes. The only thing left to an implementing class is to implement the * getNodeName() method. */ public abstract class BackboneWomElemWithUnivAttrs extends BackboneWomElemWithCoreAttrs { private static final long serialVersionUID = 1L; // ========================================================================= public BackboneWomElemWithUnivAttrs(DocumentImpl owner) { super(owner); } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, UniversalAttributes.getNameMap()); } } BackboneWomElement.java000066400000000000000000000302011335270560400413450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.Map; import org.joda.time.DateTime; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Clear; import org.sweble.wom3.Wom3Color; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableVAlign; import org.sweble.wom3.Wom3ValueWithUnit; import org.w3c.dom.DOMException; public abstract class BackboneWomElement extends BackboneElement { private static final long serialVersionUID = 1L; private String prefix; // ========================================================================= public BackboneWomElement(DocumentImpl owner) { super(owner); } // ========================================================================= /** * The name of the WOM node. */ public abstract String getWomName(); @Override public String getNodeName() { if (this.prefix == null) return getWomName(); return this.prefix + ":" + getWomName(); } @Override public String getPrefix() { return prefix; } @Override public String getLocalName() { return getWomName(); } @Override public String getNamespaceURI() { return WOM_NS_URI; } // ========================================================================= @Override public void setPrefix(String prefix) throws DOMException { assertWritableOnDocument(); if ((prefix != null) && prefix.isEmpty()) prefix = null; if (prefix != null) { Toolbox.checkValidXmlName(prefix); if (prefix.indexOf(':') >= 0) throw new DOMException(DOMException.NAMESPACE_ERR, "Prefix must not contain ':' character"); if (prefix.equals("xml")) // Cannot have xml: prefix since it's namespaceURI will never be the XML namespace! throw new DOMException(DOMException.NAMESPACE_ERR, "WOM node cannot have \"xml\" prefix!"); } this.prefix = prefix; } // ========================================================================= /** * If the attribute is not in the global attribute partition and is not * called "xmlns", this method returns null, hence the name "...Strict". * Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDescStrict( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, null); } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns null, hence the * name "...Strict". Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDescStrict( String namespaceUri, String localName, String qualifiedName, Map nameMap) { if ((namespaceUri != null) && !namespaceUri.isEmpty()) // We accept any attribute in the global attribute partition return CommonAttributeDescriptors.ATTR_DESC_GENERIC; if ((localName == null) || localName.equals(qualifiedName)) { if (nameMap != null) { // There's no prefix, it's in the per-element-type parition AttributeDescriptor d = nameMap.get(qualifiedName); if (d != null) return d; } // We also always accept "xmlns" declarations. if ("xmlns".equals(qualifiedName)) return CommonAttributeDescriptors.ATTR_DESC_GENERIC; return null; } else { // We have a prefix. // We accept any attribute in the global attribute partition // FIXME: This is probably not correct. A prefix could be bound // to the empty namespace, in which case the attribute would // be in the per-element-type partition. return CommonAttributeDescriptors.ATTR_DESC_GENERIC; } } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns null, hence the * name "...Strict". Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDescStrict( String namespaceUri, String localName, String qualifiedName, String attr1Name, AttributeDescriptor attr1Desc) { return getAttrDescStrict( namespaceUri, localName, qualifiedName, attr1Name, attr1Desc, null, null, null, null); } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns null, hence the * name "...Strict". Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDescStrict( String namespaceUri, String localName, String qualifiedName, String attr1Name, AttributeDescriptor attr1Desc, String attr2Name, AttributeDescriptor attr2Desc) { return getAttrDescStrict( namespaceUri, localName, qualifiedName, attr1Name, attr1Desc, attr2Name, attr2Desc, null, null); } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns null, hence the * name "...Strict". Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDescStrict( String namespaceUri, String localName, String qualifiedName, String attr1Name, AttributeDescriptor attr1Desc, String attr2Name, AttributeDescriptor attr2Desc, String attr3Name, AttributeDescriptor attr3Desc) { if ((namespaceUri != null) && !namespaceUri.isEmpty()) // We accept any attribute in the global attribute partition return CommonAttributeDescriptors.ATTR_DESC_GENERIC; if ((localName == null) || localName.equals(qualifiedName)) { if (attr1Name.equals(qualifiedName)) return attr1Desc; if ((attr2Name != null) && attr2Name.equals(qualifiedName)) return attr2Desc; if ((attr3Name != null) && attr3Name.equals(qualifiedName)) return attr3Desc; // We also always accept "xmlns" declarations. if ("xmlns".equals(qualifiedName)) return CommonAttributeDescriptors.ATTR_DESC_GENERIC; return null; } else { // We have a prefix. // We accept any attribute in the global attribute partition // FIXME: This is probably not correct. A prefix could be bound // to the empty namespace, in which case the attribute would // be in the per-element-type partition. return CommonAttributeDescriptors.ATTR_DESC_GENERIC; } } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns the generic * attribute descriptor. Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDesc( String namespaceUri, String localName, String qualifiedName, Map nameMap) { if (((namespaceUri == null) || ((namespaceUri != null) && namespaceUri.isEmpty())) && ((localName == null) || localName.equals(qualifiedName))) { // The attribute is in the per-element-type partition // FIXME: This is probably not correct. A prefix could be bound // to the empty namespace, in which case the attribute would // be in the per-element-type partition. AttributeDescriptor d = nameMap.get(qualifiedName.toLowerCase()); if (d != null) return d; } return CommonAttributeDescriptors.ATTR_DESC_GENERIC; } /** * Try to get the attribute descriptor from a map. If no attribute * descriptor matches and the attribute is not in the global attribute * partition and is not called "xmlns", this method returns the generic * attribute descriptor. Attribute name comparisons are case-sensitive! */ protected static AttributeDescriptor getAttrDesc( String namespaceUri, String localName, String qualifiedName, String attr1Name, AttributeDescriptor attr1Desc) { if (((namespaceUri == null) || ((namespaceUri != null) && namespaceUri.isEmpty())) && ((localName == null) || localName.equals(qualifiedName))) { // The attribute is in the per-element-type partition // FIXME: This is probably not correct. A prefix could be bound // to the empty namespace, in which case the attribute would // be in the per-element-type partition. if (attr1Name.equals(qualifiedName)) return attr1Desc; } return CommonAttributeDescriptors.ATTR_DESC_GENERIC; } // ========================================================================= public URL getUrlAttr(String name) { return (URL) getAttributeNativeData(name); } public URL setUrlAttr(AttributeDescriptor d, String name, URL source) { return setAttributeDirect(d, name, source); } public Wom3Clear getClearAttr(String name) { return (Wom3Clear) getAttributeNativeData(name); } public Wom3Clear setClearAttr( AttributeDescriptor d, String name, Wom3Clear clear) { return setAttributeDirect(d, name, clear); } public DateTime setDatetimeAttr(String name) { return (DateTime) getAttributeNativeData(name); } public DateTime setDatetimeAttr( AttributeDescriptor d, String name, DateTime timestamp) { return setAttributeDirect(d, name, timestamp); } public Wom3HorizAlign getAlignAttr(String name) { return (Wom3HorizAlign) getAttributeNativeData(name); } public Wom3HorizAlign setAlignAttr( AttributeDescriptor d, String name, Wom3HorizAlign align) { return setAttributeDirect(d, name, align); } public Wom3TableVAlign getTableVAlignAttr(String name) { return (Wom3TableVAlign) getAttributeNativeData(name); } public Wom3TableVAlign setTableVAlignAttr( AttributeDescriptor d, String name, Wom3TableVAlign valign) { return setAttributeDirect(d, name, valign); } public Wom3Color getColorAttr(String name) { return (Wom3Color) getAttributeNativeData(name); } public Wom3Color setColorAttr( AttributeDescriptor d, String name, Wom3Color color) { return setAttributeDirect(d, name, color); } // ========================================================================= public String getStringAttr(String name) { // getAttribute() would return "" for non-existing attributes. // But getStringAttr() is called for our WOM specific getter methods // which must return null for non-existing attributes. //return getAttribute(name); Wom3Attribute attributeNode = getAttributeNode(name); if (attributeNode == null) return null; return attributeNode.getNodeValue(); } public String setStringAttr( AttributeDescriptor d, String name, String value) { return setAttributeDirect(d, name, value); } public Integer getIntAttr(String name) { return (Integer) getAttributeNativeData(name); } public Integer setIntAttr( AttributeDescriptor d, String name, Integer value) { return setAttributeDirect(d, name, value); } public boolean getBoolAttr(String name) { return getAttributeNativeData(name) != null; } public boolean setBoolAttr( AttributeDescriptor d, String name, boolean value) { return setAttributeDirect(d, name, value) != null; } public Wom3ValueWithUnit getValueWithUnitAttr(String name) { return (Wom3ValueWithUnit) getAttributeNativeData(name); } public Wom3ValueWithUnit setValueWithUnitAttr( AttributeDescriptor d, String name, Wom3ValueWithUnit value) { return setAttributeDirect(d, name, value); } } BigImpl.java000066400000000000000000000023551335270560400372000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Big; public class BigImpl extends BackboneWomElemWithUnivAttrs implements Wom3Big { private static final long serialVersionUID = 1L; // ========================================================================= public BigImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "big"; } } BlockquoteImpl.java000066400000000000000000000042101335270560400405770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Blockquote; public class BlockquoteImpl extends BackboneWomElemWithCoreAttrs implements Wom3Blockquote { private static final long serialVersionUID = 1L; // ========================================================================= public BlockquoteImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "blockquote"; } // ========================================================================= @Override public URL getCite() { return getUrlAttr("cite"); } @Override public URL setCite(URL source) { return setUrlAttr(CommonAttributeDescriptors.ATTR_DESC_CITE, "cite", source); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("cite", CommonAttributeDescriptors.ATTR_DESC_CITE); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } BodyImpl.java000066400000000000000000000026721335270560400373760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Body; public class BodyImpl extends BackboneContainer implements Wom3Body { private static final long serialVersionUID = 1L; // ========================================================================= public BodyImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "body"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } BoldImpl.java000066400000000000000000000023571335270560400373610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Bold; public class BoldImpl extends BackboneWomElemWithUnivAttrs implements Wom3Bold { private static final long serialVersionUID = 1L; // ========================================================================= public BoldImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "b"; } } BreakImpl.java000066400000000000000000000042171335270560400375220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Break; import org.sweble.wom3.Wom3Clear; public class BreakImpl extends BackboneWomElemWithCoreAttrs implements Wom3Break { private static final long serialVersionUID = 1L; // ========================================================================= public BreakImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "br"; } // ========================================================================= @Override public Wom3Clear getClear() { return getClearAttr("clear"); } @Override public Wom3Clear setClear(Wom3Clear clear) { return setClearAttr(CommonAttributeDescriptors.ATTR_DESC_CLEAR, "clear", clear); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(CoreAttributes.getNameMap()); NAME_MAP.put("clear", CommonAttributeDescriptors.ATTR_DESC_CLEAR); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } CategoryImpl.java000066400000000000000000000056511335270560400402560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Category; import org.sweble.wom3.Wom3Title; public class CategoryImpl extends BackboneWomElement implements Wom3Category { private static final long serialVersionUID = 1L; // ========================================================================= public CategoryImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "category"; } // ========================================================================= @Override public String getName() { return getAttribute("name"); } @Override public String setName(String name) { return setAttributeDirect(ATTR_DESC_NAME, "name", name); } @Override public Wom3Title getLinkTitle() { // TODO: Implement throw new UnsupportedOperationException(); } @Override public String getLinkTarget() { // TODO: Implement throw new UnsupportedOperationException(); /* // TODO: It's not always "Category:"! return "Category:" + getName(); */ } // ========================================================================= public static final AttrDescName ATTR_DESC_NAME = new AttrDescName(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "name", ATTR_DESC_NAME); } public static final class AttrDescName extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); Toolbox.checkValidCategory(verified.strValue); CategoryImpl catImpl = (CategoryImpl) parent; ArticleImpl pageImpl = (ArticleImpl) catImpl.getParentNode(); if (pageImpl != null) pageImpl.validateCategoryNameChange(catImpl, verified.strValue); return true; } } } CdataSection.java000066400000000000000000000033241335270560400402130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3CdataSection; import org.w3c.dom.Node; public class CdataSection extends XmlTextBase implements Wom3CdataSection { private static final long serialVersionUID = 1L; private String data; // ========================================================================= public CdataSection(DocumentImpl owner) { super(owner); } public CdataSection(DocumentImpl owner, String data) { super(owner); this.data = data; } // ========================================================================= @Override public short getNodeType() { return Node.CDATA_SECTION_NODE; } @Override public String getNodeName() { return "#cdata-section"; } // ========================================================================= @Override public String getData() { return data; } @Override public void setData(String data) { assertWritableOnDocument(); this.data = data; } } CenterImpl.java000066400000000000000000000023741335270560400377200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Center; public class CenterImpl extends BackboneWomElemWithUnivAttrs implements Wom3Center { private static final long serialVersionUID = 1L; // ========================================================================= public CenterImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "center"; } } ChildDescriptor.java000066400000000000000000000033741335270560400407410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Node; public class ChildDescriptor { public static final int REQUIRED = 1; public static final int MULTIPLE = 2; private final String namespaceUri; private final String tag; private final boolean required; private final boolean multiple; // ========================================================================= public ChildDescriptor(String namespaceUri, String tag, int flags) { this.namespaceUri = namespaceUri; this.tag = tag; this.required = (flags & REQUIRED) == REQUIRED; this.multiple = (flags & MULTIPLE) == MULTIPLE; } // ========================================================================= public String getTag() { return tag; } public boolean matches(Wom3Node n) { return tag.equals(n.getNodeName()) && ((namespaceUri == null) || (namespaceUri.equals(n.getNamespaceURI()))); } public boolean isRequired() { return required; } public boolean isMultiple() { return multiple; } } ChildrenSubset.java000066400000000000000000000033671335270560400405770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import org.sweble.wom3.Wom3Node; public class ChildrenSubset extends ArrayList { private static final long serialVersionUID = 1L; public ChildrenSubset() { } public ChildrenSubset(int initialCapacity) { super(initialCapacity); } public Wom3Node getFirstOrNull() { if (isEmpty()) return null; return get(0); } public void insertAfter( Backbone prev, Class type, T newChild) { if (prev == null) { // The new was inserted as the very first node of the parent. add(0, newChild); } else { Backbone p = prev; while ((p != null) && !type.isInstance(p)) p = p.getPreviousSibling(); if (p == null) { add(0, newChild); } else { // We found the node preceding the new node that must be part // of this list due to its type. int i = indexOf(p); if (i == -1) throw new InternalError(); add(i + 1, newChild); } } } } CiteImpl.java000066400000000000000000000023621335270560400373610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Cite; public class CiteImpl extends BackboneWomElemWithUnivAttrs implements Wom3Cite { private static final long serialVersionUID = 1L; // ========================================================================= public CiteImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "cite"; } } CodeImpl.java000066400000000000000000000023621335270560400373470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Code; public class CodeImpl extends BackboneWomElemWithUnivAttrs implements Wom3Code { private static final long serialVersionUID = 1L; // ========================================================================= public CodeImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "code"; } } ColorImpl.java000066400000000000000000000311371335270560400375550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Color; public class ColorImpl implements Wom3Color { private static final long serialVersionUID = 1L; private char r; private char g; private char b; // ========================================================================= public ColorImpl(int r, int g, int b) { this.r = (char) r; this.g = (char) g; this.b = (char) b; } @Override public int getRed() { return this.r; } @Override public int getGreen() { return this.g; } @Override public int getBlue() { return this.b; } @Override public String toString() { return String.format("#%02X%02X%02X", (int) r, (int) g, (int) b); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + b; result = prime * result + g; result = prime * result + r; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ColorImpl other = (ColorImpl) obj; if (b != other.b) return false; if (g != other.g) return false; if (r != other.r) return false; return true; } // ========================================================================= private static final Map namedColors; static { namedColors = new HashMap(); namedColors.put("aliceblue", new ColorImpl(0xF0, 0xF8, 0xFF)); namedColors.put("antiquewhite", new ColorImpl(0xFA, 0xEB, 0xD7)); namedColors.put("aqua", new ColorImpl(0x00, 0xFF, 0xFF)); namedColors.put("aquamarine", new ColorImpl(0x7F, 0xFF, 0xD4)); namedColors.put("azure", new ColorImpl(0xF0, 0xFF, 0xFF)); namedColors.put("beige", new ColorImpl(0xF5, 0xF5, 0xDC)); namedColors.put("bisque", new ColorImpl(0xFF, 0xE4, 0xC4)); namedColors.put("black", new ColorImpl(0x00, 0x00, 0x00)); namedColors.put("blanchedalmond", new ColorImpl(0xFF, 0xEB, 0xCD)); namedColors.put("blue", new ColorImpl(0x00, 0x00, 0xFF)); namedColors.put("blueviolet", new ColorImpl(0x8A, 0x2B, 0xE2)); namedColors.put("brown", new ColorImpl(0xA5, 0x2A, 0x2A)); namedColors.put("burlywood", new ColorImpl(0xDE, 0xB8, 0x87)); namedColors.put("cadetblue", new ColorImpl(0x5F, 0x9E, 0xA0)); namedColors.put("chartreuse", new ColorImpl(0x7F, 0xFF, 0x00)); namedColors.put("chocolate", new ColorImpl(0xD2, 0x69, 0x1E)); namedColors.put("coral", new ColorImpl(0xFF, 0x7F, 0x50)); namedColors.put("cornflowerblue", new ColorImpl(0x64, 0x95, 0xED)); namedColors.put("cornsilk", new ColorImpl(0xFF, 0xF8, 0xDC)); namedColors.put("crimson", new ColorImpl(0xDC, 0x14, 0x3C)); namedColors.put("cyan", new ColorImpl(0x00, 0xFF, 0xFF)); namedColors.put("darkblue", new ColorImpl(0x00, 0x00, 0x8B)); namedColors.put("darkcyan", new ColorImpl(0x00, 0x8B, 0x8B)); namedColors.put("darkgoldenrod", new ColorImpl(0xB8, 0x86, 0x0B)); namedColors.put("darkgray", new ColorImpl(0xA9, 0xA9, 0xA9)); namedColors.put("darkgrey", new ColorImpl(0xA9, 0xA9, 0xA9)); namedColors.put("darkgreen", new ColorImpl(0x00, 0x64, 0x00)); namedColors.put("darkkhaki", new ColorImpl(0xBD, 0xB7, 0x6B)); namedColors.put("darkmagenta", new ColorImpl(0x8B, 0x00, 0x8B)); namedColors.put("darkolivegreen", new ColorImpl(0x55, 0x6B, 0x2F)); namedColors.put("darkorange", new ColorImpl(0xFF, 0x8C, 0x00)); namedColors.put("darkorchid", new ColorImpl(0x99, 0x32, 0xCC)); namedColors.put("darkred", new ColorImpl(0x8B, 0x00, 0x00)); namedColors.put("darksalmon", new ColorImpl(0xE9, 0x96, 0x7A)); namedColors.put("darkseagreen", new ColorImpl(0x8F, 0xBC, 0x8F)); namedColors.put("darkslateblue", new ColorImpl(0x48, 0x3D, 0x8B)); namedColors.put("darkslategray", new ColorImpl(0x2F, 0x4F, 0x4F)); namedColors.put("darkslategrey", new ColorImpl(0x2F, 0x4F, 0x4F)); namedColors.put("darkturquoise", new ColorImpl(0x00, 0xCE, 0xD1)); namedColors.put("darkviolet", new ColorImpl(0x94, 0x00, 0xD3)); namedColors.put("deeppink", new ColorImpl(0xFF, 0x14, 0x93)); namedColors.put("deepskyblue", new ColorImpl(0x00, 0xBF, 0xFF)); namedColors.put("dimgray", new ColorImpl(0x69, 0x69, 0x69)); namedColors.put("dimgrey", new ColorImpl(0x69, 0x69, 0x69)); namedColors.put("dodgerblue", new ColorImpl(0x1E, 0x90, 0xFF)); namedColors.put("firebrick", new ColorImpl(0xB2, 0x22, 0x22)); namedColors.put("floralwhite", new ColorImpl(0xFF, 0xFA, 0xF0)); namedColors.put("forestgreen", new ColorImpl(0x22, 0x8B, 0x22)); namedColors.put("fuchsia", new ColorImpl(0xFF, 0x00, 0xFF)); namedColors.put("gainsboro", new ColorImpl(0xDC, 0xDC, 0xDC)); namedColors.put("ghostwhite", new ColorImpl(0xF8, 0xF8, 0xFF)); namedColors.put("gold", new ColorImpl(0xFF, 0xD7, 0x00)); namedColors.put("goldenrod", new ColorImpl(0xDA, 0xA5, 0x20)); namedColors.put("gray", new ColorImpl(0x80, 0x80, 0x80)); namedColors.put("grey", new ColorImpl(0x80, 0x80, 0x80)); namedColors.put("green", new ColorImpl(0x00, 0x80, 0x00)); namedColors.put("greenyellow", new ColorImpl(0xAD, 0xFF, 0x2F)); namedColors.put("honeydew", new ColorImpl(0xF0, 0xFF, 0xF0)); namedColors.put("hotpink", new ColorImpl(0xFF, 0x69, 0xB4)); namedColors.put("indianred", new ColorImpl(0xCD, 0x5C, 0x5C)); namedColors.put("indigo", new ColorImpl(0x4B, 0x00, 0x82)); namedColors.put("ivory", new ColorImpl(0xFF, 0xFF, 0xF0)); namedColors.put("khaki", new ColorImpl(0xF0, 0xE6, 0x8C)); namedColors.put("lavender", new ColorImpl(0xE6, 0xE6, 0xFA)); namedColors.put("lavenderblush", new ColorImpl(0xFF, 0xF0, 0xF5)); namedColors.put("lawngreen", new ColorImpl(0x7C, 0xFC, 0x00)); namedColors.put("lemonchiffon", new ColorImpl(0xFF, 0xFA, 0xCD)); namedColors.put("lightblue", new ColorImpl(0xAD, 0xD8, 0xE6)); namedColors.put("lightcoral", new ColorImpl(0xF0, 0x80, 0x80)); namedColors.put("lightcyan", new ColorImpl(0xE0, 0xFF, 0xFF)); namedColors.put("lightgoldenrodyellow", new ColorImpl(0xFA, 0xFA, 0xD2)); namedColors.put("lightgray", new ColorImpl(0xD3, 0xD3, 0xD3)); namedColors.put("lightgrey", new ColorImpl(0xD3, 0xD3, 0xD3)); namedColors.put("lightgreen", new ColorImpl(0x90, 0xEE, 0x90)); namedColors.put("lightpink", new ColorImpl(0xFF, 0xB6, 0xC1)); namedColors.put("lightsalmon", new ColorImpl(0xFF, 0xA0, 0x7A)); namedColors.put("lightseagreen", new ColorImpl(0x20, 0xB2, 0xAA)); namedColors.put("lightskyblue", new ColorImpl(0x87, 0xCE, 0xFA)); namedColors.put("lightslategray", new ColorImpl(0x77, 0x88, 0x99)); namedColors.put("lightslategrey", new ColorImpl(0x77, 0x88, 0x99)); namedColors.put("lightsteelblue", new ColorImpl(0xB0, 0xC4, 0xDE)); namedColors.put("lightyellow", new ColorImpl(0xFF, 0xFF, 0xE0)); namedColors.put("lime", new ColorImpl(0x00, 0xFF, 0x00)); namedColors.put("limegreen", new ColorImpl(0x32, 0xCD, 0x32)); namedColors.put("linen", new ColorImpl(0xFA, 0xF0, 0xE6)); namedColors.put("magenta", new ColorImpl(0xFF, 0x00, 0xFF)); namedColors.put("maroon", new ColorImpl(0x80, 0x00, 0x00)); namedColors.put("mediumaquamarine", new ColorImpl(0x66, 0xCD, 0xAA)); namedColors.put("mediumblue", new ColorImpl(0x00, 0x00, 0xCD)); namedColors.put("mediumorchid", new ColorImpl(0xBA, 0x55, 0xD3)); namedColors.put("mediumpurple", new ColorImpl(0x93, 0x70, 0xDB)); namedColors.put("mediumseagreen", new ColorImpl(0x3C, 0xB3, 0x71)); namedColors.put("mediumslateblue", new ColorImpl(0x7B, 0x68, 0xEE)); namedColors.put("mediumspringgreen", new ColorImpl(0x00, 0xFA, 0x9A)); namedColors.put("mediumturquoise", new ColorImpl(0x48, 0xD1, 0xCC)); namedColors.put("mediumvioletred", new ColorImpl(0xC7, 0x15, 0x85)); namedColors.put("midnightblue", new ColorImpl(0x19, 0x19, 0x70)); namedColors.put("mintcream", new ColorImpl(0xF5, 0xFF, 0xFA)); namedColors.put("mistyrose", new ColorImpl(0xFF, 0xE4, 0xE1)); namedColors.put("moccasin", new ColorImpl(0xFF, 0xE4, 0xB5)); namedColors.put("navajowhite", new ColorImpl(0xFF, 0xDE, 0xAD)); namedColors.put("navy", new ColorImpl(0x00, 0x00, 0x80)); namedColors.put("oldlace", new ColorImpl(0xFD, 0xF5, 0xE6)); namedColors.put("olive", new ColorImpl(0x80, 0x80, 0x00)); namedColors.put("olivedrab", new ColorImpl(0x6B, 0x8E, 0x23)); namedColors.put("orange", new ColorImpl(0xFF, 0xA5, 0x00)); namedColors.put("orangered", new ColorImpl(0xFF, 0x45, 0x00)); namedColors.put("orchid", new ColorImpl(0xDA, 0x70, 0xD6)); namedColors.put("palegoldenrod", new ColorImpl(0xEE, 0xE8, 0xAA)); namedColors.put("palegreen", new ColorImpl(0x98, 0xFB, 0x98)); namedColors.put("paleturquoise", new ColorImpl(0xAF, 0xEE, 0xEE)); namedColors.put("palevioletred", new ColorImpl(0xDB, 0x70, 0x93)); namedColors.put("papayawhip", new ColorImpl(0xFF, 0xEF, 0xD5)); namedColors.put("peachpuff", new ColorImpl(0xFF, 0xDA, 0xB9)); namedColors.put("peru", new ColorImpl(0xCD, 0x85, 0x3F)); namedColors.put("pink", new ColorImpl(0xFF, 0xC0, 0xCB)); namedColors.put("plum", new ColorImpl(0xDD, 0xA0, 0xDD)); namedColors.put("powderblue", new ColorImpl(0xB0, 0xE0, 0xE6)); namedColors.put("purple", new ColorImpl(0x80, 0x00, 0x80)); namedColors.put("red", new ColorImpl(0xFF, 0x00, 0x00)); namedColors.put("rosybrown", new ColorImpl(0xBC, 0x8F, 0x8F)); namedColors.put("royalblue", new ColorImpl(0x41, 0x69, 0xE1)); namedColors.put("saddlebrown", new ColorImpl(0x8B, 0x45, 0x13)); namedColors.put("salmon", new ColorImpl(0xFA, 0x80, 0x72)); namedColors.put("sandybrown", new ColorImpl(0xF4, 0xA4, 0x60)); namedColors.put("seagreen", new ColorImpl(0x2E, 0x8B, 0x57)); namedColors.put("seashell", new ColorImpl(0xFF, 0xF5, 0xEE)); namedColors.put("sienna", new ColorImpl(0xA0, 0x52, 0x2D)); namedColors.put("silver", new ColorImpl(0xC0, 0xC0, 0xC0)); namedColors.put("skyblue", new ColorImpl(0x87, 0xCE, 0xEB)); namedColors.put("slateblue", new ColorImpl(0x6A, 0x5A, 0xCD)); namedColors.put("slategray", new ColorImpl(0x70, 0x80, 0x90)); namedColors.put("slategrey", new ColorImpl(0x70, 0x80, 0x90)); namedColors.put("snow", new ColorImpl(0xFF, 0xFA, 0xFA)); namedColors.put("springgreen", new ColorImpl(0x00, 0xFF, 0x7F)); namedColors.put("steelblue", new ColorImpl(0x46, 0x82, 0xB4)); namedColors.put("tan", new ColorImpl(0xD2, 0xB4, 0x8C)); namedColors.put("teal", new ColorImpl(0x00, 0x80, 0x80)); namedColors.put("thistle", new ColorImpl(0xD8, 0xBF, 0xD8)); namedColors.put("tomato", new ColorImpl(0xFF, 0x63, 0x47)); namedColors.put("turquoise", new ColorImpl(0x40, 0xE0, 0xD0)); namedColors.put("violet", new ColorImpl(0xEE, 0x82, 0xEE)); namedColors.put("wheat", new ColorImpl(0xF5, 0xDE, 0xB3)); namedColors.put("white", new ColorImpl(0xFF, 0xFF, 0xFF)); namedColors.put("whitesmoke", new ColorImpl(0xF5, 0xF5, 0xF5)); namedColors.put("yellow", new ColorImpl(0xFF, 0xFF, 0x00)); namedColors.put("yellowgreen", new ColorImpl(0x9A, 0xCD, 0x32)); } public static ColorImpl valueOf(String color) { color = color.trim(); String c = color.toLowerCase(); try { if (c.startsWith("#")) { if (c.length() == 4) { int r = (hexToInt(c.charAt(1)) * 0xFF) / 0xF; int g = (hexToInt(c.charAt(2)) * 0xFF) / 0xF; int b = (hexToInt(c.charAt(3)) * 0xFF) / 0xF; return new ColorImpl(r, g, b); } else if (c.length() == 7) { int r = hexToInt(c.charAt(1)) * 0x10 + hexToInt(c.charAt(2)); int g = hexToInt(c.charAt(3)) * 0x10 + hexToInt(c.charAt(4)); int b = hexToInt(c.charAt(5)) * 0x10 + hexToInt(c.charAt(6)); return new ColorImpl(r, g, b); } } else { ColorImpl named = namedColors.get(c); if (named != null) return named; } } catch (IllegalArgumentException e) { } throw new IllegalArgumentException("Not a valid color: `" + color + "'"); } private static int hexToInt(char ch) { if (ch >= '0' && ch <= '9') return ch - '0'; else if (ch >= 'a' && ch <= 'f') return ch - 'a' + 0x0A; else throw new IllegalArgumentException(); } } CommentImpl.java000066400000000000000000000041221335270560400400730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Text; public class CommentImpl extends BackboneContainer implements Wom3Comment { private static final long serialVersionUID = 1L; // ========================================================================= public CommentImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "comment"; } @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) { if (!(child instanceof Wom3Text) && !(child instanceof Wom3Rtd)) doesNotAllowInsertion(prev, child); } } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) { if (!(newChild instanceof Wom3Text) && !(newChild instanceof Wom3Rtd)) doesNotAllowReplacement(oldChild, newChild); } } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } CommonAttributeDescriptors.java000066400000000000000000000306011335270560400432060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public class CommonAttributeDescriptors { public static final AttributeDescriptor ATTR_DESC_ALIGN_LCR = new AttrDescAlignLcr(); public static final AttributeDescriptor ATTR_DESC_ALIGN_LCRJ = new AttrDescAlignLcrj(); public static final AttributeDescriptor ATTR_DESC_ALIGN_LCRJC = new AttrDescAlignLcrjc(); public static final AttributeDescriptor ATTR_DESC_ALIGN_TBLR = new AttrDescAlignTblr(); public static final AttributeDescriptor ATTR_DESC_ALIGN_TMBB = new AttrDescAlignTmbb(); public static final AttributeDescriptor ATTR_DESC_BGCOLOR = new AttrDescAlignBgColor(); public static final AttributeDescriptor ATTR_DESC_CITE = new AttrDescUrl(); public static final AttributeDescriptor ATTR_DESC_URL = new AttrDescUrl(); public static final AttributeDescriptor ATTR_DESC_CLEAR = new AttrDescClear(); public static final AttributeDescriptor ATTR_DESC_COLOR = new AttrDescColor(); public static final AttributeDescriptor ATTR_DESC_COMPACT = new AttrDescCompact(); public static final AttributeDescriptor ATTR_DESC_DATETIME = new AttrDescDatetime(); public static final AttributeDescriptor ATTR_DESC_DID = new AttrDescDId(); public static final AttributeDescriptor ATTR_DESC_FACE = new AttrDescFace(); public static final AttributeDescriptor ATTR_DESC_FONT_SIZE = new AttrDescFontSize(); public static final AttributeDescriptor ATTR_DESC_GENERIC = new AttrDescGeneric(); public static final AttributeDescriptor ATTR_DESC_HEIGHT_LENGTH = new AttrDescHeightLength(); public static final AttributeDescriptor ATTR_DESC_NOSHADE = new AttrDescNoShade(); public static final AttributeDescriptor ATTR_DESC_SIZE = new AttrDescSize(); public static final AttributeDescriptor ATTR_DESC_WIDTH_LENGTH = new AttrDescWidthLength(); // ========================================================================= public static final class AttrDescAlignLcr extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LCR_ALIGN.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescAlignLcrj extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LCRJ_ALIGN.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescAlignLcrjc extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LCRJC_ALIGN.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescAlignTblr extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.TBLR_ALIGN.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescAlignTmbb extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.TMBB_VALIGN.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescAlignBgColor extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.COLOR.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescUrl extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.URL.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescClear extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.CLEAR.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescColor extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.COLOR.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescCompact extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "compact"); } } // ========================================================================= public static final class AttrDescDatetime extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.DATETIME.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescDId extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescFace extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescGeneric extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescHeightLength extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LENGTH.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescNoShade extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "noshade"); } } // ========================================================================= public static final class AttrDescFontSize extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.FONTSIZE.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescSize extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescWidthLength extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LENGTH.verifyAndConvert(parent, verified); } } } CoreAttributes.java000066400000000000000000000075671335270560400406260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; public abstract class CoreAttributes { public static final AttrDescId ATTR_DESC_ID = new AttrDescId(); public static final AttrDescClass ATTR_DESC_CLASS = new AttrDescClass(); public static final AttrDescStyle ATTR_DESC_STYLE = new AttrDescStyle(); public static final AttrDescTitle ATTR_DESC_TITLE = new AttrDescTitle(); // ========================================================================= public static final class AttrDescId extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.ID.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescClass extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NMTOKENS.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescStyle extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.STYLESHEET.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescTitle extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } // ========================================================================= private static Map NAME_MAP; public synchronized static Map getNameMap() { Map nameMap = NAME_MAP; if (nameMap == null) { nameMap = new HashMap(); nameMap.put("id", ATTR_DESC_ID); nameMap.put("class", ATTR_DESC_CLASS); nameMap.put("style", ATTR_DESC_STYLE); nameMap.put("title", ATTR_DESC_TITLE); NAME_MAP = nameMap; } return nameMap; } public static AttributeDescriptor getDescriptor(String name) { return getNameMap().get(name); } } DefinitionListDefImpl.java000066400000000000000000000024441335270560400420410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3DefinitionListDef; public class DefinitionListDefImpl extends BackboneWomElemWithUnivAttrs implements Wom3DefinitionListDef { private static final long serialVersionUID = 1L; // ========================================================================= public DefinitionListDefImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "dd"; } } DefinitionListImpl.java000066400000000000000000000234471335270560400414300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3DefinitionList; import org.sweble.wom3.Wom3DefinitionListDef; import org.sweble.wom3.Wom3DefinitionListItem; import org.sweble.wom3.Wom3DefinitionListTerm; import org.sweble.wom3.Wom3Node; public class DefinitionListImpl extends BackboneWomElemWithCoreAttrs implements Wom3DefinitionList { private static final long serialVersionUID = 1L; private DefinitionListTermImpl implicitFirstDt; private ArrayList terms = new ArrayList(); // ========================================================================= public DefinitionListImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "dl"; } // ========================================================================= @Override public boolean isCompact() { return getBoolAttr("compact"); } @Override public boolean setCompact(boolean compact) { return setBoolAttr(CommonAttributeDescriptors.ATTR_DESC_COMPACT, "compact", compact); } // ========================================================================= @Override public int getTermNum() { return terms.size(); } @Override public Collection getTerms() { return Collections.unmodifiableCollection(terms); } @Override public Wom3DefinitionListTerm getTerm(int index) throws IndexOutOfBoundsException { return terms.get(index); } @Override public Wom3DefinitionListTerm replaceTerm( int index, Wom3DefinitionListTerm term) throws IndexOutOfBoundsException { assertWritableOnDocument(); Wom3DefinitionListTerm old = getTerm(index); terms.set(index, term); replaceChildNoNotify(term, old); removeDefs(old); appendDefs(term); return old; } @Override public Wom3DefinitionListTerm removeTerm(int index) throws IndexOutOfBoundsException { assertWritableOnDocument(); Wom3DefinitionListTerm old = terms.remove(index); removeChildNoNotify(old); removeDefs(old); return old; } @Override public void appendTerm(Wom3DefinitionListTerm term) { assertWritableOnDocument(); terms.add(term); appendChildNoNotify(term); appendDefs(term); } @Override public void insertTerm(int beforeIndex, Wom3DefinitionListTerm term) throws IndexOutOfBoundsException { assertWritableOnDocument(); if (beforeIndex < 0 || beforeIndex > terms.size()) throw new IndexOutOfBoundsException(); if (beforeIndex == terms.size()) { appendTerm(term); } else { insertBeforeNoNotify(terms.get(beforeIndex), term); } terms.add(beforeIndex, term); appendDefs(term); } private void removeDefs(Wom3DefinitionListTerm removedTerm) { // The term itself keeps its children. We just unlink them from this //
    element. for (Wom3DefinitionListDef dd : removedTerm.getDefs()) removeChildNoNotify(dd); } private void appendDefs(Wom3DefinitionListTerm addedTerm) { Wom3Node before = addedTerm.getNextSibling(); if (before != null) { for (Wom3DefinitionListDef dd : addedTerm.getDefs()) insertBeforeNoNotify(before, dd); } else { for (Wom3DefinitionListDef dd : addedTerm.getDefs()) appendChildNoNotify(dd); } } // ========================================================================= @Override public int getItemNum() { int count = 0; for (Wom3DefinitionListTerm term : terms) count += 1 + term.getDefNum(); return count; } @Override public Collection getItems() { ArrayList items = new ArrayList(terms.size() * 5); if (implicitFirstDt != null) items.addAll(implicitFirstDt.getDefs()); for (Wom3DefinitionListTerm term : terms) { items.add(term); items.addAll(term.getDefs()); } return Collections.unmodifiableCollection(items); } @Override public Wom3DefinitionListItem getItem(int index) throws IndexOutOfBoundsException { Wom3DefinitionListItem item = getItemOrNullAtSize(index); if (item == null) throw new IndexOutOfBoundsException(); return item; } @Override public Wom3DefinitionListItem replaceItem( int index, Wom3DefinitionListItem item) throws IndexOutOfBoundsException { Wom3DefinitionListItem old = getItem(index); if (old.getClass() != item.getClass()) throw new UnsupportedOperationException("Can only replace item with another item of the same type!"); replaceChild(item, old); return old; } @Override public Wom3DefinitionListItem removeItem(int index) throws IndexOutOfBoundsException { Wom3DefinitionListItem old = getItem(index); removeChild(old); return old; } @Override public void appendItem(Wom3DefinitionListItem item) { appendChild(item); } @Override public void insertItem(int beforeIndex, Wom3DefinitionListItem item) throws IndexOutOfBoundsException { Wom3DefinitionListItem before = getItemOrNullAtSize(beforeIndex); if (before == null) { appendChild(item); } else { insertBefore(item, before); } } private Wom3DefinitionListItem getItemOrNullAtSize(int index) { int count = 0; if (implicitFirstDt != null) { int sub = index; int subSize = implicitFirstDt.getDefNum(); if (sub < subSize) return implicitFirstDt.getDef(sub); count += subSize; } for (Wom3DefinitionListTerm term : terms) { if (index == count) return term; ++count; int sub = index - count; int subSize = term.getDefNum(); if (sub < subSize) return term.getDef(sub); count += subSize; } if (index == count) return null; throw new IndexOutOfBoundsException(); } // ========================================================================= @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3DefinitionListDef) { Backbone p = searchTermForDef(prev); if (prev == null) prev = implicitFirstDt; ((DefinitionListTermImpl) p).defAdded(prev, (Wom3DefinitionListDef) added); } else if (added instanceof Wom3DefinitionListTerm) { DefinitionListTermImpl addedTerm = (DefinitionListTermImpl) added; int i = (prev == null) ? 0 : indexOfTerm(prev) + 1; DefinitionListTermImpl stealFrom = (DefinitionListTermImpl) ((i > 0) ? terms.get(i - 1) : implicitFirstDt); // If the term was added in between the defs of another term, we // have to steal the other term's defs which now are located behind // the inserted term Backbone sFirst = null; Backbone sLast = addedTerm; if (stealFrom != null && !(addedTerm.getNextSibling() instanceof Wom3DefinitionListTerm)) { // Find range of defs to steal while (true) { Backbone n = sLast.getNextSibling(); if (n instanceof Wom3DefinitionListTerm || n == null) break; sLast = n; } sFirst = addedTerm.getNextSibling(); } // Insert term into term array and add the term's defs directly // after the term terms.add(i, addedTerm); appendDefs(addedTerm); if (sLast != addedTerm) { stealFrom.transfer(sFirst, sLast, addedTerm); if (implicitFirstDt != null && implicitFirstDt.getDefNum() == 0) implicitFirstDt = null; } } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed instanceof Wom3DefinitionListDef) { Backbone p = searchTermForDef(prev); ((DefinitionListTermImpl) p).defRemoved((Wom3DefinitionListDef) removed); } else if (removed instanceof Wom3DefinitionListTerm) { int i = (prev == null) ? 0 : indexOfTerm(prev) + 1; terms.remove(i); removeDefs((Wom3DefinitionListTerm) removed); } } private Backbone searchTermForDef(Backbone prev) { // Search backwards for the term to which the added definition will belong Backbone p = prev; while (p != null && !(p instanceof Wom3DefinitionListTerm)) p = p.getPreviousSibling(); // There's no term in front of the inserted definition if (p == null) p = getImplicitFirstDt(); return p; } private Backbone getImplicitFirstDt() { if (implicitFirstDt == null) implicitFirstDt = (DefinitionListTermImpl) getOwnerDocument().createElementNS(Wom3Node.WOM_NS_URI, "dt"); return implicitFirstDt; } private int indexOfTerm(Wom3Node node) { int i = -1; Wom3Node child = getFirstChild(); while (true) { if (child instanceof Wom3DefinitionListTerm) ++i; if (child == node) return i; child = child.getNextSibling(); } } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("compact", CommonAttributeDescriptors.ATTR_DESC_COMPACT); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } DefinitionListTermImpl.java000066400000000000000000000123651335270560400422550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import org.sweble.wom3.Wom3DefinitionListDef; import org.sweble.wom3.Wom3DefinitionListTerm; import org.sweble.wom3.Wom3Node; public class DefinitionListTermImpl extends BackboneWomElemWithUnivAttrs implements Wom3DefinitionListTerm { private static final long serialVersionUID = 1L; private ArrayList defs = new ArrayList(); // ========================================================================= public DefinitionListTermImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "dt"; } // ========================================================================= @Override public int getDefNum() { return defs.size(); } @Override public Collection getDefs() { return Collections.unmodifiableCollection(defs); } @Override public Wom3DefinitionListDef getDef(int index) throws IndexOutOfBoundsException { return defs.get(index); } @Override public Wom3DefinitionListDef replaceDef(int index, Wom3DefinitionListDef def) throws IndexOutOfBoundsException { Backbone parent = getParentNode(); if (parent != null) { Wom3DefinitionListDef old = getDef(index); // Is expected to assertWritable(); parent.replaceChild(def, old); return old; } else { assertWritableOnDocument(); return defs.set(index, def); } } @Override public Wom3DefinitionListDef removeDef(int index) throws IndexOutOfBoundsException { Backbone parent = getParentNode(); if (parent != null) { Wom3DefinitionListDef old = getDef(index); // Is expected to assertWritable(); parent.removeChild(old); return old; } else { assertWritableOnDocument(); return defs.remove(index); } } @Override public void appendDef(Wom3DefinitionListDef def) { Backbone parent = getParentNode(); if (parent != null) { Wom3Node before = null; if (!defs.isEmpty()) { Wom3DefinitionListDef lastDef = defs.get(defs.size() - 1); before = lastDef.getNextSibling(); } else { before = this.getNextSibling(); } if (before == null) { // Is expected to assertWritable(); parent.appendChild(def); } else { // Is expected to assertWritable(); parent.insertBefore(def, before); } } else { assertWritableOnDocument(); defs.add(def); } } @Override public void insertDef(int beforeIndex, Wom3DefinitionListDef def) throws IndexOutOfBoundsException { Backbone parent = getParentNode(); if (parent != null) { int size = defs.size(); if (beforeIndex < 0 || beforeIndex > size) throw new IndexOutOfBoundsException(); if (beforeIndex == size) { // Is expected to assertWritable(); appendDef(def); } else { // Is expected to assertWritable(); parent.insertBefore(def, defs.get(beforeIndex)); } } else { assertWritableOnDocument(); defs.add(beforeIndex, def); } } // ========================================================================= protected void defRemoved(Wom3DefinitionListDef removed) { for (int i = 0; i < defs.size(); ++i) { if (defs.get(i) == removed) { defs.remove(i); return; } } throw new InternalError(); } protected void defAdded(Backbone prev, Wom3DefinitionListDef added) { int i = 0; Backbone p = prev; while (true) { if (p == null) { defs.add(i, added); return; } else if (p instanceof Wom3DefinitionListTerm) { if (p != this) throw new InternalError(); defs.add(i, added); return; } else if (p instanceof Wom3DefinitionListDef) { ++i; } p = p.getPreviousSibling(); } } protected void appendAll(Collection defs) { this.defs.addAll(defs); } protected void transfer( Backbone sFirst, Backbone sLast, DefinitionListTermImpl other) { Backbone d = sLast; int i = defs.size(); while (true) { if (d instanceof Wom3DefinitionListDef) { // Sanity check if (defs.get(--i) != d) throw new InternalError(); } if (d == sFirst) break; // Step over non defs d = d.getPreviousSibling(); } // Sanity check if (d != sFirst) throw new InternalError(); // Do it! other.appendAll(defs.subList(i, defs.size())); while (defs.size() > i) defs.remove(defs.size() - 1); } } DelImpl.java000066400000000000000000000047031335270560400372020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.joda.time.DateTime; import org.sweble.wom3.Wom3Del; public class DelImpl extends BackboneWomElemWithCoreAttrs implements Wom3Del { private static final long serialVersionUID = 1L; // ========================================================================= public DelImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "del"; } // ========================================================================= @Override public URL getCite() { return getUrlAttr("cite"); } @Override public URL setCite(URL url) { return setUrlAttr(CommonAttributeDescriptors.ATTR_DESC_CITE, "cite", url); } @Override public DateTime getDatetime() { return setDatetimeAttr("datetime"); } @Override public DateTime setDatetime(DateTime timestamp) { return setDatetimeAttr(CommonAttributeDescriptors.ATTR_DESC_DATETIME, "datetime", timestamp); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("cite", CommonAttributeDescriptors.ATTR_DESC_CITE); NAME_MAP.put("datetime", CommonAttributeDescriptors.ATTR_DESC_DATETIME); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } DfnImpl.java000066400000000000000000000023551335270560400372060ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Dfn; public class DfnImpl extends BackboneWomElemWithUnivAttrs implements Wom3Dfn { private static final long serialVersionUID = 1L; // ========================================================================= public DfnImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "dfn"; } } DivImpl.java000066400000000000000000000043131335270560400372150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Div; import org.sweble.wom3.Wom3HorizAlign; public class DivImpl extends BackboneWomElemWithCoreAttrs implements Wom3Div { private static final long serialVersionUID = 1L; // ========================================================================= public DivImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "div"; } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) throws IllegalArgumentException { return setAlignAttr(CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ, "align", align); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } DocumentFragmentImpl.java000066400000000000000000000036611335270560400417420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3DocumentFragment; import org.w3c.dom.Node; public class DocumentFragmentImpl extends BackboneWithChildren implements Wom3DocumentFragment { private static final long serialVersionUID = 1L; // ========================================================================= public DocumentFragmentImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getNodeName() { return "#document-fragment"; } @Override public short getNodeType() { return Node.DOCUMENT_FRAGMENT_NODE; } @Override public Backbone getParentNode() { return null; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { } @Override protected void childInserted(Backbone prev, Backbone added) { } @Override protected void childRemoved(Backbone prev, Backbone removed) { } } DocumentImpl.java000066400000000000000000000245161335270560400402600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3DocumentFragment; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.w3c.dom.CDATASection; import org.w3c.dom.DOMConfiguration; import org.w3c.dom.DOMException; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; import org.w3c.dom.EntityReference; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.ProcessingInstruction; public class DocumentImpl extends BackboneWithChildren implements Wom3Document { private static final long serialVersionUID = 1L; private final DomImplementationImpl impl; private Wom3ElementNode root; /** * As long as we don't support creating doctypes or appending them to this * document, this variable will always be null. */ private final DocumentType doctype = null; private String documentUri; /** * Always null for now. */ private final String xmlEncoding = null; /** * Always null for now. */ private final String inputEncoding = null; private boolean strictErrorChecking = true; private boolean readOnly = false; // ========================================================================= public DocumentImpl() { this(DomImplementationImpl.get()); } public DocumentImpl(DomImplementationImpl impl) { super(null); this.impl = impl; } // ========================================================================= @Override public String getNodeName() { return "#document"; } @Override public short getNodeType() { return Node.DOCUMENT_NODE; } @Override public Backbone getParentNode() { return null; } // ========================================================================= // org.w3c.dom.Document - Getters @Override public DomImplementationImpl getImplementation() { return impl; } @Override public DocumentType getDoctype() { return doctype; } @Override public Wom3ElementNode getDocumentElement() { return root; } @Override public Element getElementById(String elementId) { // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @Override public String getTextContent() throws DOMException { return null; } // ========================================================================= // org.w3c.dom.Document - Document URI @Override public String getDocumentURI() { return documentUri; } @Override public void setDocumentURI(String documentURI) { this.documentUri = documentURI; } // ========================================================================= // org.w3c.dom.Document - Creation @Override public AttributeImpl createAttribute(String name) throws DOMException { return new AttributeImpl(this, name); } @Override public AttributeImpl createAttributeNS( String namespaceURI, String qualifiedName) throws DOMException { return new AttributeNsImpl(this, namespaceURI, qualifiedName); } @Override public XmlCommentImpl createComment(String data) { return new XmlCommentImpl(this, data); } @Override public Wom3ElementNode createElement(String tagName) throws DOMException { return impl.createElement(this, tagName); } @Override public Wom3ElementNode createElementNS( String namespaceURI, String qualifiedName) throws DOMException { return impl.createElement(this, namespaceURI, qualifiedName); } @Override public XmlTextImpl createTextNode(String data) { return new XmlTextImpl(this, data); } @Override public CDATASection createCDATASection(String data) throws DOMException { return new CdataSection(this, data); } @Override public Wom3DocumentFragment createDocumentFragment() { return new DocumentFragmentImpl(this); } @Override public EntityReference createEntityReference(String name) throws DOMException { // TODO: Implement throw new UnsupportedOperationException(); } @Override public ProcessingInstruction createProcessingInstruction( String target, String data) throws DOMException { // TODO: Implement throw new UnsupportedOperationException(); } // ========================================================================= // org.w3c.dom.Document - Node adoption @Override public Wom3Node adoptNode(Node source) throws DOMException { if (!isSameNode(source.getOwnerDocument())) { if (source.getNodeType() == Node.ATTRIBUTE_NODE) { Wom3Attribute attr = (Wom3Attribute) source; if (attr.getOwnerElement() != null) { // Only the adopted node's document has to be writable Toolbox.expectType(Backbone.class, source).assertWritableOnDocument(); attr.getOwnerElement().removeAttributeNode(attr); } } else { if (source.getParentNode() != null) { // Only the adopted node's document has to be writable Toolbox.expectType(Backbone.class, source).assertWritableOnDocument(); source.getParentNode().removeChild(source); } } adoptRecursively(source); } return (Wom3Node) source; } private void adoptRecursively(Node source_) { Backbone source = Toolbox.expectType(Backbone.class, source_); switch (source.getNodeType()) { case ATTRIBUTE_NODE: source.adoptTo(this); break; case ELEMENT_NODE: source.adoptTo(this); for (Wom3Node child : source.getWomAttributes()) adoptRecursively(child); for (Wom3Node child : source.getWomChildNodes()) adoptRecursively(child); break; case TEXT_NODE: source.adoptTo(this); break; case DOCUMENT_FRAGMENT_NODE: case ENTITY_REFERENCE_NODE: // Can be adopted (specifics!), only we don't ... // Fall through case PROCESSING_INSTRUCTION_NODE: case CDATA_SECTION_NODE: case COMMENT_NODE: // Can all be adopted (no specifics), only we don't ... // Fall through case DOCUMENT_NODE: case DOCUMENT_TYPE_NODE: case ENTITY_NODE: case NOTATION_NODE: // Cannot be adopted // Fall through default: throw new UnsupportedOperationException("Cannot clone node: " + source.getNodeName()); } } @Override public Node importNode(Node importedNode, boolean deep) throws DOMException { assertWritableOnDocument(); // TODO: Implement throw new UnsupportedOperationException(); } // ========================================================================= // org.w3c.dom.Document - Error checking @Override public boolean getStrictErrorChecking() { return strictErrorChecking; } @Override public void setStrictErrorChecking(boolean strictErrorChecking) { this.strictErrorChecking = strictErrorChecking; } // ========================================================================= // Wom3Document - Read Only @Override public boolean getReadOnly() { return readOnly; } @Override public void setReadOnly(boolean readOnly) { this.readOnly = readOnly; } // ========================================================================= // org.w3c.dom.Document - XML @Override public boolean getXmlStandalone() { return false; } @Override public String getXmlVersion() { return "1.1"; } @Override public void setXmlStandalone(boolean xmlStandalone) throws DOMException { assertWritableOnDocument(); throw new UnsupportedOperationException(); } @Override public void setXmlVersion(String xmlVersion) throws DOMException { assertWritableOnDocument(); throw new UnsupportedOperationException(); } // ========================================================================= // org.w3c.dom.Document - Encoding @Override public String getXmlEncoding() { return xmlEncoding; } @Override public String getInputEncoding() { return inputEncoding; } // ========================================================================= // org.w3c.dom.Document - Document normalization @Override public DOMConfiguration getDomConfig() { // TODO: Implement throw new UnsupportedOperationException(); } @Override public void normalizeDocument() { assertWritableOnDocument(); // TODO: Implement throw new UnsupportedOperationException(); } // ========================================================================= // org.w3c.dom.Document - Node renaming @Override public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException { assertWritableOnDocument(); // TODO: Implement throw new UnsupportedOperationException(); } // ========================================================================= @Override public Wom3Node cloneNode(boolean deep) { throw new UnsupportedOperationException(); } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (prev == null && root == null && child instanceof Wom3ElementNode) return; doesNotAllowInsertion(prev, child); } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (oldChild == root && newChild instanceof Wom3ElementNode) return; doesNotAllowInsertion(oldChild, newChild); } @Override protected void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3ElementNode) root = (Wom3ElementNode) added; } @Override protected void childRemoved(Backbone prev, Backbone removed) { if (removed == root) root = null; } @Override public NodeList getElementsByTagName(String tagname) { return new ElementsByTagNameNodeList(this, tagname); } @Override public NodeList getElementsByTagNameNS(String namespaceURI, String localName) { // TODO: Implement throw new UnsupportedOperationException(); } } DomConfigurationImpl.java000066400000000000000000000027121335270560400417430ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3DomConfiguration; import org.w3c.dom.DOMException; import org.w3c.dom.DOMStringList; public class DomConfigurationImpl implements Wom3DomConfiguration { @Override public void setParameter(String name, Object value) throws DOMException { throw new UnsupportedOperationException(); } @Override public DOMStringList getParameterNames() { throw new UnsupportedOperationException(); } @Override public Object getParameter(String name) throws DOMException { throw new UnsupportedOperationException(); } @Override public boolean canSetParameter(String name, Object value) { throw new UnsupportedOperationException(); } } DomImplementationImpl.java000066400000000000000000000275301335270560400421260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.io.Serializable; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3DomImplementation; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.w3c.dom.DOMException; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; public class DomImplementationImpl implements Wom3DomImplementation, Serializable { private static final long serialVersionUID = 1L; private static final Map> nodeImplMap = new HashMap>(); private static final DomImplementationImpl singleton = new DomImplementationImpl(); // ========================================================================= static { addNodeImplInternal(Wom3Node.WOM_NS_URI, "abbr", AbbrImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "article", ArticleImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "articles", ArticlesImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "b", BoldImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "big", BigImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "blockquote", BlockquoteImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "body", BodyImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "br", BreakImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "caption", TableCaptionImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "category", CategoryImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "center", CenterImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "cite", CiteImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "code", CodeImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "comment", CommentImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "dd", DefinitionListDefImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "del", DelImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "dfn", DfnImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "div", DivImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "dl", DefinitionListImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "dt", DefinitionListTermImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "em", EmphasizeImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "extlink", ExtLinkImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "font", FontImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "for", ForImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "heading", HeadingImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "hr", HorizontalRuleImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "i", ItalicsImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "image", ImageImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "imgcaption", ImageCaptionImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "ins", InsImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "intlink", IntLinkImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "kbd", KbdImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "li", ListItemImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "nowiki", NowikiImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "ol", OrderedListImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "p", ParagraphImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "pre", PreImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "redirect", RedirectImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "ref", RefImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "repl", ReplImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "rtd", RtdImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "s", StrikeImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "samp", SampImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "section", SectionImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "signature", SignatureImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "small", SmallImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "span", SpanImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "strike", StrikeImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "strong", StrongImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "sub", SubImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "subst", SubstImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "sup", SupImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "table", TableImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "tbody", TableBodyImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "tcaption", TableCaptionImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "td", TableCellImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "text", TextImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "th", TableHeaderImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "title", TitleImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "tr", TableRowImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "tt", TeletypeImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "u", UnderlineImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "ul", UnorderedListImpl.class); addNodeImplInternal(Wom3Node.WOM_NS_URI, "var", VarImpl.class); } // ========================================================================= public static DomImplementationImpl get() { return singleton; } protected static Class addNodeImplInternal( String namespaceUri, String localPart, Class clazz) { return nodeImplMap.put(new ElemTypeId(namespaceUri, localPart), clazz); } protected static Class getNodeImplInternal( String namespaceUri, String localPart) { return nodeImplMap.get(new ElemTypeId(namespaceUri, localPart)); } protected static Map> getNodeImpls() { return Collections.unmodifiableMap(nodeImplMap); } // ========================================================================= protected DomImplementationImpl() { } // ========================================================================= @Override public boolean hasFeature(String feature, String version) { return false; } /** * @since DOM Level 3 */ @Override public Object getFeature(String feature, String version) { return null; } /** * @since DOM Level 2 */ @Override public DocumentType createDocumentType( String qualifiedName, String publicId, String systemId) throws DOMException { throw new UnsupportedOperationException(); } /** * @since DOM Level 2 */ @Override public DocumentImpl createDocument( String namespaceURI, String qualifiedName, DocumentType doctype) throws DOMException { DocumentImpl doc = new DocumentImpl(this); if (doctype != null) doc.appendChild(doctype); if (qualifiedName != null || namespaceURI != null) { // We create the document element if we have either a qualified // name, a namespace URI or both Element root = doc.createElementNS(namespaceURI, qualifiedName); doc.appendChild(root); } return doc; } // ========================================================================= public Class addNodeImplementation( String namespaceUri, String localPart, Class clazz) { return addNodeImplInternal(namespaceUri, localPart, clazz); } public Class getNodeImpl( String namespaceUri, String localPart) { return getNodeImplInternal(namespaceUri, localPart); } // ========================================================================= protected Wom3ElementNode createElement(DocumentImpl doc, String tagName) { Class impl = getNodeImpl(null, tagName); if (impl == null) return new ElementImpl(doc, tagName); return createElement(doc, impl, null); } protected Wom3ElementNode createElement( DocumentImpl doc, String namespaceURI, String qualifiedName) { int colon = qualifiedName.indexOf(':'); String prefix; String localName; if (colon < 0) { prefix = null; localName = qualifiedName; } else { prefix = qualifiedName.substring(0, colon); localName = qualifiedName.substring(colon + 1); } Class impl = getNodeImpl(namespaceURI, localName); if (impl == null) return new ElementNsImpl(doc, namespaceURI, qualifiedName); return createElement(doc, impl, prefix); } protected Wom3ElementNode createElement( DocumentImpl doc, Class impl, String prefix) { Constructor ctor = null; try { Constructor[] ctors = impl.getConstructors(); for (Constructor candidate : ctors) { Class[] paramTypes = candidate.getParameterTypes(); if (paramTypes.length != 1) continue; Class docType = paramTypes[0]; if (docType.isAssignableFrom(doc.getClass())) { ctor = candidate; break; } } } catch (SecurityException e) { throw new RuntimeException("The constructor of the implementation " + "class for node `" + impl.getName() + "' is not accessible", e); } if (ctor == null) throw new RuntimeException("The implementation class for node `" + impl.getName() + "' does not provide the right kind of constructor"); Exception e = null; try { Wom3ElementNode element = (Wom3ElementNode) ctor.newInstance(doc); if (prefix != null) element.setPrefix(prefix); return element; } catch (InstantiationException e_) { e = e_; } catch (IllegalAccessException e_) { e = e_; } catch (IllegalArgumentException e_) { e = e_; } catch (InvocationTargetException e_) { e = e_; } throw new RuntimeException("Failed to call the constructor of the " + "implementation class for node `" + impl.getName() + "'", e); } // ========================================================================= public static final class ElemTypeId { public final String namespaceUri; public final String localPart; public ElemTypeId(String namespaceUri, String localPart) { assert localPart != null; this.namespaceUri = namespaceUri; this.localPart = localPart; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + localPart.hashCode(); result = prime * result + ((namespaceUri == null) ? 0 : namespaceUri.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ElemTypeId other = (ElemTypeId) obj; if (localPart == null) { if (other.localPart != null) return false; } else if (!localPart.equals(other.localPart)) return false; if (namespaceUri == null) { if (other.namespaceUri != null) return false; } else if (!namespaceUri.equals(other.namespaceUri)) return false; return true; } } } ElementImpl.java000066400000000000000000000040431335270560400400640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Element; public class ElementImpl extends BackboneElement implements Wom3Element { private static final long serialVersionUID = 1L; private String name; // ========================================================================= protected ElementImpl(DocumentImpl owner) { super(owner); } public ElementImpl(DocumentImpl owner, String name) { super(owner); setNodeName(name); } // ========================================================================= protected final void setNodeName(String name) { assertWritableOnDocument(); this.name = name; } // ========================================================================= @Override public String getNodeName() { return name; } @Override protected void allowsInsertion(Backbone prev, Backbone child) { } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { } @Override protected boolean ignoresContentWhitespace() { return false; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return CommonAttributeDescriptors.ATTR_DESC_GENERIC; } } ElementNsImpl.java000066400000000000000000000135161335270560400403720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import javax.xml.XMLConstants; import org.sweble.wom3.Wom3Element; import org.w3c.dom.DOMException; public class ElementNsImpl extends ElementImpl implements Wom3Element { private static final long serialVersionUID = 1L; private String namespaceUri; private String localName; private String prefix; // ========================================================================= protected ElementNsImpl(DocumentImpl owner) { super(owner); } public ElementNsImpl( DocumentImpl owner, String namespaceUri, String qualifiedName) { super(owner, qualifiedName); setNamespaceUri(namespaceUri); setPrefixAndLocalName(qualifiedName); } // ========================================================================= @Override public String getNamespaceURI() { return namespaceUri; } @Override public String getLocalName() { return localName; } @Override public String getPrefix() { return prefix; } @Override public void setPrefix(String prefix) throws DOMException { assertWritableOnDocument(); if (getOwnerDocument().getStrictErrorChecking()) { if ((prefix != null) && !prefix.isEmpty()) { if ((getNamespaceURI() == null) || (prefix.indexOf(':') >= 0)) { throw new DOMException(DOMException.NAMESPACE_ERR, "No namespace URI or prefix contains ':'"); } else if (prefix.equals("xml") && !getNamespaceURI().equals(XMLConstants.XML_NS_URI)) { throw new DOMException(DOMException.NAMESPACE_ERR, "Prefix must not be 'xml' unless namespace URI is XML namespace"); } } } if ((prefix != null) && !prefix.isEmpty()) { this.prefix = prefix; setNodeName(prefix + ':' + localName); } else { this.prefix = null; setNodeName(localName); } } // ========================================================================= protected void setNamespaceUri(String namespaceUri) { // DOM Level 3 Core // 1.3.3 XML Namespaces // In programming languages where empty strings can be differentiated // from null, empty strings, when given as a namespace URI, are // converted to null. This is true even though the DOM does no lexical // checking of URIs. this.namespaceUri = namespaceUri; if (this.namespaceUri != null && this.namespaceUri.isEmpty()) this.namespaceUri = null; } protected void setPrefixAndLocalName(String qualifiedName) { assertWritableOnDocument(); String prefix = null; String localName = null; int colon = qualifiedName.indexOf(':'); if (colon < 0) { // No prefix prefix = null; localName = qualifiedName; checkNamespaceUriAndName(namespaceUri, qualifiedName); } else { // We have a prefix if ((colon == 0) || (colon == qualifiedName.length() - 1) || (qualifiedName.indexOf(':', colon + 1) >= 0)) throw new DOMException( DOMException.NAMESPACE_ERR, "Invalid qualified attribute name: " + qualifiedName); // We have a valid prefix prefix = qualifiedName.substring(0, colon); localName = qualifiedName.substring(colon + 1); checkNamespaceUriAndPrefix(prefix, namespaceUri); // FIXME: Must check according to XML version we have to support Toolbox.checkValidXmlName(prefix); } // FIXME: Must check according to XML version we have to support Toolbox.checkValidXmlName(localName); // Only set values after checks ran this.prefix = prefix; this.localName = localName; } private static void checkNamespaceUriAndName( String namespaceUri, String qualifiedName) { /* assert qualifiedName != null; if (qualifiedName.equals("xmlns") && !XMLNS_URI.equals(namespaceUri)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with name 'xmlns' must have its its namespace URI set to '" + XMLNS_URI + "'"); if (XMLNS_URI.equals(namespaceUri) && !qualifiedName.equals("xmlns")) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with namespace URI '" + XMLNS_URI + "' must be called 'xmlns' or must have a prefix called 'xmlns'"); */ } private static void checkNamespaceUriAndPrefix( String prefix, String namespaceUri) { /* assert prefix != null && namespaceUri != null; if (namespaceUri == null) throw new DOMException( DOMException.NAMESPACE_ERR, "A qualified (prefixed) attribute name requires a non-null namespace URI"); if (prefix.equals("xml") && !namespaceUri.equals(XML_URI)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with prefix 'xml' must have its namespace URI set to '" + XML_URI + "'"); if (prefix.equals("xmlns") && !namespaceUri.equals(XMLNS_URI)) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with prefix 'xmlns' must have its its namespace URI set to '" + XMLNS_URI + "'"); if (namespaceUri.equals(XMLNS_URI) && !prefix.equals("xmlns")) throw new DOMException( DOMException.NAMESPACE_ERR, "An attribute with namespace URI '" + XMLNS_URI + "' must be called 'xmlns' or must have a prefix called 'xmlns'"); // TODO: Is it allowed to redefine the xmlns or xml prefixes? */ } } ElementsByTagNameNodeList.java000066400000000000000000000114321335270560400426170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3NodeList; import org.w3c.dom.Node; /** * Warning: Behavior undefined if the document is changed during iteration. */ public class ElementsByTagNameNodeList implements Wom3NodeList { private final String tagName; private final String namespaceUri; private Wom3Node root; private boolean withNs = false; private ArrayList nodes = null; // ========================================================================= public ElementsByTagNameNodeList(Wom3Node root, String tagName) { this.root = root; this.namespaceUri = null; this.tagName = tagName; } public ElementsByTagNameNodeList( Wom3Node root, String namespaceURI, String localName) { this.withNs = true; this.root = root; if (namespaceURI != null && namespaceURI.isEmpty()) namespaceURI = null; this.namespaceUri = namespaceURI; this.tagName = localName; } // ========================================================================= @Override public int getLength() { item(Integer.MAX_VALUE); return (nodes != null) ? nodes.size() : 0; } @Override public Wom3Node item(int index) { if (nodes != null && nodes.size() > index) { // We already had that node return nodes.get(index); } else if (root == null) { // We've already found all matching nodes return null; } else { // Start the search at the root element... Wom3Node current = root; if (nodes != null && !nodes.isEmpty()) // ... or continue current = nodes.get(nodes.size() - 1); while (true) { current = advance(current); if (current == null) { // We're through root = null; return null; } else if (isMatch(current)) { if (nodes == null) nodes = new ArrayList(); nodes.add(current); if (nodes.size() > index) return current; } } } } private boolean isMatch(Wom3Node current) { // We're searching for elements only if (current.getNodeType() != Node.ELEMENT_NODE) return false; Wom3ElementNode e = (Wom3ElementNode) current; if (withNs) return isNsMatch(e) && isLocalNameMatch(e); return isTagNameMatch(e); } private boolean isTagNameMatch(Wom3ElementNode e) { if (tagName.equals("*")) return true; return tagName.equals(e.getTagName()); } private boolean isLocalNameMatch(Wom3ElementNode e) { if (tagName.equals("*")) return true; return tagName.equals(e.getLocalName()); } private boolean isNsMatch(Wom3ElementNode e) { if (namespaceUri != null) { if (namespaceUri.equals("*")) return true; return (namespaceUri.equals(e.getNamespaceURI())); } return (e.getNamespaceURI() == null); } private Wom3Node advance(Wom3Node current) { Wom3Node next = current.getFirstChild(); if (next != null) { // While descending process each node on the way return next; } else { // If we cannot descend any more, process each sibling next = current.getNextSibling(); while (next == null) { // If we have no siblings, ascend but don't process the parent // nodes on the way to the node that again has siblings current = current.getParentNode(); if (current == this.root) // If we reach the root, we're done. return null; next = current.getNextSibling(); } return next; } } // ========================================================================= @Override public Iterator iterator() { return new Iterator() { private int index = 0; @Override public boolean hasNext() { return item(index) != null; } @Override public Wom3Node next() { Wom3Node item = item(index); if (item == null) throw new NoSuchElementException(); ++index; return item; } @Override public void remove() { throw new UnsupportedOperationException(); } }; } } EmphasizeImpl.java000066400000000000000000000024041335270560400404170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Emphasize; public class EmphasizeImpl extends BackboneWomElemWithUnivAttrs implements Wom3Emphasize { private static final long serialVersionUID = 1L; // ========================================================================= public EmphasizeImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "em"; } } EventAttributes.java000066400000000000000000000177441335270560400410150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; public abstract class EventAttributes { public static final AttrDescOnKeyPress ATTR_DESC_ONCLICK = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONDBLCLICK = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONKEYDOWN = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONKEYPRESS = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONKEYUP = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONMOUSEDOWN = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONMOUSEMOVE = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONMOUSEOUT = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONMOUSEOVER = new AttrDescOnKeyPress(); public static final AttrDescOnKeyPress ATTR_DESC_ONMOUSEUP = new AttrDescOnKeyPress(); // ========================================================================= public static final class AttrDescOnClick extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnDblClick extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnKeyDown extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnKeyPress extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnKeyUp extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnMouseDown extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnMouseMove extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnMouseOut extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnMouseOver extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescOnMouseUp extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCRIPT.verifyAndConvert(parent, verified); } } // ========================================================================= private static Map NAME_MAP; public synchronized static Map getNameMap() { Map nameMap = NAME_MAP; if (nameMap == null) { nameMap = new HashMap(); nameMap.put("onclick", ATTR_DESC_ONCLICK); nameMap.put("ondblclick", ATTR_DESC_ONDBLCLICK); nameMap.put("onkeydown", ATTR_DESC_ONKEYDOWN); nameMap.put("onkeypress", ATTR_DESC_ONKEYPRESS); nameMap.put("onkeyup", ATTR_DESC_ONKEYUP); nameMap.put("onmousedown", ATTR_DESC_ONMOUSEDOWN); nameMap.put("onmousemove", ATTR_DESC_ONMOUSEMOVE); nameMap.put("onmouseout", ATTR_DESC_ONMOUSEOUT); nameMap.put("onmouseover", ATTR_DESC_ONMOUSEOVER); nameMap.put("onmouseup", ATTR_DESC_ONMOUSEUP); NAME_MAP = nameMap; } return nameMap; } public static AttributeDescriptor getDescriptor(String name) { return getNameMap().get(name); } } ExtLinkImpl.java000066400000000000000000000111271335270560400400520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.MalformedURLException; import java.net.URL; import org.sweble.wom3.Wom3ExtLink; import org.sweble.wom3.Wom3Title; import de.fau.cs.osr.utils.WrappedException; public class ExtLinkImpl extends BackboneContainer implements Wom3ExtLink { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("title") }; private TitleImpl title; // ========================================================================= public ExtLinkImpl(DocumentImpl owner) { super(owner); try { setTarget(new URL("http", null, ".")); } catch (MalformedURLException e) { throw new WrappedException(e); } } // ========================================================================= @Override public String getWomName() { return "extlink"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3Title) this.title = (TitleImpl) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.title) this.title = null; } // ========================================================================= @Override public URL getTarget() { return (URL) getAttributeNativeData("target"); } @Override public URL getLinkTarget() { return getTarget(); } @Override public URL setTarget(URL target) { return setAttributeDirect(ATTR_DESC_TARGET, "target", target); } @Override public boolean isPlainUrl() { return getBoolAttr("plainurl"); } @Override public boolean setPlainUrl(boolean plainUrl) { return setBoolAttr(ATTR_DESC_PLAIN_URL, "plainurl", plainUrl); } // ========================================================================= @Override public Wom3Title setLinkTitle(Wom3Title title) throws NullPointerException { return (Wom3Title) replaceOrAppend(this.title, title, false); } @Override public Wom3Title getLinkTitle() { return title; } // ========================================================================= public static final AttrDescTarget ATTR_DESC_TARGET = new AttrDescTarget(); public static final AttrDescPlainUrl ATTR_DESC_PLAIN_URL = new AttrDescPlainUrl(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceURL, String localName, String qualifiedName) { return getAttrDescStrict(namespaceURL, localName, qualifiedName, "target", ATTR_DESC_TARGET, "plainurl", ATTR_DESC_PLAIN_URL); } public static final class AttrDescTarget extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.URL.verifyAndConvert(parent, verified); } } public static final class AttrDescPlainUrl extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "plainurl"); } } } FontImpl.java000066400000000000000000000054751335270560400374130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_COLOR; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_FACE; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_FONT_SIZE; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Color; import org.sweble.wom3.Wom3Font; public class FontImpl extends BackboneWomElemWithCoreAttrs implements Wom3Font { private static final long serialVersionUID = 1L; // ========================================================================= public FontImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "font"; } // ========================================================================= @Override public Wom3Color getColor() { return getColorAttr("color"); } @Override public Wom3Color setColor(Wom3Color color) { return setColorAttr(ATTR_DESC_COLOR, "color", color); } @Override public String getFace() { return getStringAttr("face"); } @Override public String setFace(String face) { return setStringAttr(ATTR_DESC_FACE, "face", face); } @Override public Integer getSize() { return getIntAttr("size"); } @Override public Integer setSize(Integer size) { return setIntAttr(ATTR_DESC_FONT_SIZE, "size", size); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(CoreAttributes.getNameMap()); NAME_MAP.putAll(I18nAttributes.getNameMap()); NAME_MAP.put("color", ATTR_DESC_COLOR); NAME_MAP.put("face", ATTR_DESC_FACE); NAME_MAP.put("size", ATTR_DESC_FONT_SIZE); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } ForImpl.java000066400000000000000000000026651335270560400372310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3For; public class ForImpl extends BackboneContainer implements Wom3For { private static final long serialVersionUID = 1L; // ========================================================================= public ForImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "for"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } HeadingImpl.java000066400000000000000000000043371335270560400400400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Heading; import org.sweble.wom3.Wom3HorizAlign; public class HeadingImpl extends BackboneWomElemWithCoreAttrs implements Wom3Heading { private static final long serialVersionUID = 1L; // ========================================================================= public HeadingImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "heading"; } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) throws IllegalArgumentException { return setAlignAttr(CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ, "align", align); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } HorizontalRuleImpl.java000066400000000000000000000064021335270560400414550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCR; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_NOSHADE; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_SIZE; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_WIDTH_LENGTH; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3HorizontalRule; import org.sweble.wom3.Wom3ValueWithUnit; public class HorizontalRuleImpl extends BackboneWomElemWithCoreAttrs implements Wom3HorizontalRule { private static final long serialVersionUID = 1L; // ========================================================================= public HorizontalRuleImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "hr"; } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(ATTR_DESC_ALIGN_LCR, "align", align); } @Override public boolean isNoshade() { return getBoolAttr("noshade"); } @Override public boolean setNoshade(boolean noshade) { return setBoolAttr(ATTR_DESC_NOSHADE, "noshade", noshade); } @Override public Integer getSize() { return getIntAttr("size"); } @Override public Integer setSize(Integer size) { return setIntAttr(ATTR_DESC_SIZE, "size", size); } @Override public Wom3ValueWithUnit getWidth() { return getValueWithUnitAttr("width"); } @Override public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width) { return setValueWithUnitAttr(ATTR_DESC_WIDTH_LENGTH, "width", width); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", ATTR_DESC_ALIGN_LCR); NAME_MAP.put("noshade", ATTR_DESC_NOSHADE); NAME_MAP.put("size", ATTR_DESC_SIZE); NAME_MAP.put("width", ATTR_DESC_WIDTH_LENGTH); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } I18nAttributes.java000066400000000000000000000064561335270560400404510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; public abstract class I18nAttributes { public static final AttributeDescriptor ATTR_DESC_DIR = new AttrDescDir(); public static final AttributeDescriptor ATTR_DESC_LANG = new AttrDescLang(); public static final AttributeDescriptor ATTR_DESC_XML_LANG = new AttrDescXmlLang(); // ========================================================================= public static final class AttrDescDir extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.DIR.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescLang extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LANGUAGE_CODE.verifyAndConvert(parent, verified); } } // ========================================================================= public static final class AttrDescXmlLang extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LANGUAGE_CODE.verifyAndConvert(parent, verified); } } // ========================================================================= private static Map NAME_MAP; public synchronized static Map getNameMap() { Map nameMap = NAME_MAP; if (nameMap == null) { nameMap = new HashMap(); nameMap.put("dir", ATTR_DESC_DIR); nameMap.put("lang", ATTR_DESC_LANG); nameMap.put("xml:lang", ATTR_DESC_XML_LANG); NAME_MAP = nameMap; } return nameMap; } public static AttributeDescriptor getDescriptor(String name) { return getNameMap().get(name); } } ImageCaptionImpl.java000066400000000000000000000027401335270560400410350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3ImageCaption; public class ImageCaptionImpl extends BackboneContainer implements Wom3ImageCaption { private static final long serialVersionUID = 1L; // ========================================================================= public ImageCaptionImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "imgcaption"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } ImageImpl.java000066400000000000000000000320211335270560400375120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Image; import org.sweble.wom3.Wom3ImageCaption; import org.sweble.wom3.Wom3ImageFormat; import org.sweble.wom3.Wom3ImageHAlign; import org.sweble.wom3.Wom3ImageVAlign; import org.sweble.wom3.Wom3Title; public class ImageImpl extends BackboneContainer implements Wom3Image { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("imgcaption") }; private Wom3ImageCaption caption; // ========================================================================= public ImageImpl(DocumentImpl owner) { super(owner); setSource("unknown"); } // ========================================================================= @Override public String getWomName() { return "image"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3ImageCaption) this.caption = (Wom3ImageCaption) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.caption) this.caption = null; } // ========================================================================= @Override public String getSource() { return getStringAttr("source"); } @Override public String setSource(String source) { return setAttributeDirect(ATTR_DESC_SOURCE, "source", source); } @Override public Wom3ImageFormat getFormat() { return (Wom3ImageFormat) getAttributeNativeData("format"); } @Override public Wom3ImageFormat setFormat(Wom3ImageFormat format) throws NullPointerException { return setAttributeDirect(ATTR_DESC_FORMAT, "format", format); } @Override public boolean isBorder() { return getAttributeNativeData("border") != null; } @Override public boolean setBorder(boolean border) { return setAttributeDirect(ATTR_DESC_BORDER, "border", border) != null; } @Override public Wom3ImageHAlign getHAlign() { return (Wom3ImageHAlign) getAttributeNativeData("halign"); } @Override public Wom3ImageHAlign setHAlign(Wom3ImageHAlign halign) { return setAttributeDirect(ATTR_DESC_HALIGN, "halign", halign); } @Override public Wom3ImageVAlign getVAlign() { return (Wom3ImageVAlign) getAttributeNativeData("valign"); } @Override public Wom3ImageVAlign setVAlign(Wom3ImageVAlign valign) { return setAttributeDirect(ATTR_DESC_VALIGN, "valign", valign); } @Override public Integer getWidth() { return (Integer) getAttributeNativeData("width"); } @Override public Integer setWidth(Integer width) { return setAttributeDirect(ATTR_DESC_WIDTH, "width", width); } @Override public Integer getHeight() { return (Integer) getAttributeNativeData("height"); } @Override public Integer setHeight(Integer height) { return setAttributeDirect(ATTR_DESC_HEIGHT, "height", height); } @Override public boolean isUpright() { return getAttributeNativeData("upright") != null; } @Override public boolean setUpright(boolean upright) { return setAttributeDirect(ATTR_DESC_UPRIGHT, "upright", upright) != null; } @Override public URL getExtLink() { return getUrlAttr("extlink"); } @Override public URL setExtLink(URL url) { return setUrlAttr(ATTR_DESC_EXTLINK, "extlink", url); } @Override public String getIntLink() { return getStringAttr("intlink"); } @Override public String setIntLink(String target) { return setAttributeDirect(ATTR_DESC_INTLINK, "intlink", target); } @Override public String getAlt() { return getStringAttr("alt"); } @Override public String setAlt(String alt) { return setAttributeDirect(ATTR_DESC_ALT, "alt", alt); } // ========================================================================= @Override public Wom3ImageCaption setCaption(Wom3ImageCaption caption) throws NullPointerException { return (Wom3ImageCaption) replaceOrAppend(this.caption, caption, false); } @Override public Wom3ImageCaption getCaption() { return caption; } // ========================================================================= @Override public Wom3Title getLinkTitle() { // TODO: Implement throw new UnsupportedOperationException(); /* String title = getSource(); if (getAlt() != null) title = getAlt(); TitleImpl titleImpl = new TitleImpl(); titleImpl.appendChild(new TextImpl(title)); return titleImpl; */ } @Override public String getLinkTarget() { String intLink = getIntLink(); if (intLink != null) return intLink; return getSource(); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_SOURCE = new AttrDescSource(); protected static final AttributeDescriptor ATTR_DESC_FORMAT = new AttrDescFormat(); protected static final AttributeDescriptor ATTR_DESC_BORDER = new AttrDescBorder(); protected static final AttributeDescriptor ATTR_DESC_HALIGN = new AttrDescHAlign(); protected static final AttributeDescriptor ATTR_DESC_VALIGN = new AttrDescVAlign(); protected static final AttributeDescriptor ATTR_DESC_WIDTH = new AttrDescWidth(); protected static final AttributeDescriptor ATTR_DESC_HEIGHT = new AttrDescHeight(); protected static final AttributeDescriptor ATTR_DESC_UPRIGHT = new AttrDescUpright(); protected static final AttributeDescriptor ATTR_DESC_EXTLINK = new AttrDescExtLink(); protected static final AttributeDescriptor ATTR_DESC_INTLINK = new AttrDescIntLink(); protected static final AttributeDescriptor ATTR_DESC_ALT = new AttrDescAlt(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.put("source", ATTR_DESC_SOURCE); NAME_MAP.put("format", ATTR_DESC_FORMAT); NAME_MAP.put("border", ATTR_DESC_BORDER); NAME_MAP.put("halign", ATTR_DESC_HALIGN); NAME_MAP.put("valign", ATTR_DESC_VALIGN); NAME_MAP.put("width", ATTR_DESC_WIDTH); NAME_MAP.put("height", ATTR_DESC_HEIGHT); NAME_MAP.put("upright", ATTR_DESC_UPRIGHT); NAME_MAP.put("extlink", ATTR_DESC_EXTLINK); NAME_MAP.put("intlink", ATTR_DESC_INTLINK); NAME_MAP.put("alt", ATTR_DESC_ALT); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, NAME_MAP); } // ========================================================================= public static final class AttrDescSource extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); Toolbox.checkValidTarget(verified.strValue); return true; } } public static final class AttrDescFormat extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToImageFormat(verified.strValue); else verified.strValue = Toolbox.imageFormatToString((Wom3ImageFormat) verified.value); return true; } } public static final class AttrDescBorder extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "border"); } } public static final class AttrDescHAlign extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToImageHAlign(verified.strValue); else verified.strValue = Toolbox.imageHAlignToString((Wom3ImageHAlign) verified.value); return true; } } public static final class AttrDescVAlign extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToImageVAlign(verified.strValue); else verified.strValue = Toolbox.imageVAlignToString((Wom3ImageVAlign) verified.value); return true; } } public static final class AttrDescWidth extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.PIXELS.verifyAndConvert(parent, verified); } } public static final class AttrDescHeight extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.PIXELS.verifyAndConvert(parent, verified); } } public static final class AttrDescUpright extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "upright"); } } public static final class AttrDescExtLink extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.URL.verifyAndConvert(parent, verified); } } public static final class AttrDescIntLink extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); if ((verified.strValue != null) && (!verified.strValue.isEmpty())) Toolbox.checkValidTarget(verified.strValue); return true; } } public static final class AttrDescAlt extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } } ImmutableSiblingCollection.java000066400000000000000000000074661335270560400431300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.lang.reflect.Array; import java.util.Collection; import java.util.Iterator; import java.util.NoSuchElementException; import org.sweble.wom3.Wom3Node; public class ImmutableSiblingCollection implements Collection { private final int size; private final T first; // ========================================================================= public ImmutableSiblingCollection(T first) { this.first = first; size = count(first); } @Override public int size() { return size; } @Override public boolean isEmpty() { return size == 0; } @Override public boolean contains(Object o) { for (T i = first; i != null; i = advance(i)) { if (o == null ? i == null : o.equals(i)) return true; } return false; } @Override public Iterator iterator() { return new SiblingIterator(first); } @Override public Object[] toArray() { Object[] array = new Object[size]; int j = 0; for (T i = first; i != null; i = advance(i)) array[j++] = i; return array; } @Override public S[] toArray(S[] a) { if (a.length < size) a = makeArray(a); int j = 0; Object[] result = a; for (T i = first; i != null; i = advance(i)) result[j++] = i; if (a.length > size) a[size] = null; return a; } @Override public boolean add(T e) { throw new UnsupportedOperationException(); } @Override public boolean remove(Object o) { throw new UnsupportedOperationException(); } @Override public boolean containsAll(Collection c) { for (Object o : c) { if (!contains(o)) return false; } return true; } @Override public boolean addAll(Collection c) { throw new UnsupportedOperationException(); } @Override public boolean removeAll(Collection c) { throw new UnsupportedOperationException(); } @Override public boolean retainAll(Collection c) { throw new UnsupportedOperationException(); } @Override public void clear() { throw new UnsupportedOperationException(); } // ========================================================================= private final static class SiblingIterator implements Iterator { T i; public SiblingIterator(T first) { this.i = first; } @Override public boolean hasNext() { return i != null; } @SuppressWarnings("unchecked") @Override public T next() { if (!hasNext()) throw new NoSuchElementException(); T n = i; i = (T) i.getNextSibling(); return n; } @Override public void remove() { throw new UnsupportedOperationException(); } } // ========================================================================= private int count(T first) { int count = 0; for (T i = first; i != null; i = advance(i)) ++count; return count; } @SuppressWarnings("unchecked") private T advance(T i) { return (T) i.getNextSibling(); } @SuppressWarnings("unchecked") private S[] makeArray(S[] a) { return (S[]) Array.newInstance(a.getClass().getComponentType(), size); } } InsImpl.java000066400000000000000000000047031335270560400372270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.joda.time.DateTime; import org.sweble.wom3.Wom3Ins; public class InsImpl extends BackboneWomElemWithCoreAttrs implements Wom3Ins { private static final long serialVersionUID = 1L; // ========================================================================= public InsImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "ins"; } // ========================================================================= @Override public URL getCite() { return getUrlAttr("cite"); } @Override public URL setCite(URL url) { return setUrlAttr(CommonAttributeDescriptors.ATTR_DESC_CITE, "cite", url); } @Override public DateTime getDatetime() { return setDatetimeAttr("datetime"); } @Override public DateTime setDatetime(DateTime timestamp) { return setDatetimeAttr(CommonAttributeDescriptors.ATTR_DESC_DATETIME, "datetime", timestamp); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("cite", CommonAttributeDescriptors.ATTR_DESC_CITE); NAME_MAP.put("datetime", CommonAttributeDescriptors.ATTR_DESC_DATETIME); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } IntLinkImpl.java000066400000000000000000000074261335270560400400530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3IntLink; import org.sweble.wom3.Wom3Title; import org.sweble.wom3.impl.ExtLinkImpl.AttrDescPlainUrl; public class IntLinkImpl extends BackboneContainer implements Wom3IntLink { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("title") }; private TitleImpl title; // ========================================================================= public IntLinkImpl(DocumentImpl owner) { super(owner); setTarget("unknown"); } // ========================================================================= @Override public String getWomName() { return "intlink"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3Title) this.title = (TitleImpl) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.title) this.title = null; } // ========================================================================= @Override public String getTarget() { return getAttribute("target"); } @Override public String getLinkTarget() { return getTarget(); } @Override public String setTarget(String target) { return setAttributeDirect(ATTR_DESC_TARGET, "target", target); } // ========================================================================= @Override public Wom3Title setLinkTitle(Wom3Title title) throws NullPointerException { return (Wom3Title) replaceOrAppend(this.title, title, false); } @Override public Wom3Title getLinkTitle() { return title; } // ========================================================================= public static final AttrDescTarget ATTR_DESC_TARGET = new AttrDescTarget(); public static final AttrDescPlainUrl ATTR_DESC_PLAIN_URL = new AttrDescPlainUrl(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceURL, String localName, String qualifiedName) { return getAttrDescStrict(namespaceURL, localName, qualifiedName, "target", ATTR_DESC_TARGET); } public static final class AttrDescTarget extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); Toolbox.checkValidTarget(verified.strValue); return true; } } } ItalicsImpl.java000066400000000000000000000023731335270560400400670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Italics; public class ItalicsImpl extends BackboneWomElemWithUnivAttrs implements Wom3Italics { private static final long serialVersionUID = 1L; // ========================================================================= public ItalicsImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "i"; } } KbdImpl.java000066400000000000000000000023551335270560400371770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Kbd; public class KbdImpl extends BackboneWomElemWithUnivAttrs implements Wom3Kbd { private static final long serialVersionUID = 1L; // ========================================================================= public KbdImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "kbd"; } } ListBaseImpl.java000066400000000000000000000067471335270560400402160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import org.sweble.wom3.Wom3List; import org.sweble.wom3.Wom3ListItem; import org.sweble.wom3.Wom3Node; public abstract class ListBaseImpl extends BackboneWomElemWithCoreAttrs implements Wom3List { private static final long serialVersionUID = 1L; private final ArrayList items = new ArrayList(); // ========================================================================= public ListBaseImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public boolean isCompact() { return getBoolAttr("compact"); } @Override public boolean setCompact(boolean compact) { return setBoolAttr(CommonAttributeDescriptors.ATTR_DESC_COMPACT, "compact", compact); } // ========================================================================= @Override public int getItemNum() { return items.size(); } @Override public Collection getItems() { return Collections.unmodifiableCollection(items); } @Override public Wom3ListItem getItem(int index) throws IndexOutOfBoundsException { return items.get(index); } @Override public Wom3ListItem replaceItem(int index, Wom3ListItem item) throws IndexOutOfBoundsException { Wom3ListItem old = getItem(index); replaceChild(item, old); return old; } @Override public Wom3ListItem removeItem(int index) throws IndexOutOfBoundsException { Wom3ListItem old = getItem(index); removeChild(old); return old; } @Override public void appendItem(Wom3ListItem item) { appendChild(item); } @Override public void insertItem(int beforeIndex, Wom3ListItem item) throws IndexOutOfBoundsException { int size = getItemNum(); if (beforeIndex < size) { insertBefore(item, getItem(beforeIndex)); } else if (beforeIndex == size) { appendItem(item); } else { throw new IndexOutOfBoundsException(); } } // ========================================================================= @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3ListItem) { int i = (prev == null) ? 0 : indexOf(prev) + 1; items.add(i, (Wom3ListItem) added); } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed instanceof Wom3ListItem) { int i = (prev == null) ? 0 : indexOf(prev) + 1; items.remove(i); } } private int indexOf(Wom3Node node) { int i = -1; Wom3Node child = getFirstChild(); while (true) { if (child instanceof Wom3ListItem) ++i; if (child == node) return i; child = child.getNextSibling(); } } } ListItemImpl.java000066400000000000000000000066211335270560400402310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3ListItem; public class ListItemImpl extends BackboneWomElemWithCoreAttrs implements Wom3ListItem { private static final long serialVersionUID = 1L; // ========================================================================= public ListItemImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "li"; } // ========================================================================= @Override public String getItemType() { return (String) getAttributeNativeData("type"); } @Override public String setItemType(String type) { return setAttributeDirect(ATTR_DESC_TYPE, "type", type); } @Override public Integer getItemValue() { return (Integer) getAttributeNativeData("value"); } @Override public Integer setItemValue(Integer value) { return setAttributeDirect(ATTR_DESC_VALUE, "value", value); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_TYPE = new AttrDescType(); protected static final AttributeDescriptor ATTR_DESC_VALUE = new AttrDescValue(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("type", ATTR_DESC_TYPE); NAME_MAP.put("value", ATTR_DESC_VALUE); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescType extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.ITEMTYPE.verifyAndConvert(parent, verified); } } public static final class AttrDescValue extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } } NativeAndStringValuePair.java000066400000000000000000000020431335270560400425200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public class NativeAndStringValuePair { public Object value; public String strValue; public NativeAndStringValuePair(String strValue) { this.strValue = strValue; } public NativeAndStringValuePair(Object value) { this.value = value; } } NodeListImpl.java000066400000000000000000000067431335270560400402250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ConcurrentModificationException; import java.util.Iterator; import java.util.NoSuchElementException; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3NodeList; public class NodeListImpl implements Wom3NodeList { private final Backbone parent; private int last = -1; private int length = -1; private Wom3Node lastNode = null; private int childrenChanges; // ========================================================================= public NodeListImpl(Backbone parent) { this.parent = parent; this.childrenChanges = getChildrenChanges(); } // ========================================================================= @Override public Wom3Node item(int index) { testInvalidate(); int cnt; Wom3Node n; if (last == -1) { cnt = 0; n = parent.getFirstChild(); while (n != null && cnt++ < index) n = n.getNextSibling(); } else { cnt = index - last; n = lastNode; if (cnt > 0) { while (n != null && cnt-- > 0) n = n.getNextSibling(); } else { while (n != null && cnt++ < 0) n = n.getPreviousSibling(); } } last = index; lastNode = n; return n; } @Override public int getLength() { testInvalidate(); if (length == -1) { int len = 0; for (Wom3Node n = parent.getFirstChild(); n != null; n = n.getNextSibling()) ++len; length = len; } return length; } // ========================================================================= @Override public Iterator iterator() { return new Iterator() { private int index = 0; private int childrenChanges = getChildrenChanges(); @Override public boolean hasNext() { if (hasModification()) throw new ConcurrentModificationException(); return item(index) != null; } @Override public Wom3Node next() { if (hasModification()) throw new ConcurrentModificationException(); Wom3Node item = item(index); if (item == null) throw new NoSuchElementException(); ++index; return item; } @Override public void remove() { if (hasModification()) throw new ConcurrentModificationException(); throw new UnsupportedOperationException(); } private boolean hasModification() { return childrenChanges != getChildrenChanges(); } }; } // ========================================================================= private void testInvalidate() { if (hasModification()) { childrenChanges = getChildrenChanges(); length = -1; last = -1; } } private boolean hasModification() { return childrenChanges != getChildrenChanges(); } private int getChildrenChanges() { return parent.childrenChanges; } } NowikiImpl.java000066400000000000000000000027041335270560400377350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Nowiki; public class NowikiImpl extends BackboneContainer implements Wom3Nowiki { private static final long serialVersionUID = 1L; // ========================================================================= public NowikiImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "nowiki"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } OrderedListImpl.java000066400000000000000000000067141335270560400407220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3OrderedList; public class OrderedListImpl extends ListBaseImpl implements Wom3OrderedList { private static final long serialVersionUID = 1L; // ========================================================================= public OrderedListImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "ol"; } // ========================================================================= @Override public Integer getStart() { return (Integer) getAttributeNativeData("start"); } @Override public Integer setStart(Integer start) { return setAttributeDirect(ATTR_DESC_START, "start", start); } @Override public String getItemType() { return (String) getAttributeNativeData("type"); } @Override public String setItemType(String type) { return setAttributeDirect(ATTR_DESC_TYPE, "type", type); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_TYPE = new AttrDescType(); protected static final AttributeDescriptor ATTR_DESC_START = new AttrDescStart(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("compact", CommonAttributeDescriptors.ATTR_DESC_COMPACT); NAME_MAP.put("start", ATTR_DESC_START); NAME_MAP.put("type", ATTR_DESC_TYPE); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescType extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.OLTYPE.verifyAndConvert(parent, verified); } } public static final class AttrDescStart extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } } ParagraphImpl.java000066400000000000000000000076501335270560400404070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3Paragraph; public class ParagraphImpl extends BackboneWomElemWithCoreAttrs implements Wom3Paragraph { private static final long serialVersionUID = 1L; // ========================================================================= public ParagraphImpl(DocumentImpl owner) { super(owner); setTopGapAttr(0); setBottomGapAttr(0); } // ========================================================================= @Override public String getWomName() { return "p"; } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ, "align", align); } @Override public int getTopGap() { return getIntAttr("topgap"); } @Override public int setTopGap(int lines) { return setTopGapAttr(lines); } private Integer setTopGapAttr(int lines) { return setIntAttr(ATTR_DESC_TOPGAP, "topgap", lines); } @Override public int getBottomGap() { return getIntAttr("bottomgap"); } @Override public int setBottomGap(int lines) { return setBottomGapAttr(lines); } private Integer setBottomGapAttr(int lines) { return setIntAttr(ATTR_DESC_BOTTOMGAP, "bottomgap", lines); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_TOPGAP = new AttrDescTopGap(); protected static final AttributeDescriptor ATTR_DESC_BOTTOMGAP = new AttrDescBottomGap(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJ); NAME_MAP.put("topgap", ATTR_DESC_TOPGAP); NAME_MAP.put("bottomgap", ATTR_DESC_BOTTOMGAP); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescTopGap extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } public static final class AttrDescBottomGap extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } } PreImpl.java000066400000000000000000000051131335270560400372200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Pre; public class PreImpl extends BackboneWomElemWithCoreAttrs implements Wom3Pre { private static final long serialVersionUID = 1L; // ========================================================================= public PreImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "pre"; } // ========================================================================= public Integer getWidth() { return (Integer) getAttributeNativeData("width"); } public Integer setWidth(Integer width) { return setAttributeDirect(ATTR_DESC_WIDTH, "width", width); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_WIDTH = new AttrDescWidth(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("width", ATTR_DESC_WIDTH); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescWidth extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); } } } RedirectImpl.java000066400000000000000000000057111335270560400402370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Redirect; import org.sweble.wom3.Wom3Title; public class RedirectImpl extends BackboneWomElement implements Wom3Redirect { private static final long serialVersionUID = 1L; // ========================================================================= public RedirectImpl(DocumentImpl owner) { super(owner); setTarget("unknown"); } // ========================================================================= @Override public String getWomName() { return "redirect"; } // ========================================================================= @Override public String getDisplacementId() { return getStringAttr("did"); } @Override public String setDisplacementId(String did) { return setStringAttr(CommonAttributeDescriptors.ATTR_DESC_DID, "did", did); } @Override public String getTarget() { return getAttribute("target"); } @Override public String setTarget(String page) { return setAttributeDirect(ATTR_DESC_TARGET, "target", page); } @Override public Wom3Title getLinkTitle() { // TODO: Implement throw new UnsupportedOperationException(); /* return EmptyTitleImpl.get(); */ } @Override public String getLinkTarget() { return getTarget(); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_TARGET = new AttrDescTarget(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "target", ATTR_DESC_TARGET, "did", CommonAttributeDescriptors.ATTR_DESC_DID); } public static final class AttrDescTarget extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); Toolbox.checkValidTarget(verified.strValue); return true; } } } RefImpl.java000066400000000000000000000044711335270560400372140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Ref; public class RefImpl extends BackboneContainer implements Wom3Ref { private static final long serialVersionUID = 1L; // ========================================================================= public RefImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "ref"; } // ========================================================================= @Override public String getType() { return (String) getAttributeNativeData("type"); } @Override public String setType(String type) { return setAttributeDirect(ATTR_DESC_REF, "type", type); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_REF = new AttrDescRef(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "type", ATTR_DESC_REF); } public static final class AttrDescRef extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } } ReplImpl.java000066400000000000000000000026721335270560400374030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Repl; public class ReplImpl extends BackboneContainer implements Wom3Repl { private static final long serialVersionUID = 1L; // ========================================================================= public ReplImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "repl"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } RtdImpl.java000066400000000000000000000040671335270560400372320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Rtd; import org.w3c.dom.Node; public class RtdImpl extends BackboneContainer implements Wom3Rtd { private static final long serialVersionUID = 1L; // ========================================================================= public RtdImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "rtd"; } @Override protected boolean ignoresContentWhitespace() { return false; } @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) { if (child.getNodeType() != Node.TEXT_NODE) doesNotAllowInsertion(prev, child); } } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) { if (newChild.getNodeType() != Node.TEXT_NODE) doesNotAllowReplacement(oldChild, newChild); } } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } RuntimeAttributeDescriptor.java000066400000000000000000000040231335270560400432150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Node; public class RuntimeAttributeDescriptor extends AttributeDescriptor { private final String name; private final int flags; private final AttributeCustomAction customActionFn; private final AttributeVerificationAndConverion verifyAndConvertFn; public RuntimeAttributeDescriptor( String name, boolean removable, boolean readOnly, AttributeVerificationAndConverion verifyAndConvert, AttributeCustomAction customAction, Normalization normalization) { this.name = name; this.flags = makeFlags( removable, readOnly, (customAction != null), normalization); this.customActionFn = customAction; this.verifyAndConvertFn = verifyAndConvert; } public String getName() { return name; } @Override public int getFlags() { return flags; } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return (verifyAndConvertFn != null) ? verifyAndConvertFn.verifyAndConvert(parent, verified) : super.verifyAndConvert(parent, verified); } @Override public void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr) { customActionFn.customAction(parent, oldAttr, newAttr); } } SampImpl.java000066400000000000000000000023621335270560400373750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Samp; public class SampImpl extends BackboneWomElemWithUnivAttrs implements Wom3Samp { private static final long serialVersionUID = 1L; // ========================================================================= public SampImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "samp"; } } SectionImpl.java000066400000000000000000000102611335270560400400760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Body; import org.sweble.wom3.Wom3Heading; import org.sweble.wom3.Wom3Section; public class SectionImpl extends BackboneContainer implements Wom3Section { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("heading", ChildDescriptor.REQUIRED), childDesc("body", ChildDescriptor.REQUIRED) }; private Wom3Heading heading; private Wom3Body body; // ========================================================================= public SectionImpl(DocumentImpl owner) { super(owner); setLevelAttr(1); } // ========================================================================= @Override public String getWomName() { return "section"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3Heading) this.heading = (Wom3Heading) added; else if (added instanceof Wom3Body) this.body = (Wom3Body) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == heading) this.heading = null; else if (removed == body) this.body = null; } // ========================================================================= @Override public int getLevel() { return (Integer) getAttributeNativeData("level"); } @Override public int setLevel(int level) throws IllegalArgumentException { return setLevelAttr(level); } private Integer setLevelAttr(int level) { return setAttributeDirect(ATTR_DESC_LEVEL, "level", level); } // ========================================================================= @Override public Wom3Heading getHeading() { return heading; } @Override public Wom3Heading setHeading(Wom3Heading heading) { return (Wom3Heading) replaceOrInsertBeforeOrAppend( this.heading, this.body, heading, true); } @Override public Wom3Body getBody() { return body; } @Override public Wom3Body setBody(Wom3Body body) throws NullPointerException { return (Wom3Body) replaceOrAppend(this.body, body, true); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_LEVEL = new AttrDescLevel(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "level", ATTR_DESC_LEVEL); } public static final class AttrDescLevel extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { super.verifyAndConvert(parent, verified); verified.value = AttributeVerifiers.verifyRange(verified.strValue, 1, 6); return true; } } } SiblingCollectionBounds.java000066400000000000000000000016161335270560400424320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public interface SiblingCollectionBounds { public Backbone getPred(); public Backbone getSucc(); } SiblingRangeCollection.java000066400000000000000000000226501335270560400422350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.io.Serializable; import java.util.AbstractSequentialList; import java.util.Deque; import java.util.Iterator; import java.util.ListIterator; import java.util.NoSuchElementException; public class SiblingRangeCollection extends AbstractSequentialList implements Serializable, Deque { private static final long serialVersionUID = 1L; private T first; private T last; private final U container; private final SiblingCollectionBounds bounds; // ========================================================================= public SiblingRangeCollection(U container, SiblingCollectionBounds bounds) { this.container = container; this.bounds = bounds; } @Override public ListIterator listIterator(int index) { return new ListIter(index); } @Override public int size() { int count = 0; for (T i = first; i != null; i = advance(i)) ++count; return count; } // ========================================================================= public boolean add(T e) { addLast(e); return true; } // ========================================================================= @Override public T peek() { return peekFirst(); } @Override public T peekFirst() { return first; } @Override public T peekLast() { return last; } @Override public T getFirst() { if (first == null) throw new NoSuchElementException(); return first; } @Override public T getLast() { if (last == null) throw new NoSuchElementException(); return last; } @Override public T element() { return getFirst(); } @Override public void addFirst(T e) { Backbone n = first; if (n == null) n = bounds.getSucc(); Backbone p = bounds.getPred(); checkBeforeAdd(p, e); e.link(container, p, n); if (last == null) last = e; first = e; container.childInserted(p, e); } @Override public void addLast(T e) { Backbone p = last; if (p == null) p = bounds.getPred(); checkBeforeAdd(p, e); e.link(container, p, bounds.getSucc()); if (first == null) first = e; last = e; container.childInserted(p, e); } @Override public boolean offer(T e) { return add(e); } @Override public boolean offerFirst(T e) { addFirst(e); return true; } @Override public boolean offerLast(T e) { addLast(e); return true; } @Override public T removeFirst() { checkBeforeRemove(first); Backbone prev = first.getPreviousSibling(); T n = advance(first); T removed = first; removed.unlink(); first = n; if (n == null) last = null; container.childRemoved(prev, removed); return removed; } @Override public T removeLast() { checkBeforeRemove(last); Backbone prev = last.getPreviousSibling(); T p = retreat(last); T removed = last; removed.unlink(); last = p; if (p == null) first = null; container.childRemoved(prev, removed); return removed; } @Override public T poll() { return pollFirst(); } @Override public T pollFirst() { if (first != null) return removeFirst(); return null; } @Override public T pollLast() { if (last != null) return removeLast(); return null; } @Override public void push(T e) { addFirst(e); } @Override public T pop() { return removeFirst(); } @Override public T remove() { return removeFirst(); } @Override public boolean removeFirstOccurrence(Object o) { return remove(o); } @Override public boolean removeLastOccurrence(Object o) { if (o == null) throw new NullPointerException(); Iterator i = descendingIterator(); while (i.hasNext()) { if (o.equals(i.next())) { i.remove(); return true; } } return false; } @Override public Iterator descendingIterator() { return new DescIter(); } // ========================================================================= private void checkBeforeAdd(Backbone p, T e) { if (e == null) throw new IllegalArgumentException("Argument `e' is null."); if (e.isLinked()) throw new IllegalStateException( "Given node `e' is still child of another WOM node."); container.allowsInsertion(p, e); //e.acceptsParent(container); } private void checkBeforeRemove(T e) { if (e == null) throw new NoSuchElementException(); container.allowsRemoval(e); //e.childAllowsRemoval(container); } private T retreat(T i) { @SuppressWarnings("unchecked") T p = (T) i.getPreviousSibling(); if (p == bounds.getPred()) p = null; return p; } private T advance(T i) { @SuppressWarnings("unchecked") T n = (T) i.getNextSibling(); if (n == bounds.getSucc()) n = null; return n; } // ========================================================================= private final class ListIter implements ListIterator { private T lastReturned = null; private T next; private int nextIndex; public ListIter(int index) { if (index < 0) throw new IndexOutOfBoundsException(); T i = first; for (int count = 0;; ++count) { if (count == index) break; if (i == null) throw new IndexOutOfBoundsException(); i = advance(i); } next = i; nextIndex = index; } @Override public boolean hasNext() { return next != null; } @Override public T next() { if (!hasNext()) throw new NoSuchElementException(); lastReturned = next; next = advance(next); ++nextIndex; return lastReturned; } @Override public boolean hasPrevious() { return nextIndex > 0; } @Override public T previous() { if (!hasPrevious()) throw new NoSuchElementException(); lastReturned = last; if (next != null) lastReturned = retreat(next); next = lastReturned; --nextIndex; return lastReturned; } @Override public int nextIndex() { return nextIndex; } @Override public int previousIndex() { return nextIndex - 1; } @Override public void remove() { T removed = lastReturned; if (removed == null) throw new IllegalStateException(); container.allowsRemoval(removed); //removed.childAllowsRemoval(container); Backbone realPrev = removed.getPreviousSibling(); T lastPrev = retreat(removed); T lastNext = advance(removed); // Fix tree removed.unlink(); if (removed == first) { first = lastNext; if (first == null) last = null; } else if (removed == last) { last = lastPrev; // If lastPrev were zero and we only had one item left, the // previous if case would have been executed. No need to also // set first to null since last cannot become null here. } // Fix iterator if (next == removed) { next = lastNext; } else { nextIndex--; } lastReturned = null; // Let the parent know container.childRemoved(realPrev, removed); } @Override public void set(T e) { T replaced = lastReturned; if (replaced == null) throw new IllegalStateException(); if (e.isLinked()) throw new IllegalStateException( "Given node `e' is still child of another WOM node."); container.allowsRemoval(replaced); //replaced.childAllowsRemoval(container); Backbone lastPrev = replaced.getPreviousSibling(); Backbone lastNext = replaced.getNextSibling(); //container.acceptsChild(lastPrev, e); //replaced.acceptsParent(container); container.allowsReplacement(replaced, e); // Fix tree replaced.unlink(); e.link(container, lastPrev, lastNext); if (first == replaced) first = e; if (last == replaced) last = e; // Fix iterator if (next == replaced) next = e; lastReturned = e; container.childRemoved(lastPrev, replaced); container.childInserted(lastPrev, e); } @Override public void add(T e) { lastReturned = null; if (next == null) { addLast(e); } else { if (e == null) throw new IllegalArgumentException("Argument `e' is null."); if (e.isLinked()) throw new IllegalStateException( "Given node `e' is still child of another WOM node."); Backbone p = retreat(next); boolean becomesFirst = p == null; if (becomesFirst) p = bounds.getPred(); container.allowsInsertion(p, e); //e.acceptsParent(container); if (becomesFirst) first = e; e.link(container, p, next); container.childInserted(p, e); } nextIndex++; } } // ========================================================================= private class DescIter implements Iterator { private final ListIter i = new ListIter(size()); public boolean hasNext() { return i.hasPrevious(); } public T next() { return i.previous(); } public void remove() { i.remove(); } } } SignatureImpl.java000066400000000000000000000122631335270560400404370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.joda.time.DateTime; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Signature; import org.sweble.wom3.Wom3SignatureFormat; public class SignatureImpl extends BackboneContainer implements Wom3Signature { private static final long serialVersionUID = 1L; // ========================================================================= public SignatureImpl(DocumentImpl owner) { super(owner); setSignatureFormat(Wom3SignatureFormat.USER); setAuthor("noname"); setTimestamp(DateTime.now()); } // ========================================================================= @Override public String getWomName() { return "signature"; } // ========================================================================= @Override public Wom3SignatureFormat getSignatureFormat() { return (Wom3SignatureFormat) getAttributeNativeData("format"); } @Override public Wom3SignatureFormat setSignatureFormat(Wom3SignatureFormat format) throws NullPointerException { return setAttributeDirect(ATTR_DESC_FORMAT, "format", format); } @Override public String getAuthor() { return getAttribute("author"); } @Override public String setAuthor(String author) throws IllegalArgumentException, NullPointerException { return setAttributeDirect(ATTR_DESC_AUTHOR, "author", author); } @Override public DateTime getTimestamp() { return (DateTime) getAttributeNativeData("timestamp"); } @Override public DateTime setTimestamp(DateTime timestamp) throws NullPointerException { return setAttributeDirect(ATTR_DESC_TIMESTAMP, "timestamp", timestamp); } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) { if (!(child instanceof Wom3Rtd)) doesNotAllowInsertion(prev, child); } } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) { if (!(newChild instanceof Wom3Rtd)) doesNotAllowReplacement(oldChild, newChild); } } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_FORMAT = new AttrDescFormat(); protected static final AttributeDescriptor ATTR_DESC_AUTHOR = new AttrDescAuthor(); protected static final AttributeDescriptor ATTR_DESC_TIMESTAMP = new AttrDescTimestamp(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "format", ATTR_DESC_FORMAT, "author", ATTR_DESC_AUTHOR, "timestamp", ATTR_DESC_TIMESTAMP); } public static final class AttrDescFormat extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToSignatureFormat(verified.strValue); else verified.strValue = Toolbox.signatureFormatToString((Wom3SignatureFormat) verified.value); return true; } } public static final class AttrDescAuthor extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } public static final class AttrDescTimestamp extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { if (verified.strValue != null) verified.value = Toolbox.stringToDateTime(verified.strValue); else verified.strValue = Toolbox.dateTimeToString((DateTime) verified.value); return true; } } } SmallImpl.java000066400000000000000000000023671335270560400375520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Small; public class SmallImpl extends BackboneWomElemWithUnivAttrs implements Wom3Small { private static final long serialVersionUID = 1L; // ========================================================================= public SmallImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "small"; } } SpanImpl.java000066400000000000000000000023621335270560400373760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Span; public class SpanImpl extends BackboneWomElemWithUnivAttrs implements Wom3Span { private static final long serialVersionUID = 1L; // ========================================================================= public SpanImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "span"; } } StrikeImpl.java000066400000000000000000000023741335270560400377410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Strike; public class StrikeImpl extends BackboneWomElemWithUnivAttrs implements Wom3Strike { private static final long serialVersionUID = 1L; // ========================================================================= public StrikeImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "strike"; } } StrongImpl.java000066400000000000000000000023741335270560400377540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Strong; public class StrongImpl extends BackboneWomElemWithUnivAttrs implements Wom3Strong { private static final long serialVersionUID = 1L; // ========================================================================= public StrongImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "strong"; } } SubImpl.java000066400000000000000000000023551335270560400372300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Sub; public class SubImpl extends BackboneWomElemWithUnivAttrs implements Wom3Sub { private static final long serialVersionUID = 1L; // ========================================================================= public SubImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "sub"; } } SubstImpl.java000066400000000000000000000064101335270560400375730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3For; import org.sweble.wom3.Wom3Repl; import org.sweble.wom3.Wom3Subst; public class SubstImpl extends BackboneContainer implements Wom3Subst { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("repl", ChildDescriptor.REQUIRED), childDesc("for", ChildDescriptor.REQUIRED) }; private Wom3Repl repl; private Wom3For for_; // ========================================================================= public SubstImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "subst"; } // ========================================================================= @Override public String getDisplacementId() { return getStringAttr("did"); } @Override public String setDisplacementId(String did) { return setStringAttr(CommonAttributeDescriptors.ATTR_DESC_DID, "did", did); } // ========================================================================= @Override public Wom3Repl getRepl() { return repl; } @Override public Wom3Repl setRepl(Wom3Repl repl) { return (Wom3Repl) replaceOrInsertBeforeOrAppend( this.repl, this.for_, repl, true); } @Override public Wom3For getFor() { return for_; } @Override public Wom3For setFor(Wom3For for_) throws NullPointerException { return (Wom3For) replaceOrAppend(this.for_, for_, true); } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3Repl) this.repl = (Wom3Repl) added; else if (added instanceof Wom3For) this.for_ = (Wom3For) added; } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName, "did", CommonAttributeDescriptors.ATTR_DESC_DID); } } SupImpl.java000066400000000000000000000023551335270560400372460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Sup; public class SupImpl extends BackboneWomElemWithUnivAttrs implements Wom3Sup { private static final long serialVersionUID = 1L; // ========================================================================= public SupImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "sup"; } } TableBodyImpl.java000066400000000000000000000023751335270560400403460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3TableBody; public class TableBodyImpl extends TablePartitionImpl implements Wom3TableBody { private static final long serialVersionUID = 1L; // ========================================================================= public TableBodyImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "tbody"; } } TableCaptionImpl.java000066400000000000000000000044271335270560400410460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3TableCaption; import org.sweble.wom3.Wom3TableCaptionAlign; public class TableCaptionImpl extends BackboneWomElemWithCoreAttrs implements Wom3TableCaption { private static final long serialVersionUID = 1L; // ========================================================================= public TableCaptionImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "caption"; } // ========================================================================= @Override public Wom3TableCaptionAlign getAlign() { return (Wom3TableCaptionAlign) getAttributeNativeData("align"); } @Override public Wom3TableCaptionAlign setAlign(Wom3TableCaptionAlign align) { return setAttributeDirect(CommonAttributeDescriptors.ATTR_DESC_ALIGN_TBLR, "align", align); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", CommonAttributeDescriptors.ATTR_DESC_ALIGN_TBLR); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } TableCellBaseImpl.java000066400000000000000000000240371335270560400411220ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJC; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_TMBB; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_BGCOLOR; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_HEIGHT_LENGTH; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_WIDTH_LENGTH; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Color; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableCellScope; import org.sweble.wom3.Wom3TableVAlign; import org.sweble.wom3.Wom3ValueWithUnit; public abstract class TableCellBaseImpl extends BackboneWomElemWithCoreAttrs implements Wom3TableCellBase { private static final long serialVersionUID = 1L; private int rowIndex; private int colIndex; // ========================================================================= public TableCellBaseImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getAbbr() { return getStringAttr("abbr"); } @Override public String setAbbr(String abbr) { return setStringAttr(ATTR_DESC_ABBR, "abbr", abbr); } @Override public String getAxis() { return getStringAttr("axis"); } @Override public String setAxis(String axis) { return setStringAttr(ATTR_DESC_AXIS, "axis", axis); } @Override public Wom3TableCellScope getScope() { return (Wom3TableCellScope) getAttributeNativeData("scope"); } @Override public Wom3TableCellScope setScope(Wom3TableCellScope scope) { return setAttributeDirect(ATTR_DESC_SCOPE, "scope", scope); } @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(ATTR_DESC_ALIGN_LCRJC, "align", align); } @Override public Wom3TableVAlign getVAlign() { return getTableVAlignAttr("valign"); } @Override public Wom3TableVAlign setVAlign(Wom3TableVAlign valign) { return setTableVAlignAttr(ATTR_DESC_ALIGN_TMBB, "valign", valign); } @Override public Wom3Color getBgColor() { return getColorAttr("bgcolor"); } @Override public Wom3Color setBgColor(Wom3Color color) { return setColorAttr(ATTR_DESC_BGCOLOR, "bgcolor", color); } @Override public Integer getColspan() { return getIntAttr("colspan"); } @Override public Integer setColspan(Integer span) throws IllegalArgumentException { return setIntAttr(ATTR_DESC_COLSPAN, "colspan", span); } @Override public Integer getRowspan() { return getIntAttr("rowspan"); } @Override public Integer setRowspan(Integer span) throws IllegalArgumentException { return setIntAttr(ATTR_DESC_ROWSPAN, "rowspan", span); } @Override public boolean isNowrap() { return getBoolAttr("nowrap"); } @Override public boolean setNowrap(boolean nowrap) { return setBoolAttr(ATTR_DESC_NOWRAP, "nowrap", nowrap); } @Override public Wom3ValueWithUnit getWidth() { return getValueWithUnitAttr("width"); } @Override public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width) { return setValueWithUnitAttr(ATTR_DESC_WIDTH_LENGTH, "width", width); } @Override public Wom3ValueWithUnit getHeight() { return getValueWithUnitAttr("height"); } @Override public Wom3ValueWithUnit setHeight(Wom3ValueWithUnit height) { return setValueWithUnitAttr(ATTR_DESC_HEIGHT_LENGTH, "height", height); } // ========================================================================= @Override public int getRowIndex() { checkAttachedToTable(); return rowIndex; } @Override public int getColIndex() { checkAttachedToTable(); return colIndex; } // ========================================================================= protected void checkAttachedToTable() { if (!isAttachedToTable()) throw new IllegalStateException("Cell not part of a table"); } protected boolean isAttachedToTable() { return getParentNode() instanceof TableRowImpl && getRow().isAttachedToTable(); } protected TableRowImpl getRow() { return (TableRowImpl) getParentNode(); } protected TablePartitionImpl getTablePartition() { TableRowImpl row = getRow(); if (row == null) return null; return row.getTablePartition(); } protected void invalidate() { TablePartitionImpl p = getTablePartition(); if (p != null) p.invalidate(); } protected void setCoords(int rowIndex, int colIndex) { this.rowIndex = rowIndex; this.colIndex = colIndex; } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_ABBR = new AttrDescAbbr(); protected static final AttributeDescriptor ATTR_DESC_AXIS = new AttrDescAxis(); protected static final AttributeDescriptor ATTR_DESC_SCOPE = new AttrDescScope(); protected static final AttributeDescriptor ATTR_DESC_COLSPAN = new AttrDescColSpan(); protected static final AttributeDescriptor ATTR_DESC_ROWSPAN = new AttrDescRowSpan(); protected static final AttributeDescriptor ATTR_DESC_NOWRAP = new AttrDescNoWrap(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("abbr", ATTR_DESC_ABBR); NAME_MAP.put("axis", ATTR_DESC_AXIS); NAME_MAP.put("scope", ATTR_DESC_SCOPE); NAME_MAP.put("align", ATTR_DESC_ALIGN_LCRJC); NAME_MAP.put("valign", ATTR_DESC_ALIGN_TMBB); NAME_MAP.put("bgcolor", ATTR_DESC_BGCOLOR); NAME_MAP.put("colspan", ATTR_DESC_COLSPAN); NAME_MAP.put("rowspan", ATTR_DESC_ROWSPAN); NAME_MAP.put("nowrap", ATTR_DESC_NOWRAP); NAME_MAP.put("width", ATTR_DESC_WIDTH_LENGTH); NAME_MAP.put("height", ATTR_DESC_HEIGHT_LENGTH); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescAbbr extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } public static final class AttrDescAxis extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } public static final class AttrDescScope extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.SCOPE.verifyAndConvert(parent, verified); } } public static final class AttrDescColSpan extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, true /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); if (((Integer) verified.value) <= 0) throw new IllegalArgumentException("Illegal colspan: " + verified.strValue); return true; } @Override public void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr) { ((TableCellBaseImpl) parent).invalidate(); } } public static final class AttrDescRowSpan extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, true /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { AttributeVerifiers.NUMBER.verifyAndConvert(parent, verified); if (((Integer) verified.value) <= 0) throw new IllegalArgumentException("Illegal rowspan: " + verified.strValue); return true; } @Override public void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr) { ((TableCellBaseImpl) parent).invalidate(); } } public static final class AttrDescNoWrap extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.verifyAndConvertBool(parent, verified, "nowrap"); } } } TableCellImpl.java000066400000000000000000000023711335270560400403240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3TableCell; public class TableCellImpl extends TableCellBaseImpl implements Wom3TableCell { private static final long serialVersionUID = 1L; // ========================================================================= public TableCellImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "td"; } } TableColumnImpl.java000066400000000000000000000035141335270560400407020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableColumn; public class TableColumnImpl implements Wom3TableColumn { private final TablePartitionImpl partition; private final int col; // ========================================================================= protected TableColumnImpl(TablePartitionImpl partition, int col) { this.partition = partition; this.col = col; } // ========================================================================= @Override public int getColIndex() { isValidColumn(); return col; } @Override public int getNumRows() { isValidColumn(); return partition.getNumRows(); } @Override public Wom3TableCellBase getCell(int row) throws IndexOutOfBoundsException { isValidColumn(); return partition.getCell(row, col); } // ========================================================================= private void isValidColumn() { if (partition.getNumCols() <= col) throw new IllegalStateException("This column is no longer valid (it was removed)"); } } TableField.java000066400000000000000000000101331335270560400376410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.ArrayList; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableRow; public class TableField { private final ArrayList> cells = new ArrayList>(); private ArrayList rows = new ArrayList(); private int colNum; // ========================================================================= public TableField(TablePartitionImpl part) { ArrayList ars = new ArrayList(); ArrayList lastRow = null; int rowIndex = 0; Wom3Node womRowNode = part.getFirstChild(); while (womRowNode != null) { if (!(womRowNode instanceof TableRowImpl)) { womRowNode = womRowNode.getNextSibling(); continue; } TableRowImpl rowNode = (TableRowImpl) womRowNode; // Add row ArrayList row = new ArrayList(); cells.add(row); rows.add(rowNode); // Add cells int colIndex = 0; Wom3Node womCellNode = rowNode.getFirstChild(); while (womCellNode != null) { if (!(womCellNode instanceof TableCellBaseImpl)) { womCellNode = womCellNode.getNextSibling(); continue; } TableCellBaseImpl cellNode = (TableCellBaseImpl) womCellNode; // First deal with row span from the rows above boolean hadRowSpan = false; if (colIndex < ars.size()) { Integer rowSpan = ars.get(colIndex); if (rowSpan != null && rowSpan > 0) { // Decrement remaining row span ars.set(colIndex, rowSpan - 1); // Add above cell to row row.add(lastRow.get(colIndex)); hadRowSpan = true; } } if (!hadRowSpan) { cellNode.setCoords(rowIndex, colIndex); Integer rowSpan = cellNode.getRowspan(); if (rowSpan == null) rowSpan = 1; Integer colSpan = cellNode.getColspan(); if (colSpan == null) colSpan = 1; for (int cs = 0; cs < colSpan; ++cs) { row.add(cellNode); if (rowSpan > 1) { while (ars.size() <= colIndex) ars.add(null); ars.set(colIndex, rowSpan - 1); } ++colIndex; } womCellNode = cellNode.getNextSibling(); } else { // We're not done with the current cell since its spot was // occupied by a rowspan cell from the rows above and the // current cell therefore has to move to the right ++colIndex; } } this.colNum = Math.max(this.colNum, colIndex); rowNode.setCoords(rowIndex); lastRow = row; ++rowIndex; womRowNode = rowNode.getNextSibling(); } } // ========================================================================= public int getNumCols() { return colNum; } public int getNumRows() { return rows.size(); } public Wom3TableRow getRow(int row) { if (row >= getNumRows()) throw new IndexOutOfBoundsException("Row: " + String.valueOf(row)); return rows.get(row); } public Wom3TableCellBase getCell(int row, int col) { if (row >= getNumRows()) throw new IndexOutOfBoundsException("Row: " + String.valueOf(row)); if (col >= getNumCols()) throw new IndexOutOfBoundsException("Col: " + String.valueOf(col)); ArrayList r = cells.get(row); if (col >= r.size()) return null; return r.get(col); } } TableHeaderImpl.java000066400000000000000000000024111335270560400406300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3TableHeaderCell; public class TableHeaderImpl extends TableCellBaseImpl implements Wom3TableHeaderCell { private static final long serialVersionUID = 1L; // ========================================================================= public TableHeaderImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "th"; } } TableImpl.java000066400000000000000000000256551335270560400375360ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCR; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_BGCOLOR; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_WIDTH_LENGTH; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Color; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3Table; import org.sweble.wom3.Wom3TableBody; import org.sweble.wom3.Wom3TableCaption; import org.sweble.wom3.Wom3TableFrame; import org.sweble.wom3.Wom3TablePartition; import org.sweble.wom3.Wom3TableRules; import org.sweble.wom3.Wom3ValueWithUnit; public class TableImpl extends BackboneWomElemWithCoreAttrs implements Wom3Table { private static final long serialVersionUID = 1L; /* Doesn't work for tables. They are too complex (the caption can occur anywhere...) private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc("caption"), descChild("tbody", ChildDescriptor.MULTIPLE) }; */ private Wom3TableCaption caption; /* // TODO: A MediaWiki table may only have one body, but others might have the full set! private Wom3TableBody body; */ private ChildrenSubset partitions = new ChildrenSubset(1); // ========================================================================= public TableImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "table"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) { if (BackboneChildOperationChecker.isIgnoredDefault(child)) return; if ((child instanceof Wom3TableCaption) && (getCaption() == null)) return; if (child instanceof Wom3TableBody) return; doesNotAllowInsertion(prev, child); } } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) { /** * Since all children are optional and there can be any number of * ignored children or partitions, any node can always be replaced * by a partition or an ignored node. */ if (newChild instanceof Wom3TableBody) return; if (BackboneChildOperationChecker.isIgnoredDefault(newChild)) return; /** * Only one caption may be child of this node. So if we replace with * a caption we must make sure that either the existing caption is * replaced or that there is no caption yet. */ if ((newChild instanceof Wom3TableCaption) && ((oldChild == getCaption()) || (getCaption() == null))) return; doesNotAllowReplacement(oldChild, newChild); } } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof Wom3TableCaption) { this.caption = (Wom3TableCaption) added; } else if (added instanceof Wom3TableBody) { this.partitions.insertAfter(prev, Wom3TablePartition.class, (Wom3TableBody) added); } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.caption) { this.caption = null; } else { this.partitions.remove(removed); } } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(ATTR_DESC_ALIGN_LCR, "align", align); } @Override public Integer getBorder() { return getIntAttr("border"); } @Override public Integer setBorder(Integer thickness) { return setIntAttr(ATTR_DESC_BORDER, "border", thickness); } @Override public Wom3Color getBgColor() { return getColorAttr("bgcolor"); } @Override public Wom3Color setBgColor(Wom3Color color) { return setColorAttr(ATTR_DESC_BGCOLOR, "bgcolor", color); } @Override public Wom3ValueWithUnit getCellPadding() { return getValueWithUnitAttr("cellpadding"); } @Override public Wom3ValueWithUnit setCellPadding(Wom3ValueWithUnit padding) { return setValueWithUnitAttr(ATTR_DESC_CELLPADDING, "cellpadding", padding); } @Override public Wom3ValueWithUnit getCellSpacing() { return getValueWithUnitAttr("cellspacing"); } @Override public Wom3ValueWithUnit setCellSpacing(Wom3ValueWithUnit spacing) { return setValueWithUnitAttr(ATTR_DESC_CELLSPACING, "cellspacing", spacing); } @Override public Wom3TableFrame getFrame() { return (Wom3TableFrame) getAttributeNativeData("frame"); } @Override public Wom3TableFrame setFrame(Wom3TableFrame frame) { return setAttributeDirect(ATTR_DESC_FRAME, "frame", frame); } @Override public Wom3TableRules getRules() { return (Wom3TableRules) getAttributeNativeData("rules"); } @Override public Wom3TableRules setRules(Wom3TableRules rules) { return setAttributeDirect(ATTR_DESC_RULES, "rules", rules); } @Override public String getSummary() { return getStringAttr("summary"); } @Override public String setSummary(String summary) { return setStringAttr(ATTR_DESC_SUMMARY, "summary", summary); } @Override public Wom3ValueWithUnit getWidth() { return getValueWithUnitAttr("width"); } @Override public Wom3ValueWithUnit setWidth(Wom3ValueWithUnit width) { return setValueWithUnitAttr(ATTR_DESC_WIDTH_LENGTH, "width", width); } // ========================================================================= @Override public Wom3TableCaption getCaption() { return caption; } @Override public Wom3TableCaption setCaption(Wom3TableCaption caption) { return (Wom3TableCaption) replaceOrInsertBeforeOrAppend( this.caption, this.partitions.getFirstOrNull(), caption, false); } @Override public Collection getPartitions() { return Collections.unmodifiableCollection(this.partitions); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_BORDER = new AttrDescBorder(); protected static final AttributeDescriptor ATTR_DESC_CELLPADDING = new AttrDescCellPadding(); protected static final AttributeDescriptor ATTR_DESC_CELLSPACING = new AttrDescCellSpacing(); protected static final AttributeDescriptor ATTR_DESC_FRAME = new AttrDescFrame(); protected static final AttributeDescriptor ATTR_DESC_RULES = new AttrDescRules(); protected static final AttributeDescriptor ATTR_DESC_SUMMARY = new AttrDescSummary(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", ATTR_DESC_ALIGN_LCR); NAME_MAP.put("border", ATTR_DESC_BORDER); NAME_MAP.put("bgcolor", ATTR_DESC_BGCOLOR); NAME_MAP.put("cellpadding", ATTR_DESC_CELLPADDING); NAME_MAP.put("cellspacing", ATTR_DESC_CELLSPACING); NAME_MAP.put("frame", ATTR_DESC_FRAME); NAME_MAP.put("rules", ATTR_DESC_RULES); NAME_MAP.put("summary", ATTR_DESC_SUMMARY); NAME_MAP.put("width", ATTR_DESC_WIDTH_LENGTH); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescBorder extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.PIXELS.verifyAndConvert(parent, verified); } } public static final class AttrDescCellPadding extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LENGTH.verifyAndConvert(parent, verified); } } public static final class AttrDescCellSpacing extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.LENGTH.verifyAndConvert(parent, verified); } } public static final class AttrDescFrame extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.FRAME.verifyAndConvert(parent, verified); } } public static final class AttrDescRules extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.RULES.verifyAndConvert(parent, verified); } } public static final class AttrDescSummary extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return super.verifyAndConvert(parent, verified); } } } TablePartitionImpl.java000066400000000000000000000102241335270560400414120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJC; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_TMBB; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableColumn; import org.sweble.wom3.Wom3TablePartition; import org.sweble.wom3.Wom3TableRow; import org.sweble.wom3.Wom3TableVAlign; public abstract class TablePartitionImpl extends BackboneWomElemWithCoreAttrs implements Wom3TablePartition { private static final long serialVersionUID = 1L; private transient TableField tableField = null; // ========================================================================= public TablePartitionImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(ATTR_DESC_ALIGN_LCRJC, "align", align); } @Override public Wom3TableVAlign getVAlign() { return getTableVAlignAttr("valign"); } @Override public Wom3TableVAlign setTableVAlign(Wom3TableVAlign valign) { return setTableVAlignAttr(ATTR_DESC_ALIGN_TMBB, "valign", valign); } // ========================================================================= @Override public int getNumCols() { checkAttachedToTable(); return tf().getNumCols(); } @Override public int getNumRows() { checkAttachedToTable(); return tf().getNumRows(); } @Override public Wom3TableRow getRow(int row) throws IndexOutOfBoundsException { checkAttachedToTable(); return tf().getRow(row); } @Override public Wom3TableColumn getCol(int col) throws IndexOutOfBoundsException { checkAttachedToTable(); return new TableColumnImpl(this, col); } @Override public Wom3TableCellBase getCell(int row, int col) throws IndexOutOfBoundsException { checkAttachedToTable(); return tf().getCell(row, col); } // ========================================================================= protected TableField tf() { if (tableField == null) tableField = new TableField(this); return tableField; } protected void invalidate() { tableField = null; } protected void checkAttachedToTable() { if (!isAttachedToTable()) throw new IllegalStateException("Table partition not part of a table"); } protected boolean isAttachedToTable() { return getParentNode() instanceof TableImpl; } // ========================================================================= @Override public void childInserted(Backbone prev, Backbone added) { invalidate(); } @Override public void childRemoved(Backbone prev, Backbone removed) { invalidate(); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", ATTR_DESC_ALIGN_LCRJC); NAME_MAP.put("valign", ATTR_DESC_ALIGN_TMBB); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } TableRowImpl.java000066400000000000000000000106341335270560400402150ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_LCRJC; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_ALIGN_TMBB; import static org.sweble.wom3.impl.CommonAttributeDescriptors.ATTR_DESC_BGCOLOR; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3Color; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableRow; import org.sweble.wom3.Wom3TableVAlign; public class TableRowImpl extends BackboneWomElemWithCoreAttrs implements Wom3TableRow { private static final long serialVersionUID = 1L; private int rowIndex; // ========================================================================= public TableRowImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "tr"; } // ========================================================================= @Override public Wom3HorizAlign getAlign() { return getAlignAttr("align"); } @Override public Wom3HorizAlign setAlign(Wom3HorizAlign align) { return setAlignAttr(ATTR_DESC_ALIGN_LCRJC, "align", align); } @Override public Wom3TableVAlign getVAlign() { return getTableVAlignAttr("valign"); } @Override public Wom3TableVAlign setVAlign(Wom3TableVAlign valign) { return setTableVAlignAttr(ATTR_DESC_ALIGN_TMBB, "valign", valign); } @Override public Wom3Color getBgColor() { return getColorAttr("bgcolor"); } @Override public Wom3Color setBgColor(Wom3Color color) { return setColorAttr(ATTR_DESC_BGCOLOR, "bgcolor", color); } // ========================================================================= @Override public int getRowIndex() { checkAttachedToTable(); return rowIndex; } @Override public int getNumCols() { checkAttachedToTable(); return tf().getNumCols(); } @Override public Wom3TableCellBase getCell(int col) throws IndexOutOfBoundsException { checkAttachedToTable(); return tf().getCell(rowIndex, col); } // ========================================================================= protected void checkAttachedToTable() { if (!isAttachedToTable()) throw new IllegalStateException("Row not part of a table"); } protected boolean isAttachedToTable() { return getParentNode() instanceof TablePartitionImpl && getTablePartition().isAttachedToTable(); } protected TableField tf() { return getTablePartition().tf(); } protected TablePartitionImpl getTablePartition() { return (TablePartitionImpl) getParentNode(); } protected void setCoords(int rowIndex) { this.rowIndex = rowIndex; } // ========================================================================= @Override public void childInserted(Backbone prev, Backbone added) { if (isAttachedToTable()) getTablePartition().invalidate(); } @Override public void childRemoved(Backbone prev, Backbone removed) { if (isAttachedToTable()) getTablePartition().invalidate(); } // ========================================================================= private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("align", ATTR_DESC_ALIGN_LCRJC); NAME_MAP.put("valign", ATTR_DESC_ALIGN_TMBB); NAME_MAP.put("bgcolor", ATTR_DESC_BGCOLOR); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } } TeletypeImpl.java000066400000000000000000000024001335270560400402610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Teletype; public class TeletypeImpl extends BackboneWomElemWithUnivAttrs implements Wom3Teletype { private static final long serialVersionUID = 1L; // ========================================================================= public TeletypeImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "tt"; } } TextImpl.java000066400000000000000000000040741335270560400374230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Text; import org.w3c.dom.Node; public class TextImpl extends BackboneContainer implements Wom3Text { private static final long serialVersionUID = 1L; // ========================================================================= public TextImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "text"; } @Override protected boolean ignoresContentWhitespace() { return false; } @Override protected void allowsInsertion(Backbone prev, Backbone child) { if (getOwnerDocument().getStrictErrorChecking()) { if (child.getNodeType() != Node.TEXT_NODE) doesNotAllowInsertion(prev, child); } } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { if (getOwnerDocument().getStrictErrorChecking()) { if (newChild.getNodeType() != Node.TEXT_NODE) doesNotAllowReplacement(oldChild, newChild); } } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } TitleImpl.java000066400000000000000000000026771335270560400375670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Title; public class TitleImpl extends BackboneContainer implements Wom3Title { private static final long serialVersionUID = 1L; // ========================================================================= public TitleImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "title"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } Toolbox.java000066400000000000000000000521611335270560400373030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; import org.sweble.wom3.Wom3BulletStyle; import org.sweble.wom3.Wom3Clear; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3I18nDir; import org.sweble.wom3.Wom3ImageFormat; import org.sweble.wom3.Wom3ImageHAlign; import org.sweble.wom3.Wom3ImageVAlign; import org.sweble.wom3.Wom3SignatureFormat; import org.sweble.wom3.Wom3TableCaptionAlign; import org.sweble.wom3.Wom3TableCellScope; import org.sweble.wom3.Wom3TableFrame; import org.sweble.wom3.Wom3TableRules; import org.sweble.wom3.Wom3TableVAlign; import org.sweble.wom3.Wom3Unit; import org.sweble.wom3.Wom3ValueWithUnit; import de.fau.cs.osr.utils.WrappedException; import de.fau.cs.osr.utils.XmlGrammar; public class Toolbox { @SuppressWarnings("unchecked") public static T expectType(Class type, Object obj) { if (obj != null && !type.isInstance(obj)) throw new IllegalArgumentException( "Expected object of type " + type.getName() + "!"); return (T) obj; } @SuppressWarnings("unchecked") public static T expectType(Class type, Object obj, String argName) { if (obj != null && !type.isInstance(obj)) throw new IllegalArgumentException( "Expected argument `" + argName + "' to be of type " + type.getName() + "!"); return (T) obj; } // ========================================================================= public static void checkValidXmlName(String name) { if (name == null) throw new NullPointerException("Name cannot be null"); if (!XmlGrammar.xmlName().matcher(name).matches()) throw new IllegalArgumentException("Not a valid XML Name"); } // ========================================================================= public static void checkValidCommentText(String text) { if (text == null) throw new NullPointerException("Text cannot be null"); if (!XmlGrammar.xmlCommentText().matcher(text).matches()) throw new IllegalArgumentException("Not a valid XML Comment text"); } // ========================================================================= private static final String INVALID_NOWIKI_RX_STR = ""; private static final AtomicReference INVALID_NOWIKI_RX = new AtomicReference(); public static Pattern getInvalidNowikiRx() { Pattern value = INVALID_NOWIKI_RX.get(); if (value == null) { synchronized (INVALID_NOWIKI_RX) { value = INVALID_NOWIKI_RX.get(); if (value == null) { Pattern actualValue = Pattern.compile(INVALID_NOWIKI_RX_STR); value = actualValue; INVALID_NOWIKI_RX.set(value); } } } return value; } public static void checkValidNowikiText(String text) { if (text == null) throw new NullPointerException("Text cannot be null"); if (Toolbox.getInvalidNowikiRx().matcher(text).find()) throw new IllegalArgumentException("Not a valid nowiki text"); } // ========================================================================= private static final String VALID_TARGET_RX_STR = "(?:[^\\u0000-\\u001F\\u007F\\uFFFD<>{}|\\[\\]]+)"; private static final AtomicReference VALID_TARGET_RX = new AtomicReference(); public static Pattern getValidTargetRx() { Pattern value = VALID_TARGET_RX.get(); if (value == null) { synchronized (VALID_TARGET_RX) { value = VALID_TARGET_RX.get(); if (value == null) { Pattern actualValue = Pattern.compile(VALID_TARGET_RX_STR); value = actualValue; VALID_TARGET_RX.set(value); } } } return value; } public static void checkValidTarget(String target) { if (target == null) throw new UnsupportedOperationException("Cannot remove target attribute"); if (!getValidTargetRx().matcher(target).matches()) throw new IllegalArgumentException("Invalid target"); } // ========================================================================= private static final String VALID_TITLE_RX_STR = "(?:[^\\u0000-\\u001F\\u007F\\uFFFD<>{}|\\[\\]/]+)"; private static final AtomicReference VALID_TITLE_RX = new AtomicReference(); public static Pattern getValidTitleRx() { Pattern value = VALID_TITLE_RX.get(); if (value == null) { synchronized (VALID_TITLE_RX) { value = VALID_TITLE_RX.get(); if (value == null) { Pattern actualValue = Pattern.compile(VALID_TITLE_RX_STR); value = actualValue; VALID_TITLE_RX.set(value); } } } return value; } public static void checkValidTitle(String title) throws UnsupportedOperationException, IllegalArgumentException { if (title == null) throw new UnsupportedOperationException("Cannot remove attribute `title'"); if (!getValidTitleRx().matcher(title).matches()) throw new IllegalArgumentException("Invalid title: `" + title + "'"); } // ========================================================================= public static String checkValidNamespace(String namespace) throws IllegalArgumentException { if (namespace == null || namespace.isEmpty()) return null; if (!getValidTitleRx().matcher(namespace).matches()) throw new IllegalArgumentException("Invalid namespace"); return namespace; } // ========================================================================= private static final String VALID_PATH_RX_STR = "(?:(?:" + VALID_TITLE_RX_STR + "/)*" + VALID_TITLE_RX_STR + "?)"; private static final AtomicReference VALID_PATH_RX = new AtomicReference(); public static Pattern getValidPathRx() { Pattern value = VALID_PATH_RX.get(); if (value == null) { synchronized (VALID_PATH_RX) { value = VALID_PATH_RX.get(); if (value == null) { Pattern actualValue = Pattern.compile(VALID_PATH_RX_STR); value = actualValue; VALID_PATH_RX.set(value); } } } return value; } /** * Checks for a valid path expression and removes a trailing slash if * present. * * @param path * The path to check. * @return The path stripped of a trailing slash if present. * @throws IllegalArgumentException */ public static String checkValidPath(String path) throws IllegalArgumentException { if (path == null || path.isEmpty()) return null; if (path == null || !getValidPathRx().matcher(path).matches()) throw new IllegalArgumentException("Invalid path: `" + path + "'"); int l = path.length() - 1; return (path.charAt(l) == '/') ? path.substring(0, l) : path; } // ========================================================================= public static void checkValidCategory(String category) throws UnsupportedOperationException, IllegalArgumentException { if (category == null) throw new UnsupportedOperationException("Cannot remove attribute `category'"); if (!getValidTitleRx().matcher(category).matches()) throw new IllegalArgumentException("Invalid category"); } // ========================================================================= public static DateTime stringToDateTime(String datetime) { DateTimeFormatter parser = ISODateTimeFormat.dateTimeParser(); return parser.parseDateTime(datetime); } public static String dateTimeToString(DateTime datetime) { DateTimeFormatter formatter = ISODateTimeFormat.dateTime(); return datetime.toString(formatter); } // ========================================================================= public static String signatureFormatToString(Wom3SignatureFormat format) { switch (format) { case TIMESTAMP: return "timestamp"; case USER: return "user"; case USER_TIMESTAMP: return "user-timestamp"; default: throw new InternalError(); } } public static Wom3SignatureFormat stringToSignatureFormat(String value) { if (value.equals("timestamp")) { return Wom3SignatureFormat.TIMESTAMP; } else if (value.equals("user")) { return Wom3SignatureFormat.USER; } else if (value.equals("user-timestamp")) { return Wom3SignatureFormat.USER_TIMESTAMP; } else { throw new IllegalArgumentException(value); } } // ========================================================================= public static Wom3ImageFormat stringToImageFormat(String value) { if (value.equals("unrestrained")) { return Wom3ImageFormat.UNRESTRAINED; } else if (value.equals("frameless")) { return Wom3ImageFormat.FRAMELESS; } else if (value.equals("thumbnail")) { return Wom3ImageFormat.THUMBNAIL; } else if (value.equals("frame")) { return Wom3ImageFormat.FRAME; } else { throw new IllegalArgumentException(value); } } public static String imageFormatToString(Wom3ImageFormat format) { if (format == null) return null; switch (format) { case FRAME: return "frame"; case FRAMELESS: return "frameless"; case THUMBNAIL: return "thumbnail"; case UNRESTRAINED: return "unrestrained"; default: throw new InternalError(); } } // ========================================================================= public static Wom3ImageHAlign stringToImageHAlign(String value) { if (value.equals("center")) { return Wom3ImageHAlign.CENTER; } else if (value.equals("default")) { return Wom3ImageHAlign.DEFAULT; } else if (value.equals("left")) { return Wom3ImageHAlign.LEFT; } else if (value.equals("none")) { return Wom3ImageHAlign.NONE; } else if (value.equals("right")) { return Wom3ImageHAlign.RIGHT; } else { throw new IllegalArgumentException(value); } } public static String imageHAlignToString(Wom3ImageHAlign halign) { if (halign == null) return null; switch (halign) { case CENTER: return "center"; case DEFAULT: return "default"; case LEFT: return "left"; case NONE: return "none"; case RIGHT: return "right"; default: throw new InternalError(); } } // ========================================================================= public static Wom3ImageVAlign stringToImageVAlign(String value) { if (value.equals("baseline")) { return Wom3ImageVAlign.BASELINE; } else if (value.equals("bottom")) { return Wom3ImageVAlign.BOTTOM; } else if (value.equals("middle")) { return Wom3ImageVAlign.MIDDLE; } else if (value.equals("sub")) { return Wom3ImageVAlign.SUB; } else if (value.equals("super")) { return Wom3ImageVAlign.SUPER; } else if (value.equals("text-bottom")) { return Wom3ImageVAlign.TEXT_BOTTOM; } else if (value.equals("text-top")) { return Wom3ImageVAlign.TEXT_TOP; } else if (value.equals("top")) { return Wom3ImageVAlign.TOP; } else { throw new IllegalArgumentException(value); } } public static String imageVAlignToString(Wom3ImageVAlign valign) { if (valign == null) return null; switch (valign) { case BASELINE: return "baseline"; case BOTTOM: return "bottom"; case MIDDLE: return "middle"; case SUB: return "sub"; case SUPER: return "super"; case TEXT_BOTTOM: return "text-bottom"; case TEXT_TOP: return "text-top"; case TOP: return "top"; default: throw new InternalError(); } } // ========================================================================= public static Wom3I18nDir stringToDir(String value) { if (value.equalsIgnoreCase("ltr")) { return Wom3I18nDir.LTR; } else if (value.equalsIgnoreCase("rtl")) { return Wom3I18nDir.RTL; } else { throw new IllegalArgumentException(value); } } public static String dirToString(Wom3I18nDir dir) { if (dir == null) return null; switch (dir) { case LTR: return "ltr"; case RTL: return "rtl"; default: throw new InternalError(); } } // ========================================================================= public static Wom3Clear stringToClear(String value) { if (value.equalsIgnoreCase("all")) { return Wom3Clear.ALL; } else if (value.equalsIgnoreCase("left")) { return Wom3Clear.LEFT; } else if (value.equalsIgnoreCase("none")) { return Wom3Clear.NONE; } else if (value.equalsIgnoreCase("right")) { return Wom3Clear.RIGHT; } else { throw new IllegalArgumentException(value); } } public static String clearToString(Wom3Clear clear) { if (clear == null) return null; switch (clear) { case ALL: return "all"; case LEFT: return "left"; case NONE: return "none"; case RIGHT: return "right"; default: throw new InternalError(); } } // ========================================================================= public static String urlToString(Object value) { return value.toString(); } public static URL stringToUrl(String value) { try { return new URL(value); } catch (MalformedURLException e) { throw new WrappedException(e); } } // ========================================================================= public static Wom3HorizAlign stringToHorizAlign(String value) { if (value.equals("center")) { return Wom3HorizAlign.CENTER; } else if (value.equals("left")) { return Wom3HorizAlign.LEFT; } else if (value.equals("right")) { return Wom3HorizAlign.RIGHT; } else if (value.equals("justify")) { return Wom3HorizAlign.JUSTIFY; } else if (value.equals("char")) { return Wom3HorizAlign.CHAR; } else { throw new IllegalArgumentException(value); } } public static String horizAlignToString(Wom3HorizAlign halign) { if (halign == null) return null; switch (halign) { case CENTER: return "center"; case CHAR: return "char"; case JUSTIFY: return "justify"; case LEFT: return "left"; case RIGHT: return "right"; default: throw new InternalError(); } } // ========================================================================= private static final String VALID_LENGTH_RX_STR = "([-+]?\\d+)|(?:([-+]?\\d+(?:\\.\\d+)?)%)"; private static final AtomicReference VALID_LENGTH_RX = new AtomicReference(); public static Pattern getValidLengthRx() { Pattern value = VALID_LENGTH_RX.get(); if (value == null) { synchronized (VALID_LENGTH_RX) { value = VALID_LENGTH_RX.get(); if (value == null) { Pattern actualValue = Pattern.compile(VALID_LENGTH_RX_STR); value = actualValue; VALID_LENGTH_RX.set(value); } } } return value; } public static Wom3ValueWithUnit stringToLength(String value) { Matcher m = getValidLengthRx().matcher(value); if (m.matches()) { if (m.group(1) != null) { return new ValueWithUnitImpl(Wom3Unit.PIXELS, Integer.parseInt(m.group(1))); } else { return new ValueWithUnitImpl(Wom3Unit.PERCENT, Float.parseFloat(m.group(2))); } } else { throw new IllegalArgumentException("Not a length value: `" + value + "'"); } } public static String lengthToString(Wom3ValueWithUnit value) { return value.toString(); } // ========================================================================= public static Wom3BulletStyle stringToBulletStyle(String value) { if (value.equals("circle")) { return Wom3BulletStyle.CIRCLE; } else if (value.equals("disc")) { return Wom3BulletStyle.DISC; } else if (value.equals("square")) { return Wom3BulletStyle.SQUARE; } else { throw new IllegalArgumentException(value); } } public static String bulletStyleToString(Wom3BulletStyle value) { if (value == null) return null; switch (value) { case CIRCLE: return "circle"; case DISC: return "disc"; case SQUARE: return "square"; default: throw new InternalError(); } } // ========================================================================= public static Wom3TableVAlign stringToTableVAlign(String value) { if (value.equals("baseline")) { return Wom3TableVAlign.BASELINE; } else if (value.equals("bottom")) { return Wom3TableVAlign.BOTTOM; } else if (value.equals("middle")) { return Wom3TableVAlign.MIDDLE; } else if (value.equals("top")) { return Wom3TableVAlign.TOP; } else { throw new IllegalArgumentException(value); } } public static String tableVAlignToString(Wom3TableVAlign value) { if (value == null) return null; switch (value) { case BASELINE: return "baseline"; case BOTTOM: return "bottom"; case MIDDLE: return "middle"; case TOP: return "top"; default: throw new InternalError(); } } // ========================================================================= public static Wom3TableCaptionAlign stringToCaptionAlign(String value) { if (value.equals("bottom")) { return Wom3TableCaptionAlign.BOTTOM; } else if (value.equals("left")) { return Wom3TableCaptionAlign.LEFT; } else if (value.equals("right")) { return Wom3TableCaptionAlign.RIGHT; } else if (value.equals("top")) { return Wom3TableCaptionAlign.TOP; } else { throw new IllegalArgumentException(value); } } public static String captionAlignToString(Wom3TableCaptionAlign value) { if (value == null) return null; switch (value) { case BOTTOM: return "bottom"; case LEFT: return "left"; case RIGHT: return "right"; case TOP: return "top"; default: throw new InternalError(); } } // ========================================================================= public static Wom3TableCellScope stringToTableScope(String value) { if (value.equals("col")) { return Wom3TableCellScope.COL; } else if (value.equals("colgroup")) { return Wom3TableCellScope.COLGROUP; } else if (value.equals("row")) { return Wom3TableCellScope.ROW; } else if (value.equals("rowgroup")) { return Wom3TableCellScope.ROWGROUP; } else { throw new IllegalArgumentException(value); } } public static String tableScopeToString(Wom3TableCellScope value) { if (value == null) return null; switch (value) { case COL: return "col"; case COLGROUP: return "colgroup"; case ROW: return "row"; case ROWGROUP: return "rowgroup"; default: throw new InternalError(); } } // ========================================================================= public static Wom3TableFrame stringToTableFrame(String value) { if (value.equals("above")) { return Wom3TableFrame.ABOVE; } else if (value.equals("below")) { return Wom3TableFrame.BELOW; } else if (value.equals("border")) { return Wom3TableFrame.BORDER; } else if (value.equals("box")) { return Wom3TableFrame.BOX; } else if (value.equals("hsides")) { return Wom3TableFrame.HSIDES; } else if (value.equals("lhs")) { return Wom3TableFrame.LHS; } else if (value.equals("rhs")) { return Wom3TableFrame.RHS; } else if (value.equals("void")) { return Wom3TableFrame.VOID; } else if (value.equals("vsides")) { return Wom3TableFrame.VSIDES; } else { throw new IllegalArgumentException(value); } } public static String tableFrameToString(Wom3TableFrame value) { if (value == null) return null; switch (value) { case ABOVE: return "above"; case BELOW: return "below"; case BORDER: return "border"; case BOX: return "box"; case HSIDES: return "hsides"; case LHS: return "lhs"; case RHS: return "rhs"; case VOID: return "void"; case VSIDES: return "vsides"; default: throw new InternalError(); } } // ========================================================================= public static Wom3TableRules stringToTableRules(String value) { if (value.equals("all")) { return Wom3TableRules.ALL; } else if (value.equals("cols")) { return Wom3TableRules.COLS; } else if (value.equals("groups")) { return Wom3TableRules.GROUPS; } else if (value.equals("none")) { return Wom3TableRules.NONE; } else if (value.equals("rows")) { return Wom3TableRules.ROWS; } else { throw new IllegalArgumentException(value); } } public static String tableRulesToString(Wom3TableRules value) { if (value == null) return null; switch (value) { case ALL: return "all"; case COLS: return "cols"; case GROUPS: return "groups"; case NONE: return "none"; case ROWS: return "rows"; default: throw new InternalError(); } } } UnderlineImpl.java000066400000000000000000000024031335270560400404160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Underline; public class UnderlineImpl extends BackboneWomElemWithUnivAttrs implements Wom3Underline { private static final long serialVersionUID = 1L; // ========================================================================= public UnderlineImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "u"; } } UniversalAttributes.java000066400000000000000000000027271335270560400416770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; public enum UniversalAttributes { /* No additional attributes */; private static final Map nameMap; public static Map getNameMap() { if (nameMap != null) return nameMap; Map nameMap = new HashMap(); nameMap.putAll(CoreAttributes.getNameMap()); nameMap.putAll(I18nAttributes.getNameMap()); nameMap.putAll(EventAttributes.getNameMap()); return nameMap; } static { nameMap = getNameMap(); } public static AttributeDescriptor getDescriptor(String name) { return nameMap.get(name); } } UnorderedListImpl.java000066400000000000000000000054051335270560400412610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.Wom3BulletStyle; import org.sweble.wom3.Wom3UnorderedList; public class UnorderedListImpl extends ListBaseImpl implements Wom3UnorderedList { private static final long serialVersionUID = 1L; // ========================================================================= public UnorderedListImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "ul"; } // ========================================================================= @Override public Wom3BulletStyle getItemType() { return (Wom3BulletStyle) getAttributeNativeData("type"); } @Override public Wom3BulletStyle setItemType(Wom3BulletStyle type) { return setAttributeDirect(ATTR_DESC_TYPE, "type", type); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_TYPE = new AttrDescType(); private static final Map NAME_MAP = new HashMap(); static { NAME_MAP.putAll(UniversalAttributes.getNameMap()); NAME_MAP.put("compact", CommonAttributeDescriptors.ATTR_DESC_COMPACT); NAME_MAP.put("type", ATTR_DESC_TYPE); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDesc(namespaceUri, localName, qualifiedName, NAME_MAP); } public static final class AttrDescType extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( true /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.ULTYPE.verifyAndConvert(parent, verified); } } } ValueWithUnitImpl.java000066400000000000000000000053671335270560400412550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.io.Serializable; import org.sweble.wom3.Wom3Unit; import org.sweble.wom3.Wom3ValueWithUnit; public class ValueWithUnitImpl implements Wom3ValueWithUnit, Serializable { private static final long serialVersionUID = 1L; private Wom3Unit unit; private float value; private int intValue; // ========================================================================= public ValueWithUnitImpl(Wom3Unit unit, float value) { this.unit = unit; this.value = value; this.intValue = (int) value; } public ValueWithUnitImpl(Wom3Unit unit, int value) { this.unit = unit; this.value = value; this.intValue = value; } // ========================================================================= @Override public Wom3Unit getUnit() { return unit; } @Override public float getValue() { return value; } @Override public int getIntValue() { return intValue; } // ========================================================================= @Override public String toString() { switch (getUnit()) { case PERCENT: return String.valueOf(getValue()) + "%"; case PIXELS: return String.valueOf(getIntValue()); default: throw new InternalError(); } } // ========================================================================= @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + intValue; result = prime * result + ((unit == null) ? 0 : unit.hashCode()); result = prime * result + Float.floatToIntBits(value); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ValueWithUnitImpl other = (ValueWithUnitImpl) obj; if (intValue != other.intValue) return false; if (unit != other.unit) return false; if (Float.floatToIntBits(value) != Float.floatToIntBits(other.value)) return false; return true; } } VarImpl.java000066400000000000000000000023551335270560400372270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Var; public class VarImpl extends BackboneWomElemWithUnivAttrs implements Wom3Var { private static final long serialVersionUID = 1L; // ========================================================================= public VarImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getWomName() { return "var"; } } XmlCommentImpl.java000066400000000000000000000032231335270560400405550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3XmlComment; import org.w3c.dom.Node; public class XmlCommentImpl extends BackboneCharacterData implements Wom3XmlComment { private static final long serialVersionUID = 1L; private String data; // ========================================================================= public XmlCommentImpl(DocumentImpl owner, String data) { super(owner); setData(data); } // ========================================================================= @Override public String getNodeName() { return "#comment"; } @Override public short getNodeType() { return Node.COMMENT_NODE; } @Override public Backbone getParentNode() { return getParentNodeIntern(); } @Override public String getData() { return data; } @Override public void setData(String data) { assertWritableOnDocument(); this.data = data; } } XmlTextBase.java000066400000000000000000000046371335270560400400620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3XmlText; import org.w3c.dom.DOMException; import org.w3c.dom.Node; import org.w3c.dom.Text; import de.fau.cs.osr.utils.StringTools; public abstract class XmlTextBase extends BackboneCharacterData implements Wom3XmlText { private static final long serialVersionUID = 1L; // ========================================================================= public XmlTextBase(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getNodeName() { return "#text"; } @Override public short getNodeType() { return Node.TEXT_NODE; } @Override public Backbone getParentNode() { return getParentNodeIntern(); } @Override public boolean isContentWhitespace() { // TODO: use isElementContentWhitespace() instead! return StringTools.isWhitespace(getTextContent()); } // ========================================================================= // // DOM Level 3 Text Interface Operations // // ========================================================================= @Override public Text splitText(int offset) throws DOMException { // TODO: Implement throw new UnsupportedOperationException(); } @Override public boolean isElementContentWhitespace() { // TODO: Implement throw new UnsupportedOperationException(); } @Override public String getWholeText() { // TODO: Implement throw new UnsupportedOperationException(); } @Override public Text replaceWholeText(String content) throws DOMException { // TODO: Implement throw new UnsupportedOperationException(); } } XmlTextImpl.java000066400000000000000000000025021335270560400400760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; public class XmlTextImpl extends XmlTextBase { private static final long serialVersionUID = 1L; private String data; // ========================================================================= public XmlTextImpl(DocumentImpl owner, String data) { super(owner); setData(data); } // ========================================================================= @Override public String getData() { return data; } @Override public void setData(String data) { assertWritableOnDocument(); this.data = data; } } util/000077500000000000000000000000001335270560400350215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3SaxonWomTransformations.java000066400000000000000000000054451335270560400425610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import java.io.InputStream; import java.io.StringWriter; import java.io.Writer; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.sweble.wom3.Wom3Node; import org.w3c.dom.Node; import de.fau.cs.osr.utils.WrappedException; /** * Requires dependency: * *
     *   <dependency>
     *     <groupId>net.sf.saxon</groupId>
     *     <artifactId>Saxon-HE</artifactId>
     *   </dependency>
     * 
    */ public class SaxonWomTransformations { public static TransformerFactory getSaxonTransformerFactory() throws TransformerFactoryConfigurationError { return TransformerFactory.newInstance( net.sf.saxon.TransformerFactoryImpl.class.getName(), null); } public static String printWom(Wom3Node node) { try { StringWriter sw = new StringWriter(); printWom(node, sw); return sw.toString(); } catch (Exception e) { throw new WrappedException(e); } } public static void printWom(Wom3Node node, Writer out) { try { InputStream xslt = Wom3Toolbox.class .getResourceAsStream("/org/sweble/wom3/pretty-print.xslt"); Transformer transformer = getSaxonTransformerFactory().newTransformer(new StreamSource(xslt)); transformer.setOutputProperty(OutputKeys.VERSION, "1.1"); transformer.transform( new DOMSource(node), new StreamResult(out)); } catch (Exception e) { throw new WrappedException(e); } } public static void womToDom(Wom3Node node, Node parent) { try { Transformer transformer = getSaxonTransformerFactory().newTransformer(); DOMResult result = new DOMResult(parent); transformer.transform(new DOMSource(node), result); } catch (Exception e) { throw new WrappedException(e); } } } SaxonWomXPath.java000066400000000000000000000123301335270560400404030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import javax.xml.XMLConstants; import javax.xml.namespace.NamespaceContext; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import javax.xml.xpath.XPathFactoryConfigurationException; import org.sweble.wom3.Wom3Node; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import de.fau.cs.osr.utils.WrappedException; import net.sf.saxon.pull.NamespaceContextImpl; import net.sf.saxon.sxpath.IndependentContext; /** * Requires dependency: * *
     *   <dependency>
     *     <groupId>net.sf.saxon</groupId>
     *     <artifactId>Saxon-HE</artifactId>
     *   </dependency>
     * 
    */ public class SaxonWomXPath { public static XPathFactory getSaxonXPathFactory() throws XPathFactoryConfigurationException { return XPathFactory.newInstance( net.sf.saxon.xpath.XPathFactoryImpl.DEFAULT_OBJECT_MODEL_URI, net.sf.saxon.xpath.XPathFactoryImpl.class.getName(), null); } public static NodeList evalXPath( Node node, NamespaceContext nsContext, String query) throws XPathFactoryConfigurationException, XPathExpressionException { XPath xPath = getSaxonXPathFactory().newXPath(); xPath.setNamespaceContext(nsContext); NodeList nodes = (NodeList) xPath.evaluate(query, node, XPathConstants.NODESET); return nodes; } public static String womToWmXPath(Wom3Node doc) { IndependentContext context = new IndependentContext(); context.declareNamespace(XMLConstants.DEFAULT_NS_PREFIX, Wom3Node.WOM_NS_URI); context.declareNamespace(XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI); context.declareNamespace(XMLConstants.XMLNS_ATTRIBUTE, XMLConstants.XMLNS_ATTRIBUTE_NS_URI); context.declareNamespace(Wom3Node.DEFAULT_WOM_NS_PREFIX, Wom3Node.WOM_NS_URI); return womToWmXPath(new NamespaceContextImpl(context), doc); } public static String womToWmXPath(NamespaceContext nsContext, Wom3Node doc) { NodeList nodes; try { nodes = evalXPath(doc, nsContext, "" + "//wom:text[not(ancestor::wom:repl)]|" + "//wom:rtd[not(ancestor::wom:repl)]"); } catch (XPathFactoryConfigurationException e) { throw new WrappedException(e); } catch (XPathExpressionException e) { throw new WrappedException(e); } StringBuilder sb = new StringBuilder(); for (int j = 0; j < nodes.getLength(); ++j) sb.append(((Element) nodes.item(j)).getTextContent()); return sb.toString(); } // ========================================================================= /* public static final class NamespaceContextImpl implements NamespaceContext, NamespaceResolver { private static final Map prefixMap = new HashMap(); static { prefixMap.put(XMLConstants.DEFAULT_NS_PREFIX, Wom3Node.WOM_NS_URI); prefixMap.put(XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI); prefixMap.put(XMLConstants.XMLNS_ATTRIBUTE, XMLConstants.XMLNS_ATTRIBUTE_NS_URI); prefixMap.put(Wom3Node.DEFAULT_WOM_NS_PREFIX, Wom3Node.WOM_NS_URI); } @Override public Iterator getPrefixes(String namespaceURI) { final String result = getPrefix(namespaceURI); return new Iterator() { private boolean first = (result != null); public boolean hasNext() { return first; } public String next() { if (first) { first = false; return result; } return null; } public void remove() { throw new UnsupportedOperationException(); } }; } @Override public String getPrefix(String namespaceURI) { if (namespaceURI == null) throw new IllegalArgumentException(); if (namespaceURI.equals(XMLConstants.XML_NS_URI)) return XMLConstants.XML_NS_PREFIX; else if (namespaceURI.equals(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)) return XMLConstants.XMLNS_ATTRIBUTE; else if (namespaceURI.equals(Wom3Node.WOM_NS_URI)) return Wom3Node.DEFAULT_WOM_NS_PREFIX; else return null; } @Override public String getNamespaceURI(String prefix) { if (prefix == null) throw new IllegalArgumentException(); String ns = prefixMap.get(prefix); return (ns != null) ? ns : XMLConstants.NULL_NS_URI; } @Override public String getURIForPrefix(String prefix, boolean useDefault) { return getNamespaceURI(prefix); } @Override public Iterator iteratePrefixes() { return prefixMap.keySet().iterator(); } } */ } Wom3Toolbox.java000066400000000000000000000103031335270560400400550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import java.util.ArrayList; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.impl.DomImplementationImpl; import org.w3c.dom.Node; public class Wom3Toolbox { private Wom3Toolbox() { } // ========================================================================= // Singletons // ========================================================================= public static DomImplementationImpl getWomDomImpl() { return DomImplementationImpl.get(); } // ========================================================================= // WOM helpers // ========================================================================= public static Wom3Document createDocument() { return new DocumentImpl(getWomDomImpl()); } public static Wom3Document createDocument(String docElemTagName) { return getWomDomImpl().createDocument( Wom3Node.WOM_NS_URI, docElemTagName, null); } public static String womToWmFast(Node wom) { StringBuilder sb = new StringBuilder(); womToWmFast(sb, wom); return sb.toString(); } public static void womToWmFast(StringBuilder sb, Node wom) { if ((wom == null) || (sb == null)) throw new NullPointerException(); womToWmFastRec(sb, wom); } private static void womToWmFastRec(StringBuilder sb, Node wom) { if ((wom.getNodeType() == Node.ELEMENT_NODE) && Wom3Node.WOM_NS_URI.equals(wom.getNamespaceURI())) { String localName = wom.getLocalName(); if ("rtd".equals(localName) || "text".equals(localName)) { sb.append(wom.getTextContent()); return; } else if ("repl".equals(localName)) { // Ignore ... stuff return; } } for (Node child = wom.getFirstChild(); child != null; child = child.getNextSibling()) womToWmFastRec(sb, child); } // ========================================================================= // WOM query & manipulation // ========================================================================= public static boolean isRtdOrText(Node wom) { if ((wom != null) && (wom.getNodeType() == Node.ELEMENT_NODE) && Wom3Node.WOM_NS_URI.equals(wom.getNamespaceURI())) { String localName = wom.getLocalName(); return ("rtd".equals(localName) || "text".equals(localName)); } else { return false; } } public static boolean isText(Node wom) { return isWomElement(wom, "text"); } public static boolean isRtd(Node wom) { return isWomElement(wom, "rtd"); } public static boolean isWomElement(Node node, String localName) { return (node != null) && (node.getNodeType() == Node.ELEMENT_NODE) && Wom3Node.WOM_NS_URI.equals(node.getNamespaceURI()) && localName.equals(node.getLocalName()); } public static void insertBefore( Node parent, Node insertBefore, Node child) { if (insertBefore == null) parent.appendChild(child); else parent.insertBefore(child, insertBefore); } public static Node[] getChildrenByTagName(Node wom, String name) { ArrayList result = new ArrayList(); getChildrenByTagName(wom, name, result); return result.toArray(new Node[0]); } public static void getChildrenByTagName( Node node, String name, ArrayList result) { if (node.getNodeName().equals(name)) result.add(node); for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) getChildrenByTagName(child, name, result); } } Wom3Visitor.java000066400000000000000000000062771335270560400401050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import java.util.ArrayList; import java.util.List; import org.sweble.wom3.Wom3Node; import de.fau.cs.osr.utils.visitor.VisitorBase; import de.fau.cs.osr.utils.visitor.VisitorLogic; public class Wom3Visitor extends VisitorBase { public static final Object REMOVE = new Object(); // ========================================================================= public Wom3Visitor() { } public Wom3Visitor(VisitorLogic logic) { super(logic); } // ========================================================================= /** * Dispatches to the appropriate visit() method and returns the result of * the visitation. If the given node is null this method * returns immediately with null as result. */ protected Object dispatch(Wom3Node node) { if (node == null) throw new NullPointerException(); return resolveAndVisit(node); } // ========================================================================= protected void iterate(Wom3Node node) { if (node == null) throw new NullPointerException(); Wom3Node n = node.getFirstChild(); while (n != null) { dispatch(n); n = n.getNextSibling(); } } /** * Continues iteration after the current node was deleted. The caller has to * remember the next node before deletion and pass it to this method. */ protected void continueAfterDelete(Wom3Node next) { while (next != null) { dispatch(next); next = next.getNextSibling(); } } protected List map(Wom3Node node) { if (node == null) throw new NullPointerException(); List result = new ArrayList(); Wom3Node n = node.getFirstChild(); while (n != null) { result.add(dispatch(n)); n = n.getNextSibling(); } return result; } /** * Iterates over the children of an WOM node and replaces each child node * with the result of the visitation of the respective child. */ protected void mapInPlace(Wom3Node node) { if (node == null) throw new NullPointerException(); Wom3Node n = node.getFirstChild(); while (n != null) { Object result = dispatch(n); if (result == null) { throw new NullPointerException(); } else if (result == REMOVE) { Wom3Node next = n.getNextSibling(); node.removeChild(n); n = next; } else if (result != n) { Wom3Node resultNode = (Wom3Node) result; node.replaceChild(resultNode, n); } } } } Wom3VisitorStackController.java000066400000000000000000000072731335270560400431340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import java.util.ArrayList; import java.util.List; import org.sweble.wom3.Wom3Node; import de.fau.cs.osr.utils.visitor.IncompatibleVisitorStackDefinition; import de.fau.cs.osr.utils.visitor.StackedVisitorInterface; import de.fau.cs.osr.utils.visitor.VisitorStackController; public abstract class Wom3VisitorStackController extends VisitorStackController { public static final Object REMOVE = new Object(); // ========================================================================= public Wom3VisitorStackController( String cacheName, List> visitorStack) throws IncompatibleVisitorStackDefinition { super(cacheName, visitorStack); } public Wom3VisitorStackController( VisitorStackController.Cache cache, List> visitorStack) throws IncompatibleVisitorStackDefinition { super(cache, visitorStack); } // ========================================================================= protected abstract Object visitNotFound(Wom3Node node); // ========================================================================= /** * Dispatches to the appropriate visit() method and returns the result of * the visitation. The given node must not be {@code null}. */ public Object dispatch(Wom3Node node) { if (node == null) throw new NullPointerException(); return resolveAndVisit(node); } // ========================================================================= public void iterate(Wom3Node node) { if (node == null) throw new NullPointerException(); Wom3Node n = node.getFirstChild(); while (n != null) { dispatch(n); n = n.getNextSibling(); } } /** * Continues iteration after the current node was deleted. The caller has to * remember the next node before deletion and pass it to this method. */ public void continueAfterDelete(Wom3Node next) { while (next != null) { dispatch(next); next = next.getNextSibling(); } } public List map(Wom3Node node) { if (node == null) throw new NullPointerException(); List result = new ArrayList(); Wom3Node n = node.getFirstChild(); while (n != null) { result.add(dispatch(n)); n = n.getNextSibling(); } return result; } /** * Iterates over the children of an WOM node and replaces each child node * with the result of the visitation of the respective child. */ public void mapInPlace(Wom3Node node) { if (node == null) throw new NullPointerException(); Wom3Node n = node.getFirstChild(); while (n != null) { Object result = dispatch(n); if (result == null) { throw new NullPointerException(); } else if (result == REMOVE) { Wom3Node next = n.getNextSibling(); node.removeChild(n); n = next; } else if (result != n) { Wom3Node resultNode = (Wom3Node) result; node.replaceChild(resultNode, n); } } } } XalanWomTransformations.java000066400000000000000000000025421335270560400425270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/java/org/sweble/wom3/util/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.util; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; /** * Requires dependency: * *
     *   <dependency>
     *     <groupId>xalan</groupId>
     *     <artifactId>xalan</artifactId>
     *   </dependency>
     * 
    */ public class XalanWomTransformations { public static TransformerFactory getXalanTransformerFactory() throws TransformerFactoryConfigurationError { return TransformerFactory.newInstance( org.apache.xalan.processor.TransformerFactoryImpl.class.getName(), null); } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/resources/000077500000000000000000000000001335270560400322575ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/resources/org/000077500000000000000000000000001335270560400330465ustar00rootroot00000000000000sweble/000077500000000000000000000000001335270560400342505ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/resources/orgwom3/000077500000000000000000000000001335270560400351355ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/resources/org/sweblepretty-print.xslt000066400000000000000000000025511335270560400405350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/main/resources/org/sweble/wom3 sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/000077500000000000000000000000001335270560400303005ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/000077500000000000000000000000001335270560400312215ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/000077500000000000000000000000001335270560400320105ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/000077500000000000000000000000001335270560400332715ustar00rootroot00000000000000wom3/000077500000000000000000000000001335270560400340775ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/swebleimpl/000077500000000000000000000000001335270560400350405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3ArticleTest.java000066400000000000000000000204551335270560400401340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.Ignore; import org.junit.Test; import org.sweble.wom3.Wom3Category; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Redirect; import org.w3c.dom.Node; public class ArticleTest { private ArticleImpl n; public ArticleTest() { n = (ArticleImpl) TestHelperDoc.genElem("article"); n.setNamespace("User"); n.setTitle("Page"); n.setPath("John"); } @Test public void testNodeHasCorrectName() throws Exception { assertEquals("article", n.getNodeName()); } @Test public void testIsDocument() throws Exception { assertEquals(Node.ELEMENT_NODE, n.getNodeType()); } @Test public void testHasCorrectVersion() throws Exception { assertEquals(Wom3Node.VERSION, n.getAttribute("version")); assertEquals(Wom3Node.VERSION, n.getVersion()); } @Test(expected = UnsupportedOperationException.class) public void testCannotAlterVersion() throws Exception { n.setAttribute("version", "3.1415"); } public void testCanSetVersionToCorrectVersion() throws Exception { n.setAttribute("version", Wom3Node.VERSION); } @Test(expected = UnsupportedOperationException.class) public void testCannotRemoveVersion() throws Exception { n.removeAttribute("version"); } @Test(expected = UnsupportedOperationException.class) public void testCannotRemoveTitle() throws Exception { n.removeAttribute("title"); } public void testCanRemoveNamespaceAndPath() throws Exception { assertNotNull(n.getPath()); assertNotNull(n.getNamespace()); n.setPath(null); n.setNamespace(null); assertNull(n.getPath()); assertNull(n.getNamespace()); } @Test public void testNameIsComposedCorrectly() throws Exception { assertEquals("Page", n.getTitle()); assertEquals("John", n.getPath()); assertEquals("User", n.getNamespace()); assertEquals("User:John/Page", n.getName()); } @Test public void testCanCompensateSlashAtEndOfPath() throws Exception { n.setPath("John/Subpage/"); assertEquals("Page", n.getTitle()); assertEquals("John/Subpage", n.getPath()); assertEquals("User", n.getNamespace()); assertEquals("User:John/Subpage/Page", n.getName()); } @Test public void testNameCompositeWithoutNamespace() throws Exception { assertEquals("Page", n.getTitle()); assertEquals("John", n.getPath()); n.setNamespace(null); assertEquals("John/Page", n.getName()); } @Test public void testNameCompositeWithoutPath() throws Exception { assertEquals("Page", n.getTitle()); n.setPath(null); assertEquals("User", n.getNamespace()); assertEquals("User:Page", n.getName()); } @Test public void testIsNotRedirectInitially() throws Exception { assertFalse(n.isRedirect()); } @Test public void testIsRedirectAfterSettingRedirectNode() throws Exception { RedirectImpl redirect = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect); assertTrue(n.isRedirect()); // To cover more instructions... redirect = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect); assertTrue(n.isRedirect()); } @Test public void testIsRedirectAfterSettingRedirectNodeWithCategoriesAttached() throws Exception { addSomeCats(); RedirectImpl redirect = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect); assertTrue(n.isRedirect()); // To cover more instructions... n.setRedirect(redirect); assertTrue(n.isRedirect()); assertTrue(redirect == n.getRedirect()); } @Test public void testResetRedirect() throws Exception { RedirectImpl redirect1 = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect1); assertTrue(n.isRedirect()); RedirectImpl redirect2 = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect2); assertTrue(n.isRedirect()); assertTrue(redirect2 == n.getRedirect()); } @Test public void testRemoveRedirect() throws Exception { RedirectImpl redirect1 = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect1); assertTrue(n.isRedirect()); n.setRedirect(null); assertFalse(n.isRedirect()); assertNull(n.getRedirect()); } @Test @Ignore public void testRedirectIsBeforeAllOtherChildren() throws Exception { assertTrue(n.getBody() == n.getFirstChild()); assertTrue(n.getBody() == n.getLastChild()); Wom3Category cat = n.addCategory("cat"); assertTrue(cat == n.getFirstChild()); assertTrue(n.getBody() == n.getLastChild()); RedirectImpl redirect = (RedirectImpl) TestHelperDoc.genElem("redirect"); n.setRedirect(redirect); assertTrue(redirect == n.getFirstChild()); assertTrue(n.getBody() == n.getLastChild()); } @Test public void testChangeCatNameToSameNameDoesNotThrow() throws Exception { addSomeCats(); Iterator i = n.getCategories().iterator(); i.next(); Wom3Category c = i.next(); c.setName(c.getName()); } @Test(expected = IllegalStateException.class) public void testCatNameCollisionWhenSettingNameThrows() throws Exception { addSomeCats(); Iterator i = n.getCategories().iterator(); Wom3Category c0 = i.next(); Wom3Category c1 = i.next(); c1.setName(c0.getName()); } @Test public void testRenamingCategoryWorks() throws Exception { addSomeCats(); Iterator i = n.getCategories().iterator(); i.next(); Wom3Category c1 = i.next(); c1.setName("foo"); assertTrue(n.hasCategory("cat1")); assertTrue(n.hasCategory("cat3")); assertTrue(n.hasCategory("foo")); assertFalse(n.hasCategory("cat2")); } @Test public void testAddingCategoryTwiceDoesNotThrow() throws Exception { n.addCategory("cat"); n.addCategory("cat"); assertTrue(n.hasCategory("cat")); } @Test public void testRemovingCategoriesWorks() throws Exception { addSomeCats(); assertTrue(n.hasCategory("cat1")); assertTrue(n.hasCategory("cat2")); assertTrue(n.hasCategory("cat3")); n.removeCategory("cat2"); assertTrue(n.hasCategory("cat1")); assertFalse(n.hasCategory("cat2")); assertTrue(n.hasCategory("cat3")); n.removeCategory("cat1"); assertFalse(n.hasCategory("cat1")); assertFalse(n.hasCategory("cat2")); assertTrue(n.hasCategory("cat3")); n.removeCategory("cat3"); assertFalse(n.hasCategory("cat1")); assertFalse(n.hasCategory("cat2")); assertFalse(n.hasCategory("cat3")); } @Test(expected = NullPointerException.class) public void testRemovingNullCategoryThrows() throws Exception { n.removeCategory(null); } @Test public void testRemovingNonExistingCategoryDoesNotThrow() throws Exception { n.removeCategory("idontexist"); } @Test public void testResetBodyWithAndWithoutOtherChildNodesPresent() throws Exception { BodyImpl body = (BodyImpl) TestHelperDoc.genElem("body"); n.setBody(body); assertTrue(body == n.getBody()); n.setRedirect((Wom3Redirect) TestHelperDoc.genElem("redirect")); body = (BodyImpl) TestHelperDoc.genElem("body"); n.setBody(body); assertTrue(body == n.getBody()); addSomeCats(); body = (BodyImpl) TestHelperDoc.genElem("body"); n.setBody(body); assertTrue(body == n.getBody()); n.setBody(body); assertTrue(body == n.getBody()); } @Test(expected = NullPointerException.class) public void testSettingNullBodyThrows() throws Exception { n.setBody(null); } // ========================================================================= private void addSomeCats() { n.addCategory("cat1"); n.addCategory("cat2"); n.addCategory("cat3"); } } AttributeTest.java000066400000000000000000000056751335270560400405230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Bold; import org.w3c.dom.Node; public class AttributeTest { private Wom3Attribute a = TestHelperDoc.genAttr("name", "value"); // ========================================================================= @Test public void testNodeNameEqualsAttributeName() throws Exception { assertEquals(a.getName(), a.getNodeName()); } @Test public void testNodeTypeIsAttribute() throws Exception { assertEquals(Node.ATTRIBUTE_NODE, a.getNodeType()); } @Test public void testNameAndValueAreCorrect() throws Exception { assertEquals("name", a.getName()); assertEquals("value", a.getValue()); } @Test public void testCanChangeAttributeNameWhenAttached() throws Exception { Wom3Bold b = (Wom3Bold) TestHelperDoc.genElem("b"); b.setAttributeNode(this.a); assertTrue(a == b.getAttributeNode("name")); a.setName("name2"); assertTrue(a == b.getAttributeNode("name2")); assertNull(b.getAttributeNode("name")); } @Test public void testSetNameWithoutChangingItWhenAttachedDoesNotThrow() throws Exception { Wom3Bold b = (Wom3Bold) TestHelperDoc.genElem("b"); b.setAttributeNode(this.a); assertTrue(a == b.getAttributeNode("name")); a.setName("name"); } @Test(expected = IllegalArgumentException.class) public void testCannotSetNameToNameOfAnotherAttributeWhenAttached() throws Exception { Wom3Bold b = (Wom3Bold) TestHelperDoc.genElem("b"); b.setAttribute("another", "value"); b.setAttributeNode(this.a); assertTrue(a == b.getAttributeNode("name")); assertNotNull(b.getAttribute("another")); a.setName("another"); } @Test(expected = NullPointerException.class) public void testCannotSetNameToNull() throws Exception { a.setName(null); } /** * Apparently the xerces implementaiton of the DOM won't fail on a null * argument. */ //@Ignore @Test(expected = NullPointerException.class) public void testCannotSetValueToNull() throws Exception { a.setValue(null); } } BackboneAttributeTest.java000066400000000000000000000273561335270560400421500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.Arrays; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.w3c.dom.DOMException; public class BackboneAttributeTest { private final ArrayList events = new ArrayList(); private final DocumentImpl doc; private final MyAttribSupportingElem e; private Mode mode = Mode.STRING_ATTR; // ========================================================================= public BackboneAttributeTest() { final DomImplementationImpl domImpl = new DomImplementationImpl(); this.doc = new DocumentImpl(domImpl) { private static final long serialVersionUID = 1L; @Override public AttributeImpl createAttribute(String name) throws DOMException { return new AttribImpl(this, name); } }; this.e = new MyAttribSupportingElem(doc); } // ========================================================================= enum Mode { STRING_ATTR, INT_ATTR, FUNNY_ATTR, BOOL_ATTR, NOT_REMOVABLE, } // ========================================================================= @Test public void testCorrectPathSetAttributeWithValue() throws Exception { mode = Mode.INT_ATTR; e.setAttribute("name", "5"); assertEquals(Arrays.asList( "getAttributeDescriptor", "verifyAndConvert", "createAttribute", "set", "customAction"), events); } @Test public void testCorrectPathSetAttributeDirectWithValue() throws Exception { mode = Mode.INT_ATTR; e.setAttributeDirect(new AttribDesc(), "name", 5); assertEquals(Arrays.asList( "verifyAndConvert", "createAttribute", "set", "customAction"), events); assertEquals(5, e.getAttributeNativeData("name")); } @Test public void testCorrectPathSetAttributeDirectToNull() throws Exception { mode = Mode.INT_ATTR; e.setAttributeDirect(new AttribDesc(), "name", 5); events.clear(); e.setAttributeDirect(new AttribDesc(), "name", null); assertEquals(Arrays.asList( "isReadOnly", "isRemovable", "customAction"), events); assertNull(e.getAttributeNode("name")); } @Test public void testCorrectPathSetAttributeToNull() throws Exception { mode = Mode.INT_ATTR; e.setAttributeDirect(new AttribDesc(), "name", 5); events.clear(); e.setAttribute("name", null); assertEquals(Arrays.asList( "getAttributeDescriptor", "isReadOnly", "isRemovable", "customAction"), events); assertNull(e.getAttributeNode("name")); } @Test public void testSetBooleanAttributeToFalse() throws Exception { mode = Mode.BOOL_ATTR; e.setAttributeDirect(new AttribDesc(), "name", true); events.clear(); e.setAttributeDirect(new AttribDesc(), "name", false); assertEquals(Arrays.asList( "verifyAndConvert", "isReadOnly", "isRemovable", "customAction"), events); assertNull(e.getAttributeNode("name")); } @Test public void testSetAttributeNodeVerifiesNewlyAttachedAttribute() throws Exception { AttributeImpl a = new AttribImpl("name", "value"); e.setAttributeNode(a); assertEquals(Arrays.asList( "setValue", "set", "getAttributeDescriptor", "verifyAndConvert", "set", "customAction"), events); events.clear(); a = new AttribImpl("name", "value2"); e.setAttributeNode(a); assertEquals(Arrays.asList( "setValue", "set", "getAttributeDescriptor", "verifyAndConvert", "isReadOnly", "set", "customAction"), events); } @Test public void testSetValueOnAttachedAttributeTriggersVerification() throws Exception { AttributeImpl a = new AttribImpl("name", "value"); e.setAttributeNode(a); events.clear(); a.setValue("something else"); assertEquals(Arrays.asList( "setValue", "getAttributeDescriptor", "verifyAndConvert", "isReadOnly", "set", "customAction"), events); } @Test public void testSetNameOnAttachedAttributeTriggersCustomAction() throws Exception { AttribImpl a = new AttribImpl("name", "value"); e.setAttributeNode(a); events.clear(); a.setName("other"); assertEquals(Arrays.asList( "getAttributeDescriptor", "getAttributeDescriptor", "customAction"), events); } @Test public void testAttachAttributeNodeWhenVerifierRequestsDeletionWorks() throws Exception { mode = Mode.FUNNY_ATTR; e.setAttributeNode(new AttribImpl("name", "kill me")); assertEquals(Arrays.asList( "setValue", "set", "getAttributeDescriptor", "verifyAndConvert", "isReadOnly", "isRemovable"), events); e.setAttribute("name", "don't kill me"); events.clear(); e.setAttributeNode(new AttribImpl("name", "kill me")); assertEquals(Arrays.asList( "setValue", "set", "getAttributeDescriptor", "verifyAndConvert", "isReadOnly", "isRemovable", "customAction"), events); } @Test public void testSetValueOnAttributeWhenVerifierRequestsDeletionThrows() throws Exception { mode = Mode.FUNNY_ATTR; e.setAttribute("name", "don't kill me"); events.clear(); try { e.getAttributeNode("name").setValue("kill me"); fail(); } catch (UnsupportedOperationException e) { assertEquals(Arrays.asList( "setValue", "getAttributeDescriptor", "verifyAndConvert"), events); } } @Test(expected = UnsupportedOperationException.class) public void testRemovingUnremovableAttributeThrows() throws Exception { mode = Mode.NOT_REMOVABLE; e.setAttribute("name", "value"); events.clear(); e.removeAttribute("name"); } @Test public void testRemoveAttributeByNameWorks() throws Exception { e.setAttribute("name", "value"); events.clear(); e.removeAttribute("name"); assertEquals(Arrays.asList( "getAttributeDescriptor", "isReadOnly", "isRemovable", "customAction"), events); } @Test public void testRemovingAbsentAttributeDoesNotThrow() throws Exception { e.removeAttribute("name"); assertEquals(Arrays.asList( "getAttributeDescriptor", "isReadOnly", "isRemovable"), events); } @Test(expected = IllegalArgumentException.class) public void testRemovingAttributeNodeThatIsNotAChildThrowsEvenIfAnAttributeWithTheSameNameIsAttached() throws Exception { e.setAttribute("name", "value"); events.clear(); e.removeAttributeNode(doc.createAttribute("name")); } @Test public void testRemoveAttributeNodeByRefWorks() throws Exception { e.setAttribute("name", "value"); e.removeAttributeNode(e.getAttributeNode("name")); } @Test(expected = IllegalArgumentException.class) public void testGetAttributeWithNullNameThrows() throws Exception { e.getAttribute(null); } @Test(expected = IllegalArgumentException.class) public void testGetAttributeNodeWithNullThrows() throws Exception { e.getAttributeNode(null); } @Test(expected = IllegalArgumentException.class) public void testRemoveAttributeNodeWithNullThrows() throws Exception { e.removeAttributeNode(null); } @Test public void testSetAttributeNodeWithAlreadyAttachedNodeDoesNothing() throws Exception { e.setAttribute("name", "value"); AttributeBase a = e.getAttributeNode("name"); events.clear(); e.setAttributeNode(a); assertEquals(Arrays.asList(), events); } @Test(expected = IllegalArgumentException.class) public void testSetAttributeNodeWithNullThrows() throws Exception { e.setAttributeNode(null); } @Test(expected = IllegalStateException.class) public void testAttributeCannotBePartOfTwoNodes() throws Exception { e.setAttribute("attr", "value"); new MyAttribSupportingElem(doc).setAttributeNode(e.getAttributeNode("attr")); } @Test public void testAddReplaceAndRemoveMultipleAttributes() throws Exception { e.setAttribute("a0", "value"); e.setAttribute("a1", "value"); e.setAttribute("a2", "What will become of me"); e.setAttribute("a3", "value"); e.removeAttribute("a1"); e.removeAttribute("a0"); e.setAttribute("a2", "I will survive"); e.removeAttribute("a3"); assertEquals(1, e.getWomAttributes().size()); assertEquals("I will survive", e.getAttribute("a2")); } // ========================================================================= class AttribDesc extends AttributeDescriptor { @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { events.add("verifyAndConvert"); switch (mode) { case INT_ATTR: if (verified.strValue != null) verified.value = Integer.parseInt(verified.strValue); else verified.strValue = String.valueOf((Integer) verified.value); return true; case BOOL_ATTR: if (verified.strValue != null) verified.value = true; else verified.strValue = "dummy"; return (Boolean) verified.value; case FUNNY_ATTR: return !("kill me".equals(verified.strValue)); default: return true; } } @Override public boolean isRemovable() { events.add("isRemovable"); switch (mode) { case NOT_REMOVABLE: return false; default: return true; } } @Override public boolean isReadOnly() { events.add("isReadOnly"); switch (mode) { default: return false; } } @Override public Normalization getNormalizationMode() { events.add("getNormalizationMode"); return Normalization.NON_CDATA; } @Override public void customAction( Wom3Node parent, AttributeBase oldAttr, AttributeBase newAttr) { events.add("customAction"); } @Override public int getFlags() { return makeFlags(true, false, true, Normalization.NON_CDATA); } } // ========================================================================= class AttribImpl extends AttributeImpl { private static final long serialVersionUID = 1L; public AttribImpl(DocumentImpl doc, String name) { super(doc, name); } public AttribImpl(String name, String value) { super(doc, name); setValue(value); } @Override public void setValue(String value) { events.add("setValue"); super.setValue(value); } @Override public void setValue(Object value, String strValue, boolean cloning) { events.add("set"); super.setValue(value, strValue, cloning); } } // ========================================================================= class MyAttribSupportingElem extends BackboneWomElement implements Wom3ElementNode { private static final long serialVersionUID = 1L; AttribDesc attribDesc = new AttribDesc(); public MyAttribSupportingElem(DocumentImpl owner) { super(owner); } @Override public String getWomName() { return "MyAttribSupportingElem"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { events.add("getAttributeDescriptor"); return attribDesc; } @Override protected AttributeBase createAttribute( String name, NativeAndStringValuePair verified) { events.add("createAttribute"); return super.createAttribute(name, verified); } } } BackboneHtmlTest.java000066400000000000000000000106611335270560400411000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3Div; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class BackboneHtmlTest { @Parameters public static List enumerateInputs() throws Exception { List inputs = new ArrayList(); inputs.add(new Object[] { "hr" }); inputs.add(new Object[] { "ol" }); inputs.add(new Object[] { "ul" }); inputs.add(new Object[] { "abbr" }); inputs.add(new Object[] { "big" }); inputs.add(new Object[] { "b" }); inputs.add(new Object[] { "center" }); inputs.add(new Object[] { "cite" }); inputs.add(new Object[] { "code" }); inputs.add(new Object[] { "dd" }); inputs.add(new Object[] { "dt" }); inputs.add(new Object[] { "dfn" }); inputs.add(new Object[] { "em" }); inputs.add(new Object[] { "i" }); inputs.add(new Object[] { "kbd" }); inputs.add(new Object[] { "samp" }); inputs.add(new Object[] { "small" }); inputs.add(new Object[] { "span" }); inputs.add(new Object[] { "strike" }); inputs.add(new Object[] { "strong" }); inputs.add(new Object[] { "sub" }); inputs.add(new Object[] { "sup" }); inputs.add(new Object[] { "tt" }); inputs.add(new Object[] { "u" }); inputs.add(new Object[] { "var" }); inputs.add(new Object[] { "blockquote" }); inputs.add(new Object[] { "br" }); inputs.add(new Object[] { "del" }); inputs.add(new Object[] { "div" }); inputs.add(new Object[] { "dl" }); inputs.add(new Object[] { "font" }); inputs.add(new Object[] { "heading" }); inputs.add(new Object[] { "ins" }); inputs.add(new Object[] { "li" }); inputs.add(new Object[] { "p" }); inputs.add(new Object[] { "tbody" }); inputs.add(new Object[] { "tcaption" }); inputs.add(new Object[] { "td" }); inputs.add(new Object[] { "th" }); inputs.add(new Object[] { "tr" }); return inputs; } // ========================================================================= private final Wom3ElementNode n; private final DocumentImpl doc; public BackboneHtmlTest(String name) throws InstantiationException, IllegalAccessException { DomImplementationImpl domImpl = DomImplementationImpl.get(); doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); this.n = (Wom3ElementNode) doc.createElementNS(Wom3Node.WOM_NS_URI, name); } // ========================================================================= @Test public void testIsInitiallyEmpty() throws Exception { assertFalse(n.hasChildNodes()); } @Test public void testCanAddChildren() throws Exception { Wom3Div child = (Wom3Div) doc.createElementNS(Wom3Node.WOM_NS_URI, "div"); n.appendChild(child); assertTrue(n.hasChildNodes()); assertTrue(child == n.getFirstChild()); assertTrue(child == n.getLastChild()); } // ========================================================================= @Test public void testAcceptsUnknownAttributes() throws Exception { assertEquals("", n.getAttribute("some-attribute")); n.setAttribute("some-attribute", "some-value"); assertEquals("some-value", n.getAttribute("some-attribute")); n.setAttribute("some-attribute", null); assertEquals("", n.getAttribute("some-attribute")); } @Test public void removingAbsentAttributeDoesNotThrow() throws Exception { assertEquals("", n.getAttribute("michgibtsnet")); n.removeAttribute("michgibtsnet"); } } BackbonePositionTest.java000066400000000000000000000145201335270560400417760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class BackbonePositionTest { public static final short DISCONNECTED = Node.DOCUMENT_POSITION_DISCONNECTED; public static final short PRECEDING = Node.DOCUMENT_POSITION_PRECEDING; public static final short FOLLOWING = Node.DOCUMENT_POSITION_FOLLOWING; public static final short CONTAINS = Node.DOCUMENT_POSITION_CONTAINS; public static final short CONTAINED_BY = Node.DOCUMENT_POSITION_CONTAINED_BY; public static final short IMPLEMENTATION_SPECIFIC = Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; // ========================================================================= private Document refDoc; private Document womDoc; private Element div; private Element b; private Element i; private Element bq; private Element span; private Element br; private Element s; @SuppressWarnings("unused") private Attr bqx, bqy, bqz, i1, i2, i3, sa, sb, sc; // ========================================================================= public BackbonePositionTest() throws ParserConfigurationException { DomImplementationImpl impl = DomImplementationImpl.get(); womDoc = impl.createDocument(Wom3Node.WOM_NS_URI, "article", null); womDoc.removeChild(womDoc.getDocumentElement()); DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); refDoc = docBuilder.newDocument(); // Height 1 ( == root ) div = elem("div"); refDoc.appendChild(div); womDoc.appendChild(getPartner(div)); // Height 2 b = elem("b"); append(div, b); i = elem("i"); append(div, i); // Height 3 bq = elem("blockquote"); append(b, bq); span = elem("span"); append(b, span); br = elem("br"); append(i, br); s = elem("s"); append(i, s); // bq attribs bqx = attr(bq, "bqx"); bqy = attr(bq, "bqy"); bqz = attr(bq, "bqz"); // i attribs i1 = attr(i, "i1"); i2 = attr(i, "i2"); i3 = attr(i, "i3"); // s attribs sa = attr(s, "sa"); sb = attr(s, "sb"); sc = attr(s, "sc"); } // ========================================================================= @Test public void testCompareDivNodes() throws Exception { check(0, div, div); } @Test public void testBfollowsDIV() throws Exception { check(CONTAINED_BY | FOLLOWING, div, b); } @Test public void testDIVprecedesB() throws Exception { check(CONTAINS | PRECEDING, b, div); } @Test public void testBprecedesI() throws Exception { check(PRECEDING, i, b); } @Test public void testBprecedesS() throws Exception { check(PRECEDING, s, b); } @Test public void testIfollowsB() throws Exception { check(FOLLOWING, b, i); } @Test public void testSfollowsB() throws Exception { check(FOLLOWING, b, s); } @Test public void testBRfollowsSPAN() throws Exception { check(FOLLOWING, span, br); } @Test public void testSPANprecedesBR() throws Exception { check(PRECEDING, br, span); } @Test public void testBRfollowsDIV() throws Exception { check(FOLLOWING | CONTAINED_BY, div, br); } @Test public void testDIVprecedesBR() throws Exception { check(PRECEDING | CONTAINS, br, div); } // ========================================================================= @Test public void testI1precedesI2() throws Exception { check(PRECEDING | IMPLEMENTATION_SPECIFIC, i2, i1); } @Test public void testI2followsI1() throws Exception { check(FOLLOWING | IMPLEMENTATION_SPECIFIC, i1, i2); } @Test public void testSprecedesSB() throws Exception { check(PRECEDING | CONTAINS, sb, s); } @Test public void testSBfollowsS() throws Exception { check(FOLLOWING | CONTAINED_BY, s, sb); } @Test public void testSfollowsI2() throws Exception { check(FOLLOWING, i2, s); } @Test public void testI2precedesS() throws Exception { check(PRECEDING, s, i2); } @Test public void testBQXprecedesSC() throws Exception { check(PRECEDING, sc, bqx); } @Test public void testBQXfollowsSC() throws Exception { check(FOLLOWING, bqx, sc); } @Test public void testIprecedesSB() throws Exception { check(PRECEDING | CONTAINS, sb, i); } @Test public void testSBprecedesI() throws Exception { check(FOLLOWING | CONTAINED_BY, i, sb); } // ========================================================================= private Attr attr(Element e, String name) { Attr ref = refDoc.createAttribute(name); Attr wom = womDoc.createAttribute(name); ref.setUserData("wom", wom, null); e.setAttributeNode(ref); ((Wom3ElementNode) getPartner(e)).setAttributeNode(wom); return ref; } private Element elem(String tag) { Element ref = refDoc.createElementNS(Wom3Node.WOM_NS_URI, tag); Element wom = womDoc.createElementNS(Wom3Node.WOM_NS_URI, tag); ref.setUserData("wom", wom, null); return ref; } private Wom3Node getPartner(Node e) { return (Wom3Node) e.getUserData("wom"); } private void append(Node parent, Node child) { parent.appendChild(child); getPartner(parent).appendChild(getPartner(child)); } private void check(int expected, Node a, Node b) { short refActual = a.compareDocumentPosition(b); short actual = getPartner(a).compareDocumentPosition(getPartner(b)); assertEquals(expected, refActual); assertEquals(expected, actual); } } BlockquoteTest.java000066400000000000000000000024441335270560400406570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; public class BlockquoteTest { private final Wom3ElementNode n = TestHelperDoc.genElem("blockquote"); // ========================================================================= @Test public void testCiteAttribute() throws Exception { String strValue = "http://example.com"; URL realValue = new URL(strValue); TestHelperAttribute.testAttribute(this.n, "cite", "getCite", "setCite", realValue, strValue); } } BreakTest.java000066400000000000000000000040421335270560400375670ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3Clear; import org.sweble.wom3.Wom3ElementNode; public class BreakTest { private final Wom3ElementNode n = TestHelperDoc.genElem("br"); // ========================================================================= @Test public void testClearAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "clear", "getClear", "setClear", Wom3Clear.ALL, "all"); TestHelperAttribute.testAttribute(this.n, "clear", "getClear", "setClear", Wom3Clear.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "clear", "getClear", "setClear", Wom3Clear.NONE, "none"); TestHelperAttribute.testAttribute(this.n, "clear", "getClear", "setClear", Wom3Clear.RIGHT, "right"); } // ==[ Core Attributes ]==================================================== @Test public void testClassAttribute() throws Exception { TestHelperAttribute.testClassAttribute(this.n); } @Test public void testIdAttribute() throws Exception { TestHelperAttribute.testIdAttribute(this.n); } @Test public void testStyleAttribute() throws Exception { TestHelperAttribute.testStyleAttribute(this.n); } @Test public void testTitleAttribute() throws Exception { TestHelperAttribute.testTitleAttribute(this.n); } } CategoryTest.java000066400000000000000000000047311335270560400403250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import org.junit.Ignore; import org.junit.Test; import org.sweble.wom3.Wom3Article; import org.sweble.wom3.Wom3Category; public class CategoryTest { private Wom3Article p; private Wom3Category n; // ========================================================================= public CategoryTest() { this.p = (Wom3Article) TestHelperDoc.genElem("article"); this.p.setNamespace("User"); this.p.setTitle("John"); this.p.setPath("Page"); this.n = (Wom3Category) TestHelperDoc.genElem("category"); this.n.setName("name"); } // ========================================================================= @Test public void testNameAttribute() throws Exception { TestHelperAttribute.testFixedAttribute(this.n, "name", "getName", "setName", "X", "Y"); } @Test public void testNameAttributeWhileAttached() throws Exception { n = (CategoryImpl) p.addCategory("test"); TestHelperAttribute.testFixedAttribute(this.n, "name", "getName", "setName", "X", "Y"); } @Test(expected = IllegalArgumentException.class) public void testSetUnknownCategoryThrows() throws Exception { n.setAttribute("foo", "bar"); } @Test(expected = UnsupportedOperationException.class) @Ignore public void testTryToAddCategoryToWrongParent() throws Exception { TestHelperDoc.genElem("b").appendChild(n); } @Test @Ignore public void testCategoryHasEmptyLinkTitle() throws Exception { assertFalse(n.getLinkTitle().hasChildNodes()); } @Test @Ignore public void testLinkTargetIsCorrect() throws Exception { // TODO: It's not always "Category:"! assertEquals("Category:name", n.getLinkTarget()); } } ColorTest.java000066400000000000000000000042601335270560400376230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import org.junit.Test; public class ColorTest { @Test public void testGetByName() throws Exception { ColorImpl color = ColorImpl.valueOf(" DodgerBlUe "); // #1E90FF assertEquals(0x1E, color.getRed()); assertEquals(0x90, color.getGreen()); assertEquals(0xFF, color.getBlue()); } @Test public void testGetByLongCode() throws Exception { ColorImpl color = ColorImpl.valueOf(" #1e90fF "); assertEquals(0x1E, color.getRed()); assertEquals(0x90, color.getGreen()); assertEquals(0xFF, color.getBlue()); } @Test public void testGetByShortCode() throws Exception { ColorImpl color = ColorImpl.valueOf(" #19f "); assertEquals(0x11, color.getRed()); assertEquals(0x99, color.getGreen()); assertEquals(0xFF, color.getBlue()); } @Test(expected = IllegalArgumentException.class) public void testInvalidColorName() throws Exception { ColorImpl.valueOf("foo"); } @Test(expected = IllegalArgumentException.class) public void testInvalidHexCode() throws Exception { ColorImpl.valueOf("#11gg11"); } @Test(expected = IllegalArgumentException.class) public void testInvalidColorCode() throws Exception { ColorImpl.valueOf("#1fff"); } @Test public void testToString() throws Exception { assertEquals("#010101", ColorImpl.valueOf("#010101").toString()); assertEquals("#1E90FF", ColorImpl.valueOf("#1E90FF").toString()); } } DefinitionListTest.java000066400000000000000000000335451335270560400415010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.Before; import org.junit.Test; import org.sweble.wom3.Wom3Bold; import org.sweble.wom3.Wom3DefinitionList; import org.sweble.wom3.Wom3DefinitionListDef; import org.sweble.wom3.Wom3DefinitionListItem; import org.sweble.wom3.Wom3DefinitionListTerm; import org.sweble.wom3.Wom3Node; public class DefinitionListTest { private Wom3DefinitionList list; private Wom3DefinitionListTerm[] t; private Wom3DefinitionListDef[] d; private Wom3Node[] b; @Before public void setUp() { //ArticleImpl page = new ArticleImpl("", "", "DefListTest"); //this.list = new DefinitionListImpl(); //page.getBody().appendChild(this.list); this.list = (Wom3DefinitionList) TestHelperDoc.genElem("dl"); t = new Wom3DefinitionListTerm[8]; for (int i = 0; i < t.length; ++i) t[i] = term(i); d = new Wom3DefinitionListDef[8]; for (int i = 0; i < d.length; ++i) d[i] = def(i); b = new Wom3Node[8]; for (int i = 0; i < b.length; ++i) b[i] = genBold(i); } @Test public void testNewListIsEmpty() throws Exception { assertFalse(list.hasChildNodes()); assertEquals(0, list.getTermNum()); assertEquals(0, list.getItemNum()); } @Test public void testCollectionsWorkForNewList() throws Exception { assertTrue(list.getItems().isEmpty()); assertTrue(list.getTerms().isEmpty()); } @Test public void testAddTerm() throws Exception { list.appendTerm(t[0]); assertTrue(list.hasChildNodes()); assertEquals(1, list.getTermNum()); assertEquals(1, list.getItemNum()); assertTrue(list.getTerm(0) == t[0]); assertTrue(list.getItem(0) == t[0]); assertTrue(list.getFirstChild() == t[0]); assertTrue(list.getLastChild() == t[0]); } @Test public void testAddTermWithDefs() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); assertEquals(3, list.getWomChildNodes().size()); assertEquals(1, list.getTermNum()); assertEquals(3, list.getItemNum()); cmpChildren(t[0], d[0], d[1]); } @Test public void testAddTermWithDefsInBetween() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); t[2].appendDef(d[4]); t[2].appendDef(d[5]); list.insertTerm(1, t[2]); cmpChildren(t[0], d[0], d[1], t[2], d[4], d[5], t[1], d[2], d[3]); } @Test(expected = IndexOutOfBoundsException.class) public void testInsertAtMinusOneThrows() throws Exception { list.insertTerm(-1, t[0]); } @Test(expected = IndexOutOfBoundsException.class) public void testInsertAtXGreaterSizeThrows() throws Exception { list.insertTerm(1, t[0]); } @Test public void testInsertAt0InEmptyListWorks() throws Exception { list.insertTerm(0, t[0]); cmpChildren(t[0]); } @Test public void testReplaceTermWorks() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); t[2].appendDef(d[4]); t[2].appendDef(d[5]); list.appendTerm(t[2]); t[3].appendDef(d[6]); t[3].appendDef(d[7]); list.replaceTerm(1, t[3]); cmpChildren(t[0], d[0], d[1], t[3], d[6], d[7], t[2], d[4], d[5]); } @Test public void testRemoveTermWorks() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); t[2].appendDef(d[4]); t[2].appendDef(d[5]); list.appendTerm(t[2]); list.removeTerm(1); cmpChildren(t[0], d[0], d[1], t[2], d[4], d[5]); } @Test public void testGetItemsWithAllKindsOfChildrenPresent() throws Exception { list.appendChild(b[0]); t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); list.insertBefore(b[1], d[1]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); cmpChildren(b[0], t[0], d[0], b[1], d[1], t[1], d[2], d[3]); cmpItems(t[0], d[0], d[1], t[1], d[2], d[3]); cmpTerms(t[0], t[1]); } @Test(expected = IndexOutOfBoundsException.class) public void testGetItemFailsWithIndexEqualsSize() throws Exception { list.removeItem(0); } @Test public void testRemoveItemWorksWithDt() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); list.removeItem(3); cmpChildren(t[0], d[0], d[1]); cmpItems(t[0], d[0], d[1]); cmpTerms(t[0]); } @Test public void testRemoveItemWorksWithDd() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); list.removeItem(2); cmpChildren(t[0], d[0]); cmpItems(t[0], d[0]); cmpTerms(t[0]); } @Test public void testReplaceItemWorksWithDt() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); list.appendTerm(t[0]); t[1].appendDef(d[2]); t[1].appendDef(d[3]); list.appendTerm(t[1]); t[2].appendDef(d[4]); t[2].appendDef(d[5]); list.appendTerm(t[2]); t[3].appendDef(d[6]); t[3].appendDef(d[7]); list.replaceItem(3, t[3]); cmpChildren(t[0], d[0], d[1], t[3], d[6], d[7], t[2], d[4], d[5]); cmpItems(t[0], d[0], d[1], t[3], d[6], d[7], t[2], d[4], d[5]); cmpTerms(t[0], t[3], t[2]); } @Test(expected = UnsupportedOperationException.class) public void testReplaceDtWithDdThrows() throws Exception { list.appendTerm(t[0]); list.replaceItem(0, d[0]); } @Test(expected = IndexOutOfBoundsException.class) public void testGetItemWithIndexGreaterSize() throws Exception { list.getItem(1); } @Test public void testAppendItemWorks() throws Exception { list.appendItem(d[0]); list.appendItem(d[1]); list.appendItem(t[0]); list.appendItem(d[2]); list.appendItem(d[3]); cmpChildren(d[0], d[1], t[0], d[2], d[3]); cmpItems(d[0], d[1], t[0], d[2], d[3]); cmpTerms(t[0]); } @Test public void testInsertItemAsFirst() throws Exception { list.insertItem(0, d[0]); cmpChildren(d[0]); cmpItems(d[0]); cmpTerms(); } @Test public void testInsertItemAsLast() throws Exception { list.insertItem(0, d[0]); list.insertItem(1, d[1]); cmpChildren(d[0], d[1]); cmpItems(d[0], d[1]); cmpTerms(); } @Test public void testInsertItemInTheMiddle() throws Exception { list.insertItem(0, d[0]); list.insertItem(1, d[1]); list.insertItem(1, d[2]); cmpChildren(d[0], d[2], d[1]); cmpItems(d[0], d[2], d[1]); cmpTerms(); } @Test public void testRemoveNonItemChild() throws Exception { list.appendChild(d[0]); list.appendChild(b[0]); list.appendChild(t[0]); list.appendChild(d[1]); list.appendChild(b[1]); list.appendChild(d[2]); list.removeChild(b[0]); list.removeChild(b[1]); cmpChildren(d[0], t[0], d[1], d[2]); cmpItems(d[0], t[0], d[1], d[2]); cmpTerms(t[0]); } @Test public void testInsertDtAsFirstTerm() throws Exception { list.appendChild(d[0]); list.appendChild(b[0]); list.appendChild(t[0]); list.appendChild(d[1]); list.appendChild(b[1]); list.appendChild(d[2]); list.insertTerm(0, t[1]); cmpChildren(d[0], b[0], t[1], t[0], d[1], b[1], d[2]); cmpItems(d[0], t[1], t[0], d[1], d[2]); cmpTerms(t[1], t[0]); } @Test public void testRemoveFirstDt() throws Exception { list.appendChild(t[0]); list.appendChild(d[0]); list.appendChild(t[1]); list.appendChild(d[1]); list.removeItem(0); cmpChildren(t[1], d[1]); cmpItems(t[1], d[1]); cmpTerms(t[1]); } @Test public void testInsertDtAsFirstItem() throws Exception { list.appendChild(d[0]); list.appendChild(t[0]); list.appendChild(d[1]); list.appendChild(d[2]); t[1].appendDef(d[3]); list.insertItem(0, t[1]); cmpChildren(t[1], d[3], d[0], t[0], d[1], d[2]); cmpItems(t[1], d[3], d[0], t[0], d[1], d[2]); cmpTerms(t[1], t[0]); } @Test public void testInsertDtAsFirstItemWithGarbageInBetween() throws Exception { list.appendChild(b[2]); list.appendChild(d[0]); list.appendChild(b[0]); list.appendChild(t[0]); list.appendChild(d[1]); list.appendChild(b[1]); list.appendChild(d[2]); t[1].appendDef(d[3]); list.insertItem(0, t[1]); cmpChildren(b[2], t[1], d[3], d[0], b[0], t[0], d[1], b[1], d[2]); cmpItems(t[1], d[3], d[0], t[0], d[1], d[2]); cmpTerms(t[1], t[0]); } @Test public void testInsertDtAsFirstItemWithGarbageInBetween2() throws Exception { list.appendChild(t[0]); list.appendChild(b[0]); list.appendChild(d[0]); list.appendChild(b[1]); list.appendChild(d[1]); list.appendChild(b[2]); list.appendChild(d[2]); t[1].appendDef(d[3]); list.insertItem(2, t[1]); cmpChildren(t[0], b[0], d[0], b[1], t[1], d[3], d[1], b[2], d[2]); cmpItems(t[0], d[0], t[1], d[3], d[1], d[2]); cmpTerms(t[0], t[1]); } @Test public void testReplaceDefInUnlinkedTermAndLinkTerm() throws Exception { t[0].appendDef(d[0]); t[0].replaceDef(0, d[1]); list.appendTerm(t[0]); cmpChildren(t[0], d[1]); cmpItems(t[0], d[1]); cmpTerms(t[0]); } @Test public void testAppendAndReplaceDefInLinkedTerm() throws Exception { list.appendTerm(t[0]); t[0].appendDef(d[0]); t[0].replaceDef(0, d[1]); cmpChildren(t[0], d[1]); cmpItems(t[0], d[1]); cmpTerms(t[0]); } @Test public void testRemoveDefFromUnlinkedTermAndLinkTerm() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); t[0].appendDef(d[2]); t[0].removeDef(1); list.appendChild(t[0]); cmpChildren(t[0], d[0], d[2]); cmpItems(t[0], d[0], d[2]); cmpTerms(t[0]); } @Test public void testRemoveDefFromLinkedTerm() throws Exception { t[0].appendDef(d[0]); t[0].appendDef(d[1]); t[0].appendDef(d[2]); list.appendChild(t[0]); t[0].removeDef(1); cmpChildren(t[0], d[0], d[2]); cmpItems(t[0], d[0], d[2]); cmpTerms(t[0]); } @Test public void testAppendDefsToLinkedTermOutOfOrder() throws Exception { list.appendChild(t[0]); t[0].appendDef(d[0]); list.appendChild(t[1]); list.appendChild(t[2]); t[1].appendDef(d[1]); t[2].appendDef(d[3]); t[1].appendDef(d[2]); cmpChildren(t[0], d[0], t[1], d[1], d[2], t[2], d[3]); cmpItems(t[0], d[0], t[1], d[1], d[2], t[2], d[3]); cmpTerms(t[0], t[1], t[2]); } @Test public void testInsertDefsIntoUnlinkedTermThenLinkTerm() throws Exception { t[0].insertDef(0, d[0]); t[0].insertDef(0, d[1]); t[0].insertDef(2, d[2]); list.appendTerm(t[0]); cmpChildren(t[0], d[1], d[0], d[2]); cmpItems(t[0], d[1], d[0], d[2]); cmpTerms(t[0]); } @Test public void testInsertDefsIntoLinkedTerm() throws Exception { list.appendTerm(t[0]); t[0].insertDef(0, d[0]); t[0].insertDef(0, d[1]); t[0].insertDef(2, d[2]); cmpChildren(t[0], d[1], d[0], d[2]); cmpItems(t[0], d[1], d[0], d[2]); cmpTerms(t[0]); } @Test(expected = IndexOutOfBoundsException.class) public void testInsertingAtNegativeIndexThrows() throws Exception { list.appendTerm(t[0]); t[0].insertDef(-1, d[0]); } @Test(expected = IndexOutOfBoundsException.class) public void testInsertingAtTooBigIndexThrows() throws Exception { list.appendTerm(t[0]); t[0].insertDef(1, d[0]); } @Test public void testCompactAttribute() throws Exception { TestHelperAttribute.testBooleanAttribute(list, "compact", "isCompact", "setCompact"); } // ========================================================================= private void cmpChildren(Wom3Node... nodes) { Wom3Node i = list.getFirstChild(); int j = 0; for (Wom3Node child : nodes) { assertNotNull(String.format("list.length < nodes.length", j, j), i); assertTrue(String.format("list[%d] != nodes[%d]", j, j), child == i); i = i.getNextSibling(); ++j; } assertNull("list.length > nodes.length", i); } private void cmpItems(Wom3Node... nodes) { int j = 0; Iterator i = list.getItems().iterator(); for (Wom3Node child : nodes) { assertTrue(String.format("list.length < nodes.length", j, j), i.hasNext()); assertTrue(String.format("list[%d] != nodes[%d]", j, j), child == i.next()); ++j; } assertFalse("list.length > nodes.length", i.hasNext()); } private void cmpTerms(Wom3Node... nodes) { int j = 0; Iterator i = list.getTerms().iterator(); for (Wom3Node child : nodes) { assertTrue(String.format("list.length < nodes.length", j, j), i.hasNext()); assertTrue(String.format("list[%d] != nodes[%d]", j, j), child == i.next()); ++j; } assertFalse("list.length > nodes.length", i.hasNext()); } private Wom3Node genBold(int i) { Wom3Bold bold = (Wom3Bold) TestHelperDoc.genElem("b"); bold.appendChild(genText(i)); return bold; } private Wom3DefinitionListTerm term(int i) { Wom3DefinitionListTerm item = (Wom3DefinitionListTerm) TestHelperDoc.genElem("dt"); item.appendChild(genText(i)); return item; } private Wom3DefinitionListDef def(int i) { Wom3DefinitionListDef item = (Wom3DefinitionListDef) TestHelperDoc.genElem("dd"); item.appendChild(genText(i)); return item; } private TextImpl genText(int i) { TextImpl text = (TextImpl) TestHelperDoc.genElem("text"); text.setTextContent(String.valueOf(i)); return text; } } DelAndInsTest.java000066400000000000000000000043641335270560400403530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3ElementNode; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class DelAndInsTest { @Parameters public static List enumerateInputs() throws Exception { List inputs = new ArrayList(); inputs.add(new Object[] { "del" }); inputs.add(new Object[] { "ins" }); return inputs; } // ========================================================================= private final Wom3ElementNode n; public DelAndInsTest(String name) throws InstantiationException, IllegalAccessException { this.n = TestHelperDoc.genElem(name); } // ========================================================================= @Test public void testCiteAttribute() throws Exception { String strValue = "http://example.com"; URL realValue = new URL(strValue); TestHelperAttribute.testAttribute(this.n, "cite", "getCite", "setCite", realValue, strValue); } @Test public void testDateTimeAttribute() throws Exception { String strValue = "2007-12-24T18:21Z"; DateTime realValue = new DateTime(strValue); strValue = Toolbox.dateTimeToString(realValue); TestHelperAttribute.testAttribute(this.n, "datetime", "getDatetime", "setDatetime", realValue, strValue); } } DivTest.java000066400000000000000000000033201335270560400372630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3HorizAlign; public class DivTest { private final Wom3ElementNode n = TestHelperDoc.genElem("div"); // ========================================================================= @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } } ElementTest.java000066400000000000000000000102201335270560400401270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3Node; import org.w3c.dom.Node; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class ElementTest { @Parameters public static List enumerateInputs() throws Exception { List inputs = new ArrayList(); inputs.add(new Object[] { "hr" }); inputs.add(new Object[] { "category" }); inputs.add(new Object[] { "redirect" }); inputs.add(new Object[] { "signature" }); inputs.add(new Object[] { "extlink" }); inputs.add(new Object[] { "image" }); inputs.add(new Object[] { "intlink" }); inputs.add(new Object[] { "section" }); inputs.add(new Object[] { "table" }); inputs.add(new Object[] { "e" }); inputs.add(new Object[] { "body" }); inputs.add(new Object[] { "imgcaption" }); inputs.add(new Object[] { "nowiki" }); inputs.add(new Object[] { "pre" }); inputs.add(new Object[] { "title" }); inputs.add(new Object[] { "ol" }); inputs.add(new Object[] { "ul" }); inputs.add(new Object[] { "blockquote" }); inputs.add(new Object[] { "br" }); inputs.add(new Object[] { "del" }); inputs.add(new Object[] { "div" }); inputs.add(new Object[] { "dl" }); inputs.add(new Object[] { "font" }); inputs.add(new Object[] { "heading" }); inputs.add(new Object[] { "ins" }); inputs.add(new Object[] { "li" }); inputs.add(new Object[] { "p" }); inputs.add(new Object[] { "tbody" }); inputs.add(new Object[] { "caption" }); inputs.add(new Object[] { "td" }); inputs.add(new Object[] { "th" }); inputs.add(new Object[] { "tr" }); inputs.add(new Object[] { "abbr" }); inputs.add(new Object[] { "big" }); inputs.add(new Object[] { "b" }); inputs.add(new Object[] { "center" }); inputs.add(new Object[] { "cite" }); inputs.add(new Object[] { "code" }); inputs.add(new Object[] { "dd" }); inputs.add(new Object[] { "dt" }); inputs.add(new Object[] { "dfn" }); inputs.add(new Object[] { "em" }); inputs.add(new Object[] { "i" }); inputs.add(new Object[] { "kbd" }); inputs.add(new Object[] { "samp" }); inputs.add(new Object[] { "small" }); inputs.add(new Object[] { "span" }); inputs.add(new Object[] { "strike" }); inputs.add(new Object[] { "strong" }); inputs.add(new Object[] { "sub" }); inputs.add(new Object[] { "sup" }); inputs.add(new Object[] { "tt" }); inputs.add(new Object[] { "u" }); inputs.add(new Object[] { "var" }); return inputs; } // ========================================================================= private final Wom3Node n; private final String name; private final DocumentImpl doc; public ElementTest(String name) throws InstantiationException, IllegalAccessException { this.name = name; DomImplementationImpl domImpl = DomImplementationImpl.get(); doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); this.n = (Wom3Node) doc.createElementNS(Wom3Node.WOM_NS_URI, name); } // ========================================================================= @Test public void testNodeHasCorrectName() throws Exception { assertEquals(name, n.getNodeName()); } @Test public void testIsElement() throws Exception { assertEquals(Node.ELEMENT_NODE, n.getNodeType()); } } ExtLinkTest.java000066400000000000000000000063101335270560400401210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.net.MalformedURLException; import java.net.URL; import org.junit.Test; import org.sweble.wom3.Wom3ExtLink; import org.sweble.wom3.Wom3Title; public class ExtLinkTest { private Wom3ExtLink n; public ExtLinkTest() throws NullPointerException, MalformedURLException { //n = new Wom2ExtLink(new URL("http://example.com")); n = (Wom3ExtLink) TestHelperDoc.genElem("extlink"); n.setTarget(new URL("http://example.com")); } @Test public void testTargetAttribute() throws Exception { String urlA = "http://example.com"; String urlB = "http://sweble.org"; TestHelperAttribute.testFixedAttribute(n, "target", "getTarget", "setTarget", new URL(urlA), urlA, new URL(urlB), urlB); } @Test(expected = IllegalArgumentException.class) public void testUnknownAttributeThrows() throws Exception { n.setAttribute("test", "v"); } @Test public void testSetTargetAttributeIsReflectedByGetLinkTarget() throws Exception { n.setAttribute("target", "http://example.com"); assertEquals(n.getTarget(), n.getLinkTarget()); } @Test public void testSetTitle() throws Exception { assertNull(n.getFirstChild()); assertNull(n.getLastChild()); Wom3Title b = (Wom3Title) TestHelperDoc.genElem("title"); n.setLinkTitle(b); assertTrue(b == n.getLinkTitle()); assertTrue(b == n.getFirstChild()); assertTrue(b == n.getLastChild()); } @Test public void testResetLinkTitle() throws Exception { Wom3Title b0 = (Wom3Title) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); Wom3Title b1 = (Wom3Title) TestHelperDoc.genElem("title"); n.setLinkTitle(b1); assertTrue(b1 == n.getLinkTitle()); assertTrue(b1 == n.getFirstChild()); assertTrue(b1 == n.getLastChild()); } @Test public void testRemoveTitle() throws Exception { Wom3Title b0 = (Wom3Title) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); assertTrue(b0 == n.setLinkTitle(null)); assertNull(n.getLinkTitle()); } @Test public void testReplaceTitle() throws Exception { Wom3Title b0 = (Wom3Title) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); Wom3Title b1 = (Wom3Title) TestHelperDoc.genElem("title"); n.replaceChild(b1, b0); assertTrue(b1 == n.getLinkTitle()); } } FontTest.java000066400000000000000000000052751335270560400374620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; public class FontTest { private FontImpl n = (FontImpl) TestHelperDoc.genElem("font"); // ========================================================================= @Test public void testColorAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "color", "getColor", "setColor", ColorImpl.valueOf("#abcdef"), "#ABCDEF"); } @Test public void testColorCanCopeWithSpaces() throws Exception { n.setAttribute("color", " blue "); } @Test public void testFaceAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "face", "getFace", "setFace", "Arial"); } @Test public void testSizeAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "size", "getSize", "setSize", 3, "3"); } @Test public void testSizeCanCopeWithSpaces() throws Exception { n.setAttribute("size", " 3 "); } @Test public void testUnknownAttributeDoesNotThrow() throws Exception { n.setAttribute("test", "value"); } // ==[ Core Attributes ]==================================================== @Test public void testClassAttribute() throws Exception { TestHelperAttribute.testClassAttribute(this.n); } @Test public void testIdAttribute() throws Exception { TestHelperAttribute.testIdAttribute(this.n); } @Test public void testStyleAttribute() throws Exception { TestHelperAttribute.testStyleAttribute(this.n); } @Test public void testTitleAttribute() throws Exception { TestHelperAttribute.testTitleAttribute(this.n); } // ==[ I18n Attributes ]==================================================== @Test public void testDirAttribute() throws Exception { TestHelperAttribute.testDirAttribute(this.n); } @Test public void testLangAttribute() throws Exception { TestHelperAttribute.testLangAttribute(this.n); } @Test public void testXmlLangAttribute() throws Exception { TestHelperAttribute.testXmlLangAttribute(this.n); } } HeadingTest.java000066400000000000000000000033301335270560400401010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3HorizAlign; public class HeadingTest { private final Wom3ElementNode n = TestHelperDoc.genElem("heading"); // ========================================================================= @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } } HorizontalRuleTest.java000066400000000000000000000061641335270560400415330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3Unit; public class HorizontalRuleTest { private final Wom3ElementNode n = TestHelperDoc.genElem("hr"); // ========================================================================= @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowJustify() throws Exception { n.setAttribute("align", "justify"); } @Test public void testNoshadeAttribute() throws Exception { TestHelperAttribute.testBooleanAttribute(n, "noshade", "isNoshade", "setNoshade"); } @Test public void testSizeAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "size", "getSize", "setSize", 100, "100"); } @Test(expected = IllegalArgumentException.class) public void testNegativeSizeThrows() throws Exception { n.setAttribute("size", "-10"); } @Test public void testWidthAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PERCENT, 100.2f), "100.2%"); TestHelperAttribute.testAttribute(this.n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PERCENT, -100.2f), "-100.2%"); TestHelperAttribute.testAttribute(this.n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PIXELS, 100), "100"); TestHelperAttribute.testAttribute(this.n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PIXELS, 100), "100"); TestHelperAttribute.testAttribute(this.n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PIXELS, -100), "-100"); } @Test(expected = IllegalArgumentException.class) public void testInvalidWidthThrows() throws Exception { n.setAttribute("width", "-10.0"); } } ImageTest.java000066400000000000000000000273121335270560400375720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.net.MalformedURLException; import java.net.URL; import org.junit.Ignore; import org.junit.Test; import org.sweble.wom3.Wom3ImageFormat; import org.sweble.wom3.Wom3ImageHAlign; import org.sweble.wom3.Wom3ImageVAlign; import de.fau.cs.osr.utils.WrappedException; public class ImageTest { private ImageImpl l = (ImageImpl) TestHelperDoc.genElem("image"); @Test public void testCreateAndSetSourceWorks() throws Exception { l.setSource("Some Page"); assertEquals("Some Page", l.getSource()); } @Test(expected = IllegalArgumentException.class) public void testCreateIMageLinkWithEmptyPageThrows() throws Exception { l.setSource(""); } @Test(expected = IllegalArgumentException.class) public void testCreateImageLinkWithInvalidPageThrows() throws Exception { l.setSource("{}"); } @Test public void testCanSetSourceAttribute() throws Exception { l.setSource("Some Other Page"); } @Test(expected = UnsupportedOperationException.class) public void testCannotRemoveSourceAttribute() throws Exception { l.setSource(null); } @Test(expected = IllegalArgumentException.class) public void testSetUnknownAttributeThrows() throws Exception { l.setAttribute("I don't exist", "Doesn't matter"); } @Test public void testFormatAttribute() throws Exception { checkFormat(Wom3ImageFormat.FRAME, "frame"); checkFormat(Wom3ImageFormat.FRAMELESS, "frameless"); checkFormat(Wom3ImageFormat.THUMBNAIL, "thumbnail"); checkFormat(Wom3ImageFormat.UNRESTRAINED, "unrestrained"); } @Test(expected = IllegalArgumentException.class) public void testIllegalFormatStringThrows() throws Exception { l.setAttribute("format", "I'm illegal ..."); } private void checkFormat(Wom3ImageFormat format, String value) { l.setFormat(format); assertEquals(format, l.getFormat()); assertEquals(value, l.getAttribute("format")); l.setFormat(null); assertEquals("", l.getAttribute("format")); assertNull(l.getFormat()); l.setAttribute("format", value); assertEquals(format, l.getFormat()); assertEquals(value, l.getAttribute("format")); l.setAttribute("format", null); assertEquals("", l.getAttribute("format")); assertNull(l.getFormat()); } @Test public void testBorderAttribute() throws Exception { assertFalse(l.isBorder()); l.setBorder(true); assertTrue(l.isBorder()); assertEquals("border", l.getAttribute("border")); l.removeAttribute("border"); assertFalse(l.isBorder()); l.setAttribute("border", "Doesn't matter"); assertTrue(l.isBorder()); assertEquals("border", l.getAttribute("border")); l.setBorder(false); assertFalse(l.isBorder()); assertEquals("", l.getAttribute("border")); } @Test public void testHAlignAttribute() throws Exception { checkHAlign(Wom3ImageHAlign.CENTER, "center"); checkHAlign(Wom3ImageHAlign.DEFAULT, "default"); checkHAlign(Wom3ImageHAlign.LEFT, "left"); checkHAlign(Wom3ImageHAlign.NONE, "none"); checkHAlign(Wom3ImageHAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testIllegalHAlignStringThrows() throws Exception { l.setAttribute("halign", "I'm illegal ..."); } private void checkHAlign(Wom3ImageHAlign halign, String value) { l.setHAlign(halign); assertEquals(halign, l.getHAlign()); assertEquals(value, l.getAttribute("halign")); l.setHAlign(null); assertEquals("", l.getAttribute("halign")); assertNull(l.getHAlign()); l.setAttribute("halign", value); assertEquals(halign, l.getHAlign()); assertEquals(value, l.getAttribute("halign")); l.setAttribute("halign", null); assertEquals("", l.getAttribute("halign")); assertNull(l.getHAlign()); } @Test public void testVAlignAttribute() throws Exception { checkVAlign(Wom3ImageVAlign.BASELINE, "baseline"); checkVAlign(Wom3ImageVAlign.BOTTOM, "bottom"); checkVAlign(Wom3ImageVAlign.MIDDLE, "middle"); checkVAlign(Wom3ImageVAlign.SUB, "sub"); checkVAlign(Wom3ImageVAlign.SUPER, "super"); checkVAlign(Wom3ImageVAlign.TEXT_BOTTOM, "text-bottom"); checkVAlign(Wom3ImageVAlign.TEXT_TOP, "text-top"); checkVAlign(Wom3ImageVAlign.TOP, "top"); } @Test(expected = IllegalArgumentException.class) public void testIllegalVAlignStringThrows() throws Exception { l.setAttribute("valign", "I'm illegal ..."); } private void checkVAlign(Wom3ImageVAlign valign, String value) { l.setVAlign(valign); assertEquals(valign, l.getVAlign()); assertEquals(value, l.getAttribute("valign")); l.setVAlign(null); assertEquals("", l.getAttribute("valign")); assertNull(l.getVAlign()); l.setAttribute("valign", value); assertEquals(valign, l.getVAlign()); assertEquals(value, l.getAttribute("valign")); l.setAttribute("valign", null); assertEquals("", l.getAttribute("valign")); assertNull(l.getVAlign()); } @Test public void testWidthAttribute() throws Exception { l.setWidth(128); assertEquals((Integer) 128, l.getWidth()); assertEquals("128", l.getAttribute("width")); l.setWidth(null); assertEquals("", l.getAttribute("width")); assertNull(l.getWidth()); l.setAttribute("width", "128"); assertEquals((Integer) 128, l.getWidth()); assertEquals("128", l.getAttribute("width")); l.setAttribute("width", null); assertEquals("", l.getAttribute("width")); assertNull(l.getWidth()); } @Test(expected = IllegalArgumentException.class) public void testIllegalWidthStringThrows() throws Exception { l.setAttribute("width", "Onehundredtwentyeight"); } @Test(expected = IllegalArgumentException.class) public void testNegativeWidthStringThrows() throws Exception { l.setAttribute("width", "-10"); } @Test public void testHeightAttribute() throws Exception { l.setHeight(128); assertEquals((Integer) 128, l.getHeight()); assertEquals("128", l.getAttribute("height")); l.setHeight(null); assertEquals("", l.getAttribute("height")); assertNull(l.getHeight()); l.setAttribute("height", "128"); assertEquals((Integer) 128, l.getHeight()); assertEquals("128", l.getAttribute("height")); l.setAttribute("height", null); assertEquals("", l.getAttribute("height")); assertNull(l.getHeight()); } @Test(expected = IllegalArgumentException.class) public void testIllegalHeightStringThrows() throws Exception { l.setAttribute("height", "Onehundredtwentyeight"); } @Test(expected = IllegalArgumentException.class) public void testNegativeHeightStringThrows() throws Exception { l.setAttribute("height", "-10"); } @Test public void testUprightAttribute() throws Exception { assertFalse(l.isUpright()); l.setUpright(true); assertTrue(l.isUpright()); assertEquals("upright", l.getAttribute("upright")); l.removeAttribute("upright"); assertFalse(l.isUpright()); l.setAttribute("upright", "Doesn't matter"); assertTrue(l.isUpright()); assertEquals("upright", l.getAttribute("upright")); l.setUpright(false); assertFalse(l.isUpright()); assertEquals("", l.getAttribute("upright")); } @Test public void testExtLinkAttribute() throws Exception { l.setExtLink(new URL("http://example.com")); assertEquals(new URL("http://example.com"), l.getExtLink()); assertEquals("http://example.com", l.getAttribute("extlink")); l.setExtLink(null); assertEquals("", l.getAttribute("extlink")); assertNull(l.getExtLink()); l.setAttribute("extlink", "http://example.com"); assertEquals(new URL("http://example.com"), l.getExtLink()); assertEquals("http://example.com", l.getAttribute("extlink")); l.setAttribute("extlink", null); assertEquals("", l.getAttribute("extlink")); assertNull(l.getExtLink()); } @Test(expected = MalformedURLException.class) public void testIllegalExtLinkStringThrows() throws Throwable { try { l.setAttribute("extlink", "!§$%&/()=?"); } catch (WrappedException e) { throw e.getCause(); } } @Test(expected = MalformedURLException.class) public void testEmptyExtLinkStringThrows() throws Throwable { try { l.setAttribute("extlink", ""); } catch (WrappedException e) { throw e.getCause(); } } @Test public void testIntLinkAttribute() throws Exception { l.setIntLink("Some Page"); assertEquals("Some Page", l.getIntLink()); assertEquals("Some Page", l.getAttribute("intlink")); l.setIntLink(null); assertEquals("", l.getAttribute("intlink")); assertNull(l.getIntLink()); l.setAttribute("intlink", "Some Page"); assertEquals("Some Page", l.getIntLink()); assertEquals("Some Page", l.getAttribute("intlink")); l.setAttribute("intlink", null); assertEquals("", l.getAttribute("intlink")); assertNull(l.getIntLink()); } @Test public void testSetIntLinkAcceptsEmptyString() throws Exception { l.setIntLink(""); l.setAttribute("intlink", ""); } @Test(expected = IllegalArgumentException.class) public void testIllegalIntLinkStringThrows() throws Exception { l.setAttribute("intlink", "{}"); } @Test public void testAltAttribute() throws Exception { l.setAlt("Some text"); assertEquals("Some text", l.getAlt()); assertEquals("Some text", l.getAttribute("alt")); l.setAlt(null); assertEquals("", l.getAttribute("alt")); assertNull(l.getAlt()); l.setAttribute("alt", "Some text"); assertEquals("Some text", l.getAlt()); assertEquals("Some text", l.getAttribute("alt")); l.setAttribute("alt", null); assertEquals("", l.getAttribute("alt")); assertNull(l.getAlt()); } @Test public void testCaptionSetterAndGetter() throws Exception { assertNull(l.getCaption()); ImageCaptionImpl caption = (ImageCaptionImpl) TestHelperDoc.genElem("imgcaption"); l.setCaption(caption); assertTrue(caption == l.getCaption()); assertTrue(caption == l.getFirstChild()); assertTrue(caption == l.getLastChild()); l.setCaption(null); assertNull(l.getCaption()); assertNull(l.getFirstChild()); assertNull(l.getLastChild()); } @Test public void testReplaceCaption() throws Exception { ImageCaptionImpl caption = (ImageCaptionImpl) TestHelperDoc.genElem("imgcaption"); l.setCaption(caption); ImageCaptionImpl newCaption = (ImageCaptionImpl) TestHelperDoc.genElem("imgcaption"); l.replaceChild(newCaption, caption); assertTrue(newCaption == l.getCaption()); assertTrue(newCaption == l.getFirstChild()); assertTrue(newCaption == l.getLastChild()); } @Test public void testGetLinkTargetGetter() throws Exception { assertEquals(l.getSource(), l.getLinkTarget()); String intLink = "Some other target"; l.setIntLink(intLink); assertEquals(intLink, l.getLinkTarget()); l.setIntLink(null); assertEquals(l.getSource(), l.getLinkTarget()); } @Test @Ignore public void testGetLinkTitleGetter() throws Exception { assertEquals(l.getSource(), l.getLinkTitle().getFirstChild().getNodeValue()); String alt = "Some alt text"; l.setAlt(alt); assertEquals(alt, l.getLinkTitle().getFirstChild().getNodeValue()); l.setAlt(null); assertEquals(l.getSource(), l.getLinkTitle().getFirstChild().getNodeValue()); } } IntLinkTest.java000066400000000000000000000056221335270560400401200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; public class IntLinkTest { private IntLinkImpl n; public IntLinkTest() { n = (IntLinkImpl) TestHelperDoc.genElem("intlink"); n.setTarget("some page"); } @Test public void testTargetAttribute() throws Exception { String titleA = "a nice page"; String titleB = "some other page"; TestHelperAttribute.testFixedAttribute(n, "target", "getTarget", "setTarget", titleA, titleB); } @Test(expected = IllegalArgumentException.class) public void testUnknownAttributeThrows() throws Exception { n.setAttribute("test", "v"); } @Test public void testSetTargetAttributeIsReflectedByGetLinkTarget() throws Exception { n.setAttribute("target", "foo"); assertEquals(n.getTarget(), n.getLinkTarget()); } @Test public void testSetTitle() throws Exception { assertNull(n.getFirstChild()); assertNull(n.getLastChild()); TitleImpl b = (TitleImpl) TestHelperDoc.genElem("title"); n.setLinkTitle(b); assertTrue(b == n.getLinkTitle()); assertTrue(b == n.getFirstChild()); assertTrue(b == n.getLastChild()); } @Test public void testResetLinkTitle() throws Exception { TitleImpl b0 = (TitleImpl) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); TitleImpl b1 = (TitleImpl) TestHelperDoc.genElem("title"); n.setLinkTitle(b1); assertTrue(b1 == n.getLinkTitle()); assertTrue(b1 == n.getFirstChild()); assertTrue(b1 == n.getLastChild()); } @Test public void testRemoveTitle() throws Exception { TitleImpl b0 = (TitleImpl) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); assertTrue(b0 == n.setLinkTitle(null)); assertNull(n.getLinkTitle()); } @Test public void testReplaceTitle() throws Exception { TitleImpl b0 = (TitleImpl) TestHelperDoc.genElem("title"); n.setLinkTitle(b0); assertTrue(b0 == n.getLinkTitle()); TitleImpl b1 = (TitleImpl) TestHelperDoc.genElem("title"); n.replaceChild(b1, b0); assertTrue(b1 == n.getLinkTitle()); } } ListItemTest.java000066400000000000000000000027031335270560400402770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; public class ListItemTest { private final Wom3ElementNode n; // ========================================================================= public ListItemTest() { this.n = TestHelperDoc.genElem("li"); } // ========================================================================= @Test public void testTypeAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "type", "getItemType", "setItemType", "i"); } @Test public void testValueAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "value", "getItemValue", "setItemValue", 5, "5"); } } ListTest.java000066400000000000000000000127411335270560400374630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.Before; import org.junit.Test; import org.sweble.wom3.Wom3ListItem; import org.sweble.wom3.Wom3Node; public class ListTest { private OrderedListImpl list; @Before public void setUp() { this.list = (OrderedListImpl) TestHelperDoc.genElem("ol"); } @Test public void testEmptyListIsEmpty() throws Exception { assertEquals(0, list.getItemNum()); assertTrue(list.getItems().isEmpty()); } @Test public void testAddListItemShowsInList() throws Exception { list.appendItem(gen(1)); assertEquals(1, list.getItemNum()); assertEquals(1, list.getItems().size()); } @Test public void testAddNonListItemDoesNotShowInList() throws Exception { assertFalse(list.hasChildNodes()); list.appendChild(genBold(1)); assertEquals(0, list.getItemNum()); assertEquals(0, list.getItems().size()); assertTrue(list.hasChildNodes()); } @Test public void testAddItemWithAppendChildShowsInList() throws Exception { list.appendChild(gen(1)); assertEquals(1, list.getItemNum()); assertEquals(1, list.getItems().size()); } @Test public void testGetByIndex() throws Exception { Wom3ListItem l1 = gen(1); list.appendChild(l1); list.appendChild(genBold(2)); Wom3ListItem l2 = gen(3); list.appendChild(l2); list.appendChild(genBold(4)); Wom3ListItem l3 = gen(5); list.appendChild(l3); list.appendChild(genBold(6)); assertEquals(3, list.getItemNum()); assertEquals(3, list.getItems().size()); assertTrue(list.getItem(0) == l1); assertTrue(list.getItem(1) == l2); assertTrue(list.getItem(2) == l3); } @Test public void testRemoveByIndex() throws Exception { list.appendChild(gen(1)); list.appendChild(genBold(2)); list.appendChild(gen(3)); list.appendChild(genBold(3)); list.appendChild(gen(4)); list.appendChild(genBold(5)); list.removeItem(1); assertEquals(2, list.getItemNum()); assertEquals(2, list.getItems().size()); int i = 1; Iterator j = list.iterator(); while (j.hasNext()) assertEquals(i++, Integer.parseInt(j.next().getFirstChild().getTextContent())); } @Test public void testRemoveChild() throws Exception { Wom3ListItem l1 = gen(1); list.appendChild(l1); list.appendChild(gen(1)); list.appendChild(genBold(2)); Wom3ListItem l2 = gen(3); list.appendChild(l2); list.appendChild(genBold(3)); list.appendChild(gen(4)); list.appendChild(gen(5)); Wom3Node b5 = genBold(6); list.appendChild(b5); list.appendChild(genBold(6)); list.removeChild(l2); list.removeChild(b5); list.removeChild(l1); assertEquals(3, list.getItemNum()); assertEquals(3, list.getItems().size()); int i = 1; Iterator j = list.iterator(); while (j.hasNext()) assertEquals(i++, Integer.parseInt(j.next().getFirstChild().getTextContent())); } @Test public void testReplaceItem() throws Exception { list.appendChild(genBold(1)); Wom3ListItem l2 = gen(2); list.appendChild(l2); list.appendChild(genBold(3)); list.replaceItem(0, gen(2)); assertEquals(1, list.getItemNum()); assertEquals(1, list.getItems().size()); int i = 1; Iterator j = list.iterator(); while (j.hasNext()) { Wom3Node next = j.next(); assertFalse(next == l2); assertEquals(i++, Integer.parseInt(next.getFirstChild().getTextContent())); } } @Test public void testInsertItem() throws Exception { list.appendChild(genBold(1)); Wom3ListItem l1 = gen(2); list.insertItem(0, l1); Wom3ListItem l3 = gen(4); list.insertItem(1, l3); list.appendChild(genBold(5)); Wom3ListItem l2 = gen(3); list.insertItem(1, l2); assertEquals(3, list.getItemNum()); assertEquals(3, list.getItems().size()); assertTrue(list.getItem(0) == l1); assertTrue(list.getItem(1) == l2); assertTrue(list.getItem(2) == l3); int i = 1; Iterator j = list.iterator(); while (j.hasNext()) assertEquals(i++, Integer.parseInt(j.next().getFirstChild().getTextContent())); } @Test public void testCompactAttribute() throws Exception { TestHelperAttribute.testBooleanAttribute(list, "compact", "isCompact", "setCompact"); } // ========================================================================= private Wom3Node genBold(int i) { BoldImpl bold = (BoldImpl) TestHelperDoc.genElem("b"); bold.appendChild(genText(i)); return bold; } private Wom3ListItem gen(int i) { ListItemImpl item = (ListItemImpl) TestHelperDoc.genElem("li"); item.appendChild(genText(i)); return item; } private TextImpl genText(int i) { TextImpl text = (TextImpl) TestHelperDoc.genElem("text"); text.setTextContent(String.valueOf(i)); return text; } } NodesWithNoAttributesStrictTest.java000066400000000000000000000050661335270560400442130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class NodesWithNoAttributesStrictTest { @Parameters public static List enumerateInputs() throws Exception { List inputs = new ArrayList(); inputs.add(new Object[] { "text" }); inputs.add(new Object[] { "body" }); inputs.add(new Object[] { "imgcaption" }); inputs.add(new Object[] { "nowiki" }); inputs.add(new Object[] { "title" }); return inputs; } // ========================================================================= private final Wom3ElementNode n; private final DocumentImpl doc; public NodesWithNoAttributesStrictTest(String name) throws InstantiationException, IllegalAccessException { DomImplementationImpl domImpl = DomImplementationImpl.get(); doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); this.n = (Wom3ElementNode) doc.createElementNS(Wom3Node.WOM_NS_URI, name); } // ========================================================================= @Test(expected = IllegalArgumentException.class) public void testSetAttributeThrows() throws Exception { n.setAttribute("aribtrary", "peng"); } public void testRemoveAbsentAttributeDoesNotThrow() throws Exception { n.removeAttribute("aribtrary"); } @Test public void testGetAttributesDoesNotThrows() throws Exception { assertEquals("", n.getAttribute("arbitrary")); assertNull(n.getAttributeNode("arbitrary")); } } NodesWithUniversalAttributesTest.java000066400000000000000000000134121335270560400444100ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import de.fau.cs.osr.utils.NamedParametrized; @RunWith(value = NamedParametrized.class) public class NodesWithUniversalAttributesTest { @Parameters public static List enumerateInputs() throws Exception { List inputs = new ArrayList(); inputs.add(new Object[] { "hr" }); inputs.add(new Object[] { "table" }); inputs.add(new Object[] { "pre" }); inputs.add(new Object[] { "ol" }); inputs.add(new Object[] { "ul" }); inputs.add(new Object[] { "abbr" }); inputs.add(new Object[] { "big" }); inputs.add(new Object[] { "b" }); inputs.add(new Object[] { "center" }); inputs.add(new Object[] { "cite" }); inputs.add(new Object[] { "code" }); inputs.add(new Object[] { "dd" }); inputs.add(new Object[] { "dt" }); inputs.add(new Object[] { "dfn" }); inputs.add(new Object[] { "em" }); inputs.add(new Object[] { "i" }); inputs.add(new Object[] { "kbd" }); inputs.add(new Object[] { "samp" }); inputs.add(new Object[] { "small" }); inputs.add(new Object[] { "span" }); inputs.add(new Object[] { "strike" }); inputs.add(new Object[] { "strong" }); inputs.add(new Object[] { "sub" }); inputs.add(new Object[] { "sup" }); inputs.add(new Object[] { "tt" }); inputs.add(new Object[] { "u" }); inputs.add(new Object[] { "var" }); inputs.add(new Object[] { "blockquote" }); inputs.add(new Object[] { "del" }); inputs.add(new Object[] { "div" }); inputs.add(new Object[] { "dl" }); inputs.add(new Object[] { "heading" }); inputs.add(new Object[] { "ins" }); inputs.add(new Object[] { "li" }); inputs.add(new Object[] { "p" }); inputs.add(new Object[] { "tbody" }); inputs.add(new Object[] { "tcaption" }); inputs.add(new Object[] { "td" }); inputs.add(new Object[] { "th" }); inputs.add(new Object[] { "tr" }); return inputs; } // ========================================================================= private final Wom3ElementNode n; private final DocumentImpl doc; public NodesWithUniversalAttributesTest(String name) throws InstantiationException, IllegalAccessException { DomImplementationImpl domImpl = DomImplementationImpl.get(); doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); this.n = (Wom3ElementNode) doc.createElementNS(Wom3Node.WOM_NS_URI, name); } // ========================================================================= @Test public void testCanSetArbitraryAttributes() throws Exception { n.setAttribute("foo", "bar"); assertEquals("bar", n.getAttribute("foo")); } // ==[ Core Attributes ]==================================================== @Test public void testClassAttribute() throws Exception { TestHelperAttribute.testClassAttribute(this.n); } @Test public void testIdAttribute() throws Exception { TestHelperAttribute.testIdAttribute(this.n); } @Test public void testStyleAttribute() throws Exception { TestHelperAttribute.testStyleAttribute(this.n); } @Test public void testTitleAttribute() throws Exception { TestHelperAttribute.testTitleAttribute(this.n); } // ==[ I18n Attributes ]==================================================== @Test public void testDirAttribute() throws Exception { TestHelperAttribute.testDirAttribute(this.n); } @Test public void testLangAttribute() throws Exception { TestHelperAttribute.testLangAttribute(this.n); } @Test public void testXmlLangAttribute() throws Exception { TestHelperAttribute.testXmlLangAttribute(this.n); } // ==[ Event Attributes ]=================================================== @Test public void testOnClickAttribute() throws Exception { TestHelperAttribute.testOnClickAttribute(this.n); } @Test public void testOnDblClickAttribute() throws Exception { TestHelperAttribute.testOnDblClickAttribute(this.n); } @Test public void testOnMouseDownAttribute() throws Exception { TestHelperAttribute.testOnMouseDownAttribute(this.n); } @Test public void testOnMouseUpAttribute() throws Exception { TestHelperAttribute.testOnMouseUpAttribute(this.n); } @Test public void testOnMouseOverAttribute() throws Exception { TestHelperAttribute.testOnMouseOverAttribute(this.n); } @Test public void testOnMouseMoveAttribute() throws Exception { TestHelperAttribute.testOnMouseMoveAttribute(this.n); } @Test public void testOnMouseOutAttribute() throws Exception { TestHelperAttribute.testOnMouseOutAttribute(this.n); } @Test public void testOnKeyPressAttribute() throws Exception { TestHelperAttribute.testOnKeyPressAttribute(this.n); } @Test public void testOnKeyUpAttribute() throws Exception { TestHelperAttribute.testOnKeyUpAttribute(this.n); } @Test public void testOnKeyDownAttribute() throws Exception { TestHelperAttribute.testOnKeyDownAttribute(this.n); } } OrderedListTest.java000066400000000000000000000027011335270560400407630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; public class OrderedListTest { private final Wom3ElementNode n; // ========================================================================= public OrderedListTest() { this.n = TestHelperDoc.genElem("ol"); } // ========================================================================= @Test public void testStartAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "start", "getStart", "setStart", 5, "5"); } @Test public void testTypeAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "type", "getItemType", "setItemType", "i"); } } ParagraphTest.java000066400000000000000000000053451335270560400404570ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.sweble.wom3.Wom3HorizAlign; public class ParagraphTest { private ParagraphImpl n = (ParagraphImpl) TestHelperDoc.genElem("p"); // ========================================================================= @Test public void testInitialGapsAreZero() throws Exception { assertEquals(0, n.getTopGap()); assertEquals(0, n.getBottomGap()); } @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test(expected = UnsupportedOperationException.class) public void testCannotRemoveTopGap() throws Exception { n.removeAttribute("topgap"); } @Test(expected = UnsupportedOperationException.class) public void testCannotRemoveBottomGap() throws Exception { n.removeAttribute("bottomgap"); } @Test(expected = IllegalArgumentException.class) public void testCannotSetNegativeTopGap() throws Exception { n.setTopGap(-1); } @Test(expected = IllegalArgumentException.class) public void testCannotSetNegativeBottomGap() throws Exception { n.setBottomGap(-1); } @Test public void testGapSettersWork() throws Exception { TestHelperAttribute.testFixedAttributeNoObjectSetter( n, "topgap", "getTopGap", "setTopGap", 1, "1", 0, "0"); TestHelperAttribute.testFixedAttributeNoObjectSetter( n, "bottomgap", "getBottomGap", "setBottomGap", 1, "1", 0, "0"); } } RedirectTest.java000066400000000000000000000034421335270560400403070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import org.junit.Ignore; import org.junit.Test; public class RedirectTest { private RedirectImpl n = (RedirectImpl) TestHelperDoc.genElem("redirect"); // ========================================================================= @Test public void testTargetAttribute() throws Exception { String titleA = "a nice page"; String titleB = "some other page"; TestHelperAttribute.testFixedAttribute(n, "target", "getTarget", "setTarget", titleA, titleB); } @Test(expected = IllegalArgumentException.class) public void testUnknownAttributeThrows() throws Exception { n.setAttribute("test", "v"); } @Test public void testSetTargetAttributeIsReflectedByGetLinkTarget() throws Exception { n.setAttribute("target", "foo"); assertEquals(n.getTarget(), n.getLinkTarget()); } @Test @Ignore public void testCategoryHasEmptyLinkTitle() throws Exception { assertFalse(n.getLinkTitle().hasChildNodes()); } } SectionTest.java000066400000000000000000000060601335270560400401510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.sweble.wom3.Wom3Heading; public class SectionTest { private SectionImpl n = (SectionImpl) TestHelperDoc.genElem("section"); // ========================================================================= @Test public void testHasCorrectLevel() throws Exception { assertEquals(1, n.getLevel()); } @Test public void testLevelAttribute() throws Exception { TestHelperAttribute.testFixedAttributeNoObjectSetter(n, "level", "getLevel", "setLevel", 6, "6", 3, "3"); } @Test(expected = NullPointerException.class) public void testCannotRemoveHeading() throws Exception { n.setHeading(null); } @Test(expected = NullPointerException.class) public void testCannotRemoveBody() throws Exception { n.setBody(null); } @Test public void testResetHeading() throws Exception { n.setHeading((HeadingImpl) TestHelperDoc.genElem("heading")); assertNotNull(n.getHeading()); HeadingImpl heading = (HeadingImpl) TestHelperDoc.genElem("heading"); n.setHeading(heading); assertTrue(heading == n.getHeading()); } @Test public void testResetBody() throws Exception { n.setBody((BodyImpl) TestHelperDoc.genElem("body")); assertNotNull(n.getBody()); BodyImpl body = (BodyImpl) TestHelperDoc.genElem("body"); n.setBody(body); assertTrue(body == n.getBody()); } @Test(expected = IllegalArgumentException.class) public void testCannotSetArbitraryAttr() throws Exception { n.setAttribute("foo", "bar"); } @Test public void testReplaceHeadingAndBody() throws Exception { n = (SectionImpl) TestHelperDoc.genElem("section"); n.setLevel(2); n.setHeading((Wom3Heading) TestHelperDoc.genElem("heading")); n.setBody((BodyImpl) TestHelperDoc.genElem("body")); assertNotNull(n.getHeading()); assertNotNull(n.getBody()); HeadingImpl heading = (HeadingImpl) TestHelperDoc.genElem("heading"); n.replaceChild(heading, n.getHeading()); BodyImpl body = (BodyImpl) TestHelperDoc.genElem("body"); n.replaceChild(body, n.getBody()); assertTrue(heading == n.getHeading()); assertTrue(body == n.getBody()); assertTrue(heading == n.getFirstChild()); assertTrue(body == n.getLastChild()); } } SiblingRangeCollectionTest.java000066400000000000000000000325541335270560400431340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.NoSuchElementException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.sweble.wom3.Wom3Node; import org.w3c.dom.DOMException; import org.w3c.dom.Node; @RunWith(Parameterized.class) public class SiblingRangeCollectionTest { @Parameters public static Collection data() { return Arrays.asList(new Object[][] { { false, false }, { false, true }, { true, false }, { true, true }, }); } // ========================================================================= private final SiblingRangeCollection c; private final LinkedList nodes; private DocumentImpl doc; // ========================================================================= public SiblingRangeCollectionTest(boolean hasPred, boolean hasSucc) { DomImplementationImpl domImpl = new DomImplementationImpl(); this.doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); BoundaryChild pred = hasPred ? new BoundaryChild(doc) : null; BoundaryChild succ = hasSucc ? new BoundaryChild(doc) : null; Container c = new Container(doc, pred, succ); this.c = c.getC(); this.nodes = new LinkedList(); for (int i = 0; i < 10; ++i) nodes.add(gen(i)); } // ========================================================================= @Test public void testEmptyContainerHasSize0() throws Exception { assertEquals(0, c.size()); } @Test public void testCanGetListIteratorOfEmptyContainer() throws Exception { c.listIterator(); } @Test(expected = IndexOutOfBoundsException.class) public void testListIteratorAtNonZeroIndexForEmptyContainerFails() throws Exception { c.listIterator(1); } @Test(expected = IndexOutOfBoundsException.class) public void testListIteratorWithNegIndexFails() throws Exception { c.listIterator(-1); } @Test(expected = NoSuchElementException.class) public void testGetFirstFailsForEmptyContainer() throws Exception { c.getFirst(); } @Test(expected = NoSuchElementException.class) public void testGetLastFailsForEmptyContainer() throws Exception { c.getLast(); } @Test public void testPeekWorksWithEmptyContainer() throws Exception { assertNull(c.peek()); assertNull(c.peekFirst()); assertNull(c.peekLast()); } @Test public void testPollWorksWithEmptyContainer() throws Exception { assertNull(c.poll()); assertNull(c.pollFirst()); assertNull(c.pollLast()); } @Test public void testHasNextAndHasPreviousReturnFalseForEmptyContainer() throws Exception { assertFalse(c.listIterator().hasNext()); assertFalse(c.listIterator().hasPrevious()); } @Test public void testNextIndexReturnsZeroForEmptyContainer() throws Exception { assertEquals(0, c.listIterator().nextIndex()); assertEquals(-1, c.listIterator().previousIndex()); } @Test public void testCanAddToEmptyContainer() throws Exception { ChildNode e = gen(0); c.add(e); assertFalse(c.isEmpty()); assertEquals(1, c.size()); assertEquals(e, c.getFirst()); assertEquals(e, c.getLast()); } @Test public void testCanAddTwoToEmptyContainer() throws Exception { ChildNode e0 = gen(0); c.add(e0); ChildNode e1 = gen(1); c.add(e1); assertFalse(c.isEmpty()); assertEquals(2, c.size()); assertEquals(e0, c.getFirst()); assertEquals(e1, c.getLast()); } @Test public void testAddingAndRetrievingItemsByIndex() throws Exception { for (ChildNode e : nodes) c.add(e); assertEquals(nodes.size(), c.size()); for (int i = 0; i < nodes.size(); ++i) assertEquals(nodes.get(i), c.get(i)); } @Test public void testPeekAndPollOnFilledContainer() throws Exception { for (ChildNode e : nodes) c.add(e); assertEquals(nodes.peek(), c.peek()); assertEquals(nodes.peekFirst(), c.peekFirst()); assertEquals(nodes.peekLast(), c.peekLast()); assertEquals(nodes.poll(), c.poll()); assertEquals(nodes.pollFirst(), c.pollFirst()); assertEquals(nodes.pollLast(), c.pollLast()); assertEquals(nodes.size(), c.size()); Iterator i = nodes.iterator(); for (ChildNode e : c) assertEquals(i.next(), e); } @Test public void testRemoveWithIteratorInComplexPattern() throws Exception { for (ChildNode e : nodes) c.add(e); // Remove all even ListIterator i = c.listIterator(); while (i.hasNext()) { i.next(); i.remove(); if (i.hasNext()) i.next(); } assertEquals(nodes.size() / 2, c.size()); // Remove remaining while (i.hasPrevious()) { i.previous(); i.remove(); } } @Test public void testRemoveWithIteratorInComplexPatternReverse() throws Exception { for (ChildNode e : nodes) c.add(e); // Remove all even ListIterator i = c.listIterator(c.size()); while (i.hasPrevious()) { i.previous(); i.remove(); if (i.hasPrevious()) i.previous(); } assertEquals(nodes.size() / 2, c.size()); // Remove remaining while (i.hasNext()) { i.next(); i.remove(); } } @Test public void testRemoveAll() throws Exception { for (ChildNode e : nodes) c.add(e); while (!c.isEmpty()) c.removeFirst(); assertEquals(0, c.size()); } @Test public void testRemoveAllReverse() throws Exception { for (ChildNode e : nodes) c.add(e); while (!c.isEmpty()) c.removeLast(); assertEquals(0, c.size()); } @Test public void testFillContainerFromFront() throws Exception { for (ChildNode e : nodes) c.addFirst(e); Iterator i = c.iterator(); Iterator j = nodes.descendingIterator(); while (j.hasNext()) assertEquals(j.next(), i.next()); assertEquals(j.hasNext(), i.hasNext()); } @Test public void testRemoveFirstOccurrence() throws Exception { ChildNode a = gen(42); ChildNode b = gen(42); c.add(gen(0)); c.add(a); c.add(gen(1)); c.add(gen(2)); c.add(b); c.add(gen(3)); assertEquals(42, c.get(1).getFakeId()); assertTrue(c.removeFirstOccurrence(gen(42))); assertFalse(a.isLinked()); assertTrue(b.isLinked()); assertEquals(1, c.get(1).getFakeId()); assertEquals(42, c.get(3).getFakeId()); assertTrue(c.removeFirstOccurrence(gen(42))); assertFalse(b.isLinked()); for (int i = 0; i < 4; ++i) assertEquals(i, c.get(i).getFakeId()); assertFalse(c.removeFirstOccurrence(gen(42))); } @Test public void testRemoveLastOccurrence() throws Exception { ChildNode a = gen(42); ChildNode b = gen(42); c.add(gen(0)); c.add(a); c.add(gen(1)); c.add(gen(2)); c.add(b); c.add(gen(3)); assertEquals(42, c.get(4).getFakeId()); assertTrue(c.removeLastOccurrence(gen(42))); assertTrue(a.isLinked()); assertFalse(b.isLinked()); assertEquals(3, c.get(4).getFakeId()); assertEquals(42, c.get(1).getFakeId()); assertTrue(c.removeLastOccurrence(gen(42))); assertFalse(b.isLinked()); for (int i = 0; i < 4; ++i) assertEquals(i, c.get(i).getFakeId()); assertFalse(c.removeLastOccurrence(gen(42))); } @Test public void testReplacingAllNodesWithHigherIdNodes() throws Exception { for (ChildNode e : nodes) c.add(e); ListIterator i = c.listIterator(); for (int j = 0; j < nodes.size(); ++j) { ChildNode e = i.next(); assertEquals(j, e.getFakeId()); i.set(gen(e.getFakeId() + nodes.size())); } for (int j = 0; j < 10; ++j) assertEquals(j + nodes.size(), c.get(j).getFakeId()); } @Test public void testReplacingAllNodesWithHigherIdNodesReverse() throws Exception { for (ChildNode e : nodes) c.add(e); ListIterator i = c.listIterator(c.size()); for (int j = 0; j < nodes.size(); ++j) { ChildNode e = i.previous(); assertEquals(nodes.size() - j - 1, e.getFakeId()); i.set(gen(e.getFakeId() + nodes.size())); } for (int j = 0; j < 10; ++j) assertEquals(j + nodes.size(), c.get(j).getFakeId()); } @Test public void testInsertNegativeIdsBeforeAndAfterAllNodes() throws Exception { for (ChildNode e : nodes) c.add(e); ListIterator i = c.listIterator(); int j = -1; i.add(gen(j--)); while (i.hasNext()) { i.next(); i.add(gen(j--)); } for (int k = 0; k <= nodes.size(); k++) assertEquals(-k - 1, c.get(k * 2).getFakeId()); for (int k = 0; k < nodes.size(); k++) assertEquals(k, c.get(k * 2 + 1).getFakeId()); } // ========================================================================= private ChildNode gen(int id) { return new ChildNode(doc, id); } // ========================================================================= protected static final class ChildNode extends Backbone { private static final long serialVersionUID = 1L; private final int id; // --------------------------------------------------------------------- public ChildNode(DocumentImpl owner, int id) { super(owner); this.id = id; } // --------------------------------------------------------------------- public int getFakeId() { return id; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ChildNode other = (ChildNode) obj; if (id != other.id) return false; return true; } @Override public String getNodeName() { return ChildNode.class.getSimpleName(); } @Override public String getLocalName() { return getNodeName(); } @Override public short getNodeType() { return Node.ELEMENT_NODE; } @Override public void setTextContent(String textContent) throws DOMException { } @Override public Backbone getParentNode() { return getParentNodeIntern(); } } // ========================================================================= protected static final class BoundaryChild extends Backbone { private static final long serialVersionUID = 1L; // --------------------------------------------------------------------- public BoundaryChild(DocumentImpl owner) { super(owner); } // --------------------------------------------------------------------- @Override public String getNodeName() { return ChildNode.class.getSimpleName(); } @Override public String getLocalName() { return getNodeName(); } @Override public short getNodeType() { return Node.ELEMENT_NODE; } @Override public void setTextContent(String textContent) throws DOMException { } @Override public Backbone getParentNode() { return getParentNodeIntern(); } } // ========================================================================= protected static final class Container extends BackboneElement implements SiblingCollectionBounds { private static final long serialVersionUID = 1L; private final SiblingRangeCollection c; private final BoundaryChild pred; private final BoundaryChild succ; // --------------------------------------------------------------------- public Container( DocumentImpl owner, BoundaryChild pred, BoundaryChild succ) { super(owner); c = new SiblingRangeCollection(this, new SiblingCollectionBounds() { @Override public Backbone getSucc() { return Container.this.succ; } @Override public Backbone getPred() { return Container.this.pred; } }); this.pred = pred; if (pred != null) pred.link(this, null, null); this.succ = succ; if (succ != null) succ.link(this, pred, null); } // --------------------------------------------------------------------- @Override protected void allowsInsertion(Backbone prev, Backbone child) { } @Override protected void allowsRemoval(Backbone child) { } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { } // --------------------------------------------------------------------- public SiblingRangeCollection getC() { return c; } @Override public String getNodeName() { return Container.class.getSimpleName(); } @Override public String getLocalName() { return getNodeName(); } @Override public Backbone getPred() { return pred; } @Override public Backbone getSucc() { return succ; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return null; } } } SignatureTest.java000066400000000000000000000037231335270560400405110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.joda.time.DateTime; import org.junit.Test; import org.sweble.wom3.Wom3SignatureFormat; public class SignatureTest { private SignatureImpl n = (SignatureImpl) TestHelperDoc.genElem("signature"); // ========================================================================= @Test public void testFormatAttribute() throws Exception { TestHelperAttribute.testFixedAttribute(n, "format", "getSignatureFormat", "setSignatureFormat", Wom3SignatureFormat.USER, "user", Wom3SignatureFormat.TIMESTAMP, "timestamp"); } @Test public void testAuthorAttribute() throws Exception { TestHelperAttribute.testFixedAttribute(n, "author", "getAuthor", "setAuthor", "Me-Man", "He-Man"); } @Test public void testTimestampAttribute() throws Exception { DateTime t0 = DateTime.now(); DateTime t1 = t0.plus(100); String t0Str = Toolbox.dateTimeToString(t0); String t1Str = Toolbox.dateTimeToString(t1); TestHelperAttribute.testFixedAttribute(n, "timestamp", "getTimestamp", "setTimestamp", t0, t0Str, t1, t1Str); } @Test(expected = IllegalArgumentException.class) public void testCannotSetArbitraryAttr() throws Exception { n.setAttribute("foo", "bar"); } } TableAddressingTest.java000066400000000000000000000276261335270560400416130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3TableCellBase; import org.sweble.wom3.Wom3TableColumn; import org.sweble.wom3.Wom3TablePartition; import org.sweble.wom3.Wom3TableRow; public class TableAddressingTest { private TableImpl t = (TableImpl) TestHelperDoc.genElem("table"); private TableBodyImpl b; @Before public void before() { /* */ TableRowImpl r; TableCellImpl c; b = (TableBodyImpl) TestHelperDoc.genElem("tbody"); // -- row 1 ---- r = (TableRowImpl) TestHelperDoc.genElem("tr"); // add before finishing row b.appendChild(r); c = (TableCellImpl) TestHelperDoc.genElem("td"); c.setColspan(6); addText(c, "1.1 (,6)"); r.appendChild(c); addCell(r, "1.2"); // -- row 2 ---- r = (TableRowImpl) TestHelperDoc.genElem("tr"); addCell(r, "2.1"); addCell(r, "2.2"); addCell(r, "2.3"); c = (TableCellImpl) TestHelperDoc.genElem("td"); c.setRowspan(2); addText(c, "2.4 (2,)"); r.appendChild(c); addCell(r, "2.5"); addCell(r, "2.6"); addCell(r, "2.7"); // add after finishing row b.appendChild(r); /*
    1.1 (,6)1.2
    2.1 2.2 2.3 2.4 (2,) 2.5 2.6 2.7
    3.1 (2,2)3.2 (2,)3.3
    4.14.24.3
    5.15.2
    */ // why not attach? t.appendChild(b); // -- row 3 ---- r = (TableRowImpl) TestHelperDoc.genElem("tr"); // add before finishing row b.appendChild(r); c = (TableCellImpl) TestHelperDoc.genElem("td"); c.setRowspan(2); c.setColspan(2); addText(c, "3.1 (2,2)"); r.appendChild(c); c = (TableCellImpl) TestHelperDoc.genElem("td"); c.setRowspan(2); addText(c, "3.2 (2,)"); r.appendChild(c); addCell(r, "3.3"); // -- row 4 ---- r = (TableRowImpl) TestHelperDoc.genElem("tr"); addCell(r, "4.1"); addCell(r, "4.2"); addCell(r, "4.3"); Wom3ElementNode comment = TestHelperDoc.genElem("comment"); Wom3ElementNode commentText = TestHelperDoc.genElem("text"); commentText.setTextContent("XXX"); comment.appendChild(commentText); r.appendChild(comment); // add after finishing row b.appendChild(r); // -- row 5 ---- r = (TableRowImpl) TestHelperDoc.genElem("tr"); addCell(r, "5.1"); addCell(r, "5.2"); // add after finishing row b.appendChild(r); } // ========================================================================= /* 0 | 1 | 2 | 3 | 4 | 5 | 6 --------------------------------------------------- 0 | 1.1 (,6) | 1.2 | 0 |-----------|---------------------------------------| 1 | 2.1 | 2.2 | 2.3 | | 2.5 | 2.6 | 2.7 | 1 |-----------|----------| 2.4 (2,) |-----------------| 2 | | | | 3.3 | | 2 | 3.1 (2,2) | 3.2 (2,) |----------|-----------------| 3 | | | 4.1 | 4.2 | 4.3 | | 3 |-----------|---------------------------------------| 4 | 5.1 | 5.2 | | 4 -------------------------------------------------- 0 | 1 | 2 | 3 | 4 | 5 | 6 */ @Test public void testNumRowsCols() throws Exception { assertEquals(5, b.getNumRows()); assertEquals(7, b.getNumCols()); } @Test public void testCorrectMatrix() throws Exception { // -- row 1 ---- Wom3TableCellBase c00 = b.getCell(0, 0); assertEquals("1.1 (,6)", c00.getFirstChild().getTextContent()); assertTrue(c00 == b.getCell(0, 1)); assertTrue(c00 == b.getCell(0, 2)); assertTrue(c00 == b.getCell(0, 3)); assertTrue(c00 == b.getCell(0, 4)); assertTrue(c00 == b.getCell(0, 5)); assertEquals("1.2", b.getCell(0, 6).getFirstChild().getTextContent()); // -- row 2 ---- assertEquals("2.1", b.getCell(1, 0).getFirstChild().getTextContent()); assertEquals("2.2", b.getCell(1, 1).getFirstChild().getTextContent()); assertEquals("2.3", b.getCell(1, 2).getFirstChild().getTextContent()); Wom3TableCellBase c13 = b.getCell(1, 3); assertEquals("2.4 (2,)", c13.getFirstChild().getTextContent()); assertEquals("2.5", b.getCell(1, 4).getFirstChild().getTextContent()); assertEquals("2.6", b.getCell(1, 5).getFirstChild().getTextContent()); assertEquals("2.7", b.getCell(1, 6).getFirstChild().getTextContent()); // -- row 3 ---- Wom3TableCellBase c20 = b.getCell(2, 0); assertEquals("3.1 (2,2)", c20.getFirstChild().getTextContent()); assertTrue(c20 == b.getCell(2, 1)); Wom3TableCellBase c22 = b.getCell(2, 2); assertEquals("3.2 (2,)", c22.getFirstChild().getTextContent()); assertTrue(c13 == b.getCell(2, 3)); assertEquals("3.3", b.getCell(2, 4).getFirstChild().getTextContent()); assertNull(b.getCell(2, 5)); assertNull(b.getCell(2, 6)); /* 2 | | | | 3.3 | | 2 | 3.1 (2,2) | 3.2 (2,) |----------|-----------------| 3 | | | 4.1 | 4.2 | 4.3 | | 3 |-----------|---------------------------------------| 4 | 5.1 | 5.2 | | 4 -------------------------------------------------- 0 | 1 | 2 | 3 | 4 | 5 | 6 */ // -- row 4 ---- assertTrue(c20 == b.getCell(3, 0)); assertTrue(c20 == b.getCell(3, 1)); assertTrue(c22 == b.getCell(3, 2)); assertEquals("4.1", b.getCell(3, 3).getFirstChild().getTextContent()); assertEquals("4.2", b.getCell(3, 4).getFirstChild().getTextContent()); assertEquals("4.3", b.getCell(3, 5).getFirstChild().getTextContent()); assertNull(b.getCell(3, 6)); // -- row 5 ---- assertEquals("5.1", b.getCell(4, 0).getFirstChild().getTextContent()); assertEquals("5.2", b.getCell(4, 1).getFirstChild().getTextContent()); assertNull(b.getCell(4, 2)); assertNull(b.getCell(4, 3)); assertNull(b.getCell(4, 4)); assertNull(b.getCell(4, 5)); assertNull(b.getCell(4, 6)); } // ========================================================================= @Test public void testTableIndexGetters() throws Exception { assertEquals(2, b.getCell(2, 0).getRowIndex()); assertEquals(2, b.getCell(2, 1).getRowIndex()); assertEquals(2, b.getCell(3, 0).getRowIndex()); assertEquals(2, b.getCell(3, 1).getRowIndex()); assertEquals(0, b.getCell(2, 0).getColIndex()); assertEquals(0, b.getCell(2, 1).getColIndex()); assertEquals(0, b.getCell(3, 0).getColIndex()); assertEquals(0, b.getCell(3, 1).getColIndex()); } @Test(expected = IllegalStateException.class) public void testIndexGettersDontWorkForDetachedCells() throws Exception { Wom3TableCellBase cell = b.getCell(2, 0); b.getRow(cell.getRowIndex()).removeChild(cell); cell.getRowIndex(); } @Test(expected = IllegalStateException.class) public void testIndexGettersDontWorkForCellsInDetachedRows() throws Exception { Wom3TableCellBase cell = b.getCell(2, 0); b.removeChild(b.getRow(cell.getRowIndex())); cell.getRowIndex(); } @Test(expected = IllegalArgumentException.class) public void testCannotSetInvalidColspan() throws Exception { b.getCell(0, 0).setColspan(0); } @Test(expected = IllegalArgumentException.class) public void testCannotSetInvalidRowspan() throws Exception { b.getCell(0, 0).setRowspan(0); } @Test public void testChangeColspanChangedTableLayout() throws Exception { b.getCell(0, 0).setColspan(5); assertEquals("1.2", b.getCell(0, 5).getFirstChild().getTextContent()); assertNull(b.getCell(0, 6)); } @Test public void testChangesReduceTableCols() throws Exception { assertEquals(7, b.getNumCols()); b.getCell(0, 0).setColspan(5); Wom3TableCellBase c15 = b.getCell(1, 5); b.getRow(c15.getRowIndex()).removeChild(c15); assertEquals("2.7", b.getCell(1, 5).getFirstChild().getTextContent()); assertEquals(6, b.getNumCols()); } @Test(expected = IndexOutOfBoundsException.class) public void testIllegalCellsRowIndexThrows() throws Exception { b.getCell(5, 0); } @Test(expected = IndexOutOfBoundsException.class) public void testIllegalCellsColIndexThrows() throws Exception { b.getCell(0, 7); } @Test(expected = IndexOutOfBoundsException.class) public void testIllegalRowIndexThrows() throws Exception { b.getRow(5); } @Test public void testDetachModifyAndAttach() throws Exception { assertEquals(7, b.getNumCols()); Wom3TableCellBase c00 = b.getCell(0, 0); Wom3TableRow r0 = b.getRow(0); b.removeChild(r0); c00.setColspan(5); Wom3TableCellBase c15 = b.getCell(0, 5); Wom3TableRow r1 = b.getRow(0); b.removeChild(r1); r1.removeChild(c15); b.insertBefore(r1, b.getRow(0)); b.insertBefore(r0, b.getRow(0)); assertEquals("2.7", b.getCell(1, 5).getFirstChild().getTextContent()); assertEquals(6, b.getNumCols()); } @Test public void testAddressingInRow() throws Exception { for (int r = 0; r < b.getNumRows(); ++r) { Wom3TableRow row = b.getRow(r); assertEquals(r, row.getRowIndex()); assertEquals(b.getNumCols(), row.getNumCols()); for (int c = 0; c < b.getNumCols(); ++c) assertTrue(b.getCell(r, c) == row.getCell(c)); } } @Test(expected = IllegalStateException.class) public void testIndexGettersDontWorkForDetachedRow() throws Exception { Wom3TableRow r = b.getRow(1); b.removeChild(r); r.getRowIndex(); } @Test(expected = IllegalStateException.class) public void testRowGettersDontWorkForDetachedPartition() throws Exception { Wom3TableRow r = b.getRow(1); for (Wom3TablePartition part : new ArrayList(t.getPartitions())) t.removeChild(part); r.getRowIndex(); } @Test(expected = IllegalStateException.class) public void testGettersDontWorkForDetachedPartition() throws Exception { for (Wom3TablePartition part : new ArrayList(t.getPartitions())) t.removeChild(part); b.getCol(1); } @Test public void testColAddressing() throws Exception { for (int c = 0; c < b.getNumCols(); ++c) { Wom3TableColumn col = b.getCol(c); assertEquals(c, col.getColIndex()); assertEquals(b.getNumRows(), col.getNumRows()); for (int r = 0; r < b.getNumRows(); ++r) assertTrue(b.getCell(r, c) == col.getCell(r)); } } // ========================================================================= private void addCell(TableRowImpl r, String text) { TableCellImpl c = (TableCellImpl) TestHelperDoc.genElem("td"); addText(c, text); r.appendChild(c); } private void addText(Wom3Node node, String text) { node.appendChild(TestHelperDoc.genXmlText(text)); } } TableBodyTest.java000066400000000000000000000042661335270560400404200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableVAlign; public class TableBodyTest { private TableBodyImpl n = (TableBodyImpl) TestHelperDoc.genElem("tbody"); @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test public void testTableVAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setTableVAlign", Wom3TableVAlign.BASELINE, "baseline"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setTableVAlign", Wom3TableVAlign.BOTTOM, "bottom"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setTableVAlign", Wom3TableVAlign.MIDDLE, "middle"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setTableVAlign", Wom3TableVAlign.TOP, "top"); } } TableCaptionTest.java000066400000000000000000000027661335270560400411230ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3TableCaptionAlign; public class TableCaptionTest { private TableCaptionImpl n = (TableCaptionImpl) TestHelperDoc.genElem("caption"); @Test public void testTableVAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3TableCaptionAlign.BOTTOM, "bottom"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3TableCaptionAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3TableCaptionAlign.RIGHT, "right"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3TableCaptionAlign.TOP, "top"); } } TableCellTest.java000066400000000000000000000106131335270560400403730ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableCellScope; import org.sweble.wom3.Wom3TableVAlign; import org.sweble.wom3.Wom3Unit; public class TableCellTest { private TableCellImpl n = (TableCellImpl) TestHelperDoc.genElem("td"); @Test public void testAbbrAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "abbr", "getAbbr", "setAbbr", "some text"); } @Test public void testAxisAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "axis", "getAxis", "setAxis", "some text"); } @Test public void testScopeAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "scope", "getScope", "setScope", Wom3TableCellScope.COL, "col"); TestHelperAttribute.testAttribute(this.n, "scope", "getScope", "setScope", Wom3TableCellScope.COLGROUP, "colgroup"); TestHelperAttribute.testAttribute(this.n, "scope", "getScope", "setScope", Wom3TableCellScope.ROW, "row"); TestHelperAttribute.testAttribute(this.n, "scope", "getScope", "setScope", Wom3TableCellScope.ROWGROUP, "rowgroup"); } @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test public void testVAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.BASELINE, "baseline"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.BOTTOM, "bottom"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.MIDDLE, "middle"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.TOP, "top"); } @Test public void testColorAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "bgcolor", "getBgColor", "setBgColor", ColorImpl.valueOf("#abcdef"), "#ABCDEF"); } @Test public void testColorCanCopeWithSpaces() throws Exception { n.setAttribute("bgcolor", " blue "); } @Test public void testColspanAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "colspan", "getColspan", "setColspan", 5, "5"); } @Test public void testRowspanAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "rowspan", "getRowspan", "setRowspan", 5, "5"); } @Test public void testNowrapAttribute() throws Exception { TestHelperAttribute.testBooleanAttribute(n, "nowrap", "isNowrap", "setNowrap"); } @Test public void testWidthAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PERCENT, 5.2f), "5.2%"); TestHelperAttribute.testAttribute(n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PIXELS, 5), "5"); } @Test public void testHeightAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "height", "getHeight", "setHeight", new ValueWithUnitImpl(Wom3Unit.PERCENT, 5.2f), "5.2%"); TestHelperAttribute.testAttribute(n, "height", "getHeight", "setHeight", new ValueWithUnitImpl(Wom3Unit.PIXELS, 5), "5"); } } TableRowTest.java000066400000000000000000000047001335270560400402630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableVAlign; public class TableRowTest { private TableRowImpl n = (TableRowImpl) TestHelperDoc.genElem("tr"); @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.JUSTIFY, "justify"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test public void testVAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.BASELINE, "baseline"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.BOTTOM, "bottom"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.MIDDLE, "middle"); TestHelperAttribute.testAttribute(this.n, "valign", "getVAlign", "setVAlign", Wom3TableVAlign.TOP, "top"); } @Test public void testColorAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "bgcolor", "getBgColor", "setBgColor", ColorImpl.valueOf("#abcdef"), "#ABCDEF"); } @Test public void testColorCanCopeWithSpaces() throws Exception { n.setAttribute("bgcolor", " blue "); } } TableTest.java000066400000000000000000000163141335270560400375770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.sweble.wom3.Wom3HorizAlign; import org.sweble.wom3.Wom3TableFrame; import org.sweble.wom3.Wom3TableRules; import org.sweble.wom3.Wom3Unit; public class TableTest { private TableImpl n = (TableImpl) TestHelperDoc.genElem("table"); @Test public void testAlignAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.CENTER, "center"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.LEFT, "left"); TestHelperAttribute.testAttribute(this.n, "align", "getAlign", "setAlign", Wom3HorizAlign.RIGHT, "right"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowJustify() throws Exception { n.setAttribute("align", "jusitfy"); } @Test(expected = IllegalArgumentException.class) public void testAlignAttributeDoesNotAllowChar() throws Exception { n.setAttribute("align", "char"); } @Test public void testBorderAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "border", "getBorder", "setBorder", 5, "5"); } @Test public void testColorAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "bgcolor", "getBgColor", "setBgColor", ColorImpl.valueOf("#abcdef"), "#ABCDEF"); } @Test public void testColorCanCopeWithSpaces() throws Exception { n.setAttribute("bgcolor", " blue "); } @Test public void testCellpaddingAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "cellpadding", "getCellPadding", "setCellPadding", new ValueWithUnitImpl(Wom3Unit.PERCENT, 5.2f), "5.2%"); TestHelperAttribute.testAttribute(n, "cellpadding", "getCellPadding", "setCellPadding", new ValueWithUnitImpl(Wom3Unit.PIXELS, 5), "5"); } @Test public void testCellspacingAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "cellspacing", "getCellSpacing", "setCellSpacing", new ValueWithUnitImpl(Wom3Unit.PERCENT, 5.2f), "5.2%"); TestHelperAttribute.testAttribute(n, "cellspacing", "getCellSpacing", "setCellSpacing", new ValueWithUnitImpl(Wom3Unit.PIXELS, 5), "5"); } @Test public void testFrameAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.ABOVE, "above"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.BELOW, "below"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.BORDER, "border"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.BOX, "box"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.HSIDES, "hsides"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.LHS, "lhs"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.RHS, "rhs"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.VOID, "void"); TestHelperAttribute.testAttribute(this.n, "frame", "getFrame", "setFrame", Wom3TableFrame.VSIDES, "vsides"); } @Test public void testRulesAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "rules", "getRules", "setRules", Wom3TableRules.ALL, "all"); TestHelperAttribute.testAttribute(this.n, "rules", "getRules", "setRules", Wom3TableRules.COLS, "cols"); TestHelperAttribute.testAttribute(this.n, "rules", "getRules", "setRules", Wom3TableRules.GROUPS, "groups"); TestHelperAttribute.testAttribute(this.n, "rules", "getRules", "setRules", Wom3TableRules.NONE, "none"); TestHelperAttribute.testAttribute(this.n, "rules", "getRules", "setRules", Wom3TableRules.ROWS, "rows"); } @Test public void testSummary() throws Exception { TestHelperAttribute.testAttribute(n, "summary", "getSummary", "setSummary", "some text"); } @Test public void testWidthAttribute() throws Exception { TestHelperAttribute.testAttribute(n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PERCENT, 5.2f), "5.2%"); TestHelperAttribute.testAttribute(n, "width", "getWidth", "setWidth", new ValueWithUnitImpl(Wom3Unit.PIXELS, 5), "5"); } @Test public void testDoesNotHaveBodyOrCaptionInitially() throws Exception { assertNull(n.getCaption()); assertTrue(n.getPartitions().isEmpty()); assertNull(n.getFirstChild()); assertNull(n.getLastChild()); } @Test public void testCanRemoveCaption() throws Exception { TableCaptionImpl caption = (TableCaptionImpl) TestHelperDoc.genElem("caption"); n.setCaption(caption); assertTrue(caption == n.getCaption()); assertTrue(caption == n.getFirstChild()); assertTrue(caption == n.getLastChild()); n.setCaption(null); assertNull(n.getCaption()); assertNull(n.getFirstChild()); assertNull(n.getLastChild()); } @Test public void testCanRemoveBody() throws Exception { TableBodyImpl body = (TableBodyImpl) TestHelperDoc.genElem("tbody"); n.appendChild(body); assertTrue(body == n.getPartitions().iterator().next()); assertTrue(body == n.getFirstChild()); assertTrue(body == n.getLastChild()); n.removeChild(body); assertTrue(n.getPartitions().isEmpty()); assertNull(n.getFirstChild()); assertNull(n.getLastChild()); } @Test public void testCanHaveBothBodyAndCaption() throws Exception { TableBodyImpl body = (TableBodyImpl) TestHelperDoc.genElem("tbody"); n.appendChild(body); TableCaptionImpl caption = (TableCaptionImpl) TestHelperDoc.genElem("caption"); n.setCaption(caption); assertTrue(caption == n.getCaption()); assertTrue(body == n.getPartitions().iterator().next()); assertTrue(caption == n.getFirstChild()); assertTrue(body == n.getLastChild()); } @Test public void testCanReplaceBothBodyAndCaption() throws Exception { TableBodyImpl body0 = (TableBodyImpl) TestHelperDoc.genElem("tbody"); n.appendChild(body0); TableCaptionImpl caption0 = (TableCaptionImpl) TestHelperDoc.genElem("caption"); n.setCaption(caption0); TableBodyImpl body1 = (TableBodyImpl) TestHelperDoc.genElem("tbody"); n.replaceChild(body1, body0); TableCaptionImpl caption1 = (TableCaptionImpl) TestHelperDoc.genElem("caption"); n.replaceChild(caption1, caption0); assertTrue(caption1 == n.getCaption()); assertTrue(body1 == n.getPartitions().iterator().next()); assertTrue(caption1 == n.getFirstChild()); assertTrue(body1 == n.getLastChild()); } } TestHelperAttribute.java000066400000000000000000000236051335270560400416540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3I18nDir; public abstract class TestHelperAttribute { // ==[ Core Attributes ]==================================================== public static void testClassAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "class", "getClasses", "setClasses", "my-class"); } public static void testIdAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "id", "getId", "setId", "my-id"); } public static void testStyleAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "style", "getStyle", "setStyle", "width: 10px;"); } public static void testTitleAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "title", "getTitle", "setTitle", "some title"); } // ==[ I18n Attributes ]==================================================== public static void testDirAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "dir", "getDir", "setDir", Wom3I18nDir.LTR, "ltr"); testAttribute(node, "dir", "getDir", "setDir", Wom3I18nDir.RTL, "rtl"); } public static void testLangAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "lang", "getLang", "setLang", "de"); } public static void testXmlLangAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "xml:lang", "getXmlLang", "setXmlLang", "de"); } // ==[ Event Attributes ]=================================================== public static void testOnClickAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onclick", "getOnclick", "setOnclick", "alert();"); } public static void testOnDblClickAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "ondblclick", "getOndblclick", "setOndblclick", "alert();"); } public static void testOnMouseDownAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onmousedown", "getOnmousedown", "setOnmousedown", "alert();"); } public static void testOnMouseUpAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onmouseup", "getOnmouseup", "setOnmouseup", "alert();"); } public static void testOnMouseOverAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onmouseover", "getOnmouseover", "setOnmouseover", "alert();"); } public static void testOnMouseMoveAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onmousemove", "getOnmousemove", "setOnmousemove", "alert();"); } public static void testOnMouseOutAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onmouseout", "getOnmouseout", "setOnmouseout", "alert();"); } public static void testOnKeyPressAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onkeypress", "getOnkeypress", "setOnkeypress", "alert();"); } public static void testOnKeyUpAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onkeyup", "getOnkeyup", "setOnkeyup", "alert();"); } public static void testOnKeyDownAttribute(Wom3ElementNode node) throws Exception { testAttribute(node, "onkeydown", "getOnkeydown", "setOnkeydown", "alert();"); } // ========================================================================= public static void testAttribute( T node, String name, String getter, String setter, Object value, String strValue) throws Exception { Wom3ElementNode u = (Wom3ElementNode) node; Method[] gs = getGetterAndSetter(u, getter, setter); Method g = gs[0]; Method s = gs[1]; if (strValue == null) throw new NullPointerException(); assertEquals("", node.getAttribute(name)); assertNull(g.invoke(u)); node.setAttribute(name, strValue); assertEquals(strValue, node.getAttribute(name)); assertEquals(value, g.invoke(u)); assertEquals(value, s.invoke(u, (Object) null)); assertEquals("", node.getAttribute(name)); assertNull(g.invoke(u)); assertNull(s.invoke(u, (Object) value)); assertEquals(strValue, node.getAttribute(name)); assertEquals(value, g.invoke(u)); node.setAttribute(name, null); assertEquals("", node.getAttribute(name)); assertNull(g.invoke(u)); } public static void testAttribute( T node, String name, String getter, String setter, String strValue) throws Exception { testAttribute(node, name, getter, setter, strValue, strValue); } public static void testBooleanAttribute( T node, String name, String getter, String setter) throws Exception { Wom3ElementNode u = (Wom3ElementNode) node; Method[] gs = getGetterAndSetter(u, getter, setter); Method g = gs[0]; Method s = gs[1]; assertEquals("", node.getAttribute(name)); assertFalse((Boolean) g.invoke(u)); node.setAttribute(name, "foo"); assertEquals(name, node.getAttribute(name)); assertTrue((Boolean) g.invoke(u)); assertTrue((Boolean) s.invoke(u, false)); assertEquals("", node.getAttribute(name)); assertFalse((Boolean) g.invoke(u)); assertFalse((Boolean) s.invoke(u, true)); assertEquals(name, node.getAttribute(name)); assertTrue((Boolean) g.invoke(u)); node.setAttribute(name, null); assertEquals("", node.getAttribute(name)); assertFalse((Boolean) g.invoke(u)); } public static void testFixedAttribute( T node, String name, String getter, String setter, Object valueA, String strValueA, Object valueB, String strValueB) throws Exception { Wom3ElementNode u = (Wom3ElementNode) node; Method[] gs = getGetterAndSetter(u, getter, setter); Method g = gs[0]; Method s = gs[1]; if (strValueA == null) throw new NullPointerException(); if (strValueB == null) throw new NullPointerException(); assertNotNull(node.getAttribute(name)); assertNotNull(g.invoke(u)); node.setAttribute(name, strValueA); assertEquals(strValueA, node.getAttribute(name)); assertEquals(valueA, g.invoke(u)); assertEquals(valueA, s.invoke(u, (Object) valueB)); assertEquals(strValueB, node.getAttribute(name)); assertEquals(valueB, g.invoke(u)); tryToRemoveFixedAttr(node, name); assertEquals(strValueB, node.getAttribute(name)); assertEquals(valueB, g.invoke(u)); tryToRemoveFixedAttrWithSetter(node, s); assertEquals(strValueB, node.getAttribute(name)); assertEquals(valueB, g.invoke(u)); } public static void testFixedAttributeNoObjectSetter( T node, String name, String getter, String setter, Object valueA, String strValueA, Object valueB, String strValueB) throws Exception { Wom3ElementNode u = (Wom3ElementNode) node; Method[] gs = getGetterAndSetter(u, getter, setter); Method g = gs[0]; Method s = gs[1]; if (strValueA == null) throw new NullPointerException(); if (strValueB == null) throw new NullPointerException(); assertNotNull(node.getAttribute(name)); assertNotNull(g.invoke(u)); node.setAttribute(name, strValueA); assertEquals(strValueA, node.getAttribute(name)); assertEquals(valueA, g.invoke(u)); assertEquals(valueA, s.invoke(u, (Object) valueB)); assertEquals(strValueB, node.getAttribute(name)); assertEquals(valueB, g.invoke(u)); tryToRemoveFixedAttr(node, name); assertEquals(strValueB, node.getAttribute(name)); assertEquals(valueB, g.invoke(u)); } private static void tryToRemoveFixedAttr( T node, String name) { try { node.setAttribute(name, null); fail(); } catch (UnsupportedOperationException e) { } } private static void tryToRemoveFixedAttrWithSetter( T node, Method s) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { try { s.invoke(node, (Object) null); fail(); } catch (InvocationTargetException e) { assertTrue(e.getCause() instanceof UnsupportedOperationException); } } public static void testFixedAttribute( T node, String name, String getter, String setter, String strValueA, String strValueB) throws Exception { testFixedAttribute(node, name, getter, setter, strValueA, strValueA, strValueB, strValueB); } private static Method[] getGetterAndSetter( Wom3ElementNode u, String getter, Object setter) { Method g = null; Method s = null; Class clazz = u.getClass(); for (Class i : clazz.getInterfaces()) { if (!i.getSimpleName().startsWith("Wom")) continue; try { g = i.getMethod(getter); } catch (NoSuchMethodException e) { continue; } Method[] ss = i.getMethods(); for (Method m : ss) { if (m.getName().equals(setter)) { s = m; break; } } break; } assertNotNull("Missing getter: " + getter, g); return new Method[] { g, s }; } } TestHelperDoc.java000066400000000000000000000032601335270560400404110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3XmlComment; import org.sweble.wom3.Wom3XmlText; public class TestHelperDoc { private static DocumentImpl doc; static { DomImplementationImpl domImpl = DomImplementationImpl.get(); doc = domImpl.createDocument(Wom3Node.WOM_NS_URI, "article", null); } public static Wom3Attribute genAttr(String name, String value) { Wom3Attribute a = doc.createAttribute(name); a.setValue(value); return a; } public static Wom3ElementNode genElem(String name) { return (Wom3ElementNode) doc.createElementNS(Wom3Node.WOM_NS_URI, name); } public static Wom3XmlText genXmlText(String text) { return (Wom3XmlText) doc.createTextNode(text); } public static Wom3XmlComment genComment(String text) { return (Wom3XmlComment) doc.createComment(text); } } UnorderedListTest.java000066400000000000000000000033541335270560400413330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import org.junit.Test; import org.sweble.wom3.Wom3BulletStyle; import org.sweble.wom3.Wom3ElementNode; public class UnorderedListTest { private final Wom3ElementNode n; // ========================================================================= public UnorderedListTest() { this.n = TestHelperDoc.genElem("ul"); } // ========================================================================= @Test public void testTypeAttribute() throws Exception { TestHelperAttribute.testAttribute(this.n, "type", "getItemType", "setItemType", Wom3BulletStyle.CIRCLE, "circle"); TestHelperAttribute.testAttribute(this.n, "type", "getItemType", "setItemType", Wom3BulletStyle.DISC, "disc"); TestHelperAttribute.testAttribute(this.n, "type", "getItemType", "setItemType", Wom3BulletStyle.SQUARE, "square"); } @Test(expected = IllegalArgumentException.class) public void testInvalidTypeAttribute() throws Exception { n.setAttribute("type", "foo"); } } XmlCommentTest.java000066400000000000000000000032551335270560400406330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.sweble.wom3.Wom3XmlComment; import org.w3c.dom.Node; public class XmlCommentTest { private Wom3XmlComment n; public XmlCommentTest() { n = TestHelperDoc.genComment("comment"); } @Test public void testCommentCorrectlyCreated() throws Exception { assertEquals("comment", n.getNodeValue()); } @Test public void testCorrectNodeName() throws Exception { assertEquals("#comment", n.getNodeName()); } @Test public void testCorrectNodeType() throws Exception { assertEquals(Node.COMMENT_NODE, n.getNodeType()); } @Test public void testSetterWorks() throws Exception { String text = "bla bla bla"; n.setNodeValue(text); assertEquals(text, n.getNodeValue()); } public void testGetTextThrows() throws Exception { n.setNodeValue("bla bla bla"); assertEquals("", n.getNodeValue()); } } XmlTextTest.java000066400000000000000000000052061335270560400401530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-core/src/test/java/org/sweble/wom3/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.impl; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.sweble.wom3.Wom3XmlText; import org.w3c.dom.Node; public class XmlTextTest { private Wom3XmlText n = (Wom3XmlText) TestHelperDoc.genXmlText("content"); @Test public void testHasCorrectName() throws Exception { assertEquals("#text", n.getNodeName()); } @Test public void testHasCorrectNodeType() throws Exception { assertEquals(Node.TEXT_NODE, n.getNodeType()); } @Test public void testBothGetTextAndGetValueReturnText() throws Exception { assertEquals("content", n.getNodeValue()); } @Test(expected = UnsupportedOperationException.class) public void testCannotAppendNode() throws Exception { n.appendChild(TestHelperDoc.genElem("b")); } @Test public void testAppendTextWorks() throws Exception { n.appendData(" is not everything"); assertEquals("content is not everything", n.getNodeValue()); } @Test public void testDeleteTextWorks() throws Exception { n.deleteData(0, n.getNodeValue().length()); assertEquals(0, n.getNodeValue().length()); n.appendData("Test 1 2 3"); n.deleteData(7, 2); assertEquals("Test 1 3", n.getNodeValue()); } @Test public void testInsertWorks() throws Exception { n.deleteData(0, n.getNodeValue().length()); assertEquals(0, n.getNodeValue().length()); n.appendData("Test 1 3"); n.insertData(7, "2 "); assertEquals("Test 1 2 3", n.getNodeValue()); } @Test public void testInsertAtBothEndsWorks() throws Exception { n.insertData(0, "no "); n.insertData(n.getNodeValue().length(), " is good content"); assertEquals("no content is good content", n.getNodeValue()); } @Test public void testReplaceTextByPosition() throws Exception { n.deleteData(0, n.getNodeValue().length()); n.appendData("a b c d a b c d"); n.replaceData(4, 1, "X"); assertEquals("a b X d a b c d", n.getNodeValue()); } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/000077500000000000000000000000001335270560400303145ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/LICENSE000066400000000000000000000261361335270560400313310ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/pom.xml000066400000000000000000000112001335270560400316230ustar00rootroot00000000000000 4.0.0 org.sweble.wom3 sweble-wom3-parent 3.1.9 sweble-wom3-example-basic jar Sweble WOM 3.0 Basic Example 2013 An example project that contains a simple application that is able to parse a page written in Wikitext and render it as HTML or plain text. ../ commons-io commons-io joda-time joda-time de.fau.cs.osr.utils utils org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine org.sweble.wom3 sweble-wom3-core org.sweble.wom3 sweble-wom3-swc-adapter junit junit test com.mycila license-maven-plugin
    ${sweble-parent.etc-path}/apache-license-v2-header.txt
    src/main/resources/render-template.html src/test/resources/**
    The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo
    sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/000077500000000000000000000000001335270560400311035ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/000077500000000000000000000000001335270560400320275ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/java/000077500000000000000000000000001335270560400327505ustar00rootroot00000000000000org/000077500000000000000000000000001335270560400334605ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/javaexample/000077500000000000000000000000001335270560400351135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/java/orgApp.java000066400000000000000000000102441335270560400364770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/java/org/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.example; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import org.apache.commons.io.FileUtils; import org.joda.time.DateTime; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.WtEngineImpl; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.utils.DefaultConfigEnWp; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.swcadapter.AstToWomConverter; public class App { public static void main(String[] args) throws IOException, LinkTargetException, EngineException { if (args.length < 1) { System.err.println("Usage: java -jar swc-example-basic-VERSION.jar [--html|--text] TITLE"); System.err.println(); System.err.println(" The program will look for a file called `TITLE.wikitext',"); System.err.println(" parse the file and write an HTML version to `TITLE.html'."); return; } boolean renderHtml = true; int i = 0; if (args[i].equalsIgnoreCase("--html")) { renderHtml = true; ++i; } else if (args[i].equalsIgnoreCase("--text")) { renderHtml = false; ++i; } String fileTitle = args[i]; String html = run( new File(fileTitle + ".wikitext"), fileTitle, renderHtml); FileUtils.writeStringToFile( new File(fileTitle + (renderHtml ? ".html" : ".text")), html, Charset.defaultCharset().name()); } static String run(File file, String fileTitle, boolean renderHtml) throws IOException, LinkTargetException, EngineException { // Set-up a simple wiki configuration WikiConfig config = DefaultConfigEnWp.generate(); final int wrapCol = 80; // Instantiate a compiler for wiki pages WtEngineImpl engine = new WtEngineImpl(config); // Retrieve a page PageTitle pageTitle = PageTitle.make(config, fileTitle); PageId pageId = new PageId(pageTitle, -1); String wikitext = FileUtils.readFileToString(file, Charset.defaultCharset().name()); // Compile the retrieved page EngProcessedPage cp = engine.postprocess(pageId, wikitext, null); // Convert the AST to a WOM document Wom3Document womDoc = AstToWomConverter.convert( config.getParserConfig(), null /*pageNamespace*/, null /*pagePath*/, pageId.getTitle().getTitle(), "Mr. Tester", DateTime.parse("2012-12-07T12:15:30.000+01:00"), cp.getPage()); if (renderHtml) { throw new UnsupportedOperationException( "HTML rendering is not yet supported!"); /* String ourHtml = HtmlRenderer.print(new MyRendererCallback(), config, pageTitle, cp.getPage()); String template = IOUtils.toString(App.class.getResourceAsStream("/render-template.html"), "UTF8"); String html = template; html = html.replace("{$TITLE}", StringUtils.escHtml(pageTitle.getDenormalizedFullTitle())); html = html.replace("{$CONTENT}", ourHtml); return html; */ } else { TextConverter p = new TextConverter(config, wrapCol); return (String) p.go(womDoc); } } /* private static final class MyRendererCallback implements HtmlRendererCallback { @Override public boolean resourceExists(PageTitle target) { // TODO Auto-generated method stub return false; } @Override public MediaInfo getMediaInfo( String title, int width, int height) { // TODO Auto-generated method stub return null; } } */ } TextConverter.java000066400000000000000000000213441335270560400405760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/java/org/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.example; import java.util.LinkedList; import java.util.regex.Pattern; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wom3.Wom3Article; import org.sweble.wom3.Wom3Body; import org.sweble.wom3.Wom3Bold; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Heading; import org.sweble.wom3.Wom3Italics; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Paragraph; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Section; import org.sweble.wom3.Wom3Text; import org.sweble.wom3.util.Wom3Visitor; import de.fau.cs.osr.utils.StringTools; /** * A visitor to convert an article AST into a pure text representation. To * better understand the visitor pattern as implemented by the Visitor class, * please take a look at the following resources: * * * The methods needed to descend into an AST and visit the children of a given * node n are *
      *
    • dispatch(n) - visit node n,
    • *
    • iterate(n) - visit the children of node * n,
    • *
    • map(n) - visit the children of node n * and gather the return values of the visit() calls in a list,
    • *
    • mapInPlace(n) - visit the children of node * n and replace each child node c with the return * value of the call to visit(c).
    • *
    */ public class TextConverter extends Wom3Visitor { private static final Pattern ws = Pattern.compile("\\s+"); //private final WikiConfig config; private final int wrapCol; private StringBuilder sb; private StringBuilder line; //private int extLinkNum; /** * Becomes true if we are no long at the Beginning Of the whole Document. */ private boolean pastBod; private int needNewlines; private boolean needSpace; private boolean noWrap; private LinkedList sections; // ========================================================================= public TextConverter(WikiConfig config, int wrapCol) { //this.config = config; this.wrapCol = wrapCol; } @Override protected Wom3Node before(Wom3Node node) { // This method is called by go() before visitation starts sb = new StringBuilder(); line = new StringBuilder(); //extLinkNum = 1; pastBod = false; needNewlines = 0; needSpace = false; noWrap = false; sections = new LinkedList(); return super.before(node); } @Override protected Object after(Wom3Node node, Object result) { writeNewlines(1); // This method is called by go() after visitation has finished // The return value will be passed to go() which passes it to the caller return sb.toString(); } // ========================================================================= public void visit(Wom3Node n) { // Fallback for all nodes that are not explicitly handled below write("<"); write(n.getNodeName()); write(" />"); } public void visit(Wom3Document n) { iterate(n); } public void visit(Wom3Article n) { iterate(n); } public void visit(Wom3Body n) { iterate(n); } public void visit(Wom3Rtd n) { // IGNORE } /* public void visit(WtUnorderedList e) { iterate(e); } public void visit(WtOrderedList e) { iterate(e); } public void visit(WtListItem item) { newline(1); iterate(item); } public void visit(EngPage p) { iterate(p); } */ public void visit(Wom3Text text) { write(text.getTextContent()); } public void visit(Wom3Bold b) { write("**"); iterate(b); write("**"); } public void visit(Wom3Italics i) { write("//"); iterate(i); write("//"); } /* public void visit(WtXmlCharRef cr) { write(Character.toChars(cr.getCodePoint())); } public void visit(WtXmlEntityRef er) { String ch = er.getResolved(); if (ch == null) { write('&'); write(er.getName()); write(';'); } else { write(ch); } } public void visit(WtUrl wtUrl) { if (!wtUrl.getProtocol().isEmpty()) { write(wtUrl.getProtocol()); write(':'); } write(wtUrl.getPath()); } public void visit(WtExternalLink link) { write('['); write(extLinkNum++); write(']'); } public void visit(WtInternalLink link) { try { if (link.getTarget().isResolved()) { PageTitle page = PageTitle.make(config, link.getTarget().getAsString()); if (page.getNamespace().equals(config.getNamespace("Category"))) return; } } catch (LinkTargetException e) { } write(link.getPrefix()); if (!link.hasTitle()) { iterate(link.getTarget()); } else { iterate(link.getTitle()); } write(link.getPostfix()); } */ public void visit(Wom3Section s) { finishLine(); StringBuilder saveSb = sb; boolean saveNoWrap = noWrap; boolean savePastBod = pastBod; boolean saveNeedSpace = needSpace; sb = new StringBuilder(); noWrap = true; iterate(s.getHeading()); finishLine(); String title = sb.toString().trim(); sb = saveSb; if (s.getLevel() >= 1) { while (sections.size() > s.getLevel()) sections.removeLast(); while (sections.size() < s.getLevel()) sections.add(1); StringBuilder sb2 = new StringBuilder(); for (int i = 0; i < sections.size(); ++i) { if (i < 1) continue; sb2.append(sections.get(i)); sb2.append('.'); } if (sb2.length() > 0) sb2.append(' '); sb2.append(title); title = sb2.toString(); } pastBod = savePastBod; needSpace = saveNeedSpace; newline(2); write(title); newline(1); write(StringTools.strrep('-', title.length())); newline(2); noWrap = saveNoWrap; iterate(s.getBody()); while (sections.size() > s.getLevel()) sections.removeLast(); sections.add(sections.removeLast() + 1); } public void visit(Wom3Heading h) { iterate(h); } public void visit(Wom3Paragraph p) { iterate(p); newline(2); } /* public void visit(WtHorizontalRule hr) { newline(1); write(StringTools.strrep('-', wrapCol)); newline(2); } public void visit(WtXmlElement e) { if (e.getName().equalsIgnoreCase("br")) { newline(1); } else { iterate(e.getBody()); } } // ========================================================================= // Stuff we want to hide public void visit(WtImageLink n) { } public void visit(WtIllegalCodePoint n) { } public void visit(WtXmlComment n) { } public void visit(WtTemplate n) { } public void visit(WtTemplateArgument n) { } public void visit(WtTemplateParameter n) { } public void visit(WtTagExtension n) { } public void visit(WtPageSwitch n) { } */ // ========================================================================= private void newline(int num) { if (pastBod) { if (num > needNewlines) needNewlines = num; } } private void wantSpace() { if (pastBod) needSpace = true; } private void finishLine() { sb.append(line.toString()); line.setLength(0); } private void writeNewlines(int num) { finishLine(); sb.append(StringTools.strrep('\n', num)); needNewlines = 0; needSpace = false; } private void writeWord(String s) { int length = s.length(); if (length == 0) return; if (!noWrap && needNewlines <= 0) { if (needSpace) length += 1; if (line.length() + length >= wrapCol && line.length() > 0) writeNewlines(1); } if (needSpace && needNewlines <= 0) line.append(' '); if (needNewlines > 0) writeNewlines(needNewlines); needSpace = false; pastBod = true; line.append(s); } private void write(String s) { if (s.isEmpty()) return; if (Character.isSpaceChar(s.charAt(0))) wantSpace(); String[] words = ws.split(s); for (int i = 0; i < words.length;) { writeWord(words[i]); if (++i < words.length) wantSpace(); } if (Character.isSpaceChar(s.charAt(s.length() - 1))) wantSpace(); } } resources/000077500000000000000000000000001335270560400337625ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/mainrender-template.html000066400000000000000000000006371335270560400377460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/main/resources {$TITLE}
    {$CONTENT}
    sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/000077500000000000000000000000001335270560400320625ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/java/000077500000000000000000000000001335270560400330035ustar00rootroot00000000000000org/000077500000000000000000000000001335270560400335135ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/javaexample/000077500000000000000000000000001335270560400351465ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/java/orgAppTest.java000066400000000000000000000027411335270560400373750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/java/org/example/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.example; import java.io.File; import java.io.InputStream; import java.net.URL; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Test; import de.fau.cs.osr.utils.FileTools; import de.fau.cs.osr.utils.StringTools; public class AppTest { @Test public void test() throws Exception { String title = "Simple_Page"; URL url = AppTest.class.getResource("/" + title + ".wikitext"); String path = StringTools.decodeUsingDefaultCharset(url.getFile()); String actual = App.run(new File(path), title, false); actual = FileTools.lineEndToUnix(actual); InputStream expectedIs = AppTest.class.getResourceAsStream("/" + title + ".txt"); String expected = IOUtils.toString(expectedIs, "UTF8"); expected = FileTools.lineEndToUnix(expected); Assert.assertEquals(expected, actual); } } resources/000077500000000000000000000000001335270560400340155ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/testSimple_Page.txt000066400000000000000000000001671335270560400367470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/resources1. Simple Page -------------- This is a **simple page**. It contains a link, a list and a table.
      CYA! Simple_Page.wikitext000066400000000000000000000003131335270560400377710ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-example-basic/src/test/resources== Simple Page == This is a '''simple page'''. It contains a link, a list and a table. * [[Somewhere|Item 1]] * Item 2 {| border="2" |- | Cell 1.1 || Cell 1.2 |- | Cell 2.1 || Cell 2.2 |} CYA! sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/000077500000000000000000000000001335270560400277115ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/pom.xml000066400000000000000000000044051335270560400312310ustar00rootroot00000000000000 4.0.0 org.sweble.wom3 sweble-wom3-parent 3.1.9 sweble-wom3-json-tools jar Sweble WOM 3.0 JSON Tools 2013 Serialize a WOM 3.0 structure to and from json. ../ com.google.code.gson gson org.sweble.wom3 sweble-wom3-core sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/000077500000000000000000000000001335270560400305005ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/000077500000000000000000000000001335270560400314245ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/000077500000000000000000000000001335270560400323455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/000077500000000000000000000000001335270560400331345ustar00rootroot00000000000000sweble/000077500000000000000000000000001335270560400343365ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/orgwom3/000077500000000000000000000000001335270560400352235ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/swebleserialization/000077500000000000000000000000001335270560400401005ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3NamespaceException.java000066400000000000000000000022541335270560400445210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; public class NamespaceException extends RuntimeException { private static final long serialVersionUID = 1L; public NamespaceException() { } public NamespaceException(String message, Throwable cause) { super(message, cause); } public NamespaceException(String message) { super(message); } public NamespaceException(Throwable cause) { super(cause); } } ScopeStack.java000066400000000000000000000052411335270560400430040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import java.util.HashMap; import java.util.Map; public final class ScopeStack { private Scope top = null; // ========================================================================= public String getNsUriForPrefix(String prefix) { for (Scope scope = top; scope != null; scope = scope.parent) { String uri = scope.getNsUriForPrefix(prefix); if (uri != null) return uri; } return null; } public String getXmlns() { for (Scope scope = top; scope != null; scope = scope.parent) { String uri = scope.getXmlns(); if (uri != null) return uri; } return null; } public Scope push() { top = new Scope(top); return top; } public void pop() { if (top == null) throw new InternalError(); top = top.parent; } // ========================================================================= public static final class Scope { private final Scope parent; private String xmlns = null; private final Map prefixToNsUriMap = new HashMap(); public Scope(Scope parent) { this.parent = parent; } public Scope getParent() { return parent; } public String getNsUriForPrefix(String prefix) { return prefixToNsUriMap.get(prefix); } public void put(String prefix, String valueString) { String old = prefixToNsUriMap.get(prefix); if (old != null && !old.equals(valueString)) throw new NamespaceException("Conflicting prefixes registered in element's scope"); prefixToNsUriMap.put(prefix, valueString); } public String getXmlns() { return xmlns; } public void setXmlns(String xmlns) { if (this.xmlns != null && !this.xmlns.equals(xmlns)) throw new NamespaceException(String.format( "Conflicting default namespace URI declarations in " + "element's scope: '%s' vs. '%s'", this.xmlns, xmlns)); this.xmlns = xmlns; } } } UnsupportedNodeException.java000066400000000000000000000031541335270560400457630ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import org.w3c.dom.Node; /** * The Gson type adapter encountered a DOM node that is not supported by the * type adapter. */ public class UnsupportedNodeException extends RuntimeException { private static final long serialVersionUID = 1L; private final Node node; public UnsupportedNodeException(Node node) { super(String.format("Node name: %s; Node type: %d", node.getNodeName(), node.getNodeType())); this.node = node; } public UnsupportedNodeException(Node node, String message, Throwable cause) { super(message, cause); this.node = node; } public UnsupportedNodeException(Node node, String message) { super(message); this.node = node; } public UnsupportedNodeException(Node node, Throwable cause) { super(cause); this.node = node; } public Node getNode() { return node; } } Wom3JsonTypeAdapterBase.java000066400000000000000000000205171335270560400453650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import com.google.gson.*; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.impl.DomImplementationImpl; import org.sweble.wom3.serialization.ScopeStack.Scope; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import java.lang.reflect.Type; import java.util.Map.Entry; import java.util.Set; public abstract class Wom3JsonTypeAdapterBase implements Wom3JsonTypeAdapterInterface { protected static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/"; protected static final String XMLNS_PREFIX = "xmlns"; protected static final String XMLNS_COLON_PREFIX = XMLNS_PREFIX + ":"; protected static final String ATTRIBUTE_PREFIX = "@"; protected static final String SPECIAL_TYPE_PREFIX = "#"; // ========================================================================= protected Document doc; @Override public Document getDoc() { if (doc == null) // Create a generic document doc = DomImplementationImpl.get().createDocument(null, null, null); return doc; } @Override public void setDoc(Document doc) { this.doc = doc; } // ========================================================================= @Override public abstract JsonElement serialize( Node src, Type typeOfSrc, JsonSerializationContext context); @Override public abstract Node deserialize( JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException; // ========================================================================= protected static Scope registerNsDecls( ScopeStack scopeStack, Scope scope, NamedNodeMap attrs) { for (int i = 0, len = attrs.getLength(); i < len; ++i) { Node attr = attrs.item(i); String attrName = attr.getNodeName(); if (attrName.startsWith(XMLNS_COLON_PREFIX)) { String prefix = attrName.substring(XMLNS_COLON_PREFIX.length()); if (scope == null) scope = scopeStack.push(); scope.put(prefix, attr.getNodeValue()); } } return scope; } protected static Scope addPrefixDecls( ScopeStack scopeStack, Scope scope, JsonObject o, Node node) { String localName = node.getLocalName(); if (localName != null) { String prefix = node.getPrefix(); if (XMLNS_PREFIX.equals(prefix)) // No need to declare xmlns: prefix itself return scope; String nsUri = node.getNamespaceURI(); if (nsUri == null) nsUri = ""; if (XMLNS_PREFIX.equals(localName) && XMLNS_URI.equals(nsUri)) // No need to declare xmlns' namespace as default namespace return scope; if (prefix == null || prefix.isEmpty()) { if (node.getNodeType() == Node.ATTRIBUTE_NODE) { // Attributes without prefix are in no namespace (also not the default namespace) if (!nsUri.isEmpty()) throw new JsonParseException( "Attribute has namespace URI but no prefix: " + node.getNodeName()); } else { String xmlns = scopeStack.getXmlns(); if (!nsUri.equals(xmlns)) { if (scope == null) scope = scopeStack.push(); scope.setXmlns(nsUri); String declName = ATTRIBUTE_PREFIX + XMLNS_PREFIX; o.add(declName, new JsonPrimitive(nsUri)); } } } else { String curNsUri = scopeStack.getNsUriForPrefix(prefix); if (!nsUri.equals(curNsUri)) { if (scope == null) scope = scopeStack.push(); scope.put(prefix, nsUri); String declName = ATTRIBUTE_PREFIX + XMLNS_COLON_PREFIX + prefix; o.add(declName, new JsonPrimitive(nsUri)); } } } return scope; } // ========================================================================= protected static Scope registerNsDecls( Set> entries, ScopeStack scopeStack, Scope scope) { for (Entry e : entries) { String entryName = e.getKey(); JsonElement entryValue = e.getValue(); if (entryName.startsWith(ATTRIBUTE_PREFIX)) scope = registerNsDecl(scopeStack, scope, entryName, entryValue); } return scope; } protected static Scope registerNsDecl( ScopeStack scopeStack, Scope scope, String entryName, JsonElement entryValue) { if (!entryValue.isJsonPrimitive()) throw new JsonParseException("Expected attribute '" + entryName + "' to be a string"); entryName = entryName.substring(1); String valueString = entryValue.getAsString(); if (entryName.equals(XMLNS_PREFIX)) { if (scope == null) scope = scopeStack.push(); scope.setXmlns(valueString); } else if (entryName.startsWith(XMLNS_COLON_PREFIX)) { String prefix = entryName.substring(XMLNS_COLON_PREFIX.length()); if (scope == null) scope = scopeStack.push(); scope.put(prefix, valueString); } return scope; } protected static void parseAttribute( ScopeStack scopeStack, Element elem, String entryName, JsonElement entryValue) { if (!entryValue.isJsonPrimitive()) throw new JsonParseException("Expected attribute '" + entryName + "' to be a string"); entryName = entryName.substring(1); String valueString = entryValue.getAsString(); int i = entryName.indexOf(':'); if (i == -1) { if (XMLNS_PREFIX.equals(entryName)) { elem.setAttributeNS(XMLNS_URI, entryName, valueString); } else { elem.setAttribute(entryName, valueString); } } else { String prefix = entryName.substring(0, i); if (XMLNS_PREFIX.equals(prefix)) { elem.setAttributeNS(XMLNS_URI, entryName, valueString); } else { String nsUri = scopeStack.getNsUriForPrefix(prefix); if (nsUri == null) throw new NamespaceException("Namespace URI for prefix '" + prefix + "' not declared"); elem.setAttributeNS(nsUri, entryName, valueString); } } } protected static Element createElement( Document doc, ScopeStack scopeStack, String defaultNsUri, String typeQName) { Element elem; int i = typeQName.indexOf(':'); if (i != -1) { String prefix = typeQName.substring(0, i); String nsUri = scopeStack.getNsUriForPrefix(prefix); if (nsUri == null) throw new NamespaceException("Namespace URI for prefix '" + prefix + "' not declared"); elem = doc.createElementNS(nsUri, typeQName); } else { if (defaultNsUri == null) { elem = doc.createElement(typeQName); } else { elem = doc.createElementNS(defaultNsUri, typeQName); } } return elem; } // ========================================================================= protected static enum ValueTypes { XML_TEXT { @Override public Node create(Document doc, String value) { return doc.createTextNode(value); } }, ENTITY_REF { @Override public Node create(Document doc, String value) { return doc.createEntityReference(value); } }, CDATA { @Override public Node create(Document doc, String value) { return doc.createCDATASection(value); } }, COMMENT { @Override public Node create(Document doc, String value) { return doc.createComment(value); } }, RTD { @Override public Node create(Document doc, String value) { Element elem = doc.createElementNS(Wom3Node.WOM_NS_URI, "rtd"); elem.appendChild(doc.createTextNode(value)); return elem; } }, TEXT { @Override public Node create(Document doc, String value) { Element elem = doc.createElementNS(Wom3Node.WOM_NS_URI, "text"); elem.appendChild(doc.createTextNode(value)); return elem; } }; public abstract Node create(Document doc, String value); } } Wom3JsonTypeAdapterInterface.java000066400000000000000000000030531335270560400464070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import java.lang.reflect.Type; import org.w3c.dom.Document; import org.w3c.dom.Node; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; public interface Wom3JsonTypeAdapterInterface extends JsonSerializer, JsonDeserializer { @Override public JsonElement serialize( Node src, Type typeOfSrc, JsonSerializationContext context); @Override public Node deserialize( JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException; Document getDoc(); void setDoc(Document doc); } Wom3NodeCompactJsonTypeAdapter.java000066400000000000000000000200001335270560400466720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import java.lang.reflect.Type; import java.util.Map.Entry; import java.util.Set; import org.sweble.wom3.serialization.ScopeStack.Scope; import org.sweble.wom3.util.Wom3Toolbox; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; public class Wom3NodeCompactJsonTypeAdapter extends Wom3JsonTypeAdapterBase { private static final String ELEMENT_NAME_PREFIX = "!"; private static final String TYPE_COMMENT = SPECIAL_TYPE_PREFIX + "c"; private static final String TYPE_CDATA = SPECIAL_TYPE_PREFIX + "cd"; public static final String TYPE_ENTITY_REF = SPECIAL_TYPE_PREFIX + "er"; public static final String TYPE_TEXT = SPECIAL_TYPE_PREFIX + "t"; public static final String TYPE_RTD = SPECIAL_TYPE_PREFIX + "r"; // ========================================================================= @Override public JsonElement serialize( Node src, Type typeOfSrc, JsonSerializationContext context) { return toJson(src, true, new ScopeStack()); } private static JsonElement toJson( Node node, boolean first, ScopeStack scopeStack) { short nodeType = node.getNodeType(); switch (nodeType) { case Node.ELEMENT_NODE: { JsonObject o = null; if (Wom3Toolbox.isRtdOrText(node)) o = textOrRtdToJson(node); if (o == null) o = elemToJson(node, scopeStack); return o; } case Node.TEXT_NODE: return new JsonPrimitive(node.getNodeValue()); case Node.ENTITY_REFERENCE_NODE: return valueNodeToJson(node.getNodeValue(), TYPE_ENTITY_REF); case Node.CDATA_SECTION_NODE: return valueNodeToJson(node.getNodeValue(), TYPE_CDATA); case Node.COMMENT_NODE: return valueNodeToJson(node.getNodeValue(), TYPE_COMMENT); case Node.DOCUMENT_NODE: if (first) return toJson(((Document) node).getDocumentElement(), false, scopeStack); // FALL THROUGH case Node.ATTRIBUTE_NODE: case Node.ENTITY_NODE: case Node.PROCESSING_INSTRUCTION_NODE: case Node.DOCUMENT_TYPE_NODE: case Node.DOCUMENT_FRAGMENT_NODE: case Node.NOTATION_NODE: default: throw new UnsupportedNodeException(node); } } private static JsonObject elemToJson(Node node, ScopeStack scopeStack) { JsonObject o = new JsonObject(); Scope scope = null; scope = addPrefixDecls(scopeStack, scope, o, node); NamedNodeMap attrs = node.getAttributes(); if (attrs != null) { // Document fragments don't have attributes scope = registerNsDecls(scopeStack, scope, attrs); for (int i = 0, len = attrs.getLength(); i < len; ++i) { Node attr = attrs.item(i); scope = addPrefixDecls(scopeStack, scope, o, attr); o.add(ATTRIBUTE_PREFIX + attr.getNodeName(), new JsonPrimitive(attr.getNodeValue())); } } JsonArray jsonChildren = new JsonArray(); NodeList children = node.getChildNodes(); for (int i = 0, len = children.getLength(); i < len; ++i) { Node child = children.item(i); jsonChildren.add(toJson(child, false, scopeStack)); } o.add(ELEMENT_NAME_PREFIX + node.getNodeName(), jsonChildren); if (scope != null) // Pop scope if we opened one scopeStack.pop(); return o; } private static JsonObject textOrRtdToJson(Node node) { String name = null; if (Wom3Toolbox.isRtd(node)) name = TYPE_RTD; else if (Wom3Toolbox.isText(node)) name = TYPE_TEXT; else throw new InternalError(); return valueNodeToJson(node.getTextContent(), name); } private static JsonObject valueNodeToJson(String value, String name) { JsonObject o = new JsonObject(); o.addProperty(name, value); return o; } // ========================================================================= @Override public Node deserialize( JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Document doc = getDoc(); DocumentFragment fragment = doc.createDocumentFragment(); fragment.appendChild(fromJson(doc, json, new ScopeStack())); return fragment; } private static Node fromJson( Document doc, JsonElement json, ScopeStack scopeStack) { if (json.isJsonPrimitive()) return doc.createTextNode(json.getAsString()); // Get node object if (!json.isJsonObject()) throw new JsonParseException("Expected JsonObject or JsonPrimitive"); JsonObject o = json.getAsJsonObject(); Scope scope = null; String elemQName = null; ValueTypes valueType = null; JsonElement nodeValue = null; // Get node type Set> entries = o.entrySet(); for (Entry e : entries) { String entryName = e.getKey(); final JsonElement entryValue = e.getValue(); if (entryName.startsWith(ELEMENT_NAME_PREFIX)) { if (elemQName != null) throw new JsonParseException("Node name field occurred repeatedly"); elemQName = entryName.substring(1); nodeValue = entryValue; } else if (entryName.startsWith(SPECIAL_TYPE_PREFIX)) { if (valueType != null) throw new JsonParseException("Type name field occurred repeatedly"); if (entryName.equals(TYPE_RTD)) { valueType = ValueTypes.RTD; } else if (entryName.equals(TYPE_TEXT)) { valueType = ValueTypes.TEXT; } else if (entryName.equals(TYPE_ENTITY_REF)) { valueType = ValueTypes.ENTITY_REF; } else if (entryName.equals(TYPE_COMMENT)) { valueType = ValueTypes.COMMENT; } else if (entryName.equals(TYPE_CDATA)) { valueType = ValueTypes.CDATA; } else throw new JsonParseException("Unknown special type '" + entryName + "'"); nodeValue = entryValue; } else if (entryName.startsWith(ATTRIBUTE_PREFIX)) { scope = registerNsDecl(scopeStack, scope, entryName, entryValue); } else throw new JsonParseException("Unexpected field: '" + entryName + "'"); } Element elem = null; String defaultNsUri = null; if (elemQName != null) { defaultNsUri = scopeStack.getXmlns(); elem = createElement(doc, scopeStack, defaultNsUri, elemQName); } else if (valueType == null) throw new JsonParseException("Missing type name or node name"); for (Entry e : entries) { String entryName = e.getKey(); JsonElement entryValue = e.getValue(); if (entryName.startsWith(ATTRIBUTE_PREFIX)) { if (elem == null) throw new JsonParseException("Value type '" + valueType + "' cannot have attributes"); parseAttribute(scopeStack, elem, entryName, entryValue); } } Node result; if (elem != null) { if (!nodeValue.isJsonArray()) throw new JsonParseException("Expected member '" + ELEMENT_NAME_PREFIX + elemQName + "' to be an array."); JsonArray children = nodeValue.getAsJsonArray(); for (JsonElement child : children) elem.appendChild(fromJson(doc, child, scopeStack)); result = elem; } else { result = valueType.create(doc, nodeValue.getAsString()); } if (scope != null) scopeStack.pop(); return result; } } Wom3NodeJsonTypeAdapter.java000066400000000000000000000200501335270560400453700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-json-tools/src/main/java/org/sweble/wom3/serialization/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.serialization; import java.lang.reflect.Type; import java.util.Map.Entry; import java.util.Set; import org.sweble.wom3.serialization.ScopeStack.Scope; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; public class Wom3NodeJsonTypeAdapter extends Wom3JsonTypeAdapterBase { private static final String PROPERTY_PREFIX = "!"; private static final String PROPERTY_TYPE = PROPERTY_PREFIX + "type"; private static final String PROPERTY_VALUE = PROPERTY_PREFIX + "value"; private static final String PROPERTY_CHILDREN = PROPERTY_PREFIX + "children"; private static final String TYPE_ENTITY_REF = SPECIAL_TYPE_PREFIX + "entity-reference"; // ========================================================================= @Override public JsonElement serialize( Node src, Type typeOfSrc, JsonSerializationContext context) { return toJson(src, true, new ScopeStack()); } private static JsonElement toJson( Node node, boolean first, ScopeStack scopeStack) { switch (node.getNodeType()) { case Node.ELEMENT_NODE: return elementToJson(node, scopeStack); case Node.TEXT_NODE: case Node.CDATA_SECTION_NODE: case Node.COMMENT_NODE: { JsonObject o = new JsonObject(); o.add(PROPERTY_TYPE, new JsonPrimitive(node.getNodeName())); o.add(PROPERTY_VALUE, new JsonPrimitive(node.getNodeValue())); return o; } case Node.ENTITY_REFERENCE_NODE: { JsonObject o = new JsonObject(); o.add(PROPERTY_TYPE, new JsonPrimitive(TYPE_ENTITY_REF)); o.add(PROPERTY_VALUE, new JsonPrimitive(node.getNodeValue())); return o; } case Node.DOCUMENT_NODE: if (first) return toJson(((Document) node).getDocumentElement(), false, scopeStack); // FALL THROUGH case Node.ATTRIBUTE_NODE: case Node.ENTITY_NODE: case Node.PROCESSING_INSTRUCTION_NODE: case Node.DOCUMENT_TYPE_NODE: case Node.NOTATION_NODE: default: throw new UnsupportedNodeException(node); } } private static JsonElement elementToJson(Node node, ScopeStack scopeStack) { Scope scope = null; NamedNodeMap attrs = node.getAttributes(); if (attrs != null) // Document fragments don't have attributes scope = registerNsDecls(scopeStack, scope, attrs); // Write node type and required required prefix declarations JsonObject o = new JsonObject(); o.add(PROPERTY_TYPE, new JsonPrimitive(node.getNodeName())); scope = addPrefixDecls(scopeStack, scope, o, node); // Write node attributes and required prefix declarations if (attrs != null) { // Document fragments don't have attributes for (int i = 0, len = attrs.getLength(); i < len; ++i) { Node attr = attrs.item(i); scope = addPrefixDecls(scopeStack, scope, o, attr); o.add(ATTRIBUTE_PREFIX + attr.getNodeName(), new JsonPrimitive(attr.getNodeValue())); } } // Write children JsonArray jsonChildren = new JsonArray(); NodeList children = node.getChildNodes(); for (int i = 0, len = children.getLength(); i < len; ++i) { Node child = children.item(i); jsonChildren.add(toJson(child, false, scopeStack)); } o.add(PROPERTY_CHILDREN, jsonChildren); if (scope != null) // Pop scope if we opened one scopeStack.pop(); return o; } // ========================================================================= @Override public Node deserialize( JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { final Document doc = getDoc(); DocumentFragment fragment = doc.createDocumentFragment(); fragment.appendChild(fromJson(doc, json, new ScopeStack())); return fragment; } private static Node fromJson( Document doc, JsonElement json, ScopeStack scopeStack) { // Get node object if (!json.isJsonObject()) throw new JsonParseException("Expected JsonObject"); JsonObject o = json.getAsJsonObject(); Set> entries = o.entrySet(); // Get node type JsonElement type = o.get(PROPERTY_TYPE); if (type == null) throw new JsonParseException("Missing member '" + PROPERTY_TYPE + "'"); if (!type.isJsonPrimitive()) throw new JsonParseException("Expected member '" + PROPERTY_TYPE + "' to be a string"); Element elem = null; ValueTypes valueType = null; Scope scope = null; String defaultNsUri = null; String typeQName = type.getAsString(); if (typeQName.startsWith(SPECIAL_TYPE_PREFIX)) { if (typeQName.equals("#text")) { valueType = ValueTypes.XML_TEXT; } else if (typeQName.equals(TYPE_ENTITY_REF)) { valueType = ValueTypes.ENTITY_REF; } else if (typeQName.equals("#cdata-section")) { valueType = ValueTypes.CDATA; } else if (typeQName.equals("#comment")) { valueType = ValueTypes.COMMENT; } else { throw new JsonParseException("Unknown special type '" + typeQName + "'"); } } else { scope = registerNsDecls(entries, scopeStack, scope); defaultNsUri = scopeStack.getXmlns(); if (defaultNsUri != null && defaultNsUri.isEmpty()) defaultNsUri = null; elem = createElement(doc, scopeStack, defaultNsUri, typeQName); } int countType = 0; int countChildren = 0; String nodeValue = null; for (Entry e : entries) { String entryName = e.getKey(); JsonElement entryValue = e.getValue(); if (entryName.startsWith(ATTRIBUTE_PREFIX)) { if (elem == null) throw new JsonParseException("Node type '" + typeQName + "' cannot have attributes"); parseAttribute(scopeStack, elem, entryName, entryValue); } else if (entryName.startsWith(PROPERTY_PREFIX)) { if (entryName.equals(PROPERTY_TYPE)) { ++countType; if (countType > 1) throw new JsonParseException("Member '" + PROPERTY_TYPE + "' occurred repeatedly"); // Ignore, we handled that field already } else if (entryName.equals(PROPERTY_VALUE)) { if (nodeValue != null) throw new JsonParseException("Member '" + PROPERTY_VALUE + "' occurred repeatedly"); if (valueType == null) throw new JsonParseException("Type '" + typeQName + "' cannot have a value"); nodeValue = entryValue.getAsString(); } else if (entryName.equals(PROPERTY_CHILDREN)) { ++countChildren; if (countChildren > 1) throw new JsonParseException("Member '" + PROPERTY_CHILDREN + "' occurred repeatedly"); if (valueType != null) throw new JsonParseException("Type '" + typeQName + "' cannot have children"); if (!entryValue.isJsonArray()) throw new JsonParseException("Expected member '" + entryName + "' to be an array."); JsonArray children = entryValue.getAsJsonArray(); for (JsonElement child : children) elem.appendChild(fromJson(doc, child, scopeStack)); } } else throw new JsonParseException("Unexpected field: '" + entryName + "'"); } if (scope != null) scopeStack.pop(); return (valueType != null) ? valueType.create(doc, nodeValue) : elem; } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/000077500000000000000000000000001335270560400300145ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/pom.xml000066400000000000000000000122461335270560400313360ustar00rootroot00000000000000 4.0.0 org.sweble.wom3 sweble-wom3-parent 3.1.9 sweble-wom3-swc-adapter jar Sweble WOM 3.0 SWC Adapter 2013 Convert a Sweble Wikitext (SWC) AST to and from a WOM data structure. ../ commons-io commons-io joda-time joda-time de.fau.cs.osr.utils utils de.fau.cs.osr.ptk ptk-common org.sweble.wikitext swc-parser-lazy org.sweble.wikitext swc-engine org.sweble.wom3 sweble-wom3-core junit junit test de.fau.cs.osr.utils utils-testing test net.sf.saxon Saxon-HE test com.mycila license-maven-plugin src/test/resources/**/*.wikitext src/test/resources/**/*.wom.xml org.apache.maven.plugins maven-dependency-plugin analyze-dependency-usage net.sf.saxon:Saxon-HE de.thetaphi forbiddenapis commons-io-unsafe-1.4 sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/000077500000000000000000000000001335270560400306035ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/000077500000000000000000000000001335270560400315275ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/000077500000000000000000000000001335270560400324505ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/000077500000000000000000000000001335270560400332375ustar00rootroot00000000000000sweble/000077500000000000000000000000001335270560400344415ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/orgwom3/000077500000000000000000000000001335270560400353265ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/swebleswcadapter/000077500000000000000000000000001335270560400374635ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3AstToWomConverter.java000066400000000000000000001501011335270560400437310ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.LinkedList; import java.util.ListIterator; import java.util.Map; import org.joda.time.DateTime; import org.sweble.wikitext.engine.nodes.EngNowiki; import org.sweble.wikitext.parser.ParserConfig; import org.sweble.wikitext.parser.WtRtData; import org.sweble.wikitext.parser.nodes.WikitextNodeFactory; import org.sweble.wikitext.parser.nodes.WtBody; import org.sweble.wikitext.parser.nodes.WtBold; import org.sweble.wikitext.parser.nodes.WtContentNode; import org.sweble.wikitext.parser.nodes.WtDefinitionList; import org.sweble.wikitext.parser.nodes.WtDefinitionListDef; import org.sweble.wikitext.parser.nodes.WtDefinitionListTerm; import org.sweble.wikitext.parser.nodes.WtExternalLink; import org.sweble.wikitext.parser.nodes.WtHeading; import org.sweble.wikitext.parser.nodes.WtHorizontalRule; import org.sweble.wikitext.parser.nodes.WtIgnored; import org.sweble.wikitext.parser.nodes.WtIllegalCodePoint; import org.sweble.wikitext.parser.nodes.WtImEndTag; import org.sweble.wikitext.parser.nodes.WtImStartTag; import org.sweble.wikitext.parser.nodes.WtImageLink; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageHorizAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageVertAlign; import org.sweble.wikitext.parser.nodes.WtImageLink.ImageViewFormat; import org.sweble.wikitext.parser.nodes.WtInternalLink; import org.sweble.wikitext.parser.nodes.WtItalics; import org.sweble.wikitext.parser.nodes.WtLinkOptionAltText; import org.sweble.wikitext.parser.nodes.WtLinkOptionGarbage; import org.sweble.wikitext.parser.nodes.WtLinkOptionKeyword; import org.sweble.wikitext.parser.nodes.WtLinkOptionLinkTarget; import org.sweble.wikitext.parser.nodes.WtLinkOptionResize; import org.sweble.wikitext.parser.nodes.WtLinkOptions; import org.sweble.wikitext.parser.nodes.WtLinkTarget.LinkTargetType; import org.sweble.wikitext.parser.nodes.WtLinkTitle; import org.sweble.wikitext.parser.nodes.WtListItem; import org.sweble.wikitext.parser.nodes.WtName; import org.sweble.wikitext.parser.nodes.WtNewline; import org.sweble.wikitext.parser.nodes.WtNode; import org.sweble.wikitext.parser.nodes.WtNodeList; import org.sweble.wikitext.parser.nodes.WtOnlyInclude; import org.sweble.wikitext.parser.nodes.WtOrderedList; import org.sweble.wikitext.parser.nodes.WtPageName; import org.sweble.wikitext.parser.nodes.WtPageSwitch; import org.sweble.wikitext.parser.nodes.WtParagraph; import org.sweble.wikitext.parser.nodes.WtParsedWikitextPage; import org.sweble.wikitext.parser.nodes.WtPreproWikitextPage; import org.sweble.wikitext.parser.nodes.WtRedirect; import org.sweble.wikitext.parser.nodes.WtSection; import org.sweble.wikitext.parser.nodes.WtSemiPre; import org.sweble.wikitext.parser.nodes.WtSemiPreLine; import org.sweble.wikitext.parser.nodes.WtSignature; import org.sweble.wikitext.parser.nodes.WtTable; import org.sweble.wikitext.parser.nodes.WtTableCaption; import org.sweble.wikitext.parser.nodes.WtTableCell; import org.sweble.wikitext.parser.nodes.WtTableHeader; import org.sweble.wikitext.parser.nodes.WtTableImplicitTableBody; import org.sweble.wikitext.parser.nodes.WtTableRow; import org.sweble.wikitext.parser.nodes.WtTagExtension; import org.sweble.wikitext.parser.nodes.WtTagExtensionBody; import org.sweble.wikitext.parser.nodes.WtTemplate; import org.sweble.wikitext.parser.nodes.WtTemplateArgument; import org.sweble.wikitext.parser.nodes.WtTemplateArguments; import org.sweble.wikitext.parser.nodes.WtTemplateParameter; import org.sweble.wikitext.parser.nodes.WtText; import org.sweble.wikitext.parser.nodes.WtTicks; import org.sweble.wikitext.parser.nodes.WtUnorderedList; import org.sweble.wikitext.parser.nodes.WtUrl; import org.sweble.wikitext.parser.nodes.WtValue; import org.sweble.wikitext.parser.nodes.WtWhitespace; import org.sweble.wikitext.parser.nodes.WtXmlAttribute; import org.sweble.wikitext.parser.nodes.WtXmlAttributeGarbage; import org.sweble.wikitext.parser.nodes.WtXmlAttributes; import org.sweble.wikitext.parser.nodes.WtXmlCharRef; import org.sweble.wikitext.parser.nodes.WtXmlComment; import org.sweble.wikitext.parser.nodes.WtXmlElement; import org.sweble.wikitext.parser.nodes.WtXmlEmptyTag; import org.sweble.wikitext.parser.nodes.WtXmlEndTag; import org.sweble.wikitext.parser.nodes.WtXmlEntityRef; import org.sweble.wikitext.parser.nodes.WtXmlStartTag; import org.sweble.wikitext.parser.postprocessor.WtNodeFlags; import org.sweble.wikitext.parser.utils.AstTextUtils; import org.sweble.wikitext.parser.utils.StringConversionException; import org.sweble.wikitext.parser.utils.WtRtDataPrinter; import org.sweble.wom3.Wom3Article; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Body; import org.sweble.wom3.Wom3Bold; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3DefinitionList; import org.sweble.wom3.Wom3DefinitionListDef; import org.sweble.wom3.Wom3DefinitionListTerm; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Element; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3ExtLink; import org.sweble.wom3.Wom3For; import org.sweble.wom3.Wom3Heading; import org.sweble.wom3.Wom3HorizontalRule; import org.sweble.wom3.Wom3Image; import org.sweble.wom3.Wom3ImageCaption; import org.sweble.wom3.Wom3ImageFormat; import org.sweble.wom3.Wom3ImageHAlign; import org.sweble.wom3.Wom3ImageVAlign; import org.sweble.wom3.Wom3IntLink; import org.sweble.wom3.Wom3Italics; import org.sweble.wom3.Wom3ListItem; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3OrderedList; import org.sweble.wom3.Wom3Paragraph; import org.sweble.wom3.Wom3Pre; import org.sweble.wom3.Wom3Redirect; import org.sweble.wom3.Wom3Repl; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Section; import org.sweble.wom3.Wom3Signature; import org.sweble.wom3.Wom3SignatureFormat; import org.sweble.wom3.Wom3Subst; import org.sweble.wom3.Wom3Table; import org.sweble.wom3.Wom3TableBody; import org.sweble.wom3.Wom3TableCaption; import org.sweble.wom3.Wom3TableCell; import org.sweble.wom3.Wom3TableHeaderCell; import org.sweble.wom3.Wom3Text; import org.sweble.wom3.Wom3Title; import org.sweble.wom3.Wom3UnorderedList; import org.sweble.wom3.Wom3XmlText; import org.sweble.wom3.impl.DomImplementationImpl; import org.sweble.wom3.swcadapter.nodes.SwcArg; import org.sweble.wom3.swcadapter.nodes.SwcAttr; import org.sweble.wom3.swcadapter.nodes.SwcGarbage; import org.sweble.wom3.swcadapter.nodes.SwcName; import org.sweble.wom3.swcadapter.nodes.SwcNode; import org.sweble.wom3.swcadapter.nodes.SwcParam; import org.sweble.wom3.swcadapter.nodes.SwcTagExtBody; import org.sweble.wom3.swcadapter.nodes.SwcTagExtension; import org.sweble.wom3.swcadapter.nodes.SwcTransclusion; import org.sweble.wom3.swcadapter.nodes.SwcValue; import org.sweble.wom3.swcadapter.nodes.SwcXmlElement; import org.sweble.wom3.swcadapter.nodes.impl.DefaultSwcNodeImplementations; import org.sweble.wom3.swcadapter.nodes.impl.DefaultSwcNodeImplementations.SwcNodeImplInfo; import org.w3c.dom.Document; import org.w3c.dom.Element; import de.fau.cs.osr.ptk.common.AstVisitor; import de.fau.cs.osr.utils.XmlGrammar; public class AstToWomConverter extends AstVisitor { public static final String MWW_NS_URI = SwcNode.MWW_NS_URI; public static final String DEFAULT_MWW_NS_PREFIX = SwcNode.DEFAULT_MWW_NS_PREFIX; // ========================================================================= private final Map xhtmlElems; private AstTextUtils astTextUtils; private WikitextNodeFactory nodeFactory; // ========================================================================= // Configuration private boolean preserveRtd = true; private boolean suppressRtd = false; private boolean addSubst = true; // ========================================================================= // Document configuratoin private String pageNamespace; private String pagePath; private String pageTitle; private String author; private DateTime timestamp; private Document doc; // ========================================================================= // Per AST/document state private LinkedList stack = new LinkedList(); private Wom3Article page; private int displacement = 0; private boolean inNoTextScope; // ========================================================================= public static Wom3Document convert( ParserConfig parserConfig, String pageNamespace, String pagePath, String pageTitle, String author, DateTime timestamp, WtNode ast) { Wom3Document doc = DomImplementationImpl.get().createDocument( null, null, null); for (SwcNodeImplInfo i : DefaultSwcNodeImplementations.get()) DomImplementationImpl.get().addNodeImplementation( i.getNamespaceUri(), i.getLocalPart(), i.getImpl()); AstToWomConverter converter = new AstToWomConverter(parserConfig); converter.convert(doc, pageNamespace, pagePath, pageTitle, author, timestamp, ast); return doc; } // ========================================================================= public AstToWomConverter(ParserConfig parserConfig) { this.xhtmlElems = new HashMap(); for (HtmlElement e : HtmlElement.values()) xhtmlElems.put(e.name().toLowerCase(), e); this.astTextUtils = parserConfig.getAstTextUtils(); this.nodeFactory = parserConfig.getNodeFactory(); } // ========================================================================= public Document convert( Document doc, String pageNamespace, String pagePath, String pageTitle, String author, DateTime timestamp, WtNode ast) { this.doc = doc; this.pageNamespace = pageNamespace; this.pagePath = pagePath; this.pageTitle = pageTitle; this.author = author; this.timestamp = timestamp; go(ast); return doc; } @Override public Object go(WtNode node) { if (this.doc == null) throw new UnsupportedOperationException("You must not call go() directly!"); return super.go(node); } @Override protected Object after(WtNode node, Object result) { Wom3ElementNode root = (Wom3ElementNode) result; root.setAttributeNS( "http://www.w3.org/2000/xmlns/", "xmlns:" + DEFAULT_MWW_NS_PREFIX, MWW_NS_URI); Element docElem = doc.getDocumentElement(); if (docElem != null) doc.removeChild(docElem); doc.appendChild(root); return doc; } // ========================================================================= public boolean setPreserveRtd(boolean preserveRtd) { boolean old = this.preserveRtd; this.preserveRtd = preserveRtd; return old; } public boolean isPreserveRtd() { return preserveRtd; } public void setAddSubst(boolean addSubst) { this.addSubst = addSubst; } public boolean isAddSubst() { return addSubst; } // == [ Encoding Validator ] =============================================== public Wom3ElementNode visit(WtIllegalCodePoint n) { // The & will be escaped and therefore the whole thing will be rendered // as plain text, indicating that something unrepresentable was // processed here. appendInconvertible(n, false); return null; } // == [ Tag extension ] ==================================================== public Wom3ElementNode visit(WtTagExtension n) { SwcTagExtension tag = genPushMww("tagext"); { tag.setAttribute("name", n.getName()); appendRtd(tag, n, 0); convertToExplicitMwwAttributes(tag, n.getXmlAttributes()); appendRtd(tag, n, 1); if (n.hasBody()) dispatchAppend(tag, n.getBody()); appendRtd(tag, n, 2); } return pop(tag); } public Wom3ElementNode visit(WtTagExtensionBody n) { SwcTagExtBody body = genPushMww("tagext-body"); { appendText(n.getContent()); } return pop(body); } // == [ Template ] ========================================================= public Wom3ElementNode visit(WtTemplate n) { SwcTransclusion template = genPushMww("transclusion"); { appendRtd(template, n, 0); dispatchAppend(template, n.getName()); appendRtd(template, n, 1); dispatchAppend(template, n.getArgs()); appendRtd(template, n, 2); } return pop(template); } public Wom3ElementNode visit(WtTemplateArguments n) { processContainerNode(n); return null; } public Wom3ElementNode visit(WtTemplateArgument n) { SwcArg arg = genPushMww("arg"); { appendRtd(arg, n, 0); if (n.hasName()) dispatchAppend(arg, n.getName()); appendRtd(arg, n, 1); dispatchAppend(arg, n.getValue()); appendRtd(arg, n, 2); } return pop(arg); } public Wom3ElementNode visit(WtTemplateParameter n) { SwcParam param = genPushMww("param"); { appendRtd(param, n, 0); dispatchAppend(param, n.getName()); appendRtd(param, n, 1); if (n.hasDefault()) dispatchAppend(param, n.getDefault()); appendRtd(param, n, 2); if (!n.getGarbage().isEmpty()) { SwcGarbage garbage = genPushMww("garbage"); { dispatchAppend(garbage, n.getGarbage()); } popAppend(param, garbage); } appendRtd(param, n, 3); } return pop(param); } // == [ XML references ] =================================================== public Wom3ElementNode visit(WtXmlCharRef n) { if (addSubst) { Wom3Subst subst = (Wom3Subst) genPushWom("subst"); { Wom3Repl repl = (Wom3Repl) genPushWom("repl"); { convertCharRef(n); } popAppend(subst, repl); Wom3For for_ = (Wom3For) genPushWom("for"); { Wom3ElementNode charRef = genPushMwwNotYetImplemented("xml-char-ref"); { charRef.setAttribute("code", String.valueOf(n.getCodePoint())); appendRtd(charRef, n, 0); } popAppend(for_, charRef); } popAppend(subst, for_); } return pop(subst); } else { convertCharRef(n); return null; } } private void convertCharRef(WtXmlCharRef n) { int codePoint = n.getCodePoint(); if (!XmlGrammar.isChar(codePoint)) { // The & will be escaped and therefore the whole thing will be // rendered as plain text, indicating that something unrepresentable // was processed here. appendInconvertible(n, false); } else { appendText(new String(Character.toChars(codePoint))); } } public Wom3ElementNode visit(WtXmlEntityRef n) { if (addSubst) { Wom3Subst subst = (Wom3Subst) genPushWom("subst"); { Wom3Repl repl = (Wom3Repl) genPushWom("repl"); { convertEntityRef(n); } popAppend(subst, repl); Wom3For for_ = (Wom3For) genPushWom("for"); { Wom3ElementNode entityRef = genPushMwwNotYetImplemented("xml-entity-ref"); { entityRef.setAttribute("name", String.valueOf(n.getName())); appendRtd(entityRef, n, 0); } popAppend(for_, entityRef); } popAppend(subst, for_); } return pop(subst); } else { convertEntityRef(n); return null; } } private void convertEntityRef(WtXmlEntityRef n) { String resolved = n.getResolved(); if (resolved == null) { // The & will be escaped and therefore the whole thing will be // rendered as plain text, indicating that something unrepresentable // was processed here. appendInconvertible(n, false); } else { appendText(resolved); } } // == [ Incomplete XML tags ] ============================================== public Wom3ElementNode visit(WtXmlEmptyTag n) { appendInconvertible(n, false); return null; } public Wom3ElementNode visit(WtXmlStartTag n) { appendInconvertible(n, false); return null; } public Wom3ElementNode visit(WtXmlEndTag n) { appendInconvertible(n, false); return null; } public Wom3ElementNode visit(WtImStartTag n) { appendInconvertible(n, false); return null; } public Wom3ElementNode visit(WtImEndTag n) { appendInconvertible(n, false); return null; } // == [ Pure XML Elements ] ================================================ public Wom3ElementNode visit(WtXmlElement n) { String lowercaseName = n.getName().toLowerCase(); HtmlElement elementType = xhtmlElems.get(lowercaseName); if (elementType != null) { return convertXmlElementToNative(n, elementType); } else { return convertGenericXmlElement(n); } } private Wom3ElementNode convertXmlElementToNative( WtXmlElement n, HtmlElement elementType) { switch (elementType) { // -- Easy stuff -- case ABBR: return womFromXmlElement(n, "abbr"); case B: return womFromXmlElement(n, "b"); case BIG: return womFromXmlElement(n, "big"); case BLOCKQUOTE: return womFromXmlElement(n, "blockquote"); case BR: return womFromXmlElement(n, "br"); case CENTER: return womFromXmlElement(n, "center"); case CITE: return womFromXmlElement(n, "cite"); case CODE: return womFromXmlElement(n, "code"); case DEL: return womFromXmlElement(n, "del"); case DFN: return womFromXmlElement(n, "dfn"); case DIV: return womFromXmlElement(n, "div"); case EM: return womFromXmlElement(n, "em"); case FONT: return womFromXmlElement(n, "font"); case HR: return womFromXmlElement(n, "hr"); case I: return womFromXmlElement(n, "i"); case INS: return womFromXmlElement(n, "ins"); case KBD: return womFromXmlElement(n, "kbd"); case P: return womFromXmlElement(n, "p"); case S: return womFromXmlElement(n, "s"); case SAMP: return womFromXmlElement(n, "samp"); case SMALL: return womFromXmlElement(n, "small"); case SPAN: return womFromXmlElement(n, "span"); case STRIKE: return womFromXmlElement(n, "strike"); case STRONG: return womFromXmlElement(n, "strong"); case SUB: return womFromXmlElement(n, "sub"); case SUP: return womFromXmlElement(n, "sup"); case TT: return womFromXmlElement(n, "tt"); case U: return womFromXmlElement(n, "u"); case VAR: return womFromXmlElement(n, "var"); // -- Lists -- case DD: return womFromXmlElement(n, "dd"); case DL: return womFromXmlElement(n, "dl"); case DT: return womFromXmlElement(n, "dt"); case LI: return womFromXmlElement(n, "li"); case OL: return womFromXmlElement(n, "ol"); case UL: return womFromXmlElement(n, "ul"); // -- Tables -- case TABLE: return tableFromElement(n); case CAPTION: return tableCaptionFromElement(n); case TBODY: return tableBodyFromElement(n); case TR: return womFromXmlElement(n, "tr"); case TD: return tableCellFromElement(n); case TH: return tableHeaderFromElement(n); // -- Misc -- case PRE: return preFromElement(n); } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Unknown element type: " + elementType); } private SwcXmlElement convertGenericXmlElement(WtXmlElement n) { SwcXmlElement element = genPushMww("xmlelement"); { element.setTag(n.getName()); appendRtd(element, n, 0); convertToExplicitMwwAttributes(element, n.getXmlAttributes()); appendRtd(element, n, 1); if (n.hasBody()) processChildrenPushAppend(n.getBody(), genMww("body")); appendRtd(element, n, 2); } return pop(element); } // == [ XML Element to Native WOM ] ======================================== private Wom3ElementNode womFromXmlElement(WtXmlElement n, String womName) { Wom3ElementNode womElement = genPushWom(womName); { appendRtd(womElement, n, 0); dispatchAppend(womElement, n.getXmlAttributes()); appendRtd(womElement, n, 1); if (n.hasBody()) processChildrenNoPush(n.getBody(), womElement); appendRtd(womElement, n, 2); } return pop(womElement); } private Wom3Pre preFromElement(WtXmlElement n) { Wom3Pre pre = genPushWom("pre"); { appendRtd(pre, n, 0); dispatchAppend(pre, n.getXmlAttributes()); appendRtd(pre, n, 1); if (n.hasBody()) processChildrenPushAppend(n.getBody(), genWom("nowiki")); appendRtd(pre, n, 2); } return pop(pre); } private Wom3Table tableFromElement(WtXmlElement n) { Wom3Table table = (Wom3Table) genPushWom("table"); inNoTextScope = true; { appendRtd(table, n, 0); dispatchAppend(table, n.getXmlAttributes()); appendRtd(table, n, 1); if (n.hasBody()) processChildrenNoPush(n.getBody(), table); appendRtd(table, n, 2); } inNoTextScope = false; return pop(table); } private Wom3TableBody tableBodyFromElement(WtXmlElement n) { return (Wom3TableBody) womFromXmlElement(n, "tbody"); } private Wom3TableCaption tableCaptionFromElement(WtXmlElement n) { Wom3ElementNode scope = getScope(); if (scope instanceof Wom3Table) { Wom3Table table = (Wom3Table) scope; if (table.getCaption() != null) { // All but the first caption are ignored. appendInconvertible(n, true); return null; } } return (Wom3TableCaption) tableXFromX(n, "caption"); } private Wom3TableHeaderCell tableHeaderFromElement(WtXmlElement n) { return (Wom3TableHeaderCell) tableXFromX(n, "th"); } private Wom3TableCell tableCellFromElement(WtXmlElement n) { return (Wom3TableCell) tableXFromX(n, "td"); } private Wom3ElementNode tableXFromX(WtXmlElement n, String womName) { try { inNoTextScope = false; return womFromXmlElement(n, womName); } finally { inNoTextScope = true; } } // == [ XML Attributes ] =================================================== public Wom3ElementNode visit(WtXmlAttributes n) { boolean old = setSuppressRtd(n.getRtd()); { processContainerNode(n); } setSuppressRtd(old); return null; } public Wom3ElementNode visit(WtXmlAttribute n) { boolean failed = true; tryBlock: try { if (!n.getName().isResolved()) break tryBlock; String nameAsString = n.getName().getAsString(); if (!XmlGrammar.xmlName().matcher(nameAsString).matches()) break tryBlock; if (nameAsString.indexOf(':') != -1) break tryBlock; String valueAsString = stringify(n.getValue()); Wom3ElementNode parent = getScope(); parent.setAttributeNode(attr(nameAsString, valueAsString)); if (!isRtdSuppressed()) appendRtd(parent, convertToText(n)); failed = false; } catch (IllegalArgumentException e) { // Setting the attribute failed. } catch (IllegalStateException e) { // Name conversion failed. } catch (StringConversionException e) { // Value conversion failed. } if (failed) appendInconvertible(n, true); return null; } public Wom3ElementNode visit(WtXmlAttributeGarbage n) { appendInconvertible(n, true); return null; } // == [ Explicit MWW Attributes ] ========================================== private void convertToExplicitMwwAttributes( Wom3ElementNode womParent, WtXmlAttributes xmlAttribs) { appendRtd(womParent, xmlAttribs, 0); for (WtNode wtAttr : xmlAttribs) { if (wtAttr instanceof WtXmlAttribute) { womParent.appendChild(convertToExplicitMwwAttribute((WtXmlAttribute) wtAttr)); } else { dispatchAppend(womParent, wtAttr); } } appendRtd(womParent, xmlAttribs, 1); } private SwcAttr convertToExplicitMwwAttribute(WtXmlAttribute wtAttr) { SwcAttr womAttr = (SwcAttr) genPushMww("attr"); appendRtd(womAttr, wtAttr, 0); processChildrenPushAppend(wtAttr.getName(), genMww("name")); appendRtd(womAttr, wtAttr, 1); if (wtAttr.hasValue()) processChildrenPushAppend(wtAttr.getValue(), genMww("value")); appendRtd(womAttr, wtAttr, 2); return (SwcAttr) pop(womAttr); } // == [ Redirect ] ========================================================= public Wom3ElementNode visit(WtRedirect n) { String targetAsString = getTargetAsString(n.getTarget()); String normalizedTarget = getNormalizedTargetAsString(targetAsString); if ((targetAsString != null) && (normalizedTarget != null)) { // Don't push onto stack! Wom3Redirect redirect = (Wom3Redirect) genWom("redirect"); // Insert native part into WOM String did = String.valueOf(displacement++); redirect.setDisplacementId(did); redirect.setTarget(normalizedTarget); page.setRedirect(redirect); // Insert into original spot if (addSubst) { Wom3Subst subst = (Wom3Subst) genPushWom("subst"); subst.setDisplacementId(did); { Wom3Repl repl = (Wom3Repl) genPushWom("repl"); // Keep it empty. It's really attached to the page node. popAppend(subst, repl); Wom3For for_ = (Wom3For) genPushWom("for"); { Wom3Element mwwRedirect = genPushMwwNotYetImplemented("redirect"); { appendRtd(mwwRedirect, n, 0); dispatchAppend(mwwRedirect, n.getTarget()); appendRtd(mwwRedirect, n, 1); } popAppend(for_, mwwRedirect); } popAppend(subst, for_); } return pop(subst); } else { return null; } } else { appendInconvertible(n, false); return null; } } public Wom3ElementNode visit(WtPageName n) { try { appendText(n.getAsString()); return null; } catch (IllegalStateException e) { // This should not happen. The WtPageName node is only visited if // the link can be properly converted. throw new IllegalArgumentException("WtPageName cannot be rendered as text"); } } private String getTargetAsString(WtPageName target) { try { return target.getAsString(); } catch (IllegalStateException e) { return null; } } /** * Override it if you want to normalize link targets. */ protected String getNormalizedTargetAsString(String targetAsString) { return targetAsString; } // == [ External Links ] =================================================== public Wom3ElementNode visit(WtUrl n) { URL url = urlNodeToUrl(n); if (url != null) { Wom3ExtLink extLink = (Wom3ExtLink) genPushWom("extlink"); { extLink.setTarget(url); extLink.setPlainUrl(true); appendRtd(extLink, n, 0); } return pop(extLink); } else { appendInconvertible(n, false); return null; } } public Wom3ElementNode visit(WtExternalLink n) { URL url = urlNodeToUrl(n.getTarget()); if (url != null) { Wom3ExtLink extLink = (Wom3ExtLink) genPushWom("extlink"); { extLink.setTarget(url); appendRtd(extLink, n, 0); appendRtd(extLink, n.getTarget(), 0); appendRtd(extLink, n, 1); if (n.hasTitle()) dispatchAppend(extLink, n.getTitle()); appendRtd(extLink, n, 2); } return pop(extLink); } else { appendInconvertible(n, false); return null; } } private URL urlNodeToUrl(WtUrl urlNode) { try { if (urlNode.getProtocol().isEmpty()) return new URL(urlNode.getPath()); return new URL(urlNode.getProtocol() + ":" + urlNode.getPath()); } catch (MalformedURLException e) { return null; } } // == [ Internal Link ]= =================================================== public Wom3ElementNode visit(WtInternalLink n) { String originalTarget = getTargetAsString(n.getTarget()); String normalizedTarget = getNormalizedTargetAsString(originalTarget); if ((originalTarget == null) || (normalizedTarget == null)) { appendInconvertible(n, false); return null; } boolean subst = addSubst && (!n.getPostfix().isEmpty() || !n.getPrefix().isEmpty()); return (subst ? substIntLink(n, originalTarget, normalizedTarget) : nativeIntLink(n, originalTarget, normalizedTarget)); } private Wom3IntLink nativeIntLink( WtInternalLink n, String originalTarget, String normalizedTarget) { Wom3IntLink intLink = (Wom3IntLink) genPushWom("intlink"); { intLink.setTarget(originalTarget); appendRtd(intLink, n, 0); boolean old = setSuppressRtd(n.getTarget().getRtd()); { appendRtd(intLink, originalTarget); } setSuppressRtd(old); appendRtd(intLink, n, 1); if (n.hasTitle()) dispatchAppend(intLink, n.getTitle()); appendRtd(intLink, n, 2); } return pop(intLink); } private Wom3Subst substIntLink( WtInternalLink n, String originalTarget, String normalizedTarget) { Wom3Subst subst = (Wom3Subst) genPushWom("subst"); { Wom3Repl repl = (Wom3Repl) genPushWom("repl"); { Wom3IntLink intLink = (Wom3IntLink) genPushWom("intlink"); boolean oldPreserveRtd = setPreserveRtd(false); { intLink.setTarget(normalizedTarget); if (n.hasTitle()) { Wom3Title title = (Wom3Title) dispatchAppend(intLink, n.getTitle()); push(title); { if (!n.getPrefix().isEmpty()) prependText(title, n.getPrefix()); // title goes here ... if (!n.getPostfix().isEmpty()) appendText(title, n.getPostfix()); } pop(title); } else // no title given, create title from target { Wom3Title title = (Wom3Title) genPushWom("title"); if (!n.getPrefix().isEmpty()) appendText(title, n.getPrefix()); appendText(title, originalTarget); if (!n.getPostfix().isEmpty()) appendText(title, n.getPostfix()); intLink.setLinkTitle((Wom3Title) pop(title)); } } setPreserveRtd(oldPreserveRtd); popAppend(repl, intLink); } popAppend(subst, repl); Wom3For for_ = (Wom3For) genPushWom("for"); { Wom3Element intLink = genPushMwwNotYetImplemented("intlink"); { intLink.setAttribute("target", originalTarget); if (!n.getPostfix().isEmpty()) intLink.setAttribute("postfix", n.getPostfix()); if (!n.getPrefix().isEmpty()) intLink.setAttribute("prefix", n.getPrefix()); appendRtd(intLink, n, 0); appendRtd(intLink, originalTarget); appendRtd(intLink, n, 1); if (n.hasTitle()) dispatchAppend(intLink, n.getTitle()); appendRtd(intLink, n, 2); } popAppend(for_, intLink); } popAppend(subst, for_); } return pop(subst); } // == [ Image Link ] ======================================================= public Wom3ElementNode visit(WtImageLink n) { String targetAsString = getTargetAsString(n.getTarget()); String normalizedTarget = getNormalizedTargetAsString(targetAsString); if ((targetAsString != null) && (normalizedTarget != null)) { Wom3Image img = (Wom3Image) genPushWom("image"); { img.setSource(targetAsString); img.setFormat(mapImgFormat(n.getFormat())); img.setBorder(n.getBorder()); img.setHAlign(mapImgHAlign(n.getHAlign())); img.setVAlign(mapImgVAlign(n.getVAlign())); img.setUpright(n.getUpright()); if (n.getWidth() >= 0) img.setWidth(n.getWidth()); if (n.getHeight() >= 0) img.setHeight(n.getHeight()); if (n.hasAlt()) img.setAlt(convertContentToText(n.getAlt())); setImgLink(img, n.getLink()); appendRtd(img, n, 0); appendRtd(img, targetAsString); appendRtd(img, n, 1); processChildrenNoPush(n.getOptions(), img); appendRtd(img, n, 2); } return pop(img); } else { appendInconvertible(n, false); return null; } } private void setImgLink(Wom3Image img, WtLinkOptionLinkTarget link) { LinkTargetType linkType = link.getTargetType(); switch (linkType) { case DEFAULT: // Nothing to do return; case NO_LINK: img.setIntLink(""); return; case PAGE: img.setIntLink(getTargetAsString((WtPageName) link.getTarget())); return; case URL: img.setExtLink(urlNodeToUrl((WtUrl) link.getTarget())); return; } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Unknown element type: " + linkType); } private Wom3ImageVAlign mapImgVAlign(ImageVertAlign vAlign) { switch (vAlign) { case BASELINE: return Wom3ImageVAlign.BASELINE; case BOTTOM: return Wom3ImageVAlign.BOTTOM; case MIDDLE: return Wom3ImageVAlign.MIDDLE; case SUB: return Wom3ImageVAlign.SUB; case SUPER: return Wom3ImageVAlign.SUPER; case TEXT_BOTTOM: return Wom3ImageVAlign.TEXT_BOTTOM; case TEXT_TOP: return Wom3ImageVAlign.TEXT_TOP; case TOP: return Wom3ImageVAlign.TOP; } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Unknown image vertical alignment: " + vAlign); } private Wom3ImageHAlign mapImgHAlign(ImageHorizAlign hAlign) { switch (hAlign) { case CENTER: return Wom3ImageHAlign.CENTER; case LEFT: return Wom3ImageHAlign.LEFT; case NONE: return Wom3ImageHAlign.NONE; case RIGHT: return Wom3ImageHAlign.RIGHT; case UNSPECIFIED: return Wom3ImageHAlign.DEFAULT; } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Unknown image horizontal alignment: " + hAlign); } private Wom3ImageFormat mapImgFormat(ImageViewFormat format) { switch (format) { case FRAME: return Wom3ImageFormat.FRAME; case FRAMELESS: return Wom3ImageFormat.FRAMELESS; case THUMBNAIL: return Wom3ImageFormat.THUMBNAIL; case UNRESTRAINED: return Wom3ImageFormat.UNRESTRAINED; } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Unknown image view format: " + format); } public Wom3ElementNode visit(WtLinkOptions n) { boolean old = setSuppressRtd(n.getRtd()); { processContainerNode(n); } setSuppressRtd(old); return null; } public Wom3ElementNode visit(WtLinkOptionLinkTarget n) { appendRtd(convertToText(n)); return null; } public Wom3ElementNode visit(WtLinkOptionKeyword n) { appendRtd(convertToText(n)); return null; } public Wom3ElementNode visit(WtLinkOptionResize n) { appendRtd(convertToText(n)); return null; } public Wom3ElementNode visit(WtLinkOptionAltText n) { appendRtd(convertToText(n)); return null; } public Wom3ElementNode visit(WtLinkOptionGarbage n) { appendInconvertible(n, true); return null; } // == [ Section ] ========================================================== public Wom3ElementNode visit(WtSection n) { Wom3Section section = (Wom3Section) genPushWom("section"); { section.setLevel(n.getLevel()); appendRtd(section, n, 0); dispatchAppend(section, n.getHeading()); appendRtd(section, n, 1); dispatchAppend(section, n.getBody()); appendRtd(section, n, 2); } return pop(section); } public Wom3ElementNode visit(WtHeading n) { return processChildrenPush(n, (Wom3Heading) genWom("heading")); } // == [ Lists ] ============================================================ public Wom3ElementNode visit(WtOrderedList n) { return processChildrenPush(n, (Wom3OrderedList) genWom("ol")); } public Wom3ElementNode visit(WtUnorderedList n) { return processChildrenPush(n, (Wom3UnorderedList) genWom("ul")); } public Wom3ElementNode visit(WtListItem n) { return processChildrenPush(n, (Wom3ListItem) genWom("li")); } public Wom3ElementNode visit(WtDefinitionList n) { return processChildrenPush(n, (Wom3DefinitionList) genWom("dl")); } public Wom3ElementNode visit(WtDefinitionListDef n) { return processChildrenPush(n, (Wom3DefinitionListDef) genWom("dd")); } public Wom3ElementNode visit(WtDefinitionListTerm n) { return processChildrenPush(n, (Wom3DefinitionListTerm) genWom("dt")); } // == [ Table ] ============================================================ public Wom3ElementNode visit(WtTable n) { Wom3Table table = (Wom3Table) genPushWom("table"); inNoTextScope = true; { appendRtd(table, n, 0); dispatchAppend(table, n.getXmlAttributes()); appendRtd(table, n, 1); processChildrenNoPush(n.getBody(), table); appendRtd(table, n, 2); } inNoTextScope = false; return pop(table); } public Wom3ElementNode visit(WtTableCaption n) { Wom3ElementNode scope = getScope(); if (scope instanceof Wom3Table) { Wom3Table table = (Wom3Table) scope; if (table.getCaption() != null) { // All but the first caption are ignored. appendInconvertible(n, true); return null; } } Wom3TableCaption caption = (Wom3TableCaption) genPushWom("caption"); inNoTextScope = false; { appendRtd(caption, n, 0); dispatchAppend(caption, n.getXmlAttributes()); appendRtd(caption, n, 1); processChildrenNoPush(n.getBody(), caption); appendRtd(caption, n, 2); } inNoTextScope = true; return pop(caption); } public Wom3ElementNode visit(WtTableImplicitTableBody n) { return processChildrenPush(n.getBody(), (Wom3TableBody) genWom("tbody")); } public Wom3ElementNode visit(WtTableRow n) { return buildRowOrCell(n, n.getXmlAttributes(), n.getBody(), "tr"); } public Wom3ElementNode visit(WtTableCell n) { inNoTextScope = false; Wom3TableCell cell = buildRowOrCell(n, n.getXmlAttributes(), n.getBody(), "td"); inNoTextScope = true; return cell; } public Wom3ElementNode visit(WtTableHeader n) { inNoTextScope = false; Wom3TableHeaderCell header = buildRowOrCell(n, n.getXmlAttributes(), n.getBody(), "th"); inNoTextScope = true; return header; } @SuppressWarnings("unchecked") private T buildRowOrCell( WtNode n, WtXmlAttributes attrs, WtBody body, String name) { Wom3ElementNode rowOrCell = genPushWom(name); { appendRtd(rowOrCell, n, 0); dispatchAppend(rowOrCell, attrs); appendRtd(rowOrCell, n, 1); processChildrenNoPush(body, rowOrCell); appendRtd(rowOrCell, n, 2); } return (T) pop(rowOrCell); } // == [ Simple HTML equivalents ] ========================================== public Wom3ElementNode visit(WtHorizontalRule n) { Wom3HorizontalRule hr = genPushWom("hr"); { appendRtd(hr, n, 0); } return pop(hr); } public Wom3ElementNode visit(WtItalics n) { return processChildrenPush(n, (Wom3Italics) genWom("i")); } public Wom3ElementNode visit(WtBold n) { return processChildrenPush(n, (Wom3Bold) genWom("b")); } // == [ Signature ] ======================================================== public Wom3ElementNode visit(WtSignature n) { Wom3Signature sig = (Wom3Signature) genPushWom("signature"); { sig.setSignatureFormat(mapSignatureFormat(n)); if (author != null) sig.setAuthor(author); if (timestamp != null) sig.setTimestamp(timestamp); appendRtd(sig, n, 0); } return pop(sig); } private Wom3SignatureFormat mapSignatureFormat(WtSignature n) { switch (n.getTildeCount()) { case 3: return Wom3SignatureFormat.USER; case 4: return Wom3SignatureFormat.USER_TIMESTAMP; case 5: return Wom3SignatureFormat.TIMESTAMP; } // Don't push into default: case. // This way we'll get a warning if we missed a constant. throw new IllegalArgumentException("Illegal signature tilde count: " + n.getTildeCount()); } // == [ Paragraph ] ======================================================== public Wom3ElementNode visit(WtParagraph n) { Wom3Paragraph paragraph = (Wom3Paragraph) genPushWom("p"); { paragraph.setTopGap(countNewlines(n.listIterator(), false)); paragraph.setBottomGap(countNewlines(n.listIterator(n.size()), true)); processChildrenNoPush(n, paragraph); if (!paragraph.hasChildNodes()) { pop(paragraph); return null; } } return pop(paragraph); } private int countNewlines(ListIterator i, boolean reverse) { int count = 0; outer: while (reverse ? i.hasPrevious() : i.hasNext()) { WtNode n = (WtNode) (reverse ? i.previous() : i.next()); switch (n.getNodeType()) { case WtNode.NT_NEWLINE: ++count; break; case WtNode.NT_TEXT: { String text = ((WtText) n).getContent(); int len = text.length(); for (int j = 0; j < len; ++j) { int ch = text.charAt(reverse ? len - 1 - j : j); if (ch == '\n' || ch == '\r') { if (j + 1 < len) { int ch2 = text.charAt(reverse ? len - 1 - j : j); if ((ch == '\r' && ch2 == '\n') || (ch == '\n' && ch2 == '\r')) ++j; } ++count; } else if (!Character.isWhitespace(ch)) { break outer; } } break; } default: break outer; } } return count; } // == [ Semi Pre ] ========================================================= public Wom3ElementNode visit(WtSemiPre n) { return processChildrenPush(n, (Wom3Pre) genWom("pre")); } public Wom3ElementNode visit(WtSemiPreLine n) { processContainerNode(n); return null; } // == [ Containers ] ======================================================= public Wom3ElementNode visit(WtNodeList n) { if (page == null) { /** * Unknown root elements (Eng* nodes) will end up here, so we will * have to start the document. */ return createRootNode(n); } else { processContainerNode(n); return null; } } public Wom3ElementNode visit(WtBody n) { return processChildrenPush(n, (Wom3Body) genWom("body")); } public Wom3ElementNode visit(WtLinkTitle n) { Wom3ElementNode parent = getScope(); if (parent instanceof Wom3Image) { return processChildrenPush(n, (Wom3ImageCaption) genWom("imgcaption")); } else { return processChildrenPush(n, (Wom3Title) genWom("title")); } } public Wom3ElementNode visit(WtName n) { return processChildrenPush(n, (SwcName) genMww("name")); } public Wom3ElementNode visit(WtValue n) { return processChildrenPush(n, (SwcValue) genMww("value")); } public Wom3ElementNode visit(WtWhitespace n) { processContainerNode(n); return null; } public Wom3ElementNode visit(WtOnlyInclude n) { processContainerNode(n); return null; } public Wom3ElementNode visit(WtIgnored n) { appendRtd(convertToText(n)); return null; } // == [ Page Switch ] ====================================================== public Wom3ElementNode visit(WtPageSwitch n) { throw new UnsupportedOperationException("not yet implemented"); // FIXME: Attach page switches to page element first! // See categories about how it's done. //return new WomPageSwitch(n.getName()); } // == [ Page roots ] ======================================================= public Wom3ElementNode visit(WtParsedWikitextPage n) { return createRootNode(n); } public Wom3ElementNode visit(WtPreproWikitextPage n) { return createRootNode(n); } private Wom3Article createRootNode(WtNodeList wtBody) { this.page = (Wom3Article) genPushWom("article"); { if (pageNamespace != null) this.page.setNamespace(pageNamespace); if (pagePath != null) this.page.setPath(pagePath); if (pageTitle != null) this.page.setTitle(pageTitle); Wom3Body womBody = genPushWom("body"); { processChildrenNoPush(wtBody, womBody); } popAppend(this.page, womBody); } return pop(this.page); } // == [ Intermediate Elements ] ============================================ public Wom3ElementNode visit(WtTicks n) { // These should not be part of a fully processed AST any more... appendInconvertible(n, false); return null; } // == [ Comment ] ========================================================== public Wom3ElementNode visit(WtXmlComment n) { WtRtData rtd = n.getRtd(); if (!rtd.isStringOnly(0)) { appendInconvertible(n, false); return null; } else { Wom3Comment comment = (Wom3Comment) genPushWom("comment"); { String content = n.getContent(); String before = null; String after = null; String rtdStr = rtd.toString(0); int i = rtdStr.indexOf(content); if (i != -1) { before = rtdStr.substring(0, i); after = rtdStr.substring(i + content.length()); } appendRtd(comment, before); appendText(content); appendRtd(comment, after); } return pop(comment); } } // == [ Text ] ============================================================= public Wom3ElementNode visit(WtText n) { if (inNoTextScope) { appendRtd(n.getContent()); } else { appendText(n.getContent()); } return null; } public Wom3ElementNode visit(WtNewline n) { appendText(n.getContent()); return null; } public Wom3ElementNode visit(EngNowiki n) { Wom3ElementNode womNode = genWom("nowiki"); push(womNode); { WtRtData rtd = n.getRtd(); if (rtd != null && rtd.size() == 1) { String rtdStr = rtd.toString(0); int i = rtdStr.indexOf(n.getContent()); if (i >= 0) { appendRtd(rtdStr.substring(0, i)); appendText(n.getContent()); appendRtd(rtdStr.substring(i + n.getContent().length())); } else { appendRtd(womNode, n, 0); appendText(n.getContent()); } } else { appendText(n.getContent()); } } pop(womNode); getScope().appendChild(womNode); return null; } // ========================================================================= private Wom3ElementNode getScope() { return stack.peek(); } private T push(T element) { stack.push(element); return element; } private T pop(T expected) { @SuppressWarnings("unchecked") T popped = (T) stack.pop(); if (popped != expected) throw new InternalError(); return popped; } @SuppressWarnings("unchecked") private T genPushWom(final String name) { return (T) push(genWom(name)); } @SuppressWarnings("unchecked") private T genPushMww(String name) { return (T) push(genMww(name)); } /** * @deprecated */ @SuppressWarnings("unchecked") private T genPushMwwNotYetImplemented( String name) { return (T) push(genMww(name)); } private T popAppend( Wom3ElementNode parent, T expected) { T child = pop(expected); parent.appendChild(child); return child; } // ========================================================================= private T processChildrenNoPush( WtNode astNode, T womNode) { appendRtd(womNode, astNode, 0); for (WtNode c : astNode) dispatchAppend(womNode, c); appendRtd(womNode, astNode, 1); return womNode; } private T processChildrenPush( WtNode astNode, T womNode) { push(womNode); { processChildrenNoPush(astNode, womNode); } pop(womNode); return womNode; } private void processChildrenPushAppend( WtNode astNode, Wom3ElementNode womNode) { getScope().appendChild(processChildrenPush(astNode, womNode)); } private void processContainerNode(WtNode n) { processChildrenNoPush(n, getScope()); } private Wom3ElementNode dispatchAppend(Wom3ElementNode parent, WtNode child) { Wom3ElementNode result = (Wom3ElementNode) dispatch(child); if (result != null) parent.appendChild(result); return result; } // ========================================================================= private void appendInconvertible(WtNode n, boolean inNoTextScope) { if (!WtNodeFlags.isRepairNode(n)) { if (this.inNoTextScope || inNoTextScope) { appendRtd(convertToText(n)); } else { appendText(convertToText(n)); } } } /** * Tries to convert the children of a node to their original markup * representation. */ private String convertToText(WtNode n) { return WtRtDataPrinter.print(n); } /** * Tries to convert the children of a node to their original markup * representation. */ private String convertContentToText(WtContentNode n) { return convertToText(nodeFactory.toList(n)); } /** * Tries to convert a content node to a pure text representation. This only * works if the content node only contains text nodes and nodes that * represent text (like entity references). */ private String stringify(WtContentNode value) throws StringConversionException { return astTextUtils.astToText(value); } // ========================================================================= private void prependText(Wom3ElementNode parent, String text) { if ((text != null) && !text.isEmpty()) { Wom3Node first = parent.getFirstChild(); if (first instanceof Wom3Text) { if (isRtdSuppressed() == isHideRtd((Wom3Text) first)) { Wom3XmlText tn = (Wom3XmlText) first.getFirstChild(); tn.insertData(0, text); } else { prependTextNode(parent, text, first); } } else { prependTextNode(parent, text, first); } } } private void prependTextNode( Wom3ElementNode parent, String text, Wom3Node first) { Wom3Text tn = createTextNode(text); if (first == null) { parent.appendChild(tn); } else { parent.insertBefore(tn, first); } } private void appendText(String text) { appendText(getScope(), text); } private void appendText(Wom3ElementNode parent, String text) { Wom3Node last = parent.getLastChild(); if (last instanceof Wom3Text) { if (isRtdSuppressed() == isHideRtd((Wom3Text) last)) { Wom3XmlText xmlText = (Wom3XmlText) last.getLastChild(); if (xmlText != null) { xmlText.appendData(text); } else { last.setTextContent(text); } } else { appendTextNode(parent, text); } } else { appendTextNode(parent, text); } } private void appendTextNode(Wom3ElementNode n, String text) { n.appendChild(createTextNode(text)); } private Wom3Text createTextNode(String text) { Wom3Text tn = text(text); if (isRtdSuppressed()) setHideRtd(tn); return tn; } // ========================================================================= private void appendRtd(Wom3ElementNode parent, WtNode n, int index) { WtRtData rtd = n.getRtd(); if (!isRtdVisible() && (rtd != null) && !rtd.isSuppress()) { if (rtd.isStringOnly(index)) { appendRtd(parent, rtd.toString(index)); } else { for (Object x : rtd.getField(index)) { if (x instanceof String) { appendRtd(parent, (String) x); } else { // We expect that RTD only consists of String or WtNode. dispatchAppend(parent, (WtNode) x); } } } } } private void appendRtd(Wom3ElementNode parent, String rtd) { if (!isRtdVisible() && (rtd != null) && !rtd.isEmpty()) { Wom3Node last = parent.getLastChild(); if (last instanceof Wom3Rtd) { Wom3XmlText xmlText = (Wom3XmlText) last.getLastChild(); if (xmlText != null) { xmlText.appendData(rtd); } else { last.setTextContent(rtd); } } else { parent.appendChild(rtd(rtd)); } } } private boolean setSuppressRtd(boolean suppressRtd) { boolean old = this.isRtdSuppressed(); this.suppressRtd = suppressRtd; return old; } private boolean setSuppressRtd(WtRtData rtd) { if (isRtdSuppressed()) // If we're already suppressing we don't change that! return isRtdSuppressed(); return setSuppressRtd((rtd != null) && rtd.isSuppress()); } private boolean isRtdSuppressed() { return suppressRtd; } private boolean isRtdVisible() { return !preserveRtd || isRtdSuppressed(); } private void appendRtd(String rtd) { appendRtd(getScope(), rtd); } private boolean isHideRtd(Wom3ElementNode node) { return "true".equalsIgnoreCase(node.getAttributeNS(DEFAULT_MWW_NS_PREFIX, "hideRtd")); } private T setHideRtd(T node) { node.setAttributeNS(DEFAULT_MWW_NS_PREFIX, "hideRtd", "true"); return node; } // ========================================================================= private Wom3ElementNode genWom(String tag) { return (Wom3ElementNode) doc.createElementNS( Wom3ElementNode.WOM_NS_URI, tag); } private Wom3ElementNode genMww(String type) { return (Wom3ElementNode) doc.createElementNS( MWW_NS_URI, DEFAULT_MWW_NS_PREFIX + ":" + type); } private Wom3Attribute attr(String name, String value) { Wom3Attribute attr = (Wom3Attribute) doc.createAttribute(name); attr.setValue(value); return attr; } private Wom3Text text(String text) { Wom3ElementNode node = genWom("text"); node.setTextContent(text); return (Wom3Text) node; } private Wom3Rtd rtd(String text) { Wom3ElementNode node = genWom("rtd"); node.setTextContent(text); return (Wom3Rtd) node; } } ElementProperties.java000066400000000000000000000020271335270560400437750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; public enum ElementProperties { P { @Override public String toString() { return "p"; } @Override public boolean isBlockElement() { return true; } }; public boolean isBlockElement() { return false; } } FixWomRtd.java000066400000000000000000001042371335270560400422200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import org.sweble.wikitext.engine.PageTitle; import org.sweble.wikitext.engine.config.WikiConfig; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.Wom3Article; import org.sweble.wom3.Wom3Articles; import org.sweble.wom3.Wom3Big; import org.sweble.wom3.Wom3Blockquote; import org.sweble.wom3.Wom3Body; import org.sweble.wom3.Wom3Bold; import org.sweble.wom3.Wom3Break; import org.sweble.wom3.Wom3Center; import org.sweble.wom3.Wom3Cite; import org.sweble.wom3.Wom3Code; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3DefinitionList; import org.sweble.wom3.Wom3DefinitionListDef; import org.sweble.wom3.Wom3DefinitionListTerm; import org.sweble.wom3.Wom3Div; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Element; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.Wom3Emphasize; import org.sweble.wom3.Wom3ExtLink; import org.sweble.wom3.Wom3Font; import org.sweble.wom3.Wom3For; import org.sweble.wom3.Wom3Heading; import org.sweble.wom3.Wom3HorizontalRule; import org.sweble.wom3.Wom3Image; import org.sweble.wom3.Wom3ImageCaption; import org.sweble.wom3.Wom3IntLink; import org.sweble.wom3.Wom3Italics; import org.sweble.wom3.Wom3List; import org.sweble.wom3.Wom3ListItem; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Nowiki; import org.sweble.wom3.Wom3OrderedList; import org.sweble.wom3.Wom3Paragraph; import org.sweble.wom3.Wom3Pre; import org.sweble.wom3.Wom3Redirect; import org.sweble.wom3.Wom3Ref; import org.sweble.wom3.Wom3Repl; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Section; import org.sweble.wom3.Wom3Small; import org.sweble.wom3.Wom3Span; import org.sweble.wom3.Wom3Strike; import org.sweble.wom3.Wom3Strong; import org.sweble.wom3.Wom3Sub; import org.sweble.wom3.Wom3Subst; import org.sweble.wom3.Wom3Sup; import org.sweble.wom3.Wom3Table; import org.sweble.wom3.Wom3TableBody; import org.sweble.wom3.Wom3TableCaption; import org.sweble.wom3.Wom3TableCell; import org.sweble.wom3.Wom3TableHeaderCell; import org.sweble.wom3.Wom3TableRow; import org.sweble.wom3.Wom3Teletype; import org.sweble.wom3.Wom3Text; import org.sweble.wom3.Wom3Title; import org.sweble.wom3.Wom3Underline; import org.sweble.wom3.Wom3UnorderedList; import de.fau.cs.osr.utils.WrappedException; public class FixWomRtd extends FixWomRtdBase { // private static final String LIST_PREFIXES = "*#:;"; public enum ListTypeEnum { // Render as HTML list items HTML_LIST, // Try to render as native if possible PRERENDER, } private final WikiConfig wikiConfig; private int inInlineBlock = 0; // private String curListPrefix = ""; private boolean inSemiPre; // private ListTypeEnum inListType; // ========================================================================= public FixWomRtd(WikiConfig wikiConfig) { this.wikiConfig = wikiConfig; } // ========================================================================= public static Wom3Node process(WikiConfig wikiConfig, Wom3Node wom) { new FixWomRtd(wikiConfig).go(wom); return wom; } // ========================================================================= // Containers and other nodes without RTD information public void visit(Wom3Document document) { dispatch((Wom3Node) document.getDocumentElement()); } public void visit(Wom3Articles articles) { iterate(articles); } public void visit(Wom3Article article) { iterate(article); } public void visit(Wom3Body body) { iterate(body); } public void visit(Wom3Title title) { iterate(title); } // ========================================================================= // Other nodes without RTD information public void visit(Wom3Redirect redirect) { // Invisible, don't descend } // ========================================================================= // Nodes which will be restored to HTML elements public void visit(Wom3Div div) { restoreHtmlRtd(div); } public void visit(Wom3Blockquote bq) { restoreHtmlRtd(bq); } public void visit(Wom3Center center) { restoreHtmlRtd(center); } public void visit(Wom3Span span) { restoreHtmlRtd(span); } public void visit(Wom3Break br) { restoreHtmlRtd(br); } public void visit(Wom3Sub sub) { restoreHtmlRtd(sub); } public void visit(Wom3Sup sup) { restoreHtmlRtd(sup); } public void visit(Wom3Cite cite) { restoreHtmlRtd(cite); } public void visit(Wom3Strong strong) { restoreHtmlRtd(strong); } public void visit(Wom3Emphasize em) { restoreHtmlRtd(em); } public void visit(Wom3Small small) { restoreHtmlRtd(small); } public void visit(Wom3Big big) { restoreHtmlRtd(big); } public void visit(Wom3Font font) { restoreHtmlRtd(font); } public void visit(Wom3Code code) { restoreHtmlRtd(code); } public void visit(Wom3Underline u) { restoreHtmlRtd(u); } public void visit(Wom3Strike strike) { restoreHtmlRtd(strike); } public void visit(Wom3Teletype tt) { restoreHtmlRtd(tt); } private void restoreHtmlRtd(Wom3ElementNode e) { // TODO: Implement! if (!startsWithRtd(e)) { // This can happen if the HTML tag was generated by the tree fixer... // throw new UnsupportedOperationException(); } fixNewlinesBeforeElement(e, false); iterate(e); } // ========================================================================= // HTML/Native nodes public void visit(Wom3HorizontalRule hr) { // TODO: Implement! if (!startsWithRtd(hr)) throw new UnsupportedOperationException(); fixNewlinesBeforeElement(hr, true /*TODO: Compute correctly!*/); iterate(hr); } public void visit(Wom3Bold b) { // TODO: Implement! if (!startsWithRtd(b)) throw new UnsupportedOperationException(); fixNewlinesBeforeElement(b, false); iterate(b); } public void visit(Wom3Italics i) { // TODO: Implement! if (!startsWithRtd(i)) throw new UnsupportedOperationException(); fixNewlinesBeforeElement(i, false); iterate(i); } // ========================================================================= // Normalize text nodes public void visit(Wom3Text text) { String content = text.getTextContent(); // stripDangerousWhitespace() also updates the wiki markup if (!(text.getParentNode() instanceof Wom3Nowiki) && !(text.getParentNode() instanceof Wom3Pre)) { String stripped = stripDangerousWhitespace(text, content); if (stripped != content) { if (stripped.isEmpty()) { Wom3Node next = text.getNextSibling(); text.getParentNode().removeChild(text); continueAfterDelete(next); } else text.setTextContent(stripped); } } } public void visit(Wom3Rtd rtd) { String content = rtd.getTextContent(); /* String stripped = stripDangerousWhitespace(rtd, content); if (stripped != content) rtd.setTextContent(stripped); appendWm(stripped); */ appendWm(content); } /** * Reduces more than two newlines to one newline if inside a paragraph to * prevent the paragraph from being split into two paragraphs. * * Makes sure that there are no spaces at the beginning of a line if not * inside a "semi" pre environment. */ private String stripDangerousWhitespace(Wom3Node node, String text) { int newlines = getNewlineCount(); boolean atStartOfP = false; if (inInlineBlock > 0) { atStartOfP = isAtStartOfParagraph(node); if (newlines > 1 && !atStartOfP) { removePrecedingNewlines(node, newlines - 1); newlines = 1; } if (newlines > 0 && hadSpaceAfterLastNewline()) removePrecedingSpace(node); } Wom3Node last = node; String stripped = null; int l = text.length(); int firstNewline = -1; boolean hadSpaceSinceNl = false; for (int i = 0; i < l; ++i) { char ch = text.charAt(i); switch (ch) { case '\n': ++newlines; hadSpaceSinceNl = false; if (firstNewline == -1) firstNewline = i; break; case ' ': case '\t': hadSpaceSinceNl = true; break; default: { if ((inInlineBlock > 0 && newlines > 1 && !atStartOfP) || (!inSemiPre && newlines > 0 && hadSpaceSinceNl)) { // TODO: Why are "too many newlines" and "has space after newline and before text" // treated the same? the fixes should be different, right? Remove too many newlines, but only remove the space, not the newlines as well... int from = firstNewline + 1; int count = i - from; text = text.substring(0, from) + text.substring(i); i -= count; l = text.length(); switch (ch) { case '*': case '#': case ':': case ';': { // Wrap these in tags when encountered at line start if (!hadSpaceSinceNl) { // Everything in front of the dangerous character has // has been processed and can be committed (to the // original node or to a new node) String checked = text.substring(0, i); if (stripped == null) stripped = checked; else if (!checked.isEmpty()) last = insertTextAfterNoMerge(last, checked); appendWm(checked); // Protected and insert the dangerous character last = insertNowikiAfter(last, String.valueOf(ch)); // Process the rest text = text.substring(i + 1); l = text.length(); i = 0; } } } } newlines = 0; firstNewline = -1; hadSpaceSinceNl = false; break; } } } // If we only removed stuff from "text" we return "text". If we had to // emit additional nodes, "stripped" will be != null and contain the // text that goes in the original node if (stripped == null) { appendWm(text); return text; } else { // wiki markup was already updated return stripped; } } // ========================================================================= public void visit(Wom3Nowiki nowiki) { if (!startsWithRtd(nowiki)) { prependRtd(nowiki, "<" + nowiki.getTagName() + ">"); appendRtd(nowiki, ""); } fixNewlinesBeforeElement(nowiki, false); for (Wom3Node child : nowiki) { if (child instanceof Wom3Text) { // The content of a nowiki node is not subject to further // processing. appendWm(child.getTextContent()); } else { dispatch(child); } } } public void visit(Wom3Comment comment) { // TODO: Implement! if (!startsWithRtd(comment)) throw new UnsupportedOperationException(); // Invisible to parser, don't descend! // The comment's prefix and suffix are also invisible to the parser! // TODO: If the comment is preceded and followed by a newline (which // are not already part of its prefix/suffix we have to add newlines // to the prefix and suffix! Otherwise the newlines in front and after // the comment will be parsed as prefix and suffix by the parser and // therefore disappear! } // ========================================================================= // Table public void visit(Wom3Table table) { // TODO: Implement! /* Extremely tricky: As with lists we have to find out if this is a * native or an HTML table. If we're dealing with an HTML table, * whitespace in between elements (tr, td, ...) will cause big * headaches. */ if (!startsWithRtd(table)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } fixNewlinesBeforeElement(table, true /*TODO: Compute correctly*/); iterate(table); } public void visit(Wom3TableCaption caption) { // TODO: Implement! if (!startsWithRtd(caption)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } // TODO: We're not trimming any whitespace yet since we have no clue how // tables and whitespace behave iterate(caption); } public void visit(Wom3TableBody body) { // TODO: Implement! if (!startsWithRtd(body)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } // TODO: We're not trimming any whitespace yet since we have no clue how // tables and whitespace behave iterate(body); } public void visit(Wom3TableRow row) { // TODO: Implement! if (!startsWithRtd(row)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } // TODO: We're not trimming any whitespace yet since we have no clue how // tables and whitespace behave iterate(row); } public void visit(Wom3TableHeaderCell header) { // TODO: Implement! if (!startsWithRtd(header)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } // TODO: We're not trimming any whitespace yet since we have no clue how // tables and whitespace behave iterate(header); } public void visit(Wom3TableCell cell) { // TODO: Implement! if (!startsWithRtd(cell)) { // TODO: Happens ... //throw new UnsupportedOperationException(); } // TODO: We're not trimming any whitespace yet since we have no clue how // tables and whitespace behave iterate(cell); } // ========================================================================= // Section & Heading public void visit(Wom3Section section) { // Has no RTD information fixNewlinesBeforeElement(section, true); iterate(section); } public void visit(Wom3Heading heading) { // TODO: Implement! if (!startsWithRtd(heading)) throw new UnsupportedOperationException(); /* TODO: Tricky: Trimming might be necessary in case the heading is an * HTML element! */ iterate(heading); } // ========================================================================= // Paragraph public void visit(Wom3Paragraph p) { ++inInlineBlock; // Always check RTD around a paragraph. Changing other nodes can always // lead to slight changes in the number of surrounding newlines // A paragraph needs two newlines in front of it if it follows another // element. It needs none and tolerates one newline in front of it at // the start of the page. // TODO: Consider paragraph with bottom gap in front! // If this paragraph is using HTML syntax and no top or bottom gap is // set the rules for gaps between block elements in general apply. if (hasHtmlTagRtd(p)) { if (p.getTopGap() == 0 && p.getBottomGap() == 0) { fixNewlinesBeforeElement(p, false); iterate(p); // TODO: Sure we don't have to fix the bottom gap? --inInlineBlock; return; } else { // Otherwise remove the HTML tag RTD p.removeChild(p.getFirstChild()); p.removeChild(p.getLastChild()); } } int haveNewlines = getNewlineCount(); if (isAtPageStart()) { if (haveNewlines > 1) removePrecedingNewlines(p, haveNewlines - 1); } else { if (haveNewlines > 2) removePrecedingNewlines(p, haveNewlines - 2); else if (haveNewlines < 2) { // Not true: // Well, we usually only need one newline between block elements // but if the preceding block element is a non-HTML paragraph we // need two newlines /* ... */ // New truth: // We always need two newlines in front of a non-HTML paragraph. // Only if it's the first paragraph in some container (section, // table cell, ...) we need only one. /* int needNewlines = 2; if (isFirstInContainer(p)) needNewlines = 1; */ // Even better truth: int needNewlines = 2; Wom3Node pnws = getPrecedingNonWsNode(p); if (!(pnws instanceof Wom3Paragraph)) { if ((pnws != null && isNonHtmlBlockElement(pnws)) || isFirstInContainer(p)) needNewlines = 1; } if (haveNewlines < needNewlines) addPrecedingTextNewlines(p, needNewlines - haveNewlines); } } // We only fix the top gap. The bottom gap has to be fixed by elements // that come after the paragraph (see trimNewlinesBeforeElement()) Wom3Node text0 = getFirstTextNode(p); if (text0 != null) assureStartWithEnoughNewlines(text0, p.getTopGap()); else if (p.getTopGap() > 0) insertTextBefore(p.getFirstChild(), genNewlines(p.getTopGap())); iterate(p); // TODO: Sure we don't have to fix the bottom gap? --inInlineBlock; } // ========================================================================= // Definition list public void visit(Wom3DefinitionList list) { // TODO: Implement /* Really tricky: if there's no RTD information we don't know if this is * a HTML list or a native list. Maybe we should first render the list * items and find out if a) they have HTML or native RTD information or * b) are not suitable for a native list. What's more we have to trim * whitespace in between list items if the list is done using HTML tags. */ //fixNewlinesBeforeElement(list, true /*TODO: Compute correctly*/); iterate(list); } public void visit(Wom3DefinitionListTerm term) { ++inInlineBlock; // TODO: Implement // TODO: Tricky: Might require trimming when HTML element! iterate(term); --inInlineBlock; } public void visit(Wom3DefinitionListDef def) { ++inInlineBlock; // TODO: Implement // TODO: Tricky: Might require trimming when HTML element! iterate(def); --inInlineBlock; } // ========================================================================= // Ordered/Unordered list public void visit(Wom3OrderedList list) { processList(list, "#"); } public void visit(Wom3UnorderedList list) { processList(list, "*"); } private void processList(Wom3List list, String bulletType) { //fixNewlinesBeforeElement(list, true); iterate(list); // ListTypeEnum oldInListType = inListType; // String oldListLevel = curListPrefix; // // // If a list starts with HTML RTD we assume the RTD is properly // // formatted and we treat the list like any other block element. // if (hasHtmlTagRtd(list)) // { // inListType = ListTypeEnum.HTML_LIST; // curListPrefix = ""; // fixNewlinesBeforeElement(list, false); // iterate(list); // } // else // { // // If a list is not an HTML list it does not have RTD (the list! the // // children are a different story). We also won't added RTD unless // // we are forced to render a HTML list and if we do render an HTML // // list it won't have newlines. Therefore, trimNewlines... should // // work here. // // fixNewlinesBeforeElement(list, true); // // // Remember markup position before the children were rendered. // int wmPosBeforeChildren = getWmPos(); // boolean needHtmlList = false; // // // We fix the list items first and see if they can be formatted as // // native wiki markup list or if it has to be an HTML list. // inListType = ListTypeEnum.PRERENDER; // curListPrefix += bulletType; // for (Wom3Node child : list) // { // if (child instanceof Wom3ListItem) // { // int wmPosBeforeListItem = getWmPos(); // isHtmlListItem = true; // dispatch(child); // if (hasHtmlTagRtd(child) || countNewlinesSince(wmPosBeforeListItem) > 1) // { // needHtmlList = true; // break; // } // } // else // { // dispatch(child); // } // } // // if (needHtmlList) // { // // Reformat whole list // inListType = ListTypeEnum.HTML_LIST; // curListPrefix = ""; // discardWm(wmPosBeforeChildren); // // prependText(list, "\n"); // prependRtd(list, "<" + list.getTagName() + ">"); // appendRtd(list, ""); // // iterate(list); // } // else // // The list was completey rendered as native list in the PRERENDER // // trial run. No need to do it again. // ; // } // inListType = oldInListType; // curListPrefix = oldListLevel; } // // TODO: Use me ... // private boolean isHtmlListItem = false; public void visit(Wom3ListItem li) { ++inInlineBlock; //fixNewlinesBeforeElement(li, true); iterate(li); // if (hasHtmlTagRtd(li)) // { // fixNewlinesBeforeElement(li, false); // iterate(li); // // // After iterating over our children let the parent list know that // // this is an HTML list item // isHtmlListItem = true; // } // else if (inListType == ListTypeEnum.HTML_LIST) // { // // Remove any old RTD first // Wom3Rtd rtd0 = getFirstRtdNode(li); // if (rtd0 != null) // { // li.removeChild(rtd0); // Wom3Rtd rtd1 = getLastRtdNode(li); // if (rtd1 != null) // // rtd1 may be null for the last list item in a list. // li.removeChild(rtd1); // } // // // Add new HTML RTD // prependText(li, "\n"); // prependRtd(li, "<" + li.getTagName() + ">"); // appendRtd(li, ""); // // // Treat like any other element // fixNewlinesBeforeElement(li, false); // // iterate(li); // // // After iterating over our children let the parent list know that // // this is an HTML list item (unnecessary, in HTML_LIST mode the // // parent list knows anyway // isHtmlListItem = true; // } // else // { // // If we're not forced to render as HTML we simply render as native // // and don't check if native is an option. The parent list will do // // that for us afterwards and re-render the list if HTML should // // be necessary. // // // Each list item is only allowed to have one newline at the end. // // There can only be a gap of newlines between native list items // // if would they would violate this rule. If they do violate that // // rule the list will re-render as HTML anyway and HTML list items // // make sure that there is no such gap. // // // TODO: I think this is missing: fixNewlinesBeforeElement(li, true); // // Wom3Node lastLi = null; // // // Fix prefix // Wom3Rtd rtd0 = getFirstRtdNode(li); // if (rtd0 != null) // { // // We have a prefix (or at least RTD), update it if necessary // String prefix = rtd0.getTextContent(); // int lastBullet = lastIndexOfOneOf(prefix, LIST_PREFIXES); // if (lastBullet == -1) // // that's ok // ; // lastBullet += 1; // String ws = prefix.substring(lastBullet, prefix.length()); // String newPrefix = curListPrefix + ws; // // if (!newPrefix.equals(prefix)) // { // rtd0.setTextContent(newPrefix); // // // TODO: Why inside the (rtd0 != null) if? // // TODO: Probably doesn't work for list nested more than once? // // If a surrounding list was dissolved the last RTD of the // // last list item might be unwanted // // lastLi = findLastChildOfType(li.getParentNode(), Wom3ListItem.class); // // if (lastLi == li) // // { // // Wom3Rtd last = getLastRtdNode(li); // // if (last != null) // // li.removeChild(last); // // } // } // } // else // { // // We don't have RTD at all, generate it // prependRtd(li, curListPrefix + " "); // } // // iterate(li); // // if (getNewlineCount() < 1) // { // // The last list item does not need to add a newline // if (lastLi == null) // lastLi = findLastChildOfType(li.getParentNode(), Wom3ListItem.class); // if (lastLi != li) // appendRtdAfterProcessing(li, genNewlines(1)); // } // } --inInlineBlock; } // private String gatherAncestorListItemPrefix(Wom3Node li) // { // String prefix = ""; // Wom3Node list = li.getParentNode(); // Wom3Node listContainer = list.getParentNode(); // while (listContainer != null) // { // if (!((listContainer instanceof Wom3ListItem) // || (listContainer instanceof Wom3DefinitionListTerm) // || (listContainer instanceof Wom3DefinitionListDef))) // break; // // The list items list is again child of a list item (c) // // Wom3Node prev = getPrecedingNonWsNode(list); // if (prev != null) // break; // // Our list is the first item in the containing list item (c) // // Wom3Rtd rtd0 = getFirstRtdNode(listContainer); // String containerPrefix = rtd0.getTextContent(); // if (rtd0 == null || lastIndexOfOneOf(containerPrefix, LIST_PREFIXES) == -1) // break; // // The containing list item (c) has a native list prefix // // prefix = containerPrefix.trim() + prefix; // li = listContainer; // } // return prefix; // } // ========================================================================= // A pre element public void visit(Wom3Pre pre) { // TODO: Implement! /* Tricky: We have to check if this is a
       tag extension (which then 
      		 * would contain a  node as well) or a whitespace prefixed pre
      		 * paragraph.
      		 */
      		if (!startsWithRtd(pre) && !startsWithText(pre))
      			throw new UnsupportedOperationException();
      
      		fixNewlinesBeforeElement(pre, false /*TODO: Compute correctly!*/);
      
      		Wom3Nowiki nowiki = findFirstChildOfType(pre, Wom3Nowiki.class);
      		if (nowiki == null)
      		{
      			iterate(pre);
      		}
      		else
      		{
      			// The  contens are invisible. Also the  is 
      			// synthetic and should not get RTD attached
      			for (Wom3Node c : pre)
      			{
      				if (c != nowiki)
      					dispatch(c);
      			}
      		}
      	}
      
      	// =========================================================================
      	// Internal and external links and images
      
      	public void visit(Wom3IntLink link)
      	{
      		fixNewlinesBeforeElement(link, false);
      
      		if (!startsWithRtd(link))
      		{
      			prependRtd(link, "[[" + link.getTarget());
      			Wom3Title title = link.getLinkTitle();
      			if (title != null && !startsWithRtd(title))
      				prependRtd(title, "|");
      			appendRtd(link, "]]");
      		}
      
      		iterate(link);
      	}
      
      	public void visit(Wom3ExtLink link)
      	{
      		fixNewlinesBeforeElement(link, false);
      
      		// TODO: Implement!
      		if (!startsWithRtd(link))
      			throw new UnsupportedOperationException();
      
      		iterate(link);
      	}
      
      	public void visit(Wom3Image image)
      	{
      		// TODO: Implement!
      		if (!startsWithRtd(image))
      			throw new UnsupportedOperationException();
      
      		fixNewlinesBeforeElement(image, false);
      		iterate(image);
      	}
      
      	public void visit(Wom3ImageCaption caption)
      	{
      		// TODO: Implement!
      		if (!startsWithRtd(caption))
      			throw new UnsupportedOperationException();
      
      		iterate(caption);
      	}
      
      	// =========================================================================
      	// WOM incompatible elements that have been substituted
      
      	public void visit(Wom3Subst subst)
      	{
      		Wom3For for_ = subst.getFor();
      		if (for_.getFirstChild() instanceof Wom3Element)
      		{
      			String name = ((Wom3Element) for_.getFirstChild()).getLocalName();
      			if (name.equals("intlink"))
      			{
      				processSubstIntLink(subst);
      			}
      			else if (name.equals("xml-entity-ref"))
      			{
      				processXmlEntityRef(subst);
      			}
      			else if (name.equals("xml-char-ref"))
      			{
      				processXmlCharRef(subst);
      			}
      			else
      			{
      				throw new InternalError("NYI: " + name);
      			}
      		}
      		else
      		{
      			throw new InternalError();
      		}
      	}
      
      	private void processXmlEntityRef(Wom3Subst subst)
      	{
      		// TODO Auto-generated method stub
      		iterate(subst.getFor());
      	}
      
      	private void processXmlCharRef(Wom3Subst subst)
      	{
      		// TODO Auto-generated method stub
      		iterate(subst.getFor());
      	}
      
      	private void processSubstIntLink(Wom3Subst subst)
      	{
      		fixNewlinesBeforeElement(subst, false);
      
      		Wom3Repl repl = subst.getRepl();
      		if (!repl.hasChildNodes()
      				|| !(findFirstNonWhitespaceNode(repl) instanceof Wom3IntLink))
      		{
      			unwrapIntlink(subst, repl);
      		}
      		else
      		{
      			Wom3IntLink replLink = findFirstChildOfType(repl, Wom3IntLink.class);
      			Wom3Title replTitle = replLink.getLinkTitle();
      			String replTarget = replLink.getTarget();
      
      			Wom3For for_ = subst.getFor();
      			Wom3Element forLink = findFirstChildOfType(for_, Wom3Element.class);
      			String forTarget = forLink.getAttribute("target");
      			String forPrefix = forLink.getAttribute("prefix");
      			String forSuffix = forLink.getAttribute("postfix");
      			Wom3Title forTitle = findFirstChildOfType(forLink, Wom3Title.class);
      
      			String newTitle = stringifyTitle(replTitle, replTarget);
      
      			// Build the oldTitle using the new target as replacement in case 
      			// there is no title node.
      			String oldTitle = stringifyTitle(forPrefix, forTitle, forSuffix, forTarget);
      
      			if (!newTitle.equals(oldTitle))
      			{
      				// The title has changed => unwrap "repl/intlink", remove 
      				// "subst" and fix unwrapped intlink.
      
      				unwrapIntlink(subst, repl);
      			}
      			else
      			{
      				boolean update = false;
      				if (!replTarget.equals(forTarget))
      				{
      					// First normalize both targets!
      					PageTitle replTargetNl;
      					PageTitle forTargetNl;
      					try
      					{
      						replTargetNl = PageTitle.make(wikiConfig, replTarget);
      						forTargetNl = PageTitle.make(wikiConfig, forTarget);
      					}
      					catch (LinkTargetException e)
      					{
      						throw new WrappedException(e);
      					}
      
      					if (!replTargetNl.equals(forTargetNl))
      					{
      						// If the target changed and there was no title, we have 
      						// to create a title node with the old target name. In 
      						// this case we can drop the prefix/postfix and can then
      						// drop the whole  thing
      						if (forTitle == null)
      						{
      							unwrapIntlink(subst, repl);
      							return;
      						}
      
      						// The target has changed, fix target in  "for/e" and fix the
      						// RTD inforamtion.
      						forLink.setAttribute("target", replTarget);
      						update = true;
      					}
      				}
      
      				if (update || getFirstRtdNode(forLink) == null)
      					fixIntLink(forLink, forTarget, replTarget);
      
      				// Iterate children to update this.wt
      				iterate(forLink);
      			}
      		}
      	}
      
      	private void unwrapIntlink(Wom3Subst subst, Wom3Repl repl)
      	{
      		// The link was converted or removed.
      		// unwrap the "repl" and remove the whole "subst".
      
      		Wom3Node next = subst.getNextSibling();
      		moveChildrenInFrontOfXRemoveXAndAndProcess(repl, subst);
      		continueAfterDelete(next);
      	}
      
      	protected String stringifyTitle(Wom3Title replTitle, String target)
      	{
      		return (replTitle == null) ? target : stringifyChildren(replTitle);
      	}
      
      	protected String stringifyTitle(
      			String prefix,
      			Wom3Title title,
      			String postfix,
      			String target)
      	{
      		String t = (title == null) ? target : stringifyChildren(title);
      		if (prefix != null && !prefix.isEmpty())
      			t = prefix + t;
      		if (postfix != null && !postfix.isEmpty())
      			t = t + postfix;
      		return t;
      	}
      
      	private void fixIntLink(Wom3Element link, String oldTarget, String newTarget)
      	{
      		String prefix = link.getAttribute("prefix");
      		String suffix = link.getAttribute("postfix");
      
      		String rtd0Str = "[[" + newTarget;
      		if (prefix != null && !prefix.isEmpty())
      			rtd0Str = prefix + rtd0Str;
      
      		String rtd1Str = "]]";
      		if (suffix != null && !suffix.isEmpty())
      			rtd1Str = rtd1Str + suffix;
      
      		Wom3Rtd rtd0 = getFirstRtdNode(link);
      		if (rtd0 != null)
      		{
      			// There may or may not be a title in between.
      			Wom3Rtd rtd1 = getLastRtdNode(link);
      			if (rtd0 == rtd1)
      				rtd0Str += rtd1Str;
      			else
      				rtd1.setTextContent(rtd1Str);
      			rtd0.setTextContent(rtd0Str);
      		}
      		else
      		{
      			prependRtd(link, rtd0Str);
      			appendRtd(link, rtd1Str);
      		}
      
      		Wom3Title title = findFirstChildOfType(link, Wom3Title.class);
      		if (title != null && !startsWithRtd(title))
      			prependRtd(title, "|");
      	}
      
      	// =========================================================================
      
      	public void visit(Wom3Element e)
      	{
      		String name = e.getLocalName();
      		if (name.equals("tagext"))
      		{
      			processTagExt(e);
      		}
      		else if (name.equals("transclusion"))
      		{
      			processTransclusion(e);
      		}
      		else if (name.equals("xml-entity-ref"))
      		{
      			processXmlEntityRef(e);
      		}
      		else if (name.equals("xmlelement"))
      		{
      			processXmlElement(e);
      		}
      		else
      		{
      			// TODO: AAAHHH, Tu mal wat ...
      			//throw new InternalError("NYI: " + name);
      		}
      	}
      
      	private void processXmlElement(Wom3Element e)
      	{
      		iterate(e);
      	}
      
      	private void processXmlEntityRef(Wom3Element e)
      	{
      		iterate(e);
      	}
      
      	private void processTagExt(Wom3Element e)
      	{
      		// The stuff inside tag extensions is invisible to the parser
      		appendWm("<" + e.getAttribute("name") + "/>");
      	}
      
      	private void processTransclusion(Wom3Element e)
      	{
      		// The stuff inside transclusions is invisible to the parser
      		appendWm("{{N|...}}");
      	}
      
      	// =========================================================================
      
      	public void visit(Wom3Ref ref)
      	{
      		iterate(ref);
      	}
      
      	// =========================================================================
      
      	/**
      	 * (a) There must not be an amount of whitespace between two block elements
      	 * that would cause the parser to insert an empty paragraph. (b) There must
      	 * at least be one newline between two block elements. (c) If the upper
      	 * block element is a paragraph, the method must make sure that its bottom
      	 * gap is respected.
      	 */
      	private void fixNewlinesBeforeElement(Wom3ElementNode e, boolean needNewline)
      	{
      		int newlines = getNewlineCount();
      		int allowed = 2;
      		int required = 0;
      
      		// We need a newline (for example in front of a native wm list).
      		// Page start is an implicit newline
      		if (needNewline && !isAtPageStart())
      			required += 1;
      
      		if (isAtStartOfParagraph(e))
      		{
      			// At the start of a paragraph the paragraph made sure the top gap
      			// has the right size. We don't have to remove any spaces ourselves.
      			return;
      		}
      		else if (inInlineBlock > 0 && !needNewline)
      		{
      			// TODO: This is bullshit ... inInlineBlock is not a direct test.
      			// There could be non-inline block in between (
      ...) // TODO: I added !needNewline, don't know if that makes so much more // sense but should at least work for the
      ... case. // Inside an inline block (paragraph, table cell, ...) only one // newline is allowed, more would split text into paragraphs. allowed -= 1; } else { // If the previous node is a paragraph we have to respect its // bottom gap. Wom3Paragraph p = getPrecedingParagraph(e); if (p != null && p.getBottomGap() > 0) { allowed += p.getBottomGap(); required = allowed; } } if (newlines > allowed) { removePrecedingNewlines(e, newlines - allowed); } else if (newlines < required) { insertTextBeforeAfterProcessing(e, genNewlines(required - newlines)); } } } FixWomRtdBase.java000066400000000000000000000535551335270560400430210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.sweble.wom3.Wom3Attribute; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.Wom3Element; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Nowiki; import org.sweble.wom3.Wom3Paragraph; import org.sweble.wom3.Wom3Repl; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Text; import org.sweble.wom3.Wom3XmlText; import org.sweble.wom3.swcadapter.utils.AnalyzingStringBuffer; import org.sweble.wom3.util.Wom3Visitor; import org.w3c.dom.Node; import de.fau.cs.osr.utils.StringTools; public class FixWomRtdBase extends Wom3Visitor { private final AnalyzingStringBuffer wm = new AnalyzingStringBuffer(); private static Map elements; private static Set blockElementSet; private Wom3Document doc; // ========================================================================= public FixWomRtdBase() { synchronized (FixWomRtdBase.class) { if (elements == null) { elements = new HashMap(); for (ElementProperties e : ElementProperties.values()) elements.put(e.toString(), e); } if (blockElementSet == null) { blockElementSet = new HashSet(); blockElementSet.add("address"); blockElementSet.add("blockquote"); blockElementSet.add("center"); //blockElementSet.add("del"); blockElementSet.add("div"); blockElementSet.add("dl"); blockElementSet.add("section"); blockElementSet.add("hr"); //blockElementSet.add("ins"); blockElementSet.add("ol"); blockElementSet.add("p"); blockElementSet.add("pre"); blockElementSet.add("table"); blockElementSet.add("ul"); } } } // ========================================================================= protected static ElementProperties getInfo(String tagName) { return elements.get(tagName); } // ========================================================================= @Override protected Wom3Node before(Wom3Node node) { doc = (Wom3Document) node.getOwnerDocument(); if (doc == null) doc = (Wom3Document) node; return super.before(node); } @Override protected Object after(Wom3Node node, Object result) { //Assert.assertEquals(womToWmFast(node), wm.toString()); return super.after(node, result); } public String womToWmFast(Wom3Node wom) { StringBuilder sb = new StringBuilder(); restoreWmFromWomFast(sb, wom); return sb.toString(); } private void restoreWmFromWomFast(StringBuilder sb, Wom3Node wom) { if (wom instanceof Wom3Rtd || wom instanceof Wom3Text) { sb.append(wom.getTextContent()); return; } if ((wom instanceof Wom3Repl) || (wom instanceof Wom3Comment)) { // Ignore stuff return; } if (wom instanceof Wom3Element) { Wom3Element element = (Wom3Element) wom; String name = element.getLocalName(); if (name.equals("tagext")) { // The stuff inside tag extensions is invisible to the parser sb.append("<" + element.getAttribute("name") + "/>"); return; } else if (name.equals("transclusion")) { // The stuff inside transclusions is invisible to the parser sb.append("{{N|...}}"); return; } // Fall through } for (Wom3Node c : wom) restoreWmFromWomFast(sb, c); } // ========================================================================= protected void appendWm(String text) { wm.append(text); } protected void discardWm(int wmPosBeforeChildren) { wm.discard(wmPosBeforeChildren); } private void rollbackWm(int count) { wm.rollback(count); } // ========================================================================= /** * Used to turn node content into a string (basically an XML document). This * can become necessary to compare subtrees in a WOM document when text * around that subtree has changed. An example is the comparison of link * titles (see stringifyTitle). */ protected String stringifyChildren(Wom3Node node) { if (node == null) throw new NullPointerException(); StringBuilder b = new StringBuilder(); for (Wom3Node c = node.getFirstChild(); c != null; c = c.getNextSibling()) stringify(b, c); return b.toString(); } private void stringify(StringBuilder b, Wom3Node node) { if (node == null) throw new NullPointerException(); if (node instanceof Wom3Rtd) return; boolean isText = node instanceof Wom3Text; if (!isText) { b.append('<'); b.append(node.getNodeName()); stringifyAttrs(b, node.getWomAttributes()); b.append('>'); for (Wom3Node c = node.getFirstChild(); c != null; c = c.getNextSibling()) stringify(b, c); b.append("'); } else { String text = node.getTextContent(); if (text != null) b.append(text); } } private void stringifyAttrs( StringBuilder b, Collection attributes) { if (attributes.isEmpty()) return; ArrayList attrs = new ArrayList(attributes); Collections.sort(attrs, new Comparator() { @Override public int compare(Wom3Attribute o1, Wom3Attribute o2) { return o1.getName().compareTo(o2.getName()); } }); for (Wom3Attribute attr : attrs) { b.append(' '); b.append(attr.getName()); b.append("=\""); b.append(attr.getValue()); b.append('"'); } } // ========================================================================= protected int lastIndexOfOneOf(String haystack, String needleSet) { int len = haystack.length(); for (int i = len - 1; i >= 0; --i) { char ch = haystack.charAt(i); if (needleSet.indexOf(ch) != -1) return i; } return -1; } // ========================================================================= protected Wom3Text text(String text) { Wom3Text node = (Wom3Text) doc.createElementNS(Wom3Node.WOM_NS_URI, "text"); node.setTextContent(text); return node; } /** * Inserts a <text> node in front of node {@code n}. If there is already * a <text> node in front of {@code n}, the text is appended to that * <text> node. */ protected void insertTextBefore(Wom3Node n, String text) { Wom3Node prev = n.getPreviousSibling(); if (prev instanceof Wom3Text) { prev.setTextContent( prev.getTextContent() + text); } else { n.getParentNode().insertBefore(text(text), n); } } /** * Like {@code insertTextBefore()} but assumes that the RTD node was already * processed and adds the newlines to the wiki markup manually. */ protected void insertTextBeforeAfterProcessing(Wom3Node n, String text) { insertTextBefore(n, text); appendWm(text); } /** * Prepends an <text> node to the children of node {@code n}. If the * first child of node {@code n} is already an <text> node, the text is * prepended to that <text> node. */ protected void prependText(Wom3Node n, String text) { Wom3Node first = n.getFirstChild(); if (first instanceof Wom3Text) { first.setTextContent( text + first.getTextContent()); } else { prependNode(n, text(text)); } } /** * Appends a <text> node to the children of node {@code n}. If the last * child of node {@code n} is already a <text> node, the text is appended * to that <text> node. */ protected void appendText(Wom3Node n, String text) { Wom3Node last = n.getLastChild(); if (last instanceof Wom3Text) { last.setTextContent( last.getTextContent() + text); } else { n.appendChild(text(text)); } } /** * Inserts a <text> node after node {@code n}. */ protected Wom3Node insertTextAfterNoMerge(Wom3Node n, String text) { Wom3Node next = n.getNextSibling(); Wom3Text newText = text(text); if (next != null) n.getParentNode().insertBefore(newText, next); else n.getParentNode().appendChild(newText); return newText; } protected Wom3Nowiki nowiki(String text) { Wom3Nowiki node = (Wom3Nowiki) doc.createElementNS(Wom3Node.WOM_NS_URI, "nowiki"); node.appendChild(text(text)); return node; } /** * Inserts a <nowiki> node after node {@code n}. If {@code n} is a nowiki * node the given text will be appended to the xml text within {@code n}. */ protected Wom3Node insertNowikiAfter(Wom3Node n, String text) { Wom3Nowiki newNowiki; if (n instanceof Wom3Nowiki) { newNowiki = (Wom3Nowiki) n; n.setTextContent( n.getTextContent() + text); } else { Wom3Node next = n.getNextSibling(); newNowiki = nowiki(text); if (next != null) n.getParentNode().insertBefore(newNowiki, next); else n.getParentNode().appendChild(newNowiki); return newNowiki; } return newNowiki; } protected Wom3Rtd rtd(String text) { Wom3Rtd node = (Wom3Rtd) doc.createElementNS(Wom3Node.WOM_NS_URI, "rtd"); node.setTextContent(text); return node; } /** * Inserts an <rtd> node in front of node {@code n}. If there is already * a <rtd> node in front of {@code n}, the text is appended to that * <rtd> node. */ protected void insertRtdBefore(Wom3Node n, String rtd) { Wom3Node prev = n.getPreviousSibling(); if (prev instanceof Wom3Rtd) { prev.setTextContent( prev.getTextContent() + rtd); } else { n.getParentNode().insertBefore(rtd(rtd), n); } } /** * Prepends an <rtd> node to the children of node {@code n}. If the first * child of node {@code n} is already an <rtd> node, the text is * prepended to that <rtd> node. * * @return */ protected Wom3Rtd prependRtd(Wom3Node n, String rtd) { Wom3Node first = n.getFirstChild(); if (first instanceof Wom3Rtd) { first.setTextContent( rtd + first.getTextContent()); return (Wom3Rtd) first; } else { Wom3Rtd rtdNode = rtd(rtd); prependNode(n, rtdNode); return rtdNode; } } /** * Appends an <rtd> node to the children of node {@code n}. If the last * child of node {@code n} is already an <rtd> node, the text is appended * to that <rtd> node. */ protected void appendRtd(Wom3Node n, String rtd) { Wom3Node last = n.getLastChild(); if (last instanceof Wom3Rtd) { last.setTextContent( last.getTextContent() + rtd); } else { n.appendChild(rtd(rtd)); } } /** * Like {@code appendRtd()} but assumes that the RTD node was already * processed and adds the newlines to the wiki markup manually. */ protected void appendRtdAfterProcessing(Wom3Node node, String newlines) { appendRtd(node, newlines); appendWm(newlines); } /** * Inserts the given {@code child} node as first child of node * {@code parent}. */ protected void prependNode(Wom3Node parent, Wom3Node child) { Wom3Node first = parent.getFirstChild(); if (first != null) { parent.insertBefore(child, first); } else { parent.appendChild(child); } } /** * This method assures that there is a certain number of newlines in an RTD * element. This method assumes that the contents of the RTD element have * not yet been committed to the wiki markup buffer. */ protected void assureStartWithEnoughNewlines(Wom3Node n, int topGap) { String text = n.getTextContent(); int len = text.length(); int count = 0; outer: for (int i = 0; i < len; ++i) { switch (text.charAt(i)) { case '\n': count += 1; if (count > topGap) { int to1 = i; inner: for (++i; i < len; ++i) { switch (text.charAt(i)) { case '\n': case ' ': case '\t': break; default: break inner; } } int from2 = i; n.setTextContent(text.substring(0, to1) + text.substring(from2)); return; } break; case ' ': case '\t': break; default: break outer; } } if (count < topGap) n.setTextContent(genNewlines(topGap - count) + text); } /** * Adds newlines text in front of node {@code current} and, assuming that * the everything in front of {@code current} has been processed already, * also prints newlines to wiki markup. */ protected void addPrecedingTextNewlines(Wom3Node current, int count) { String missing = genNewlines(count); insertTextBefore(current, missing); appendWm(missing); } /** * Remove newlines from RTD and text nodes preceding node {@code current} in * document order (not restricted to siblings!). */ protected void removePrecedingNewlines(Wom3Node current, int count) { if (count <= 0) throw new IllegalArgumentException(); int rollback = 0; Wom3Node n = current; while (true) { // Go to previous node in document order. n = toPreviousXmlTextInDocumentOrder(n); Wom3Node p = n.getParentNode(); if ((p instanceof Wom3Text) || (p instanceof Wom3Rtd)) { String text = n.getTextContent(); int l = text.length(); for (int i = l - 1; i >= 0; --i, ++rollback) { char ch = text.charAt(i); switch (ch) { case '\n': count -= 1; if (count <= 0) { if (i == 0) p.getParentNode().removeChild(p); else ((Wom3XmlText) n).deleteData(i, l - i); rollbackWm(rollback + 1); return; } break; case ' ': case '\t': break; default: throw new RuntimeException("Should not happen"); } } // The whole text/RTD node has to go. Since these nodes have // already been processed we can remove them without confusing // the visitation process p.getParentNode().removeChild(p); } } } /** * @param container * has to be a descendant of {@code x}. */ protected void moveChildrenInFrontOfXRemoveXAndAndProcess( Wom3Node container, Wom3Node x) { Wom3Node parent = x.getParentNode(); Wom3Node first = container.getFirstChild(); Wom3Node last = container.getLastChild(); for (Wom3Node c = first; c != null;) { Wom3Node n = c.getNextSibling(); container.removeChild(c); parent.insertBefore(c, x); c = n; } parent.removeChild(x); if (first != null) { for (Wom3Node c = first;; c = c.getNextSibling()) { dispatch(c); if (c == last) break; } } } protected void clearChildren(Wom3Element n) { for (Wom3Node c = n.getFirstChild(); c != null;) { Wom3Node remove = c; c = c.getNextSibling(); n.removeChild(remove); } } /** * Remove newlines from RTD and text nodes preceding node {@code current} in * document order (not restricted to siblings!). */ protected void removePrecedingSpace(Wom3Node node) { // TODO: Implement throw new UnsupportedOperationException(); } protected String genNewlines(int n) { return StringTools.strrep('\n', n); } // ========================================================================= protected int getNewlineCount() { return wm.newlineCount(); } protected boolean isAtPageStart() { return wm.noContentYet(); } protected boolean hadSpaceAfterLastNewline() { return wm.hadSpaceAfterLastNewline(); } protected int countNewlinesSince(int wmPosBeforeListItem) { return wm.countNewlinesSince(wmPosBeforeListItem); } protected int getWmPos() { return wm.length(); } // ========================================================================= private Wom3XmlText toPreviousXmlTextInDocumentOrder(Wom3Node n) { while (true) { // Go up until we find a node with a previous sibling Wom3Node p; while (true) { if (n == null) System.err.println(); p = n.getPreviousSibling(); if (p != null) break; n = n.getParentNode(); } // Found the predecessor (not necessary a sibling), now go down to the // last descendant of the predecessor while (p.hasChildNodes()) p = p.getLastChild(); if (p.getNodeType() == Node.TEXT_NODE) return (Wom3XmlText) p; // Not an xml text node, search continues ... n = p; } } /** * Searches among the children, not the descendants! */ protected T findFirstChildOfType( Wom3Node container, Class type) { for (Wom3Node c = container.getFirstChild(); c != null; c = c.getNextSibling()) { if (type.isInstance(c)) { @SuppressWarnings("unchecked") T tmp = (T) c; return tmp; } } return null; } /** * Searches among the children, not the descendants! */ protected T findLastChildOfType( Wom3Node container, Class type) { for (Wom3Node c = container.getLastChild(); c != null; c = c.getPreviousSibling()) { if (type.isInstance(c)) { @SuppressWarnings("unchecked") T tmp = (T) c; return tmp; } } return null; } protected boolean hasHtmlTagRtd(Wom3Node n) { Wom3Node rtd = getFirstRtdNode(n); if (rtd == null) return false; String text = rtd.getTextContent(); if (text.length() < 3) return false; if (text.charAt(0) != '<') return false; if (text.lastIndexOf('>') == -1) return false; return true; } protected Wom3Rtd getFirstRtdNode(Wom3Node parent) { for (Wom3Node n = parent.getFirstChild(); n != null; n = n.getNextSibling()) { if (n instanceof Wom3Rtd) return (Wom3Rtd) n; else if (!((n instanceof Wom3Comment) || isElementContentWhitespace(n))) return null; } return null; } protected Wom3Text getFirstTextNode(Wom3Node parent) { for (Wom3Node n = parent.getFirstChild(); n != null; n = n.getNextSibling()) { if (n instanceof Wom3Text) return (Wom3Text) n; else if (!((n instanceof Wom3Comment) || isElementContentWhitespace(n))) return null; } return null; } protected Wom3Rtd getLastRtdNode(Wom3Node parent) { for (Wom3Node n = parent.getLastChild(); n != null; n = n.getPreviousSibling()) { if (n instanceof Wom3Rtd) return (Wom3Rtd) n; else if (!((n instanceof Wom3Comment) || isElementContentWhitespace(n))) return null; } return null; } protected Wom3Node findFirstNonWhitespaceNode(Wom3Node parent) { for (Wom3Node n = parent.getFirstChild(); n != null; n = n.getNextSibling()) { if (!isElementContentWhitespace(n)) return n; } return null; } protected boolean isElementContentWhitespace(Wom3Node n) { /* TODO: Revisit once Wom3XmlText.isElementContentWhitespace() is * implemented. */ return (n instanceof Wom3XmlText) && StringTools.isWhitespace(((Wom3XmlText) n).getTextContent()); } protected boolean isAtStartOfParagraph(Wom3Node node) { for (Wom3Node prev;; node = prev) { prev = node.getPreviousSibling(); if (prev == null) break; else if ((prev instanceof Wom3Rtd) || (prev instanceof Wom3Comment) || isTextWhitespace(prev)) continue; else return false; } Wom3Node p = node.getParentNode(); return (p instanceof Wom3Paragraph)/* || (p instanceof Wom3TableCaption) || (p instanceof Wom3TableCellBase)*/; } /** * Returns the paragraph node that is a preceding sibling of node {@code n}. * If another non RTD/WS/comment node comes first the search is aborted. */ protected Wom3Paragraph getPrecedingParagraph(Wom3Node n) { for (Wom3Node prev = n.getPreviousSibling(); prev != null; prev = prev.getPreviousSibling()) { if (prev instanceof Wom3Paragraph) return (Wom3Paragraph) prev; else if (!((prev instanceof Wom3Rtd) || (prev instanceof Wom3Comment) || isTextWhitespace(prev))) break; } return null; } /** * Returns true if node is the first non RTD/WS/comment node in a body or * similar container. */ protected boolean isFirstInContainer(Wom3Node n) { for (Wom3Node prev = n.getPreviousSibling(); prev != null; prev = prev.getPreviousSibling()) { if (!((prev instanceof Wom3Rtd) || (prev instanceof Wom3Comment) || isTextWhitespace(prev))) return false; } /* Wom3Node parent = n.getParentNode(); return ((parent instanceof Wom3Body)); */ return true; } protected Wom3Node getPrecedingNonWsNode(Wom3Node n) { for (Wom3Node prev = n.getPreviousSibling(); prev != null; prev = prev.getPreviousSibling()) { if (!((prev instanceof Wom3Rtd) || (prev instanceof Wom3Comment) || isTextWhitespace(prev))) return prev; } return null; } protected boolean isNonHtmlBlockElement(Wom3Node pnws) { return (blockElementSet.contains(pnws.getNodeName()) && !hasHtmlTagRtd(pnws)); } protected boolean isTextWhitespace(Wom3Node n) { return (n instanceof Wom3Text) && StringTools.isWhitespace(n.getTextContent()); } /** * Checks if a nodes first starts with a <rtd> node, irgnoring <text> * nodes in the search. */ protected boolean startsWithRtd(Wom3Node n) { for (Wom3Node c : n) { if (c instanceof Wom3Rtd) return true; if (!((c instanceof Wom3Text) || c instanceof Wom3Comment || isElementContentWhitespace(c))) return false; } return false; } /** * Checks if a nodes first starts with a <text> node, irgnoring <text> * nodes in the search. */ protected boolean startsWithText(Wom3Node n) { for (Wom3Node c : n) { if (c instanceof Wom3Text) return true; if (!(c instanceof Wom3Comment || isElementContentWhitespace(c))) return false; } return false; } } HtmlElement.java000066400000000000000000000021171335270560400425450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; public enum HtmlElement { ABBR, B, BIG, BLOCKQUOTE, BR, CAPTION, CENTER, CITE, CODE, DD, DEL, DFN, DIV, DL, DT, EM, FONT, HR, I, INS, KBD, LI, OL, P, PRE, S, SAMP, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TBODY, TD, TH, TR, TT, U, UL, VAR; } nodes/000077500000000000000000000000001335270560400405735ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapterSwcArg.java000066400000000000000000000020501335270560400426210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcArg extends SwcNode, Wom3ElementNode { boolean hasName(); SwcName getName(); SwcName setName(SwcName name); SwcValue getValue(); SwcValue setValue(SwcValue value); } SwcAttr.java000066400000000000000000000020521335270560400430240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcAttr extends SwcNode, Wom3ElementNode { SwcName getName(); SwcName setName(SwcName name); boolean hasValue(); SwcValue getValue(); SwcValue setValue(SwcValue value); } SwcBody.java000066400000000000000000000015461335270560400430160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; public interface SwcBody extends SwcNode { } SwcGarbage.java000066400000000000000000000016461335270560400434520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcGarbage extends SwcNode, Wom3ElementNode { } SwcName.java000066400000000000000000000016431335270560400427770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcName extends SwcNode, Wom3ElementNode { } SwcNode.java000066400000000000000000000020661335270560400430040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3Node; /** * MWW30 == MediaWiki Wom 3.0 */ public interface SwcNode extends Wom3Node { public static final String MWW_NS_URI = "http://sweble.org/schema/mww30"; public static final String DEFAULT_MWW_NS_PREFIX = "mww"; } SwcParam.java000066400000000000000000000020611335270560400431520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcParam extends SwcNode, Wom3ElementNode { SwcName getName(); SwcName setName(SwcName name); boolean hasDefault(); SwcValue getDefault(); SwcValue setDefault(SwcValue value); } SwcTagExtBody.java000066400000000000000000000016511335270560400441300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcTagExtBody extends SwcNode, Wom3ElementNode { } SwcTagExtension.java000066400000000000000000000023201335270560400445200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import java.util.Collection; import org.sweble.wom3.Wom3ElementNode; public interface SwcTagExtension extends SwcNode, Wom3ElementNode { String getName(); String setName(String name); boolean hasBody(); SwcTagExtBody getBody(); SwcTagExtBody setBody(SwcTagExtBody body); SwcAttr getXmlAttribute(int index); SwcAttr getXmlAttribute(String name); Collection getXmlAttributes(); } SwcTransclusion.java000066400000000000000000000021471335270560400446030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import java.util.Collection; import org.sweble.wom3.Wom3ElementNode; public interface SwcTransclusion extends SwcNode, Wom3ElementNode { SwcName getName(); SwcName setName(SwcName name); SwcArg getArgument(int index); SwcArg getArgument(String name); Collection getArguments(); } SwcValue.java000066400000000000000000000016441335270560400431740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import org.sweble.wom3.Wom3ElementNode; public interface SwcValue extends SwcNode, Wom3ElementNode { } SwcXmlElement.java000066400000000000000000000022721335270560400441700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes; import java.util.Collection; import org.sweble.wom3.Wom3ElementNode; public interface SwcXmlElement extends SwcNode, Wom3ElementNode { String getTag(); String setTag(String name); boolean hasBody(); SwcBody getBody(); SwcBody setBody(SwcBody body); SwcAttr getXmlAttribute(int index); SwcAttr getXmlAttribute(String name); Collection getXmlAttributes(); } impl/000077500000000000000000000000001335270560400415345ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodesArgImpl.java000066400000000000000000000065631335270560400437440ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcArg; import org.sweble.wom3.swcadapter.nodes.SwcName; import org.sweble.wom3.swcadapter.nodes.SwcValue; public class ArgImpl extends BackboneSwcElement implements SwcArg { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(MWW_NS_URI, "name"), childDesc(MWW_NS_URI, "value", ChildDescriptor.REQUIRED) }; private SwcName name; private SwcValue value; // ========================================================================= public ArgImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "arg"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcName) this.name = (SwcName) added; if (added instanceof SwcValue) this.value = (SwcValue) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.name) this.name = null; if (removed == this.value) this.value = null; } // ========================================================================= @Override public boolean hasName() { return this.name != null; } @Override public SwcName setName(SwcName name) { return (SwcName) replaceOrInsertBeforeOrAppend(this.name, this.value, name, false); } @Override public SwcName getName() { return this.name; } @Override public SwcValue setValue(SwcValue value) { return (SwcValue) replaceOrAppend(this.value, value, true); } @Override public SwcValue getValue() { return this.value; } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } AttrImpl.java000066400000000000000000000065721335270560400441450ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcAttr; import org.sweble.wom3.swcadapter.nodes.SwcName; import org.sweble.wom3.swcadapter.nodes.SwcValue; public class AttrImpl extends BackboneSwcElement implements SwcAttr { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(MWW_NS_URI, "name", ChildDescriptor.REQUIRED), childDesc(MWW_NS_URI, "value") }; private SwcName name; private SwcValue value; // ========================================================================= public AttrImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "attr"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcName) this.name = (SwcName) added; if (added instanceof SwcValue) this.value = (SwcValue) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.name) this.name = null; if (removed == this.value) this.value = null; } // ========================================================================= @Override public boolean hasValue() { return this.value != null; } @Override public SwcName setName(SwcName name) { return (SwcName) replaceOrInsertBeforeOrAppend(this.name, this.value, name, false); } @Override public SwcName getName() { return this.name; } @Override public SwcValue setValue(SwcValue value) { return (SwcValue) replaceOrAppend(this.value, value, true); } @Override public SwcValue getValue() { return this.value; } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } BackboneSwcContainer.java000066400000000000000000000027411335270560400464270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcNode; @SuppressWarnings("serial") public abstract class BackboneSwcContainer extends BackboneSwcElement implements SwcNode { public BackboneSwcContainer(DocumentImpl owner) { super(owner); } @Override protected void allowsInsertion(Backbone prev, Backbone child) { // Restrict accordingly } @Override protected void allowsRemoval(Backbone child) { // Usually container elements allow removal of any element } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { // Restrict accordingly } } BackboneSwcElement.java000066400000000000000000000031471335270560400460770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.BackboneWomElement; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcNode; @SuppressWarnings("serial") public abstract class BackboneSwcElement extends BackboneWomElement implements SwcNode { public BackboneSwcElement(DocumentImpl owner) { super(owner); } @Override public final String getWomName() { return getSwcName(); } @Override public final String getNamespaceURI() { return SwcNode.MWW_NS_URI; } public static ChildDescriptor childDesc(String tag) { return childDesc(SwcNode.MWW_NS_URI, tag, 0); } public static ChildDescriptor childDesc(String tag, int flags) { return childDesc(SwcNode.MWW_NS_URI, tag, flags); } public abstract String getSwcName(); } BodyImpl.java000066400000000000000000000030701335270560400441160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcBody; public class BodyImpl extends BackboneSwcContainer implements SwcBody { private static final long serialVersionUID = 1L; // ========================================================================= public BodyImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "body"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } DefaultSwcNodeImplementations.java000066400000000000000000000056421335270560400503460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import org.sweble.wom3.Wom3ElementNode; import org.sweble.wom3.swcadapter.nodes.SwcNode; public class DefaultSwcNodeImplementations { private static final List impls; public static final class SwcNodeImplInfo { private final String namespaceUri; private final String localPart; private final Class clazz; public SwcNodeImplInfo( String namespaceUri, String localPart, Class clazz) { super(); this.namespaceUri = namespaceUri; this.localPart = localPart; this.clazz = clazz; } public Class getImpl() { return clazz; } public String getLocalPart() { return localPart; } public String getNamespaceUri() { return namespaceUri; } } static { // TODO: Still missing: xml-char-ref, xml-entity-ref, redirect, mww:intlink ArrayList implsTmp = new ArrayList(); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "arg", ArgImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "attr", AttrImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "body", BodyImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "name", NameImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "garbage", GarbageImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "param", ParamImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "tagext", TagExtensionImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "tagext-body", TagExtBodyImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "transclusion", TransclusionImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "value", ValueImpl.class)); implsTmp.add(new SwcNodeImplInfo(SwcNode.MWW_NS_URI, "xmlelement", XmlElementImpl.class)); impls = Collections.unmodifiableList(implsTmp); } public static Collection get() { return impls; } } GarbageImpl.java000066400000000000000000000031071335270560400445520ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcGarbage; public class GarbageImpl extends BackboneSwcContainer implements SwcGarbage { private static final long serialVersionUID = 1L; // ========================================================================= public GarbageImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "garbage"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } NameImpl.java000066400000000000000000000030701335270560400441010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcName; public class NameImpl extends BackboneSwcContainer implements SwcName { private static final long serialVersionUID = 1L; // ========================================================================= public NameImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "name"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } ParamImpl.java000066400000000000000000000072041335270560400442640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcName; import org.sweble.wom3.swcadapter.nodes.SwcParam; import org.sweble.wom3.swcadapter.nodes.SwcValue; public class ParamImpl extends BackboneSwcElement implements SwcParam { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(MWW_NS_URI, "name", ChildDescriptor.REQUIRED), childDesc(MWW_NS_URI, "default"), childDesc(MWW_NS_URI, "garbage", ChildDescriptor.MULTIPLE) }; private SwcName name; private SwcValue default_; // ========================================================================= public ParamImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "param"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcName) this.name = (SwcName) added; if (added instanceof SwcValue) this.default_ = (SwcValue) added; } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.name) this.name = null; if (removed == this.default_) this.default_ = null; } // ========================================================================= @Override public SwcName setName(SwcName name) { return (SwcName) replaceOrInsertBeforeOrAppend(this.name, this.default_, name, false); } @Override public SwcName getName() { return this.name; } @Override public boolean hasDefault() { return this.default_ != null; } @Override public SwcValue setDefault(SwcValue value) { Wom3Node nodeAfterName = (this.name == null) ? getFirstChild() : this.name.getNextSibling(); return (SwcValue) replaceOrInsertBeforeOrAppend( this.default_, nodeAfterName, value, true); } @Override public SwcValue getDefault() { return this.default_; } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } TagExtBodyImpl.java000066400000000000000000000043131335270560400452340ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcTagExtBody; public class TagExtBodyImpl extends BackboneSwcContainer implements SwcTagExtBody { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(Wom3Node.WOM_NS_URI, "text", ChildDescriptor.MULTIPLE) }; // ========================================================================= public TagExtBodyImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "tagext-body"; } @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } TagExtensionImpl.java000066400000000000000000000134171335270560400456370ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.AttributeVerifiers; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.impl.NativeAndStringValuePair; import org.sweble.wom3.swcadapter.nodes.SwcAttr; import org.sweble.wom3.swcadapter.nodes.SwcNode; import org.sweble.wom3.swcadapter.nodes.SwcTagExtBody; import org.sweble.wom3.swcadapter.nodes.SwcTagExtension; import org.sweble.wom3.swcadapter.utils.StringConversionException; import org.sweble.wom3.swcadapter.utils.SwcTextUtils; public class TagExtensionImpl extends BackboneSwcElement implements SwcTagExtension { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(SwcNode.MWW_NS_URI, "attr", ChildDescriptor.MULTIPLE), childDesc(SwcNode.MWW_NS_URI, "body") }; private Map argByName; private ArrayList argByIndex; private TagExtBodyImpl body; // ========================================================================= public TagExtensionImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "tagext"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcTagExtBody) { this.body = (TagExtBodyImpl) added; } else if (added instanceof SwcAttr) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.body) this.body = null; if (removed instanceof SwcAttr) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } // ========================================================================= @Override public String getName() { return getStringAttr("name"); } @Override public String setName(String name) { return setStringAttr(ATTR_DESC_NAME, "name", name); } // ========================================================================= @Override public boolean hasBody() { return this.body != null; } @Override public TagExtBodyImpl getBody() { return this.body; } @Override public SwcTagExtBody setBody(SwcTagExtBody body) { return (SwcTagExtBody) replaceOrAppend(this.body, body, false); } @Override public SwcAttr getXmlAttribute(int index) { if (argByIndex == null) { argByIndex = new ArrayList(); for (SwcAttr arg : getXmlAttributes()) argByIndex.add((AttrImpl) arg); } return argByIndex.get(index); } @Override public SwcAttr getXmlAttribute(String name) { if (argByName == null) { argByName = new HashMap(); for (SwcAttr arg : getXmlAttributes()) { try { String resolvedName = SwcTextUtils.womToText(arg.getName()).trim(); argByName.put(resolvedName, (AttrImpl) arg); } catch (StringConversionException e) { // We simply don't add un-resolved argument names to the index. } } } return argByName.get(name); } @Override public Collection getXmlAttributes() { // TODO: Use view instead of static excerpt! ArrayList args = new ArrayList(); for (Backbone i = getFirstChild(); i != null; i = i.getNextSibling()) { if (i instanceof SwcAttr) args.add((SwcAttr) i); } return Collections.unmodifiableCollection(args); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_NAME = new AttrDescName(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceURL, String localName, String qualifiedName) { return getAttrDescStrict(namespaceURL, localName, qualifiedName, "name", ATTR_DESC_NAME); } public static final class AttrDescName extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.XML_NAME.verifyAndConvert(parent, verified); } } } TransclusionImpl.java000066400000000000000000000114061335270560400457070ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcArg; import org.sweble.wom3.swcadapter.nodes.SwcName; import org.sweble.wom3.swcadapter.nodes.SwcTransclusion; import org.sweble.wom3.swcadapter.utils.StringConversionException; import org.sweble.wom3.swcadapter.utils.SwcTextUtils; public class TransclusionImpl extends BackboneSwcElement implements SwcTransclusion { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(MWW_NS_URI, "name", ChildDescriptor.REQUIRED), childDesc(MWW_NS_URI, "arg", ChildDescriptor.MULTIPLE) }; private NameImpl name; private Map argByName; private ArrayList argByIndex; // ========================================================================= public TransclusionImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "transclusion"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcName) { this.name = (NameImpl) added; } else if (added instanceof SwcArg) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.name) { this.name = null; } else if (removed instanceof SwcArg) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } // ========================================================================= @Override public SwcName getName() { return this.name; } @Override public SwcName setName(SwcName name) { return (SwcName) replaceOrInsertBeforeOrAppend( this.name, getFirstChild(), name, true); } @Override public SwcArg getArgument(int index) { if (argByIndex == null) { argByIndex = new ArrayList(); for (SwcArg arg : getArguments()) argByIndex.add((ArgImpl) arg); } return argByIndex.get(index); } @Override public SwcArg getArgument(String name) { if (argByName == null) { argByName = new HashMap(); for (SwcArg arg : getArguments()) { try { if (arg.hasName()) { String resolvedName = SwcTextUtils.womToText(arg.getName()).trim(); argByName.put(resolvedName, (ArgImpl) arg); } } catch (StringConversionException e) { // We simply don't add un-resolved argument names to the index. } } } return argByName.get(name); } @Override public Collection getArguments() { // TODO: Use view instead of static excerpt! ArrayList args = new ArrayList(); for (Backbone i = getFirstChild(); i != null; i = i.getNextSibling()) { if (i instanceof SwcArg) args.add((SwcArg) i); } return Collections.unmodifiableCollection(args); } // ========================================================================= @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } ValueImpl.java000066400000000000000000000030751335270560400443020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.swcadapter.nodes.SwcValue; public class ValueImpl extends BackboneSwcContainer implements SwcValue { private static final long serialVersionUID = 1L; // ========================================================================= public ValueImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "value"; } @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceUri, String localName, String qualifiedName) { return getAttrDescStrict(namespaceUri, localName, qualifiedName); } } XmlElementImpl.java000066400000000000000000000132251335270560400452760ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/nodes/impl/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.nodes.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.sweble.wom3.impl.AttributeDescriptor; import org.sweble.wom3.impl.AttributeVerifiers; import org.sweble.wom3.impl.Backbone; import org.sweble.wom3.impl.ChildDescriptor; import org.sweble.wom3.impl.DocumentImpl; import org.sweble.wom3.impl.NativeAndStringValuePair; import org.sweble.wom3.swcadapter.nodes.SwcAttr; import org.sweble.wom3.swcadapter.nodes.SwcBody; import org.sweble.wom3.swcadapter.nodes.SwcXmlElement; import org.sweble.wom3.swcadapter.utils.StringConversionException; import org.sweble.wom3.swcadapter.utils.SwcTextUtils; public class XmlElementImpl extends BackboneSwcElement implements SwcXmlElement { private static final long serialVersionUID = 1L; private static final ChildDescriptor[] BODY_DESCRIPTOR = { childDesc(MWW_NS_URI, "attr", ChildDescriptor.MULTIPLE), childDesc(MWW_NS_URI, "body") }; private Map argByName; private ArrayList argByIndex; private BodyImpl body; // ========================================================================= public XmlElementImpl(DocumentImpl owner) { super(owner); } // ========================================================================= @Override public String getSwcName() { return "xmlelement"; } // ========================================================================= @Override protected void allowsInsertion(Backbone prev, Backbone child) { checkInsertion(prev, child, BODY_DESCRIPTOR); } @Override protected void allowsRemoval(Backbone child) { checkRemoval(child, BODY_DESCRIPTOR); } @Override protected void allowsReplacement(Backbone oldChild, Backbone newChild) { checkReplacement(oldChild, newChild, BODY_DESCRIPTOR); } @Override public void childInserted(Backbone prev, Backbone added) { if (added instanceof SwcBody) { this.body = (BodyImpl) added; } else if (added instanceof SwcAttr) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } @Override public void childRemoved(Backbone prev, Backbone removed) { if (removed == this.body) this.body = null; if (removed instanceof SwcAttr) { // TODO: More efficient implementation possible this.argByIndex = null; this.argByName = null; } } // ========================================================================= @Override public String getTag() { return getStringAttr("tag"); } @Override public String setTag(String tag) { return setStringAttr(ATTR_DESC_NAME, "tag", tag); } // ========================================================================= @Override public boolean hasBody() { return this.body != null; } @Override public BodyImpl getBody() { return this.body; } @Override public BodyImpl setBody(SwcBody body) { return (BodyImpl) replaceOrAppend(this.body, body, false); } @Override public SwcAttr getXmlAttribute(int index) { if (argByIndex == null) { argByIndex = new ArrayList(); for (SwcAttr arg : getXmlAttributes()) argByIndex.add((AttrImpl) arg); } return argByIndex.get(index); } @Override public SwcAttr getXmlAttribute(String name) { if (argByName == null) { argByName = new HashMap(); for (SwcAttr arg : getXmlAttributes()) { try { String resolvedName = SwcTextUtils.womToText(arg.getName()).trim(); argByName.put(resolvedName, (AttrImpl) arg); } catch (StringConversionException e) { // We simply don't add un-resolved argument names to the index. } } } return argByName.get(name); } @Override public Collection getXmlAttributes() { // TODO: Use view instead of static excerpt! ArrayList args = new ArrayList(); for (Backbone i = getFirstChild(); i != null; i = i.getNextSibling()) { if (i instanceof SwcAttr) args.add((SwcAttr) i); } return Collections.unmodifiableCollection(args); } // ========================================================================= protected static final AttributeDescriptor ATTR_DESC_NAME = new AttrDescName(); @Override protected AttributeDescriptor getAttributeDescriptor( String namespaceURL, String localName, String qualifiedName) { return getAttrDescStrict(namespaceURL, localName, qualifiedName, "tag", ATTR_DESC_NAME); } public static final class AttrDescName extends AttributeDescriptor { @Override public int getFlags() { return makeFlags( false /* removable */, false /* readOnly */, false /* customAction */, Normalization.NON_CDATA); } @Override public boolean verifyAndConvert( Backbone parent, NativeAndStringValuePair verified) { return AttributeVerifiers.XML_NAME.verifyAndConvert(parent, verified); } } } utils/000077500000000000000000000000001335270560400406235ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapterAnalyzingStringBuffer.java000066400000000000000000000071701335270560400457500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.utils; public class AnalyzingStringBuffer { private final StringBuffer sb; private boolean onlyWhitespaceSoFar = true; private int newlinesSinceLastNonWhitespace = 0; // ========================================================================= public AnalyzingStringBuffer() { this.sb = new StringBuffer(); } public AnalyzingStringBuffer(int capacity) { this.sb = new StringBuffer(capacity); } public AnalyzingStringBuffer(String str) { this.sb = new StringBuffer(str); } public AnalyzingStringBuffer(CharSequence seq) { this.sb = new StringBuffer(seq); } // ========================================================================= public int length() { return sb.length(); } public char charAt(int index) { return sb.charAt(index); } public StringBuffer append(String str) { checkString(str); return sb.append(str); } public void discard(int wmPosBeforeChildren) { sb.delete(wmPosBeforeChildren, sb.length()); recountNewlinesSinceLastNonWhitespace(); } public void rollback(int count) { int length = sb.length(); sb.delete(length - count, length); recountNewlinesSinceLastNonWhitespace(); } @Override public String toString() { return sb.toString(); } // ========================================================================= public int newlineCount() { return newlinesSinceLastNonWhitespace; } public boolean hadNewline() { return newlineCount() > 0; } public boolean noContentYet() { return onlyWhitespaceSoFar; } public boolean hadSpaceAfterLastNewline() { int l = sb.length() - 1; if (l < 0) throw new RuntimeException("Should not happen!"); switch (sb.charAt(l)) { case ' ': case '\t': return true; case '\n': return false; default: throw new RuntimeException("Should not happen!"); } } public int countNewlinesSince(int wmPosBeforeListItem) { int count = 0; int length = sb.length(); for (int i = wmPosBeforeListItem; i < length; ++i) { if (sb.charAt(i) == '\n') count += 1; } return count; } private void recountNewlinesSinceLastNonWhitespace() { newlinesSinceLastNonWhitespace = 0; for (int i = sb.length() - 1; i >= 0; --i) { char ch = sb.charAt(i); switch (ch) { case '\n': ++newlinesSinceLastNonWhitespace; break; case ' ': case '\t': break; default: return; } } onlyWhitespaceSoFar = true; } // ========================================================================= protected void checkString(String str) { int len = str.length(); for (int i = 0; i < len; ++i) { char ch = str.charAt(i); switch (ch) { case '\n': ++newlinesSinceLastNonWhitespace; break; case ' ': case '\t': break; default: onlyWhitespaceSoFar = false; newlinesSinceLastNonWhitespace = 0; break; } } } } StringConversionException.java000066400000000000000000000021461335270560400466640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.utils; import org.sweble.wom3.Wom3Node; public class StringConversionException extends Exception { private static final long serialVersionUID = 1L; private final Wom3Node node; public StringConversionException(Wom3Node node) { this.node = node; } public Wom3Node getNode() { return node; } } SwcTextUtils.java000066400000000000000000000052411335270560400441120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.utils; import org.sweble.wom3.Wom3Comment; import org.sweble.wom3.Wom3DocumentFragment; import org.sweble.wom3.Wom3Node; import org.sweble.wom3.Wom3Rtd; import org.sweble.wom3.Wom3Text; import org.sweble.wom3.Wom3XmlComment; import org.sweble.wom3.Wom3XmlText; import org.sweble.wom3.swcadapter.nodes.SwcValue; public class SwcTextUtils { public static String womToText(Wom3Node node) throws StringConversionException { Wom3Node child = node.getFirstChild(); if (child == null) return ""; if (child == node.getLastChild()) { if (isIgnorable(child)) { return ""; } else if (isContainer(child)) { return womToText(new StringBuilder(), child).toString(); } else if (isText(child)) { return child.getTextContent(); } else { throw new StringConversionException(child); } } else { return womToText(new StringBuilder(), node).toString(); } } protected static StringBuilder womToText(StringBuilder sb, Wom3Node node) throws StringConversionException { for (Wom3Node child : node) { if (isIgnorable(child)) { continue; } else if (isContainer(child)) { for (Wom3Node containerChild : child) womToText(sb, containerChild); } else if (isText(child)) { sb.append(child.getTextContent()); } else { throw new StringConversionException(child); } } return sb; } protected static boolean isText(Wom3Node child) { return (child instanceof Wom3Text); } protected static boolean isContainer(Wom3Node child) { return (child instanceof Wom3DocumentFragment) || (child instanceof SwcValue); } protected static boolean isIgnorable(Wom3Node child) { return (child instanceof Wom3Rtd) || (child instanceof Wom3Comment) || (child instanceof Wom3XmlComment) || ((child instanceof Wom3XmlText) && (((Wom3XmlText) child).isElementContentWhitespace())); } } WtWom3Toolbox.java000066400000000000000000000132311335270560400441750ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/main/java/org/sweble/wom3/swcadapter/utils/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter.utils; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.joda.time.DateTime; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.ExpansionCallback; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.utils.WtEngineToolbox; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.Wom3Document; import org.sweble.wom3.swcadapter.AstToWomConverter; import org.sweble.wom3.util.SaxonWomTransformations; import org.sweble.wom3.util.Wom3Toolbox; import org.w3c.dom.Element; import de.fau.cs.osr.utils.StringTools; public class WtWom3Toolbox extends WtEngineToolbox { private static File resourceNameToFile(Class clazz, String testFile) { URL wmUrl = clazz.getResource(testFile); if (wmUrl != null) return new File(StringTools.decodeUsingDefaultCharset(wmUrl.getFile())); return null; } // ========================================================================= // WM <-> AST <-> WOM helpers // ========================================================================= public Artifacts wmToWom(String wmPath, String charset) throws LinkTargetException, IOException, EngineException { File wmFile = resourceNameToFile(getClass(), wmPath); String title = FilenameUtils.getBaseName(wmFile.getName()); PageId pageId = makePageId(title); return wmToWom(wmFile, pageId, charset); } public Artifacts wmToWom(File wmFile, String charset) throws LinkTargetException, IOException, EngineException { String title = FilenameUtils.getBaseName(wmFile.getName()); PageId pageId = makePageId(title); return wmToWom(wmFile, pageId, charset); } public Artifacts wmToWom(File inputFile, PageId pageId, String charset) throws IOException, EngineException { return wmToWom(inputFile, FileUtils.readFileToString(inputFile, charset), pageId); } public Artifacts wmToWom(File inputFile, String wikitext, PageId pageId) throws EngineException { TestExpansionCallback expCallback = new TestExpansionCallback(); return wmToWom(inputFile, wikitext, pageId, expCallback); } public Artifacts wmToWom( File inputFile, PageId pageId, ExpansionCallback callback, String charset) throws IOException, EngineException { return wmToWom(inputFile, FileUtils.readFileToString(inputFile, charset), pageId, callback); } public Artifacts wmToWom( File inputFile, String wikitext, PageId pageId, ExpansionCallback callback) throws EngineException { Artifacts a = new Artifacts(); a.wmFile = inputFile; a.pageId = pageId; a.wm = wikitext; a.ast = wmToAst(pageId, a.wm, callback); a.womDoc = astToWom(pageId, a.ast); return a; } public Artifacts astToWom( EngProcessedPage ast, PageId pageId, ExpansionCallback callback) { Artifacts a = new Artifacts(); a.wmFile = null; a.pageId = pageId; a.wm = null; a.ast = ast; a.womDoc = astToWom(pageId, a.ast); return a; } public Wom3Document astToWom(PageId pageId, EngProcessedPage ast) { Wom3Document womDoc = AstToWomConverter.convert( getWikiConfig().getParserConfig(), null, null, pageId.getTitle().getTitle(), "Mr. Tester", DateTime.parse("2012-12-07T12:15:30.000+01:00"), ast.getPage()); return womDoc; } /** * Requires dependency: * *
      	 *   <dependency>
      	 *     <groupId>net.sf.saxon</groupId>
      	 *     <artifactId>Saxon-HE</artifactId>
      	 *   </dependency>
      	 * 
      */ public String wmToWomXml(PageId pageId, String wm) throws EngineException { return SaxonWomTransformations.printWom(astToWom( pageId, wmToAst(pageId, wm))); } // ========================================================================= // WOM query & manipulation // ========================================================================= public static Wom3Document wrapMultipleArticles(Artifacts afs) { Wom3Document womDoc = Wom3Toolbox.createDocument("articles"); Element articles = womDoc.getDocumentElement(); Element article = afs.womDoc.getDocumentElement(); womDoc.adoptNode(article); articles.appendChild(article); return womDoc; } public static Wom3Document wrapMultipleArticles(Map afs) { Wom3Document womDoc = Wom3Toolbox.createDocument("articles"); Element articles = womDoc.getDocumentElement(); for (Artifacts a : afs.values()) { Element article = a.womDoc.getDocumentElement(); womDoc.adoptNode(article); articles.appendChild(article); } return womDoc; } // ========================================================================= public static final class Artifacts { public File wmFile; public PageId pageId; public String wm; public EngProcessedPage ast; public Wom3Document womDoc; } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/000077500000000000000000000000001335270560400315625ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/000077500000000000000000000000001335270560400325035ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/000077500000000000000000000000001335270560400332725ustar00rootroot00000000000000sweble/000077500000000000000000000000001335270560400344745ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/orgwom3/000077500000000000000000000000001335270560400353615ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/swebleswcadapter/000077500000000000000000000000001335270560400375165ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3BasicIntegrationTest.java000066400000000000000000000057301335270560400444530ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; /** * Tests if conversion from Wikitext to WOM (using an AST as intermediate * representation) works for all basic elements of Wikitext. The parsed Wikitext * is expanded. Some elements are also tested with an unexpanded AST. */ @RunWith(value = NamedParametrized.class) public class BasicIntegrationTest extends WtWom3IntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "basic-exp/wikitext"; private static final String EXPECTED_WOM_SUB_DIR = "basic-exp/wom"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public BasicIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= /** * Wikitext -( expansion )-> AST -> WOM == expected WOM? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_WOM_SUB_DIR) public void testConvertAstToWomAndCompareWithReferenceWom() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_WOM_SUB_DIR); } /** * Wikitext -( expansion )-> AST -> WOM -> Wikitext == original Wikitext? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + INPUT_SUB_DIR) public void testRecoverWikitextFromWomAndCompareWithInputWikitext() throws Exception { parsePrintExtractRtdAndCompare( inputFile, INPUT_SUB_DIR); } } BasicNoExpIntegrationTest.java000066400000000000000000000060261335270560400454240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; /** * Tests if conversion from Wikitext to WOM (using an AST as intermediate * representation) works for all basic elements of Wikitext. The parsed Wikitext * is expanded. Some elements are also tested with an unexpanded AST. */ @RunWith(value = NamedParametrized.class) public class BasicNoExpIntegrationTest extends WtWom3IntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "basic-no-exp/wikitext"; private static final String EXPECTED_WOM_SUB_DIR = "basic-no-exp/wom"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public BasicNoExpIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= /** * Wikitext -( no expansion )-> AST -> WOM == expected WOM? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_WOM_SUB_DIR) public void testConvertUnexpandedAstToWomAndCompareWithReferenceWom() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_WOM_SUB_DIR, null); } /** * Wikitext -( no expansion )-> AST -> WOM -> Wikitext == original Wikitext? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + INPUT_SUB_DIR) public void testRecoverWikitextFromUnexpandedWomAndCompareWithInputWikitext() throws Exception { parsePrintExtractRtdAndCompare( inputFile, INPUT_SUB_DIR, null); } } ComplexIntegrationTest.java000066400000000000000000000057111335270560400450400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestNameAnnotation; import de.fau.cs.osr.utils.TestResourcesFixture; /** * Tests if conversion from Wikitext to WOM (using an AST as intermediate * representation) works for complex Wikitext articles. The parsed Wikitext is * not expanded. */ @RunWith(value = NamedParametrized.class) public class ComplexIntegrationTest extends WtWom3IntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "complex-no-exp/wikitext"; private static final String EXPECTED_WOM_SUB_DIR = "complex-no-exp/wom"; // ========================================================================= @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ComplexIntegrationTest( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= /** * Wikitext -( no expansion )-> AST -> WOM == expected WOM? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + EXPECTED_WOM_SUB_DIR) public void testConvertAstToWomAndCompareWithReferenceWom() throws Exception { parsePrintAndCompare( inputFile, INPUT_SUB_DIR, EXPECTED_WOM_SUB_DIR, null); } /** * Wikitext -( no expansion )-> AST -> WOM -> Wikitext == original Wikitext? */ @Test @TestNameAnnotation(annotation = "Expected in dir: " + INPUT_SUB_DIR) public void testRecoverWikitextFromWomAndCompareWithInputWikitext() throws Exception { parsePrintExtractRtdAndCompare( inputFile, INPUT_SUB_DIR, null); } } CustomAstIntegrationTest.java000066400000000000000000000046061335270560400453550ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.util.Collections; import org.junit.Test; import org.sweble.wikitext.engine.nodes.EngPage; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.engine.nodes.EngineNodeFactory; import de.fau.cs.osr.ptk.common.Warning; /** * Tests if conversion from an AST to WOM works for special cases. */ public class CustomAstIntegrationTest extends WtWom3IntegrationTestBase { private static final String INPUT_SUB_DIR = "nopkg-custom/wikitext"; private static final String EXPECTED_WOM_SUB_DIR = "nopkg-custom/wom"; private final EngineNodeFactory nf; private EngPage page; private EngProcessedPage procPage; // ========================================================================= public CustomAstIntegrationTest() { super(getTestResourcesFixture()); this.nf = getWikiConfig().getNodeFactory(); this.page = nf.page(nf.list()); this.procPage = nf.processedPage( page, nf.logProcessingPass(), Collections. emptyList()); } // ========================================================================= @Test public void testIllegalUrlSyntaxShouldNotThrow() throws Exception { page.add(nf.url("", "//a-url-must-have-a-protocol")); runTest(); } // ========================================================================= private void runTest() throws Exception { File fakeInputFile = new File( new File(getResources().getBaseDirectory(), INPUT_SUB_DIR), "illegal-url-syntax"); convertPrintAndCompare( this.procPage, fakeInputFile, INPUT_SUB_DIR, EXPECTED_WOM_SUB_DIR); } } ManualTesting.java000066400000000000000000000104151335270560400431350ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.util.Collections; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; import org.sweble.wikitext.engine.PageId; import org.sweble.wom3.util.SaxonWomTransformations; import org.sweble.wom3.util.SaxonWomXPath; import org.sweble.wom3.util.Wom3Toolbox; import de.fau.cs.osr.utils.FileContent; import de.fau.cs.osr.utils.NamedParametrized; import de.fau.cs.osr.utils.TestResourcesFixture; @RunWith(value = NamedParametrized.class) public class ManualTesting extends WtWom3IntegrationTestBase { private static final String FILTER_RX = ".*?\\.wikitext"; private static final String INPUT_SUB_DIR = "nopkg-manual"; // ========================================================================= public static void main(String[] args) throws Exception { for (Object[] input : enumerateInputs()) { String title = (String) input[0]; TestResourcesFixture resources = (TestResourcesFixture) input[1]; File inputFile = (File) input[2]; ManualTesting test = new ManualTesting(title, resources, inputFile); test.runTests(); } } @Parameters public static List enumerateInputs() throws Exception { TestResourcesFixture resources = getTestResourcesFixture(); File dir = new File(resources.getBaseDirectory(), INPUT_SUB_DIR); if (!dir.exists() || !dir.isDirectory()) return Collections.emptyList(); return resources.gatherAsParameters(INPUT_SUB_DIR, FILTER_RX, false); } // ========================================================================= private final File inputFile; // ========================================================================= public ManualTesting( String title, TestResourcesFixture resources, File inputFile) { super(resources); this.inputFile = inputFile; } // ========================================================================= @Test public void runTests() throws Exception { FileContent inputFileContent = new FileContent(inputFile); Artifacts afs = parseArticle( inputFileContent.getContent(), inputFile.getAbsolutePath()); { String restoredWmFast = Wom3Toolbox.womToWmFast(afs.womDoc); File output = new File(inputFile.getName() + "-wm-from-wom-fast.wikitext"); FileUtils.writeStringToFile(output, restoredWmFast, "UTF8"); Assert.assertEquals(inputFileContent.getContent(), restoredWmFast); } { String restoredWmXPath = SaxonWomXPath.womToWmXPath(afs.womDoc); File output = new File(inputFile.getName() + "-wm-from-wom-xpath.wikitext"); FileUtils.writeStringToFile(output, restoredWmXPath, "UTF8"); Assert.assertEquals(inputFileContent.getContent(), restoredWmXPath); } } // ========================================================================= public Artifacts parseArticle(String source, String title) throws Exception { String fileTitle = FilenameUtils.getBaseName(inputFile.getName()); PageId pageId = makePageId(fileTitle); Artifacts afs = wmToWom(inputFile, pageId, null); { String ast = printAst(afs.ast); File output = new File(inputFile.getName() + "-ast.wikitext"); FileUtils.writeStringToFile(output, ast, "UTF8"); } String wom = SaxonWomTransformations.printWom(afs.womDoc); { File output = new File(inputFile.getName() + "-wom.wikitext"); FileUtils.writeStringToFile(output, wom, "UTF8"); } return afs; } } WtWom3IntegrationTestBase.java000066400000000000000000000140161335270560400453620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/java/org/sweble/wom3/swcadapter/** * Copyright 2011 The Open Source Research Group, * University of Erlangen-Nürnberg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.sweble.wom3.swcadapter; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.io.FilenameUtils; import org.sweble.wikitext.engine.EngineException; import org.sweble.wikitext.engine.ExpansionCallback; import org.sweble.wikitext.engine.PageId; import org.sweble.wikitext.engine.nodes.EngProcessedPage; import org.sweble.wikitext.parser.parser.LinkTargetException; import org.sweble.wom3.swcadapter.utils.WtWom3Toolbox; import org.sweble.wom3.util.SaxonWomTransformations; import org.sweble.wom3.util.SaxonWomXPath; import de.fau.cs.osr.utils.FileCompare; import de.fau.cs.osr.utils.TestResourcesFixture; import de.fau.cs.osr.utils.WrappedException; public class WtWom3IntegrationTestBase extends WtWom3Toolbox { private final TestResourcesFixture resources; // ========================================================================= protected static TestResourcesFixture getTestResourcesFixture() { try { File path = TestResourcesFixture.resourceNameToFile( WtWom3IntegrationTestBase.class, "/"); return new TestResourcesFixture(path); } catch (FileNotFoundException e) { throw new WrappedException(e); } } // ========================================================================= protected WtWom3IntegrationTestBase(TestResourcesFixture resources) { this.resources = resources; // For testing we don't want stuff to be removed getWikiConfig().getEngineConfig().setTrimTransparentBeforeParsing(false); } // ========================================================================= protected TestResourcesFixture getResources() { return resources; } // ========================================================================= public void convertPrintAndCompare( EngProcessedPage ast, File fakeInputFile, String inputSubDir, String expectedSubDir) throws IOException, LinkTargetException { ExpansionCallback callback = new TestExpansionCallback(); convertPrintAndCompare( ast, fakeInputFile, inputSubDir, expectedSubDir, callback); } public void parsePrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir) throws LinkTargetException, IOException, EngineException { ExpansionCallback callback = new TestExpansionCallback(); parsePrintAndCompare( inputFile, inputSubDir, expectedSubDir, callback); } /** * Parse Wikitext to an AST and convert this AST to a WOM tree. Print the * WOM tree as XML and compare with expected XML from file. */ public void parsePrintAndCompare( File inputFile, String inputSubDir, String expectedSubDir, ExpansionCallback callback) throws LinkTargetException, IOException, EngineException { String fileTitle = FilenameUtils.getBaseName(inputFile.getName()); PageId pageId = makePageId(fileTitle); Artifacts afs = wmToWom(inputFile, pageId, callback, "UTF8"); String actual = SaxonWomTransformations.printWom(afs.womDoc); File expectedFile = TestResourcesFixture.rebase( inputFile, inputSubDir, expectedSubDir, "wom.xml", true /* don't throw if file doesn't exist */); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } /** * Convert an AST to a WOM tree. Print the WOM tree as XML and compare with * expected XML from file. */ public void convertPrintAndCompare( EngProcessedPage ast, File fakeInputFile, String inputSubDir, String expectedSubDir, ExpansionCallback callback) throws IOException, LinkTargetException { PageId pageId = makePageId("-"); Artifacts afs = astToWom(ast, pageId, callback); String actual = SaxonWomTransformations.printWom(afs.womDoc); File expectedFile = TestResourcesFixture.rebase( fakeInputFile, inputSubDir, expectedSubDir, "wom.xml", true /* don't throw if file doesn't exist */); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(expectedFile, actual); } /** * Parse Wikitext to an AST and convert this AST to a WOM tree. Restore the * original Wiki from the WOM tree using an XPath expression. Compare the * resulting Wikitext with expected Wikitext from file. */ public void parsePrintExtractRtdAndCompare( File inputFile, String inputSubDir) throws LinkTargetException, IOException, EngineException { ExpansionCallback callback = new TestExpansionCallback(); parsePrintExtractRtdAndCompare( inputFile, inputSubDir, callback); } /** * Parse Wikitext to an AST and convert this AST to a WOM tree. Restore the * original Wiki from the WOM tree using an XPath expression. Compare the * resulting Wikitext with expected Wikitext from file. */ public void parsePrintExtractRtdAndCompare( File inputFile, String inputSubDir, ExpansionCallback callback) throws LinkTargetException, IOException, EngineException { String fileTitle = FilenameUtils.getBaseName(inputFile.getName()); PageId pageId = makePageId(fileTitle); Artifacts afs = wmToWom(inputFile, pageId, callback, "UTF8"); String actual = SaxonWomXPath.womToWmXPath(afs.womDoc); FileCompare cmp = new FileCompare(getResources()); cmp.compareWithExpectedOrGenerateExpectedFromActual(inputFile, actual); } } sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/000077500000000000000000000000001335270560400335745ustar00rootroot00000000000000basic-exp/000077500000000000000000000000001335270560400353705ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resourceswikitext/000077500000000000000000000000001335270560400372405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-expall-easy-xml-elements.wikitext000066400000000000000000000037231335270560400451560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext... content ... ... content ... ... content ...
      ... content ...




      ... content ...
      ... content ... ... content ... ... content ... ... content ...
      ... content ...
      ... content ...
      ... content ...
      ... content ...
      ... content ... ... content ...






      ... content ... ... content ... ... content ...

      ... content ...

      ... content ...

      ... content ...

      ... content ...

      ... content ... ... content ... ... content ... ... content ... ... content ... ... content ... ... content ... ... content ... ... content ... ... content ... ... content ...comment.wikitext000066400000000000000000000000201335270560400424640ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitextencoding-issues.wikitext000066400000000000000000000000101335270560400441200ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext[[𐌸]]extlink.wikitext000066400000000000000000000000611335270560400425050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext[http://example.com] [http://example.com Hallo] heading.wikitext000066400000000000000000000000241335270560400424250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext== Heading == Body hr.wikitext000066400000000000000000000000251335270560400414400ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitexta ---- b x
      y img-link.wikitext000066400000000000000000000007221335270560400425420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext[[Image:Test]] [[Image:Test|alt=Alt Text]] [[Image:Test|alt=Alt Text|Title]] [[Image:Test|link=|Title]] [[Image:Test|link= |Title]] [[Image:Test|link=http://example.com|Title]] [[Image:Test|link=Some Page|Title]] [[Image:Test|alt=Alt Text|upright|border|Title]] [[Image:Test|alt=Alt Text|frame|bottom|right|upright|border|Title]] [[Image:Test|alt=Alt Text|128px|Title]] [[Image:Test|alt=Alt Text|x512px|Title]] [[Image:Test|alt=Alt Text|128x512px|Title]] intlink.wikitext000066400000000000000000000000551335270560400425020ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext[[Somewhere]] [[Somewhere|over the rainbow]]lists.wikitext000066400000000000000000000003651335270560400421740ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext* Item 1 * Item 2 # Item 1 # Item 2
        0
      • Item 1
      • 2
      • Item 3
      • 4
        0
      1. Item 1
      2. 2
      3. Item 3
      4. 4
      :Def 0 ;Term 1 :Def 1 :Def 2 ;Term 2 :Def 3
      0
      Def 0
      1
      Tern 1
      2
      Def 1
      native-italics-bold.wikitext000066400000000000000000000000471335270560400446650ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext''italics'' '''bold''' '''''both'''''pre.wikitext000066400000000000000000000000361335270560400416170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext
      I'm a tag extension
      redirect.wikitext000066400000000000000000000000601335270560400426270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext#REDIRECT[[me|somewhere]] and some more text ...semipre.wikitext000066400000000000000000000000421335270560400424720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext First ''line'' Second '''line'''signatures.wikitext000066400000000000000000000000161335270560400432130ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext~~~ ~~~~ ~~~~~table-2.wikitext000066400000000000000000000000261335270560400422560ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext{| !foo |- |bar |}table.wikitext000066400000000000000000000002511335270560400421170ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext {| style="no-stlye" |+ style="caption-style" | a fine caption :D |- style="row-style" | style="hells-bells" | cellibelli || style="highway-to-hell" | langweilig |} url.wikitext000066400000000000000000000000231335270560400416270ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitexthttp://example.com xml-attr.wikitext000066400000000000000000000000741335270560400426030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitextBold xml-char-ref.wikitext000066400000000000000000000000221335270560400433110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext Axml-elem-misc.wikitext000066400000000000000000000000601335270560400434770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitextblubxml-entity-ref.wikitext000066400000000000000000000000061335270560400437120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext xml-table.wikitext000066400000000000000000000002411335270560400427140ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wikitext
      the caption
      a header cell... a cell ...
      wom/000077500000000000000000000000001335270560400361725ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-expall-easy-xml-elements.wom.xml000066400000000000000000000226551335270560400436460ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      <ABBR attr="value"> ... content ... </ABBR>

      <B attr="value"> ... content ... </B>

      <BIG attr="value"> ... content ... </BIG>

      <BLOCKQUOTE attr="value" cite="http://somewhere"> ... content ... </BLOCKQUOTE>


      <BR attr="value" clear="left"/>

      <BR attr="value" clear="all"/>

      <BR attr="value" clear="right"/>

      <BR attr="value" clear="none"/>

      <CENTER attr="value"> ... content ... </CENTER>

      <CITE attr="value"> ... content ... </CITE>

      <CODE attr="value"> ... content ... </CODE>

      <DEL attr="value" cite="http://somewhere" datetime="2007-12-24T18:21Z"> ... content ... </DEL>

      <DFN attr="value"> ... content ... </DFN>

      <DIV attr="value" align="left"> ... content ... </DIV>
      <DIV attr="value" align="center"> ... content ... </DIV>
      <DIV attr="value" align="right"> ... content ... </DIV>
      <DIV attr="value" align="justify"> ... content ... </DIV>

      <EM attr="value"> ... content ... </EM>

      <FONT attr="value" color="#FF0000" face="Arial" size="5"> ... content ... </FONT>


      <HR attr="value" noshade="noshade" />
      <HR attr="value" size="2" />
      <HR attr="value" width="64" />
      <HR attr="value" width="50%" />
      <HR attr="value" align="left" />
      <HR attr="value" align="center" />
      <HR attr="value" align="right" />

      <I attr="value"> ... content ... </I>

      <INS attr="value" cite="http://somewhere" datetime="2007-12-24T18:21Z"> ... content ... </INS>

      <KBD attr="value"> ... content ... </KBD>

      <P attr="value" align="left"> ... content ... </P>

      <P attr="value" align="center"> ... content ... </P>

      <P attr="value" align="right"> ... content ... </P>

      <P attr="value" align="justify"> ... content ... </P>

      <S attr="value"> ... content ... </S>

      <SAMP attr="value"> ... content ... </SAMP>

      <SMALL attr="value"> ... content ... </SMALL>

      <SPAN attr="value"> ... content ... </SPAN>

      <STRIKE attr="value"> ... content ... </STRIKE>

      <STRONG attr="value"> ... content ... </STRONG>

      <SUB attr="value"> ... content ... </SUB>

      <SUP attr="value"> ... content ... </SUP>

      <TT attr="value"> ... content ... </TT>

      <U attr="value"> ... content ... </U>

      <VAR attr="value"> ... content ... </VAR>

      comment.wom.xml000066400000000000000000000006411335270560400411600ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      <!-- comment -->

      encoding-issues.wom.xml000066400000000000000000000005671335270560400426240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      [[𐌸]]

      extlink.wom.xml000066400000000000000000000012651335270560400411770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      [http://example.com]

      [http://example.com <text>Hallo</text> ]

      heading.wom.xml000066400000000000000000000011101335270560400411050ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
      == Heading ==

      Body

      hr.wom.xml000066400000000000000000000011711335270560400401260ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      a


      ----

      b

      x


      <hr /> y
      img-link.wom.xml000066400000000000000000000125631335270560400412330ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      [[Image:Test]]

      Alt Text [[Image:Test|alt=Alt Text]]

      Alt Text [[Image:Test|alt=Alt Text | Title ]]

      [[Image:Test|link= | Title ]]

      [[Image:Test|link= | Title ]]

      [[Image:Test|link=http://example.com | Title ]]

      [[Image:Test|link=Some Page | Title ]]

      Alt Text [[Image:Test|alt=Alt Text|upright|border | Title ]]

      Alt Text [[Image:Test|alt=Alt Text|frame|bottom|right|upright|border | Title ]]

      Alt Text [[Image:Test|alt=Alt Text|128px | Title ]]

      Alt Text [[Image:Test|alt=Alt Text|x512px | Title ]]

      Alt Text [[Image:Test|alt=Alt Text|128x512px | Title ]]

      intlink.wom.xml000066400000000000000000000012461335270560400411700ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      [[Somewhere]]

      [[Somewhere <rtd>|</rtd> <text>over the rainbow</text> ]]

      lists.wom.xml000066400000000000000000000054701335270560400406610ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
      • * Item 1
      • * Item 2
      1. # Item 1
      2. # Item 2
        <ul> 0
      • <li> Item 1 </li>
      • 2
      • <li> Item 3 </li>
      • 4 </ul>
        <ol> 0
      1. <li> Item 1 </li>
      2. 2
      3. <li> Item 3 </li>
      4. 4 </ol>
      : Def 0
      ; Term 1
      : Def 1
      : Def 2
      ; Term 2
      : Def 3
      <dl> 0
      <dd> Def 0 </dd>
      1
      <dt> Tern 1 </dt>
      2
      <dd> Def 1 </dd>
      </dl>
      native-italics-bold.wom.xml000066400000000000000000000015321335270560400433500ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      '' italics ''

      ''' bold '''

      '' ''' both ''' ''

      pre.wom.xml000066400000000000000000000007271335270560400403110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

                  <pre>
                  
                     I'm a tag extension
                  
                  </pre>
               

      redirect.wom.xml000066400000000000000000000012021335270560400413110ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      #REDIRECT[[ me |somewhere]] and some more text ...

      semipre.wom.xml000066400000000000000000000010371335270560400411620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
                First 
               
                  ''
                  line
                  ''
               
               
       Second 
               
                  '''
                  line
                  '''
               
            
      signatures.wom.xml000066400000000000000000000016151335270560400417040ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      ~~~ ~~~~ ~~~~~

      table-2.wom.xml000066400000000000000000000015551335270560400407510ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
      {| |- |}
      !

      foo

      |

      bar

      table.wom.xml000066400000000000000000000022571335270560400406120ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
      {| style="no-stlye" |- style="row-style" |}
      |+ style="caption-style" |

      a fine caption :D

      | style="hells-bells" | cellibelli || style="highway-to-hell" |

      langweilig

      url.wom.xml000066400000000000000000000006541335270560400403240ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      http://example.com

      xml-attr.wom.xml000066400000000000000000000011501335270560400412620ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      <span style="not-my-style"> Bold </span>

      <span &me-garbage />

      xml-char-ref.wom.xml000066400000000000000000000021411335270560400420000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      &#20; &#20; &#32; A &#x41;

      xml-elem-misc.wom.xml000066400000000000000000000015441335270560400421720ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

      <michgibtsnet someattr =" bla " > blub </michgibtsnet>

      xml-entity-ref.wom.xml000066400000000000000000000010541335270560400424010ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom

        &nbsp;

      xml-table.wom.xml000066400000000000000000000022031335270560400413770ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-exp/wom
      <table class="a"> <tr class="c"> </tr> </table>
      <caption class="b"> the caption </caption>
      <td class="d"> a header cell... </td> <td class="e"> a cell ... </td>
      basic-no-exp/000077500000000000000000000000001335270560400360025ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resourceswikitext/000077500000000000000000000000001335270560400376525ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exptag-ext.wikitext000066400000000000000000000000651335270560400430160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wikitext
      I'm a tag extension
      template.wikitext000066400000000000000000000001511335270560400432540ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wikitext{{tmpl}} {{tmpl|arg0}} {{tmpl|arg0=value}} {{{{name providing template}}|{{foo|baz}}={{bar|foobar}}}} tmpl-param.wikitext000066400000000000000000000001271335270560400435160ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wikitext{{{param}}} {{{param|default value}}} {{{param|default values|garbage 1|garbage 2}}} wom/000077500000000000000000000000001335270560400366045ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exptag-ext.wom.xml000066400000000000000000000022151335270560400415000ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wom

      <pre attr =" value " width =" 5 " > I'm a tag extension </pre>

      template.wom.xml000066400000000000000000000060031335270560400417410ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wom

      {{ tmpl }}

      {{ tmpl | arg0 }}

      {{ tmpl | arg0 = value }}

      {{ {{ name providing template }} | {{ foo | baz }} = {{ bar | foobar }} }}

      tmpl-param.wom.xml000066400000000000000000000031441335270560400422030ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/basic-no-exp/wom

      {{{ param }}}

      {{{ param | default value }}}

      {{{ param | default values | garbage 1 | garbage 2 }}}

      complex-no-exp/000077500000000000000000000000001335270560400363705ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resourceswikitext/000077500000000000000000000000001335270560400402405ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-expNOTICE000066400000000000000000000011471335270560400411470ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-exp/wikitextThe articles in this directory are taken from the English Wikipedia and are licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The following articles were taken from the English Wikipedia: "ASDF", Revision: 416210608 http://en.wikipedia.org/w/index.php?oldid=416210608 "Germany", Revision: 417491803 http://en.wikipedia.org/w/index.php?oldid=417491803 raw-ASDF.wikitext000066400000000000000000000014451335270560400433420ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-exp/wikitext'''asdf''' or '''ASDF''' may refer to * [[Alabama State Defense Force]], a military entity * [[Alaska State Defense Force]], a military entity * [[Another System Definition Facility]], the most commonly used build system for Common Lisp * [[Association of Synchronous Data Formats]], an organization that advances the use of synchronous data transmission technology * Average Squared Difference Function, a mapping used in [[pitch detection algorithm]]s * asdf, the first four letters in the [[home row]] on a [[QWERTY]] keyboard * asdf movie, a series of [[viral video]]s * Asdf.com is a random chat board where the point is to not always stay on topic. == See also == * [[Hoverboard ASDF]] * [[Japan Air Self-Defense Force]] * [[QWERTY]] [[Category:Initialisms]] {{disambig}} [[de:ASDF]] [[fr:ASDF]] raw-Germany.wikitext000066400000000000000000004650111335270560400442320ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-exp/wikitext{{Dablink|This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]].}} {{Use dmy dates|date=January 2011}} {{pp-semi-protected|small=yes}} {{pp-move-indef}} {{Featured article}} {{Infobox country |native_name={{lang|de|''Bundesrepublik Deutschland''}} |conventional_long_name=Federal Republic of Germany |common_name=Germany |national_anthem=
      [[File:Deutschlandlied played by USAREUR Band.ogg]]

      The third stanza of {{lang|de|''[[Deutschlandlied|Das Lied der Deutschen]]''}} |image_flag=Flag of Germany.svg |image_coat=Coat of Arms of Germany.svg |image_map=EU-Germany.svg |map_caption={{map_caption|location_color=dark green|region=Europe|region_color=dark grey|subregion=the [[European Union]]|subregion_color=green|legend=EU-Germany.svg}} |official_languages=[[German language|German]] {{Ref|1}} |demonym=German |capital=[[Berlin]] |latd=52|latm=31|latNS=N|longd=13|longm=23|longEW=E |largest_city=capital |government_type=[[Federal republic|Federal]] [[parliamentary republic]] |leader_title1=[[President of Germany|President (Head of State)]] |leader_name1=[[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title2=[[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] |leader_name2=[[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title3=[[President of the Bundestag]] |leader_name3=[[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) |leader_title4=[[President of the Bundesrat]] |leader_name4=[[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) |sovereignty_type=[[Kingdom of Germany|Formation]] |sovereignty_note= |established_event1=[[Holy Roman Empire]] |established_date1=2 February 962 |established_event2=[[Unification of Germany|Unification]] |established_date2=18 January 1871 |established_event3=[[History of Germany|Federal Republic]] |established_date3=23 May 1949 |established_event4=[[German reunification|Reunification]] |established_date4=3 October 1990 |accessionEUdate=25 March 1957 |EUseats=99 |area_km2=357,021 |area_sq_mi=137,847 |area_rank=63rd |area_magnitude=1 E11 |percent_water=2.416 |population_estimate = 81,757,600 |population_estimate_year = 2010 |population_estimate_rank = 15th |population_census = |population_census_year = |population_estimate_year = Jan. 1, 2010 |population_estimate_rank = 15th |population_density_km2 = 229 |population_density_sq_mi = 593 |population_density_rank = 55th |GDP_PPP_year = 2010 |GDP_PPP = $2.932 trillion{{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} |GDP_PPP_rank= |GDP_PPP_per_capita=$35,930 |GDP_PPP_per_capita_rank= |GDP_nominal=$3.305 trillion |GDP_nominal_rank= |GDP_nominal_year=2010 |GDP_nominal_per_capita=$40,511 |GDP_nominal_per_capita_rank= |HDI_year=2010 |HDI={{increase}} 0.885{{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} |HDI_rank=10th |HDI_category=very high |Gini=27 {{Update after|2011|04|reason=Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} |Gini_year=2006 |Gini_category=low |currency=[[Euro]] ([[Euro sign|€]]){{Ref|2}}(2002 – present) |currency_code=EUR |time_zone=CET |utc_offset=+1 |time_zone_DST=CEST |utc_offset_DST=+2 |drives_on=right |cctld= [[.de]] {{Ref|3}} |calling_code=[[Telephone numbers in Germany|49]] |ISO_3166-1_alpha2=DE |ISO_3166-1_alpha3=DEU |ISO_3166-1_numeric=? |alt_sport_code=GER |vehicle_code=D |aircraft_code=D |footnote1={{note|1}} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. |footnote2= {{note|2}} Before 2002: [[Deutsche Mark]] (DEM). |footnote3={{note|3}} Also [[.eu]], shared with other [[European Union]] member states. }} '''Germany''' ({{IPAc-en|En-uk-Germany.ogg|ˈ|dʒ|ɜr|m|ən|i}}), officially the '''Federal Republic of Germany''' ({{lang-de|Bundesrepublik Deutschland}}, {{IPA-de|ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant|pron|De-Bundesrepublik_Deutschland.ogg}}),{{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}}The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond is a country in [[Western Europe|Western]] and [[Central Europe]]. It is bordered to the north by the [[North Sea]], [[Denmark]], and the [[Baltic Sea]]; to the east by [[Poland]] and the [[Czech Republic]]; to the south by [[Austria]] and [[Switzerland]]; and to the west by [[France]], [[Luxembourg]], [[Belgium]], and the [[Netherlands]]. The territory of Germany covers an area of 357,021 km2 and is influenced by a [[temperate climate|temperate seasonal climate]]. With 81.8 million inhabitants, it is the most populous member state of the [[European Union]],{{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} and home to the [[List of countries by immigrant population|third-largest number of international migrants]] worldwide.{{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} A region named [[Germania]], inhabited by several [[Germanic people]]s, was [[Germania (book)|documented]] before AD 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]], which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]], the country was first [[Unification of Germany|unified]] in 1871, with the inception of the [[German Empire]]. After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]]. After 1945, Germany was divided by [[Allied Occupation Zones in Germany|allied occupation]], and evolved into two states, [[East Germany]] and [[West Germany]]. In 1990 Germany was [[German reunification|reunified]]. West Germany was a founding member of the [[European Communities|European Community]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]].{{cite news |title=On Jan. 1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }}{{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }}{{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} Germany is a [[Federation|federal]] [[parliamentary republic]] of [[States of Germany|sixteen states]]. The capital and largest city is [[Berlin]]. Germany is a member of the [[United Nations]], [[NATO]], the [[G8]], the [[G-20 major economies|G20]], the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War|major power]] with the world's [[List of countries by GDP (nominal)|fourth largest economy]] by nominal [[GDP]] and the [[List of countries by GDP (PPP)|fifth largest]] by [[purchasing power parity]]. It is the [[List of countries by exports|second largest exporter]] and [[List of countries by imports|third largest importer]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world,{{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} while its [[List of countries by military expenditures|military expenditure ranked seventh]].{{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} The country has developed a [[List of countries by Human Development Index|very high standard of living]] and a comprehensive system of [[social security]]. It holds a key position in European affairs and maintains a multitude of close partnerships on a global level.{{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} Germany is recognised as a scientific and technological leader in several fields.[http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. ==History== {{Main|History of Germany}} ===Etymology=== {{Main|Names of Germany|List of country name etymologies}} The English word "Germany" derives from the [[Greek language|Greek]] {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} term [[Germania]]. The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language|Gallic]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears".{{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}}{{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }}{{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} ===Germanic tribes 750 BC–260=== {{Main|Germanic peoples|Germania}} [[File:Germanic tribes (750BC-1AD).png|thumb|left|Expansion of the [[Germanic peoples|Germanic tribes]] 750 BC – AD 1]] The [[ethnogenesis]] of the [[Germanic peoples|Germanic tribes]] is assumed to have occurred during the [[Nordic Bronze Age]], or at the latest during the [[Pre-Roman Iron Age]]. From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century BC, coming into contact with the [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples|Iranian]], [[Balts|Baltic]], and [[Slavic peoples|Slavic]] tribes in [[Eastern Europe]]. Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]], etymological research and archaeological finds.{{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} Under [[Augustus]], the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]]), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD 9, three [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]]. Modern Germany, as far as the [[Rhine]] and the [[Danube]], thus remained outside the Roman Empire. By AD 100, the time of [[Tacitus]]' ''[[Germania (book)|Germania]]'', Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]]) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]], however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]], [[Franks]], [[Chatti]], [[Saxons]], [[Frisians]], [[Sicambri]], and [[Thuringii]]. Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands.{{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} ===Migration Period and Frankish Empire 260-800=== {{Main|Migration Period|Franks}} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ([[Ostsiedlung]]). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]]. A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the ''Edictum Chlotharii'', in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]]. ===Holy Roman Empire 962–1806=== {{Main|Holy Roman Empire}} {{See also|Medieval demography|Ostsiedlung}} [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright|The [[Imperial Crown of the Holy Roman Empire|Imperial Crown]] of the [[Holy Roman Empire]], created around AD 1000]] On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]], which was [[Treaty of Verdun|divided in 843]]. The medieval empire resulted from the [[East Francia|eastern portion]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea|Mediterranean]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the ''Sacrum Romanum Imperium Nationis Germanicæ'' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory. [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px|[[Martin Luther]] initiated the [[Protestant Reformation]].]] Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy|duchies]] of [[Duchy of Lorraine|Lorraine]], [[Duchy of Saxony|Saxony]], [[Franconia]], [[Swabia]], [[Thuringia]], and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region)|Burgundy]], although the emperors lost power through the [[Investiture Controversy]]. Under the [[House of Hohenstaufen|Hohenstaufen]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples|Slavs]], preceding [[History of German settlement in Eastern Europe|German settlement]] in these areas and further east ''([[Ostsiedlung]])''. Northern German towns grew prosperous as members of the [[Hanseatic League]]. Starting with the [[Great Famine of 1315–1317|Great Famine]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted.{{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} The edict of the [[Golden Bull of 1356|Golden Bull]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria|Austria]]. The monk [[Martin Luther]] publicised his [[The 95 Theses|95 Theses]] in 1517, challenging practices of the [[Roman Catholic Church]], initiating the [[Protestant Reformation]]. A separate [[Lutheranism|Lutheran]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands.Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. The population of the German states was reduced by about 30%.{{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was ''de facto'' divided into numerous independent principalities. From 1740 onwards, the [[German dualism|dualism]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the ''Imperium'' was overrun and dissolved as a result of the [[Napoleonic Wars]].{{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} ===Restoration and revolution 1814–1871=== {{Main|German Confederation}} [[File:Nationalversammlung.jpg|thumb|[[Frankfurt parliament]] in 1848]] Following the fall of [[Napoleon I of France|Napoleon Bonaparte]], the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states|39 sovereign states]]. Disagreement with [[European Restoration|restoration]] politics partly led to the rise of [[Liberalism in Germany|liberal]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich|Metternich]]. The ''[[Zollverein]]'', a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]], and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany|national colours]].Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. In the light of a [[Revolutions of 1848|series of revolutionary movements in Europe]], which successfully established a republic [[Revolutions of 1848 in France|in France]], intellectuals and commoners started the [[Revolutions of 1848 in the German states]]. The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]], but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor|William I]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]]. Bismarck successfully waged [[Second War of Schleswig|war on Denmark]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire|Austria]], formerly the leading German state, from the affairs of the remaining German states. ===German Empire 1871–1918=== {{Main|German Empire|World War I}} [[File:Wernerprokla.jpg|thumb|right|Foundation of modern Germany in [[Versailles]], France, 1871. [[Otto von Bismarck|Bismarck]] is at the centre in a white uniform.]] The state known as ''Germany'' was [[political union|unified]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]], the German Empire was proclaimed in [[Palace of Versailles|Versailles]] on 18 January 1871. The [[House of Hohenzollern|Hohenzollern]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ({{lang|de|[[Kleindeutsche Lösung|''Kleindeutschland'']]}}, or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies|several colonies]] outside Europe. [[File:Map-DR-Prussia.svg|left|thumb|Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue]] In the {{lang|de|''[[Gründerzeit]]''}} period following the [[unification of Germany]], Emperor [[William I, German Emperor|William I's]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic|France]] by diplomatic means, and avoiding war. Under [[William II, German Emperor|William II]], however, Germany, [[New Imperialism|like other European powers]], took an [[imperialism|imperialistic]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]]. Aside from its contacts with [[Austria-Hungary]], Germany became increasingly isolated. Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]], [[German South-West Africa|South-West Africa]], [[Togoland|Togo]], and [[Cameroon]]. The [[Scramble for Africa]] caused tension between the [[great power]]s that may have contributed to the conditions that led to [[World War I]]. The [[Assassination in Sarajevo|assassination]] of [[Archduke Franz Ferdinand of Austria|Austria's crown prince]] on 28 June 1914 triggered [[World War I]]. Germany, as part of the unsuccessful [[Central Powers]], suffered defeat against the [[Allies of World War I|Allied Powers]] in [[World War I casualties|one of the bloodiest]] conflicts of all time. An estimated two million German soldiers died in World War I.{{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication|abdicated]]. An [[Armistice with Germany (Compiègne)|armistice]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country.{{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} ===Weimar Republic 1919–1933=== {{Main|Weimar Republic}} [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb|[[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic|Weimar]] era was dominated by political unrest.]] At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic|seizing power in Bavaria]], but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany|President]] [[Friedrich Ebert]] on 11 August 1919. Suffering from the [[Great Depression]], the harsh peace conditions dictated by the [[Treaty of Versailles]], and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]]. This was exacerbated by a widespread right-wing ([[monarchism|monarchist]], ''[[Völkisch movement|völkisch]]'', and Nazi) {{lang|de|''[[Dolchstoßlegende]]''}}, which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism|communists]], such as the [[Spartacist League]], had wanted a revolution to abolish "[[capitalism|capitalist rule]]" in favour of a {{lang|de|''[[Council communism|Räterepublik]]''}}, and were also targeted. Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany|German Communist Party]]. Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]]. By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich)|Chancellor of Germany]], honouring Hitler's request. ===Third Reich 1933–1945=== {{Main|Nazi Germany}} [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright|[[Adolf Hitler]], chancellor of the ''[[Nazi Germany|Großdeutsches Reich]]'']] On 27 February 1933 the [[Reichstag fire|Reichstag]] building went up in flames, and a consequent [[Reichstag Fire Decree|emergency decree]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany|Social Democratic Party]] voted against it, while [[KPD|Communist]] [[Member of Parliament|MPs]] had already been imprisoned.{{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}
      Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4.
      Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006.
      Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament.{{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} In 1935, Germany reacquired control of the [[Saar (League of Nations)|Saar]] and in 1936 military control of the [[Rhineland]], both of which had been lost in the [[Treaty of Versailles]]. Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum|expansionistic]]. In 1938 and 1939, [[Anschluss|Austria]] and [[German occupation of Czechoslovakia|Czechoslovakia]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]]. On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic|Poland]], which was swiftly occupied by Germany and by the Soviet [[Red Army]]. The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers|allies]] quickly gained control of much of [[Occupied Europe|continental Europe]] while the plan to [[Operation Sea Lion|occupy the United Kingdom]] failed. [[File:Potsdamer Platz 1945.jpg|thumb|left|Berlin in ruins after [[World War II]], [[Potsdamer Platz]] 1945]]On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa|invaded the Soviet Union]]. The same year, [[Empire of Japan|Japan]] [[Attack on Pearl Harbor|attacked]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II)|Eastern front]]. In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings|D-Day]] marked another major turning point in the war, opening up a [[Western Front (World War II)|Western front]]; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day|the German armed forces surrendered]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II.Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. In what later became known as [[The Holocaust]], the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos|Gypsies]], [[Jehovah's Witnesses]], [[Generalplan Ost|Poles and other Slavs]], including [[Nazi crimes against Soviet POWs|Soviet POWs]], [[Action T4|people with mental and/or physical disabilities]], homosexuals, and members of the political opposition.Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. World War II and the Nazi genocide were responsible for more than 40 million dead in Europe.{{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II."[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. {{Clear}} ===Division and reunification 1945–1990=== {{Main|History of Germany (1945–1990)}} [[File:Map-Germany-1945.svg|thumb|Post-WWII [[Allied Occupation Zones in Germany|occupation zones]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate)|Saar protectorate]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957.]] The war resulted in the [[World War II casualties|death of over seven million German soldiers and civilians]]; [[Oder-Neisse line|large territorial losses]]; [[Expulsion of Germans after World War II|the expulsion of about 15 million Germans]] from [[Former eastern territories of Germany|the eastern areas of Germany]] and other countries; [[Rape during the occupation of Germany|mass rape of German women]];{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2 million German women are thought to have been raped . . . }}
      {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2 million of our children were born in Germany.' }}
      and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II|Allies]] into four military occupation zones. The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the ''[[West Germany|Federal Republic of Germany]]'' (''Bundesrepublik Deutschland''); on 7 October 1949, the Soviet Zone became the ''[[East Germany|German Democratic Republic]]'' (''Deutsche Demokratische Republik'', or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as "[[West Berlin]]" and "[[East Berlin]]". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]]. However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial ''status quo'' that was to be overcome one day.{{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} West Germany, established as a federal parliamentary republic with a "[[social market economy]]", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ({{lang|de|''[[Wirtschaftswunder]]''}}). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{lang|de|''[[Grundgesetz]]''}}, having been occupied by France since 1947. [[File:Thefalloftheberlinwall1989.JPG|thumb|left|The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989]] East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]]. While claiming to be a democracy, political power was solely executed by leading members (''[[Politburo]]'') of the communist-controlled [[Socialist Unity Party of Germany|SED (''Socialist Unity Party of Germany'')]]. Their power was ensured by the [[Stasi]], a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda|East German propaganda]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity.{{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} The [[Berlin Wall]], built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]]. Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]]'s {{lang|de|''[[Ostpolitik]]''}}, which included the ''de facto'' acceptance of Germany's territorial losses in World War II. In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]], with [[Monday demonstrations in East Germany|mass demonstrations]]. The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende|''Wende'' reform process]] in East Germany, which finally concluded with the ''[[Treaty on the Final Settlement with Respect to Germany|Two Plus Four Treaty]]'' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]]. This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ([[New states of Germany|new states]] or "neue Länder"). ===Berlin Republic and the EU 1990–present=== {{Main|History of Germany since 1990}} [[File:Euro banknotes.png|thumb| A new currency, the [[Euro]], began circulating on 1 January 2002.]] Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a ''Bundesstadt'' (federal city) retaining some federal ministries.{{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006.{{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. The relocation of the government was completed in 1999. Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia|Balkans]] and sent a force of [[Bundeswehr|German troops]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present)|security in that country]] after the ousting of the [[Taliban]].Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context. In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany)|grand coalition]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany)|CDU]] and [[Christian Social Union of Bavaria|CSU]]) and the [[Social Democratic Party of Germany|Social Democratic Party (SPD)]]. Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany)|Free Democratic Party (FDP)]]. ==Geography== {{Main|Geography of Germany}} [[File:Deutschland topo.jpg|thumb|upright|right|Topographic map]] Germany is located in the Central Europe, the territory covers {{convert|357021|km2|sqmi|0|abbr=on}}, consisting of {{convert|349223|km2|sqmi|0|abbr=on}} of land and {{convert|7798|km2|sqmi|0|abbr=on}} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north|47°]] and [[55th parallel north|55° N]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east|5°]] and [[16th meridian east|16° E]]. Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{convert|2962|m|ft|0|disp=s}}) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{convert|3.54|m|ft|1|disp=s}} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]], [[Danube]] and [[Elbe]].{{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west. The most significant natural resources are iron ore, coal, [[potash]], timber, [[lignite]], [[uranium]], copper, natural gas, [[salt]], nickel, [[arable land]] and water. ===Administrative divisions=== {{Main|States of Germany|List of administrative divisions of Germany}} Germany comprises [[States of Germany|16 states]] (''Bundesländer''), which are further subdivided into 439 [[Districts of Germany|districts]] (''Kreise'') and cities (''kreisfreie Städte''). {{German Federal States|options=float:left; font-size:90%; border:3px; max-width:480px; width:50%;}} {| style="background:none;" cellspacing="2px" | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" ! style="width:140px;"| [[States of Germany|State]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²)!! style="width:85px;"| Population |- | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"|35,752|| style="text-align:right"|10,717,000 |- | [[Bavaria]] || [[Munich]] || style="text-align:right"|70,549|| style="text-align:right"|12,444,000 |- | Berlin || Berlin ||style="text-align:right"|892|| style="text-align:right"|3,400,000 |- | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"|29,477|| style="text-align:right"|2,568,000 |- | [[Bremen (state)|Bremen]] || [[Bremen]] || style="text-align:right"|404|| style="text-align:right"|663,000 |- | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"|755|| style="text-align:right"|1,735,000 |- | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"|21,115|| style="text-align:right"|6,098,000 |- | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"|23,174|| style="text-align:right"|1,720,000 |- | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"|47,618|| style="text-align:right"|8,001,000 |- | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"|34,043|| style="text-align:right"|18,075,000 |- | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"|19,847|| style="text-align:right"|4,061,000 |- | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"|2,569|| style="text-align:right"|1,056,000 |- | [[Saxony]] || [[Dresden]] || style="text-align:right"|18,416|| style="text-align:right"|4,296,000 |- | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"|20,445|| style="text-align:right"|2,494,000 |- | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"|15,763|| style="text-align:right"|2,829,000 |- | [[Thuringia]] || [[Erfurt]] || style="text-align:right"|16,172|| style="text-align:right"|2,355,000 |} |} ===Climate=== {{multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }} Most of Germany has a [[temperate|temperate seasonal climate]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current|North Atlantic Drift]], which is the northern extension of the [[Gulf Stream]]. This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate|oceanic]]; [[Precipitation (meteorology)|rainfall]] occurs year round with a maximum during summer. Winters are mild and summers tend to be cool, though temperatures can exceed {{convert|30|°C|°F|lk=on}} for prolonged periods. In the east, the climate is more [[continental climate|continental]]; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental. In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain.[http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. ===Biodiversity=== {{multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }} [[Phytogeography|Phytogeographically]], Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]]. The territory of Germany can be subdivided into two [[ecoregion]]s: European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine.[http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures. Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn. The [[List of national parks of Germany|national parks in Germany]] include the [[Wadden Sea National Parks]], the [[Jasmund National Park]], the [[Vorpommern Lagoon Area National Park]], the [[Müritz National Park]], the [[Lower Oder Valley National Park]], the [[Harz National Park]], the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]]. Germany is known for its many [[zoological garden]]s, wildlife parks, aquaria, and bird parks.[http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world.[http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. The [[Berlin Zoological Garden|Zoologischer Garten Berlin]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world.{{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. ===Environment=== {{multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }} Germany is known for its environmental consciousness.[http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]].{{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level.[http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling.[http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. For example, since 1964, air pollution in Germany has been regulated by strict "[[TA Luft]]" legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita|carbon dioxide emissions per capita]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States. Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions. ==Politics== {{Main|Politics of Germany}} [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px|The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany|Basic Law (Grundgesetz)]]. ]] Germany is a [[federal republic|federal]], [[parliamentary democratic|parliamentary]], [[representative democracy|representative democratic]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany|''Grundgesetz'']] (Basic Law). By calling the document ''Grundgesetz'', rather than ''Verfassung'' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state. Amendments to the ''Grundgesetz'' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity.{{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} Despite the initial intention, the ''Grundgesetz'' remained in effect after the [[German reunification]] in 1990, with only minor amendments. ===Government=== [[File:Christian Wulff 2008-04-17.jpg|thumb|left|[[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers.]] The President, [[Christian Wulff]], is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the ''[[Bundesversammlung (Germany)|Bundesversammlung]]'' (federal convention), an institution consisting of the members of the ''Bundestag'' and an equal number of state delegates. The second highest official in the [[German order of precedence]] is the ''Bundestagspräsident'' ([[President of the Bundestag|President of the ''Bundestag'']]), who is elected by the ''Bundestag'' and responsible for overseeing the daily sessions of the body. The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the ''Bundespräsident'' after being elected by the ''Bundestag''. The Chancellor can be removed by a [[constructive vote of no confidence]] by the ''Bundestag'', where constructive implies that the ''Bundestag'' simultaneously has to elect a successor. [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px|The [[Reichstag (building)|Reichstag]] in Berlin is the site of the German parliament (Bundestag)]] The [[Chancellor of Germany|Chancellor]]—currently [[Angela Merkel]]—is the [[head of government]] and exercises [[executive (government)|executive power]], similar to the role of a Prime Minister in other [[parliamentary system|parliamentary democracies]]. Federal [[legislative power]] is vested in the parliament consisting of the ''[[Bundestag]]'' (Federal Diet) and ''[[Bundesrat of Germany|Bundesrat]]'' (Federal Council), which together form a unique type of legislative body. The ''Bundestag'' is elected through [[direct election]]s, by [[proportional representation]] ([[mixed member proportional representation|mixed-member]]). The members of the ''Bundesrat'' represent the governments of the [[States of Germany|sixteen federated states]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time. Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany)|Christian Democratic Union]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany)|Free Democratic Party]] (which has had members in the ''Bundestag'' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles,[http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. as they are regularly the smaller partner of a [[coalition government]]. ===Law=== {{Main|Judiciary of Germany|Law enforcement in Germany}} [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb|The [[Federal Constitutional Court of Germany|Federal Constitutional Court]] (Bundesverfassungsgericht) in [[Karlsruhe]]]] The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system)|civil or statute law system]] that is based on [[Roman law]] with some references to [[Germanic law]]. The ''[[Federal Constitutional Court of Germany|Bundesverfassungsgericht]]'' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]].[http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf. Germany's supreme court system, called ''Oberste Gerichtshöfe des Bundes'', is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany|Federal Court of Justice]], located in [[Karlsruhe]] and [[Leipzig]]. The courtroom style is [[inquisitorial system|inquisitorial]]. Other Federal Courts are the [[Federal Labor Court of Germany|Federal Labour Court]] in [[Erfurt]], the [[Bundessozialgericht|Federal Social Court]] in [[Kassel]], the [[Federal Finance Court of Germany|Federal Finance Court]] in [[Munich]] and the [[Federal Administrative Court of Germany|Federal Administrative Court]] in Leipzig. [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left|German [[Landespolizei|state police]] officer in [[Hamburg]]]] [[Criminal law]] and [[private law]] are codified on the national level in the ''[[Strafgesetzbuch]]'' and the ''[[Bürgerliches Gesetzbuch]]'' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public.{{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. To achieve the latter, a convicted criminal can be put in preventive detention (''Sicherungsverwahrung'') in addition to the regular sentence if he is considered to be a threat to the general public. The ''[[Völkerstrafgesetzbuch]]'' regulates the consequences of [[crimes against humanity]], [[genocide]] and [[war crimes]]. It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible. Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself. Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The ''[[Bundesrat of Germany|Bundesrat]]'' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The ''[[Amtsgericht]]e'', ''Landgerichte'' and ''Oberlandesgerichte'' are state courts of [[general jurisdiction]]. They are competent whether the action is based on federal or state law. Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 ''Verwaltungsverfahrensgesetz'' (Administrative Proceedings Act) covering important points of administrative law. The ''Oberverwaltungsgerichte'' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible. ===Foreign relations=== {{Main|Foreign relations of Germany}} [[File:33rdG8Leaders.jpg|thumb|Chancellor [[Angela Merkel]], the head of government, hosting the [[G8]] summit in [[Heiligendamm]].]] Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries.[http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF). Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation|strong alliance with France]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany)|Christian Democrat]] [[Helmut Kohl]] and [[Socialist Party (France)|Socialist]] [[François Mitterrand]]. Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus.[http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers.Glaab, Manuela. [http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. [[File:Rometreaty.jpg|thumb|left|Germany is a founding member of the [[European Economic Community|EEC]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics.]] During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the ''[[détente]]'' of the 1970s.Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1 KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". In 1999, Chancellor [[Gerhard Schröder]]'s government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War|NATO war against Yugoslavia]] and by sending German troops into combat for the first time since World War II.[http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. [[File:Defense ministers of NATO 2000.jpg|thumb|right|West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000)]] The governments of Germany and the United States are close political allies.[http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations.[http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S.{{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8 KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S.[http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]]) as the largest U.S. military community outside the U.S.[http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community.[http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. It is the world's third biggest aid donor after the United States and France.[http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either. ===Military=== {{Main|Bundeswehr}} [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb|The ''Mecklenburg-Vorpommern'' participated in a [[United Nations Interim Force in Lebanon|UNIFIL II]] operation off the coast of [[Lebanon]].]] Germany's military, the ''[[Bundeswehr]]'', is a military force with ''[[German Army|Heer]]'' (Army), ''[[German Navy|Marine]]'' (Navy), ''[[Luftwaffe]]'' (Air Force), [[Central Medical Services|''Zentraler Sanitätsdienst'']] (Central Medical Services) and ''[[Streitkräftebasis]]'' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of ''[[Zivildienst]]'' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department|fire department]], the [[German Red Cross|Red Cross]] or the [[Technisches Hilfswerk|THW]]. In 2005, military spending was an estimated 1.5% of the country's GDP. In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the ''Bundeswehr''.{{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left|A [[Eurofighter Typhoon|Eurofighter]] flight demonstration]] The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25 year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad. Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far. {{As of|2009|11}}, the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]], 4,520 German troops in the NATO-led [[International Security Assistance Force|ISAF]] force in [[Afghanistan]] and [[Uzbekistan]], and 450 troops with [[UNIFIL]] in [[Lebanon]].{{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} {{clearleft}} ==Economy== {{Main|Economy of Germany}} [[File:S-Klasse W221.jpg|thumb|A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008.{{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}}]] Germany has a [[social market economy]] characterised by a highly qualified [[labour force]], a developed [[infrastructure]], a large [[capital stock]], a low level of corruption,{{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} and a high level of [[innovation]].{{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} It has the largest national economy in Europe, the [[List of countries by GDP (nominal)|fourth largest by nominal GDP]] in the world, and ranked [[List of countries by GDP (PPP)|fifth by GDP (PPP)]] in 2009. The [[Tertiary sector of industry|service sector]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009."German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] [[File:Eurozone.svg|thumb|upright|left|Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union)|EU single market]]. ]] Since the age of [[industrialisation]], the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports|second largest exporter]] and third largest importer of goods while generating a [[trade surplus]] of $189.7 billion.[Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin.[http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt. Two decades after [[German reunification]], [[standard of living|standards of living]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East.Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80 billion.{{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe|European recession]] cycle.{{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} In January 2009 the German government under Angela Merkel approved a €50 billion ($70 billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates.{{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} ===Corporations=== [[File:Siemens Palais.JPG|thumb|Seat of the [[Siemens|Siemens AG]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies.]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb|[[Frankfurt am Main|Frankfurt]] is a financial [[global city]], seat of the [[European Central Bank]], and an international aviation hub.]] Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]], 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]], the German stock market index, trading on the [[Frankfurt Stock Exchange]]. Well known global brands are [[Mercedes-Benz]], [[BMW]], [[Adidas]], [[Audi]], [[Porsche]], [[Volkswagen]], [[DHL Express|DHL]], [[T-Mobile]], [[Lufthansa]], [[SAP AG|SAP]], and [[Nivea]].[http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. Germany is recognised for its highly specialised [[small and medium enterprises]]. Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions|hidden champions]].[http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007: {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" ! style="text-align:center;"| Rank[http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010.|| style="text-align:center;"| Name|| style="text-align:center;"| Headquarters|| style="text-align:center;"| Revenue
      (Mil. €) || style="text-align:center;"| Profit
      (Mil. €) || style="text-align:center;"| Employees
      (World) |- | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 || 329,305 |- | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 || 272,382 |- | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]]/Berlin || 72,488 || 3,806 || 398,200 |- | 4. || style="text-align:left;"| [[E.ON|E.ON AG]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 || 87,815 |- | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 || 242,378 |- | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 || 475,100 |- | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 || 241,426 |- | 8. || style="text-align:left;"| [[BASF|BASF SE]] || style="text-align:left;"| [[Ludwigshafen am Rhein|Ludwigshafen]] || 57,951 || 4,065 || 95,175 |- | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 || 107,539 |- | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]]/[[Duisburg]] || 51,723 || 2,102 || 191,350 |} ===Transport=== {{Main|Transport in Germany|Rail transport in Germany}} [[File:ICE 3M KRM.jpg|thumb|The [[ICE 3]] train]] With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ([[Autobahn]]) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes.{{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} Germany has established a polycentric network of [[high-speed rail|high-speed trains]]. The [[InterCityExpress]] or ''ICE'' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160 km/h and 300 km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals.{{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]], both are global hubs of [[Lufthansa]]. Other major airports are [[Tegel Airport|Berlin Tegel]], [[Schönefeld Airport|Berlin Schönefeld]], [[Düsseldorf International Airport|Düsseldorf]], [[Hamburg Airport|Hamburg]], [[Cologne Bonn Airport|Cologne-Bonn]], [[Leipzig/Halle Airport|Leipzig/Halle]] and in the future [[Berlin Brandenburg International Airport]]. ===Energy=== {{Main|Energy in Germany}} [[File:Windgermany.JPG|thumb|The largest [[solar power]] and [[Wind power in the European Union|second-largest wind power]] capacity in the world is installed in Germany.]] Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power|wind]], [[biomass]], hydroelectric, and [[geothermal power|geothermal]] energy. As a result of energy-saving measures, [[Efficient energy use|energy efficiency]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050. In 2000, the government and the [[Nuclear power in Germany|German nuclear power industry]] agreed to phase out all [[nuclear power plant]]s by 2021.[http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020. ===Technology=== {{Main|German inventors and discoverers}} [[File:Fächertextur.jpg|thumb|left|[[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]].[http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08.]] Germany has been the home of many famous inventors and [[engineer]]s, such as [[Johannes Gutenberg]], who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]], the creator of the [[Geiger counter]]; and [[Konrad Zuse]], who built the first fully automatic digital computer.Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]], [[Otto Lilienthal]], [[Gottlieb Daimler]], [[Rudolf Diesel]], [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology.{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}}[http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. [[Aerospace engineering|Aerospace engineer]] [[Wernher von Braun]] developed the [[V-2 rocket|first space rocket]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]]. [[Heinrich Rudolf Hertz]]'s work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication.[http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]], [[Robert Bosch GmbH|Bosch]] and [[BASF]], with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction.[http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. ===Science=== {{Main|Science and technology in Germany}} [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright|[[Albert Einstein]]]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany|country's economy]]. Germany has been the home of some of the most prominent researchers in various scientific fields.[http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. The [[Nobel Prize]] has been awarded to [[Nobel laureates by country|103 German laureates]].[http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. For most of the 20th century, [[Evolution of Nobel Prizes by country|German laureates had more awards]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics|physics]], [[Nobel Prize in Chemistry|chemistry]], and [[Nobel Prize in Physiology or Medicine|physiology or medicine]]).[http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010.National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]], which [[Werner Heisenberg]] and [[Max Born]] developed further.Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. They were preceded by physicists such as [[Hermann von Helmholtz]], [[Joseph von Fraunhofer]], and [[Daniel Gabriel Fahrenheit]]. [[Wilhelm Conrad Röntgen]] discovered [[X-ray]]s, which are called ''Röntgenstrahlen'' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901.[http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. Numerous significant [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]], [[David Hilbert]], [[Bernhard Riemann]], [[Gottfried Leibniz]], [[Karl Weierstrass]] and [[Hermann Weyl]]. Important research institutions in Germany are the [[Max Planck Society]], the [[Helmholtz Association of German Research Centres|Helmholtz Association]] and the [[Fraunhofer Society]]. They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5 million per award it is one of highest endowed research prizes in the world.[http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. ==Demographics== [[File:Bevölkerungsdichte.gif|thumb|Population density in German states (left) and communities (right)]] {{Main|Demographics of Germany|Germans|Social issues in Germany}} With estimated 81.8 million inhabitants in January 2010, Germany is the most populous country in the European Union and ranks as the [[List of countries by population|15th largest country]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density|population density]] stands at 229.4 inhabitants per square kilometre. The overall [[List of countries by life expectancy|life expectancy in Germany]] at birth is 79.9 years. The [[Total fertility rate|fertility rate]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate|lowest in the world]].{{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} [[Death rates]] are continuously exceeding low-level [[birth rates]].{{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration).The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.
      {{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}
      More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}}
      [[File:Pyramide Allemagne.PNG|thumb|left|Germany's [[population pyramid]] in 2005]] Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class. [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad. ===Migration=== [[File:Population of German territories 1800 - 2000.JPG|thumb|Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000]] The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population|third-highest number of international migrants worldwide]], about 5% or 10 million of all 191 million migrants.[http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. As a consequence of [[Immigration to Germany|restrictions]] to Germany's formerly rather unrestricted laws on [[right of asylum|asylum]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000."[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945.{{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} {{As of|2008}}, the largest national group of people with a migrant background was from Turkey (2.5 million), followed by Italy (776,000) and Poland (687,000).{{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} Large numbers of people with full or significant German ancestry are found in the United States (50 million),{{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9 million, or 23.3% of the U.S. population. [[Brazil]] (5 million){{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. and Canada (3 million).[http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". About 3 million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987.[http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 ===Urbanisation=== {{See also|Metropolitan Regions in Germany|List of cities in Germany|List of cities in Germany with more than 100,000 inhabitants}} Germany has a number of large cities; the most populous are: [[Berlin]], [[Hamburg]], [[Munich]], [[Cologne]], [[Frankfurt]], and [[Stuttgart]]. The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12 million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]]), [[Cologne]], [[Essen]], [[Dortmund]], [[Duisburg]], and [[Bochum]]. {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" !colspan=9 style="padding:0.3em 0; font-size:120%;" | Largest cities of Germany |- | rowspan=11 align=center valign=top | [[File:Cityscapeberlin2006.JPG|border|160px|Berlin]]
      [[Berlin]]
      [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px|Hamburg]]
      [[Hamburg]]
      [[File:München Panorama.JPG|border|160px|Munich]]
      [[Munich|Munich (München)]] ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 width="50" |   ! style="text-align:center; background:#f5f5f5;"| Rank ! style="text-align:left; background:#f5f5f5;"| City ! style="text-align:right; background:#f5f5f5;"| Population | rowspan=11 align=center valign=top | [[File:Köln Panorama.jpg|border|160px|Cologne]]
      [[Cologne|Cologne (Köln)]]
      [[File:Hauptwache Frankfurt am Main.jpg|border|160px|Frankfurt am Main]]
      [[Frankfurt am Main|Frankfurt]]
      [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px|Stuttgart]]
      [[Stuttgart]] |- | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right | 3,442,675 | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right | 520,966 |- | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right | 1,774,224 | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right | 518,862 |- | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right | 1,330,440 | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right | 517,052 |- | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right | 998,105 | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right | 503,673 |- | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main|Frankfurt]] || align=right | 671,927 | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right | 491,931 |- | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right | 601,646 | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right | 376,319 |- | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right | 586,217 | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right | 351,050 |- | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right | 581,308 | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right | 323,084 |- | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right | 576,259 | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right | 319,841 |- | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right | 547,685 | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right | 311,969 |- | colspan=9 align=center | Source: {{cite web |title=Mitglieder des Deutschen Städtetages |publisher=Deutschen Städtetag |date=31 December 2009 |accessdate=18 February 2011 |url=http://www.staedtetag.de/10/staedte/nach_einwohner/index.html |language=German}} |} ===Languages=== {{Main|Languages of Germany}} [[File:Knowledge German EU map.png|thumb|upright|Knowledge of German in European countries]] German is the official and predominant spoken language in Germany. It is one of 23 official languages in the European Union, and one of the three [[working language]]s of the [[European Commission]], along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages|Sorbian]], [[Romany language|Romany]], and [[Frisian languages|Frisian]]. They are officially protected by the [[ECRML]]. The most used immigrant languages are [[Turkish language|Turkish]], [[Kurdish language|Kurdish]], Polish, the [[Balkan languages]], and Russian. Standard German is a [[West Germanic languages|West Germanic language]] and is closely related to and classified alongside English, [[Dutch language|Dutch]], and the [[Frisian languages]]. To a lesser extent, it is also related to the [[East Germanic languages|East]] (extinct) and [[North Germanic languages]]. Most German vocabulary is derived from the Germanic branch of the Indo-European language family.{{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]]). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic)|Umlauts]], namely ä, ö, and ü, as well as the [[Eszett]] or ''scharfes S'' (''sharp s'') which is written "ß". {{multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German [[dialect]]s are distinguished from [[variety (linguistics)|varieties]] of [[standard German]]. German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]], [[phonology]], and [[syntax]]. Around the world, German has approximately 100 million [[First language|native speakers]] and also about 80 million non-native speakers.{{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} German is the main language of about 90 million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own.{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}
      {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}}
      ===Religion=== {{Main|Religion in Germany}} [[File:Colognecathedralatnight.JPG|thumb|upright|The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]].]] According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion|no registered religious denomination]]. According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ.{{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} Christianity is the largest religion in Germany, with around 49.4 million adherents (62.8%) in 2008{{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} of which 24.5 million are [[Protestantism|Protestants]] (29.9%) belonging to the EKD and 24.9 million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population).[http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. The second largest religion is [[Islam in Germany|Islam]] with an estimated 3.8 to 4.3 million adherents (4.6 to 5.2%) followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{bar box |title=Religion in Germany (2008) |titlebar=#ddd |float=left |bars= {{bar percent|[[Irreligion|No Religion]]|Yellow|34.1}} {{bar percent|[[Roman Catholicism]]|Orange|30.0}} {{bar percent|[[Protestantism]]|MediumAquamarine|29.9}} {{bar percent|[[Islam]]|#f99|4.0}} {{bar percent|[[Eastern Orthodox Church|Orthodox Christianity]]|DarkGray|1.6}} {{bar percent|[[Judaism]]|Blue|0.2}} {{bar percent|[[Buddhism]]|Black|0.2}} }} Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany|Roman Catholicism]] is concentrated in the south and west. Pope [[Benedict XVI]], was born in [[Bavaria]]. [[irreligion|Non-religious]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic|East Germany]] and major metropolitan areas.{{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. Of the roughly 4 million Muslims, most are [[Sunni Islam|Sunnis]] and [[Alevites]] from [[Turkey]], but there are a small number of [[Shia Islam|Shi'ites]] and other denominations.{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }}{{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other 1.6% of the country's overall population declare themselves [[Orthodox Christians]], [[Serbs]] and [[Greeks]] being the most numerous. Germany has Europe's third-largest [[History of the Jews in Germany|Jewish population]] (after France and the United Kingdom).Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. In 2004, twice as many Jews from former [[Soviet Union|Soviet]] republics settled in Germany as in [[Israel]], bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]]. Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]].[http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. Around 250,000 active [[Buddhism|Buddhists]] live in Germany; 50% of them are Asian immigrants.{{de icon}} [[Die Zeit]] 12/07, page 13 According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force".{{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} ===Education=== {{Main|Education in Germany}} [[File:Kindergartenfrankfurt.jpg|thumb|Kindergarten in [[Hessen]]]] Responsibility for educational oversight in Germany lies primarily with the [[States of Germany|federated states]] individually, whilst the federal government only has a minor role. Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education|compulsory]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage.{{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177 KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the ''[[Gymnasium (school)|Gymnasium]]'' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the ''[[Realschule]]'' has a broader range of emphasis for intermediate students and lasts six years; the ''[[Hauptschule]]'' prepares pupils for vocational education. [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left|The [[University of Heidelberg]] was established in 1386.]] Since the 1960s, a reform movement attempted to unify secondary education in a ''Gesamtschule'' ([[comprehensive school]]). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification;In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system. A special system of apprenticeship called ''Duale Ausbildung'' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. To enter a [[List of universities in Germany|university in Germany]], high school students are generally required to take the ''[[Abitur]]'' examination, which is similar to [[Advanced Level (UK)|A-levels in the UK]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities|ARWU]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200.{{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student.[http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. ===Health=== {{Main|Health in Germany}} [[File:UniKlinik (Freiburg) 4.jpg|thumb|Department of Surgery in the [[University Medical Center Freiburg]]]] Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]]'s [[Otto von Bismarck#Bismarck's social legislation|Social legislation]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]], Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004.[http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita. Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy|76,5 years for men and 82,1 years for woman]]. It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human)|live births]]), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3). In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]], followed by [[Alcoholism|alcohol-related disorders]] and [[hernias]]. For women, the top diagnoses related to [[pregnancies]], breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]]. According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe.{{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}}{{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} ==Culture== {{Main|Culture of Germany}} [[File:Beethoven.jpg|thumb|left|upright|[[Ludwig van Beethoven]] (1770–1827), composer]] German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism|secular]]. As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]], Western [[popculture]], and globally connected [[subculture]].{{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}}[http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. Historically Germany has been called ''Das Land der Dichter und Denker'' (the land of poets and thinkers).Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91 million German museum visits every year; annually, 20 million go to theatres and operas; while 3.6 million listen to the great symphonic orchestras.[http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. [[File:Berlin night.jpg|thumb|Berlin is a centre of arts, nightlife, music, architecture and festivals]] The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country|Germany on the World Heritage List]].[http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]], [[Matthias Grünewald]], and [[Albrecht Dürer]] were important artists of the [[Renaissance]], [[Caspar David Friedrich]] of [[Romanticism]], and [[Max Ernst]] of [[Surrealism]]. Architectural contributions from Germany include the [[Carolingian architecture|Carolingian]] and [[Ottonian architecture|Ottonian styles]], which were important precursors of [[Romanesque architecture|Romanesque]]. The region later became the site of significant works in styles such as [[Gothic architecture|Gothic]], [[Renaissance architecture|Renaissance]] and [[Baroque architecture|Baroque]]. Germany was particularly important in the early [[modern architecture|modern movement]], especially through the [[Bauhaus]] movement founded by [[Walter Gropius]]. [[Ludwig Mies van der Rohe]], also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea.2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 ===Literature=== {{Main|German literature}} German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]]. Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]]. The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]], [[Bertolt Brecht]], [[Hermann Hesse]], [[Heinrich Böll]], and [[Günter Grass]].{{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[Johann Wolfgang von Goethe|Johann Wolfgang v. Goethe]]
      (1749–1832) ! align=center |[[Friedrich Schiller]]
      (1759–1805) ! align=center |[[Brothers Grimm]]
      (1785–1863) ! align=center |[[Thomas Mann]]
      (1875–1955) ! align=center |[[Hermann Hesse]]
      (1877–1962) |- | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]]|| align=left | [[File:Grimm1.jpg|125px]]|| align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left | [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]] |} ===Philosophy=== {{Main|German philosophy}} [[File:Immanuel Kant (painted portrait).jpg|thumb|upright|[[Immanuel Kant]] (1724–1804)]] Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world. [[Gottfried Leibniz]]'s contributions to [[rationalism]]; the establishment of classical [[German idealism]] by [[Immanuel Kant]], [[Johann Gottlieb Fichte]], [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]]; [[Arthur Schopenhauer]]'s composition of metaphysical pessimism; [[Karl Marx]]'s and [[Friedrich Engels]]' formulation of [[communist theory]]; [[Friedrich Nietzsche]]'s development of [[perspectivism]]; [[Gottlob Frege]]'s contributions to the dawn of [[analytic philosophy]]; [[Martin Heidegger]]'s works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]], [[Theodor Adorno]], [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential. In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries.Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. ===Cinema=== {{Main|Cinema of Germany}} [[File:Derblaueengel.jpg|thumb|upright|[[Marlene Dietrich]] in ''[[The Blue Angel]]'' in 1930, Germany's first major film with sound]] German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]]. It was particularly influential during the years of the Weimar Republic with [[German expressionism|German expressionists]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]]. Austrian-based director [[Fritz Lang]], who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film)|Metropolis]] (1927) is referred to as the birth of modern Science Fiction movies. In 1930 Austrian-American [[Josef von Sternberg]] directed ''[[The Blue Angel]]'', which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]].{{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} Impressionist documentary [[Berlin: Symphony of a Great City]], directed by [[Walter Ruttmann]], is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film.[http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. [[File:Berlinale2007.jpg|thumb|left|The Berlinale Palast during the [[Berlin Film Festival]] in February 2007]] During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]], [[Werner Herzog]], [[Wim Wenders]], and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films.[http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. More recently, films such as ''[[Good Bye Lenin!]]'' (2003), ''[[Head-On|Gegen die Wand (Head-on)]]'' (2004), ''[[Der Untergang|Der Untergang (Downfall)]]'' (2004), and ''[[Der Baader Meinhof Komplex]]'' (2008) have enjoyed international success. The [[Academy Award for Best Foreign Language Film]] went to the German production ''[[The Tin Drum (film)|Die Blechtrommel (The Tin Drum)]]'' in 1979, to ''[[Nowhere in Africa]]'' in 2002, and to ''[[The Lives of Others|Das Leben der Anderen (The Lives of Others)]]'' in 2007.[http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]], [[Hanna Schygulla]], [[Armin Mueller-Stahl]], [[Jürgen Prochnow]], and [[Thomas Kretschmann]]. The [[Berlin Film Festival]], held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears.''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' The annual [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production. ===Music=== {{Main|Music of Germany}} Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]], [[Johann Sebastian Bach]], [[Johannes Brahms]], and [[Richard Wagner]]. As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]], [[Boney M.]], [[Nico]], [[Nina Hagen]], [[Scorpions (band)|Scorpions]], [[Toten Hosen]], [[Tokio Hotel]], [[Rammstein]] and [[Paul van Dyk]].[http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32 billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. {| class="wikitable" style="text-align:right; margin-right:50px;" |- ! align=center |[[J.S.Bach]]
      [[Toccata and Fugue in D minor, BWV 565|Toccata und Fuge]] ! align=center |[[Ludwig van Beethoven|L.v. Beethoven]]
      [[Symphony No. 5 (Beethoven)|Symphonie 5 c-moll]] ! align=center |[[Richard Wagner|R. Wagner]]
      [[Die Walküre]] ! align=center |[[Kraftwerk]]
      [[Computer World|Computerwelt Pt. 2]] ! align=center |[[Modern Talking]]
      [[Brother Louie (Modern Talking song)|Brother Louie]] ! align=center |[[Rammstein]]
      [[Ohne dich]] |- | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]]|| style="text-align:left; background:silver;"|[[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]]|| style="text-align:left; background:dimGrey;"| [[File:Rammstein - Ohne dich (sample).ogg|110px]] |} ===Media=== [[File:FrankfurterBuchmesse2008.JPG|thumb|The [[Frankfurt Book Fair]] in 2008]] Germany's television market is the largest in Europe, with some 34 million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster)|ARD]] offer a range of digital-only channels.[http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]], the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]]. The German-speaking book publishers produce about 700 million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China.[http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years. The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]]. ===Sports=== {{Main|Sport in Germany}} [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px|[[Michael Schumacher]] has won seven [[Formula One]] championships.]] Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually.{{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} [[Association football]] is the most popular sport. With more than 6.3 million official members, the [[German Football Association]] (''Deutscher Fußball-Bund'') is the largest sports organisation of its kind worldwide. The [[Fußball-Bundesliga|Bundesliga]] attracts the second highest [[List of attendance figures at domestic professional sports leagues|average attendance]] of any professional sports league in the world. The [[Germany national football team|German national football team]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974|1974]] and [[FIFA World Cup 2006|2006]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988|1988]]. Among the most successful and renowned footballers are [[Franz Beckenbauer]], [[Gerd Müller]], [[Jürgen Klinsmann]], [[Lothar Matthäus]], and [[Oliver Kahn]]. Other popular spectator sports include [[team handball|handball]], volleyball, basketball, [[ice hockey]], and tennis. [[File:AllianzArenaSunset.jpg|thumb|left|The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]].]] Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]], has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions|Formula One World Drivers' Championships]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete.{{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} Constructors like [[BMW]] and [[Mercedes-Benz|Mercedes]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]], a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany. Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]], combining East and West German medals. In the [[2008 Summer Olympics]], Germany finished fifth in the medal count,{{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} while in the [[2006 Winter Olympics]] they finished first.{{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics|1936]] and in [[Munich]] in [[1972 Summer Olympics|1972]]. The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics|1936]] when they were staged in the [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]]. ===Cuisine=== {{Main|German cuisine}} [[File:144215094 be5e39f10f b.jpg|thumb|A ''[[Schwarzwälder Kirschtorte]]'' (Black Forest cake)]] German cuisine varies from region to region. The southern regions of [[Bavarian cuisine|Bavaria]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular.{{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further.{{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread.[http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. More than 300 types of bread are sold in bakery shops across the country.[http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. [[File:Buffet Germany.jpg|thumb|left|A typical cheese and cold meat [[buffet]] served at private festivities]] As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine|Italian]] dishes like pizza and pasta, [[Turkish cuisine|Turkish]] and [[Arab]] dishes like [[Doner kebab|Döner Kebab]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger|burger]] chains, as well as [[Chinese cuisine|Chinese]] and [[Greek cuisine|Greek]] restaurants, are widespread. [[Indian cuisine|Indian]], [[Thai cuisine|Thai]], [[Japanese cuisine|Japanese]], and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars.[http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. German restaurants have become the world's second most decorated eateries after France.[http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world.[http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. Beer varieties include [[Altbier|Alt]], [[Bock]], [[Dunkel]], [[Kölsch (beer)|Kölsch]], [[Lager]], [[Malzbier]], [[Pilsener|Pils]], and [[Weizenbier]]. Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices.[http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. Furthermore, carbonated mineral water and ''[[Spritzer#Non-alcoholic spritzer|Schorle]]'' (its mixture with fruit juice) are very popular in Germany. ===Society=== [[File:Schloss-Neuschwanstein.jpg|thumb|right|Tourism is an important industry in parts of Germany([[Neuschwanstein Castle]])]] Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities.[http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. The country has established a high level of [[gender equality]], promotes [[Disability rights movement|disability rights]], and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and [[civil union]]s have been permitted since 2001.[http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]], are openly gay.{{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}}{{Update after|2011|09|reason=elections in Berlin}} During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards.{{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed.[http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. In annually conducted global surveys known as [[Nation Brands Index]], Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010.{{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} Another global opinion poll, for the [[BBC]], revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view.{{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }}[http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. With an expenditure of €67 billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria.{{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} {{-}} ==See also== {{Portal box|Germany|European Union}} * [[Outline of Germany]] {{Template group |title = Articles Related to Germany |list = {{Germany topics}} {{States of Germany |titlestyle=background:#ddf;}} {{Template group |title = Geographic locale |list = {{Geographic location | Northwest = ''[[North Sea]]''
      {{Flag|The Netherlands}} | North = {{Flag|Denmark}} | Northeast = ''[[Baltic Sea]]'' | West = {{Flag|Belgium}}
      {{Flag|Luxembourg}} | Centre = {{Flagicon|Germany}} [[Outline of Germany|Germany]] | East = {{Flag|Poland}}
      {{Flag|Czech Republic}} | Southwest = {{Flag|France}} | South = {{Flag|Switzerland}} • {{Flag|Austria}} | Southeast = {{Flag|Austria}} }} {{Sovereign states of Europe}} {{Countries bordering the Baltic Sea}} }} {{Template group |title = International membership |list = {{EU members}} {{North Atlantic Treaty Organisation (NATO)}} {{Organisation for Economic Co-operation and Development}} {{G8 nations}} {{G20}} {{WTO members}} {{Council of Europe}} {{OSCE}} }} {{National personifications}} }} ==Notes== {{Reflist|group=note}} ==References== {{Reflist|colwidth=30em}} ==External links== {{Spoken Wikipedia-2|2008-06-24|Germany (Spoken Article) Part 1.ogg|Germany (Spoken Article) Part 2.ogg}} {{Sister project links|Germany}} * [http://www.deutschland.de/ Deutschland.de] – Official Germany portal (non-profit) * [http://www.bundeskanzlerin.de/ Official site of German Chancellor] (German and English) * [http://www.dw-world.de/ Deutsche Welle] – Germany's international broadcaster * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html Chief of State and Cabinet Members] * {{CIA World Factbook link|gm|Germany}} * [http://www.britannica.com/EBchecked/topic/231186/Germany Germany] entry at ''[[Encyclopædia Britannica]]'' * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm Germany] at ''UCB Libraries GovPubs'' * {{dmoz|Regional/Europe/Germany}} {{Wikiatlas|Germany}} * [http://www.tatsachen-ueber-deutschland.de/en/ Facts about Germany] – by the German Federal Foreign Office * [http://www.destatis.de/e_home.htm Destatis.de] – Federal Statistical Office Germany {{en icon}} {{osmrelation-inline|51477}} [[Category:Germany| ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]] {{Link GA|da}} {{Link GA|de}} {{Link GA|eo}} {{Link GA|es}} {{Link GA|lt}} {{Link GA|zh}} {{Link FA|af}} {{Link FA|gv}} {{Link FA|hr}} {{Link FA|lv}} {{Link FA|mr}} {{Link FA|nah}} {{Link FA|pt}} {{Link FA|sq}} {{Link FA|tr}} {{Link FA|yi}} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]wom/000077500000000000000000000000001335270560400371725ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-expraw-ASDF.wom.xml000066400000000000000000000130511335270560400420210ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-exp/wom

      ''' asdf ''' or ''' ASDF ''' may refer to

      • * [[Alabama State Defense Force]] , a military entity
      • * [[Alaska State Defense Force]] , a military entity
      • * [[Another System Definition Facility]] , the most commonly used build system for Common Lisp
      • * [[Association of Synchronous Data Formats]] , an organization that advances the use of synchronous data transmission technology
      • * Average Squared Difference Function, a mapping used in <text>pitch detection algorithms</text> [[pitch detection algorithm]]s
      • * asdf, the first four letters in the [[home row]] on a [[QWERTY]] keyboard
      • * asdf movie, a series of <text>viral videos</text> [[viral video]]s
      • * Asdf.com is a random chat board where the point is to not always stay on topic.
      == See also ==
      • * [[Hoverboard ASDF]]
      • * [[Japan Air Self-Defense Force]]
      • * [[QWERTY]]

      [[Category:Initialisms]] {{ disambig }}

      [[de:ASDF]] [[fr:ASDF]]

      raw-Germany.wom.xml000066400000000000000000030344651335270560400427250ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/complex-no-exp/wom

      {{ Dablink | This article is about the country. For other uses of terms redirecting here, see [[Germany (disambiguation)]] and [[Deutschland (disambiguation)]]. }} {{ Use dmy dates | date = January 2011 }} {{ pp-semi-protected | small = yes }} {{ pp-move-indef }} {{ Featured article }} {{ Infobox country | native_name = <span style="line-height:1.33em;"> {{ lang | de | ''Bundesrepublik Deutschland'' }} | conventional_long_name = <span style="line-height:1.33em;">Federal Republic of Germany</span> | common_name = Germany | national_anthem = <center>[[File:Deutschlandlied played by USAREUR Band.ogg]]</center><br />The third stanza of {{ lang | de | ''[[Deutschlandlied|Das Lied der Deutschen]]'' }} | image_flag = Flag of Germany.svg | image_coat = Coat of Arms of Germany.svg | image_map = EU-Germany.svg | map_caption = {{ map_caption | location_color = dark green | region = Europe | region_color = dark grey | subregion = the [[European Union]] | subregion_color = green | legend = EU-Germany.svg }} | official_languages = [[German language|German]] {{ Ref | 1 }} | demonym = German | capital = [[Berlin]] | latd = 52 | latm = 31 | latNS = N | longd = 13 | longm = 23 | longEW = E | largest_city = capital | government_type = [[Federal republic|Federal]] [[parliamentary republic]] | leader_title1 = [[President of Germany|President (Head of State)]] | leader_name1 = [[Christian Wulff]] ([[Christian Democratic Union (Germany)|CDU]]) | leader_title2 = [[Chancellor of Germany (Federal Republic of Germany)|Chancellor (Head of Government)]] | leader_name2 = [[Angela Merkel]] ([[Christian Democratic Union (Germany)|CDU]]) | leader_title3 = [[President of the Bundestag]] | leader_name3 = [[Norbert Lammert]] ([[Christian Democratic Union (Germany)|CDU]]) | leader_title4 = [[President of the Bundesrat]] | leader_name4 = [[Hannelore Kraft]] ([[Social Democratic Party of Germany|SPD]]) | sovereignty_type = [[Kingdom of Germany|Formation]] | sovereignty_note = | established_event1 = [[Holy Roman Empire]] | established_date1 = 2 February 962 | established_event2 = [[Unification of Germany|Unification]] | established_date2 = 18 January 1871 | established_event3 = [[History of Germany|Federal Republic]] | established_date3 = 23 May 1949 | established_event4 = [[German reunification|Reunification]] | established_date4 = 3 October 1990 | accessionEUdate = 25 March 1957 | EUseats = 99 | area_km2 = 357,021 | area_sq_mi = 137,847 <!-- Do not remove per [[WP:MOSNUM]] --> | area_rank = 63rd | area_magnitude = 1 E11 | percent_water = 2.416 | population_estimate = 81,757,600 | population_estimate_year = 2010 | population_estimate_rank = 15th | population_census = | population_census_year = | population_estimate_year = Jan.&nbsp;1,&nbsp;2010 | population_estimate_rank = 15th | population_density_km2 = 229 | population_density_sq_mi = 593 <!-- Do not remove per [[WP:MOSNUM]] --> | population_density_rank = 55th | GDP_PPP_year = 2010 | GDP_PPP = $2.932&nbsp;trillion <ref name = IMF > {{cite encyclopedia|url=http://www.imf.org/external/pubs/ft/weo/2010/02/weodata/weorept.aspx?pr.x=61&pr.y=14&sy=2008&ey=2015&scsm=1&ssd=1&sort=country&ds=.&br=1&c=134&s=NGDP_R%2CNGDP_RPCH%2CNGDP%2CNGDPD%2CNGDP_D%2CNGDPRPC%2CNGDPPC%2CNGDPDPC%2CNGAP_NPGDP%2CPPPGDP%2CPPPPC%2CPPPSH%2CPPPEX%2CNID_NGDP%2CNGSD_NGDP&grp=0&a=|title=Germany|publisher=International Monetary Fund|accessdate=20 February 2011}} </ref> | GDP_PPP_rank = | GDP_PPP_per_capita = $35,930 <ref name = IMF /> | GDP_PPP_per_capita_rank = | GDP_nominal = $3.305&nbsp;trillion <ref name = IMF /> | GDP_nominal_rank = | GDP_nominal_year = 2010 | GDP_nominal_per_capita = $40,511 <ref name = IMF /> | GDP_nominal_per_capita_rank = | HDI_year = 2010 | HDI = {{ increase }} 0.885 <ref name =" UNDP " > {{cite web|url=http://hdr.undp.org/en/media/HDR_2010_EN_Table1.pdf|title=Human development indices|publisher=[[United Nations Development Programme]]|accessdate=4 November 2010}} </ref> | HDI_rank = 10th | HDI_category = <span style="color:#090;">very&nbsp;high</span> | Gini = 27 {{ Update after | 2011 | 04 | reason = Regularly check CIA factbook or http://www.wider.unu.edu/research/Database/en_GB/wiid/ }} | Gini_year = 2006 | Gini_category = <span style="color:#090;">low</span> | currency = [[Euro]] ([[Euro sign|€]]) {{ Ref | 2 }} (2002 – present) | currency_code = EUR | time_zone = CET | utc_offset = +1 | time_zone_DST = CEST | utc_offset_DST = +2 | drives_on = right | cctld = [[.de]] {{ Ref | 3 }} | calling_code = [[Telephone numbers in Germany|49]] | ISO_3166-1_alpha2 = DE | ISO_3166-1_alpha3 = DEU | ISO_3166-1_numeric = ? | alt_sport_code = GER | vehicle_code = D | aircraft_code = D | footnote1 = {{ note | 1 }} Danish, [[Low German]], [[Sorbian languages|Sorbian]], [[Romani language|Romany]], and [[Frisian languages|Frisian]] are officially recognised and protected by the [[European Charter for Regional or Minority Languages|ECRML]]. | footnote2 = {{ note | 2 }} Before 2002: [[Deutsche Mark]] (DEM). | footnote3 = {{ note | 3 }} Also [[.eu]], shared with other [[European Union]] member states. }}

      ''' Germany ''' ( {{ IPAc-en | En-uk-Germany.ogg | ˈ | | ɜr | m | ən | i }} ), officially the ''' Federal Republic of Germany ''' ( {{ lang-de | Bundesrepublik Deutschland }} , {{ IPA-de | ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant | pron | De-Bundesrepublik_Deutschland.ogg }} ), <ref name =" Duden6 " > {{cite book |editor=Max Mangold (ed.)|title=Duden, Aussprachewörterbuch (Duden Pronunciation Dictionary) |edition=6th |year=1995 |publisher=Dudenverlag Bibliographisches Institut & F.A. Brockhaus |location=Mannheim |language=German |isbn=3-411-04066-1|pages=271, 53f}} </ref> <ref group =" note " > The country's long name in its [[Languages of Germany|regional languages]] include: *{{lang-dsb|Nimska zwězkowa republika}}; *{{lang-hsb|Němska zwjazkowa republika}}; *{{lang-da|Forbundsrepublikken Tyskland}}; *{{lang-nds| Bundsrepubliek Düütschland}}; *{{lang-rmy|I Federalni Republika Jermaniya}}; *[[Frisian language|Frisian]]: Bûnsrepublyk Dútslân; *[[Palatinate German]]: Bundesrepublik vun Daitschlond </ref> is a country in [[Western Europe <rtd>|</rtd> <text>Western</text> ]] and [[Central Europe]] . It is bordered to the north by the [[North Sea]] , [[Denmark]] , and the [[Baltic Sea]] ; to the east by [[Poland]] and the [[Czech Republic]] ; to the south by [[Austria]] and [[Switzerland]] ; and to the west by [[France]] , [[Luxembourg]] , [[Belgium]] , and the [[Netherlands]] . The territory of Germany covers an area of 357,021   &nbsp; km <sup> 2 </sup> and is influenced by a [[temperate climate <rtd>|</rtd> <text>temperate seasonal climate</text> ]] . With 81.8   &nbsp; million inhabitants, it is the most populous member state of the [[European Union]] , <ref name = population > {{cite web |url=http://epp.eurostat.ec.europa.eu/cache/ITY_OFFPUB/KS-QA-09-047/EN/KS-QA-09-047-EN.PDF |title=First demographic estimates for 2009 |publisher=[[Eurostat]] |accessdate=31 January 2010}} </ref> and home to the [[List of countries by immigrant population <rtd>|</rtd> <text>third-largest number of international migrants</text> ]] worldwide. <ref> {{cite web |url=http://www.migrationinformation.org/datahub/countrydata/country.cfm |title=Germany: Inflow of foreign population by country of nationality, 1994 to 2003 | publisher = Migrationinformation.org |accessdate=4 January 2010}} </ref>

      A region named [[Germania]] , inhabited by several <text>Germanic peoples</text> [[Germanic people]]s , was [[Germania (book) <rtd>|</rtd> <text>documented</text> ]] before AD   &nbsp; 100. Beginning in the 10th century, German territories formed a central part of the [[Holy Roman Empire]] , which lasted until 1806. During the 16th century, northern German regions became the centre of the [[Protestant Reformation]] while southern and western parts remained dominated by [[Roman Catholic]] denominations. As a modern [[nation-state]] , the country was first [[Unification of Germany <rtd>|</rtd> <text>unified</text> ]] in 1871, with the inception of the [[German Empire]] . After the proclamation of the [[Weimar Republic]] in 1918 the [[Third Reich]] followed in 1933. The period was marked by a dictatorship and the initiation of [[World War II]] . After 1945, Germany was divided by [[Allied Occupation Zones in Germany <rtd>|</rtd> <text>allied occupation</text> ]] , and evolved into two states, [[East Germany]] and [[West Germany]] . In 1990 Germany was [[German reunification <rtd>|</rtd> <text>reunified</text> ]] . West Germany was a founding member of the [[European Communities <rtd>|</rtd> <text>European Community</text> ]] in 1957, which became the EU in 1993. It is part of the [[Schengen Area]] and since 1999 a member the [[eurozone]] . <ref> {{cite news |title=On Jan.&nbsp;1, out of many arises one Euro |newspaper=St. Petersburg Times |location= Florida, USA |first= Susan | last = Taylor Martin |date=28 December 1998 |page=National, 1.A }} </ref> <ref name = euroc > {{Cite news|title = Germans Say Goodbye to the Mark, a Symbol of Strength and Unity |newspaper=The New York Times| accessdate = 26 April 2010| url = http://www.nytimes.com/2002/01/01/world/germans-say-goodbye-to-the-mark-a-symbol-of-strength-and-unity.html?pagewanted=1 |first=Edmund L. | last = Andrews |date=1 January 2002 }} </ref> <ref> {{Cite news |title = Euro notes and coins to flood continent |first=David | last = Smith |date=15 June 2001 |newspaper=New Straits Times| location = Kuala Lumpur | accessdate = 26 April 2010| url = http://news.google.co.uk/newspapers?id=liwhAAAAIBAJ&sjid=j3gFAAAAIBAJ&pg=1283,3813941&dq=germany+euro+currency+introduced+1999&hl=en }} </ref>

      Germany is a [[Federation <rtd>|</rtd> <text>federal</text> ]] [[parliamentary republic]] of [[States of Germany <rtd>|</rtd> <text>sixteen states</text> ]] . The capital and largest city is [[Berlin]] . Germany is a member of the [[United Nations]] , [[NATO]] , the [[G8]] , the [[G-20 major economies <rtd>|</rtd> <text>G20</text> ]] , the [[OECD]] and assumed a nonpermanent seat on the [[UN Security Council]] for the 2011–12 term. It is a [[Great power#Aftermath of the Cold War <rtd>|</rtd> <text>major power</text> ]] with the world's [[List of countries by GDP (nominal) <rtd>|</rtd> <text>fourth largest economy</text> ]] by nominal [[GDP]] and the [[List of countries by GDP (PPP) <rtd>|</rtd> <text>fifth largest</text> ]] by [[purchasing power parity]] . It is the [[List of countries by exports <rtd>|</rtd> <text>second largest exporter</text> ]] and [[List of countries by imports <rtd>|</rtd> <text>third largest importer</text> ]] of goods. In absolute terms, Germany allocates the third biggest annual [[development aid]] budget in the world, <ref> {{cite news | url = http://www.topnews.in/germany-worlds-second-biggest-aid-donor-after-us-229970 | title = Germany world's second biggest aid donor after US | work = TopNews India | accessdate = 10 April 2008 | agency = DPA | date = 4 April 2008 }} </ref> while its [[List of countries by military expenditures <rtd>|</rtd> <text>military expenditure ranked seventh</text> ]] . <ref> {{cite web |url=http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archiveurl=http://web.archive.org/web/20070814224502/http://www.sipri.org/contents/milap/milex/mex_major_spenders.pdf/download |archivedate=14 August 2007 |title=The fifteen major spenders in 2006 |accessdate=23 August 2007 |year=2007 |format=PDF |work=Recent trends in military expenditure| publisher=Stockholm International Peace Research Institute}} </ref> The country has developed a [[List of countries by Human Development Index <rtd>|</rtd> <text>very high standard of living</text> ]] and a comprehensive system of [[social security]] . It holds a key position in European affairs and maintains a multitude of close partnerships on a global level. <ref> {{cite news | url=http://www.iht.com/articles/2008/04/04/europe/poll.php | title = The leader of Europe? Answers an ocean apart | newspaper = International Herald Tribune | date = 4 April 2008 | accessdate =4 April 2008 | location = Paris }} </ref> Germany is recognised as a scientific and technological leader in several fields. <ref> [http://www.innovations-report.de/html/berichte/informationstechnologie/bericht-109339.html Confidently into the Future with Reliable Technology] www.innovations-report.de. 7 May 2008. Retrieved 4 April 2008. </ref>

      == History ==

      {{ Main | History of Germany }}

      === Etymology ===

      {{ Main | Names of Germany | List of country name etymologies }}

      The English word "Germany" derives from the [[Greek language <rtd>|</rtd> <text>Greek</text> ]] <ref> {{cite book|last = Stümpel|first = Gustav|title = Name und Nationalität der Germanen. Eine neue Untersuchung zu Poseidonios, Caesar und Tacitus|origyear = 1932|publisher = Dieterich|location = Leipzig|language = German|pages = 60}} </ref> term [[Germania]] . The name "Germania" came into use after [[Julius Caesar]] adopted it from a [[Gaulish language <rtd>|</rtd> <text>Gallic</text> ]] term for the peoples east of the [[Rhine]] that could possibly have meant "neighbour", or "men of forests", or even "men with spears". <ref> {{cite book |last= Schulze |first=Hagen |authorlink=Hagen Schulze |title=Germany: A New History |publisher= [[Harvard University Press]]|page=4 |year=1998 |isbn= 0-674-80688-3}} </ref> <ref> {{cite book | url=http://www.oxfordreference.com/views/ENTRY.html?subview=Main&entry=t27.e6407 | section = German | title = The Concise Oxford Dictionary of English Etymology | editor = Hoad, T.F. | publisher = Oxford University Press | year = 1996 | accessdate = 4 March 2008 }} </ref> <ref> {{cite web|url=http://www.zeno.org/Meyers-1905/A/G%C4%93r |title=Meyers Encyclopedia:Ger |publisher=Zeno.org |accessdate=26 September 2010}} </ref>

      === Germanic tribes 750 BC–260 ===

      {{ Main | Germanic peoples | Germania }}

      [[File:Germanic tribes (750BC-1AD).png|thumb|left | Expansion of the [[Germanic peoples <rtd>|</rtd> <text>Germanic tribes</text> ]] 750 BC – AD   &nbsp; 1 ]] The [[ethnogenesis]] of the [[Germanic peoples <rtd>|</rtd> <text>Germanic tribes</text> ]] is assumed to have occurred during the [[Nordic Bronze Age]] , or at the latest during the [[Pre-Roman Iron Age]] . From southern Scandinavia and northern Germany, the tribes began expanding south, east and west in the 1st century   &nbsp; BC, coming into contact with the <text>Celtic</text> [[Celt]]ic tribes of [[Gaul]] as well as [[Iranian peoples <rtd>|</rtd> <text>Iranian</text> ]] , [[Balts <rtd>|</rtd> <text>Baltic</text> ]] , and [[Slavic peoples <rtd>|</rtd> <text>Slavic</text> ]] tribes in [[Eastern Europe]] . Little is known about early Germanic history, except through their recorded interactions with the [[Roman Empire]] , etymological research and archaeological finds. <ref name =" Claster " > {{cite book | first = Jill N. | last = Claster | title = Medieval Experience: 300–1400 | publisher = [[New York University Press]] | year = 1982 | page = 35 | isbn=0-8147-1381-5 }} </ref>

      Under [[Augustus]] , the Roman General [[Publius Quinctilius Varus]] began to invade Germania (a term used by the Romans to define a territory running roughly from the [[Rhine]] to the [[Ural Mountains]] ), and it was in this period that the Germanic tribes became familiar with Roman tactics of warfare while maintaining their tribal identity. In AD   &nbsp; 9, three <text>Roman legions</text> [[Roman legion]]s led by Varus were defeated by the [[Cheruscan]] leader [[Arminius]] in the [[Battle of the Teutoburg Forest]] . Modern Germany, as far as the [[Rhine]] and the [[Danube]] , thus remained outside the Roman Empire. By AD   &nbsp; 100, the time of [[Tacitus]] ' '' [[Germania (book) <rtd>|</rtd> <text>Germania</text> ]] '' , Germanic tribes settled along the Rhine and the Danube (the [[Limes Germanicus]] ) , occupying most of the area of modern Germany; Austria, southern [[Bavaria]] and the western [[Rhineland]] , however, were Roman provinces. The 3rd century saw the emergence of a number of large West Germanic tribes: [[Alamanni]] , [[Franks]] , [[Chatti]] , [[Saxons]] , [[Frisians]] , [[Sicambri]] , and [[Thuringii]] . Around 260, the Germanic peoples broke through the Limes and the Danube frontier into Roman-controlled lands. <ref name =" Cambridge ancient history " > {{cite book | series= The Cambridge Ancient History | title = The crisis of empire, A.D. 193–337 | volume = 12 | page = 442 | isbn=0-521-30199-8 | first = Alan K. | last = Bowman | first2 = Peter | last2 = Garnsey | first3 = Averil | last3 = Cameron | publisher = Cambridge University Press | year = 2005}} </ref>

      === Migration Period and Frankish Empire 260-800 ===

      {{ Main | Migration Period | Franks }} After the invasion of the [[Huns]] 375 and with the decline of Rome from 395 began the great migration, during which the Germanic tribes moved further and further to the southwest. Simultaneously several large tribes formed on the territory of modern Germany and displaced the smaller Germanic tribes. These were the [[Franks]] and [[Alamanni]] in the West, the [[Saxons]] in the North, the [[Bavarians]] in the South and the [[Thuringians]] in the East who walked into the nearly deserted areas of today's East Germany in the 7th Century to the Elbe-Saale line which marked the new border to the Slavic tribes. Large segments of the population of today's East Germany were characterized as Slavic (Germania Slavica) in the Early Middle Age. Only during the High Middle Ages, they were assimilated ( [[Ostsiedlung]] ). The main part of Western and Central Europe and thus also large areas of today's South and West Germany were occupied by the Franks, now Northern Germany was ruled by the Saxons and Slavs. All areas of the former [[Frankish Empire]] associated with todays Germany were in the eastern part of the empire, which had been known since the [[Merovingian]] period as [[Austrasia]] . A certain self-rule of Austrasia appeared the first time in 614 as King [[Clotaire II]] had to sign the '' Edictum Chlotharii '' , in which it was confirmed that each of the three Frankish sub-kingdoms (Neustria, Austrasia, Burgundy) came under the rule of a [[Mayor of the Palace]] .

      === Holy Roman Empire 962–1806 ===

      {{ Main | Holy Roman Empire }} {{ See also | Medieval demography | Ostsiedlung }}

      [[File:Weltliche Schatzkammer Wien (169)pano.jpg|thumb|upright | The [[Imperial Crown of the Holy Roman Empire <rtd>|</rtd> <text>Imperial Crown</text> ]] of the [[Holy Roman Empire]] , created around AD   &nbsp; 1000 ]]

      On 25 December 800, [[Charlemagne]] founded the [[Carolingian Empire]] , which was [[Treaty of Verdun <rtd>|</rtd> <text>divided in 843</text> ]] . The medieval empire resulted from the [[East Francia <rtd>|</rtd> <text>eastern portion</text> ]] of this division and existed in varying forms from 962 until 1806. Its territory stretched from the [[Eider River]] in the north to the [[Mediterranean Sea <rtd>|</rtd> <text>Mediterranean</text> ]] coast in the south. Often referred to as the [[Holy Roman Empire]] (or the Old Empire), it was officially called the '' Sacrum Romanum Imperium Nationis Germanicæ '' (Holy Roman Empire of the German Nation) starting in 1448, to adjust the title to its then reduced territory.

      [[File:Martin Luther by Lucas Cranach der Ältere.jpeg|thumb|left|150px | [[Martin Luther]] initiated the [[Protestant Reformation]] . ]]

      Under the reign of the [[Ottonian]] emperors (919–1024), the [[Stem duchy <rtd>|</rtd> <text>duchies</text> ]] of [[Duchy of Lorraine <rtd>|</rtd> <text>Lorraine</text> ]] , [[Duchy of Saxony <rtd>|</rtd> <text>Saxony</text> ]] , [[Franconia]] , [[Swabia]] , [[Thuringia]] , and [[Bavaria]] were consolidated, and the German king was crowned [[Holy Roman Emperor]] of these regions in 962. Under the reign of the [[Salian]] emperors (1024–1125), the Holy Roman Empire absorbed northern Italy and [[Burgundy (region) <rtd>|</rtd> <text>Burgundy</text> ]] , although the emperors lost power through the [[Investiture Controversy]] . Under the [[House of Hohenstaufen <rtd>|</rtd> <text>Hohenstaufen</text> ]] emperors (1138–1254), the German princes increased their influence further south and east into territories inhabited by [[Slavic peoples <rtd>|</rtd> <text>Slavs</text> ]] , preceding [[History of German settlement in Eastern Europe <rtd>|</rtd> <text>German settlement</text> ]] in these areas and further east '' ( [[Ostsiedlung]] ) '' . Northern German towns grew prosperous as members of the [[Hanseatic League]] . Starting with the [[Great Famine of 1315–1317 <rtd>|</rtd> <text>Great Famine</text> ]] in 1315, then the [[Black Death]] of 1348–50, the population of Germany plummeted. <ref> {{ cite book | url=http://www.vlib.us/medieval/lectures/black_death.html | title = The Great Famine (1315–1317) and the Black Death (1346–1351) | first = Lynn Harry | last = Nelson | publisher = [[University of Kansas]] }} </ref>

      The edict of the [[Golden Bull of 1356 <rtd>|</rtd> <text>Golden Bull</text> ]] in 1356 provided the basic constitution of the empire that lasted until its dissolution. It codified the election of the emperor by seven <text>prince-electors</text> [[prince-elector]]s who ruled some of the most powerful principalities and archbishoprics. Beginning in the 15th century, the emperors were elected nearly exclusively from the [[Habsburg]] dynasty of [[Archduchy of Austria <rtd>|</rtd> <text>Austria</text> ]] .

      The monk [[Martin Luther]] publicised his [[The 95 Theses <rtd>|</rtd> <text>95 Theses</text> ]] in 1517, challenging practices of the [[Roman Catholic Church]] , initiating the [[Protestant Reformation]] . A separate [[Lutheranism <rtd>|</rtd> <text>Lutheran</text> ]] church became the official religion in many German states after 1530. Religious conflict led to the [[Thirty Years' War]] (1618–1648), which devastated German lands. <ref> Rempel, Gerhard. [http://mars.wnec.edu/~grempel/courses/wc2/lectures/30yearswar.html The Thirty-Years-War]. Western [[New England College]]. </ref> The population of the German states was reduced by about 30%. <ref> {{cite book | url=http://books.google.com/?id=eGsCGAdH4YQC&pg=PA51&dq#v=onepage&q=&f=false | title = The savage wars of peace: England, Japan and the Malthusian trap | first = Alan | last = Macfarlane | year = 1997 | page=51 |isbn = 0-631-18117-2 }} </ref> The [[Peace of Westphalia]] (1648) ended religious warfare among the German states, but the empire was '' de facto '' divided into numerous independent principalities. From 1740 onwards, the [[German dualism <rtd>|</rtd> <text>dualism</text> ]] between the Austrian [[Habsburg Monarchy]] and the [[Kingdom of Prussia]] dominated German history. In 1806, the '' Imperium '' was overrun and dissolved as a result of the [[Napoleonic Wars]] . <ref name =" concise h " > {{cite book | last = Fulbrook | first = Mary | title = A Concise History of Germany | publisher = Cambridge University Press | year = 1991 | page = 97 | isbn = 0-521-54071-2 }} </ref>

      === Restoration and revolution 1814–1871 ===

      {{ Main | German Confederation }}

      [[File:Nationalversammlung.jpg|thumb | [[Frankfurt parliament]] in 1848 ]]

      Following the fall of [[Napoleon I of France <rtd>|</rtd> <text>Napoleon Bonaparte</text> ]] , the [[Congress of Vienna]] convened in 1814 and founded the [[German Confederation]] (Deutscher Bund), a loose league of [[List of German Confederation member states <rtd>|</rtd> <text>39 sovereign states</text> ]] . Disagreement with [[European Restoration <rtd>|</rtd> <text>restoration</text> ]] politics partly led to the rise of [[Liberalism in Germany <rtd>|</rtd> <text>liberal</text> ]] movements, demanding unity and freedom. These, however, were followed by new measures of repression by the Austrian statesman [[Klemens Wenzel von Metternich <rtd>|</rtd> <text>Metternich</text> ]] . The '' [[Zollverein]] '' , a tariff union, profoundly furthered economic unity in the German states. During this era many [[Germans]] had been stirred by the ideals of the [[French Revolution]] , and [[nationalism]] became a more significant force, especially among young intellectuals. For the first time, the colours of black, red and gold were chosen to represent the movement, which later became the [[Flag of Germany <rtd>|</rtd> <text>national colours</text> ]] . <ref> Martin, Norman. [http://www.fotw.net/flags/de1848.html German Confederation 1815–1866 (Germany)]. Flags of the World. 5 October 2000. Retrieved 7 December 2006. </ref>

      In the light of a [[Revolutions of 1848 <rtd>|</rtd> <text>series of revolutionary movements in Europe</text> ]] , which successfully established a republic [[Revolutions of 1848 in France <rtd>|</rtd> <text>in France</text> ]] , intellectuals and commoners started the [[Revolutions of 1848 in the German states]] . The monarchs initially yielded to the revolutionaries' liberal demands. King [[Frederick William IV of Prussia]] was offered the title of [[Emperor]] , but with a loss of power; he rejected the crown and the proposed constitution, leading to a temporary setback for the movement. Conflict between King [[William I, German Emperor <rtd>|</rtd> <text>William I</text> ]] of [[Prussia]] and the increasingly liberal parliament erupted over military reforms in 1862, and the king appointed [[Otto von Bismarck]] the new [[Prime Minister of Prussia]] . Bismarck successfully waged [[Second War of Schleswig <rtd>|</rtd> <text>war on Denmark</text> ]] in 1864. Prussian victory in the [[Austro-Prussian War]] of 1866 enabled him to create the [[North German Federation]] (Norddeutscher Bund) and to exclude [[Austrian Empire <rtd>|</rtd> <text>Austria</text> ]] , formerly the leading German state, from the affairs of the remaining German states.

      === German Empire 1871–1918 ===

      {{ Main | German Empire | World War I }}

      [[File:Wernerprokla.jpg|thumb|right | Foundation of modern Germany in [[Versailles]] , France, 1871. [[Otto von Bismarck <rtd>|</rtd> <text>Bismarck</text> ]] is at the centre in a white uniform. ]]

      The state known as '' Germany '' was [[political union <rtd>|</rtd> <text>unified</text> ]] as a modern nation-state in 1871, when the [[German Empire]] was forged, with the [[Kingdom of Prussia]] as its largest constituent. After the French defeat in the [[Franco-Prussian War]] , the German Empire was proclaimed in [[Palace of Versailles <rtd>|</rtd> <text>Versailles</text> ]] on 18 January 1871. The [[House of Hohenzollern <rtd>|</rtd> <text>Hohenzollern</text> ]] dynasty of Prussia ruled the new empire, whose capital was Berlin. The empire was a unification of all the scattered parts of Germany except Austria ( {{ lang | de | [[Kleindeutsche Lösung|''Kleindeutschland'']] }} , or "Lesser Germany"). But internally the official political unification came rather sequentially: Germany had no national flag until 1892 and no national hymn until after WW I. Beginning in 1884, Germany began establishing [[List of former German colonies <rtd>|</rtd> <text>several colonies</text> ]] outside Europe.

      [[File:Map-DR-Prussia.svg|left|thumb | Imperial Germany (1871–1918), with the dominant [[Kingdom of Prussia]] in blue ]]

      In the {{ lang | de | ''[[Gründerzeit]]'' }} period following the [[unification of Germany]] , Emperor [[William I, German Emperor <rtd>|</rtd> <text>William I's</text> ]] foreign policy secured Germany's position as a great nation by forging alliances, isolating [[French Third Republic <rtd>|</rtd> <text>France</text> ]] by diplomatic means, and avoiding war. Under [[William II, German Emperor <rtd>|</rtd> <text>William II</text> ]] , however, Germany, [[New Imperialism <rtd>|</rtd> <text>like other European powers</text> ]] , took an [[imperialism <rtd>|</rtd> <text>imperialistic</text> ]] course leading to friction with neighbouring countries. Most alliances in which Germany had been previously involved were not renewed, and new alliances excluded the country. Specifically, France established new relationships by signing the [[Entente Cordiale]] with Great Britain and securing ties with the [[Russian Empire]] . Aside from its contacts with [[Austria-Hungary]] , Germany became increasingly isolated.

      Germany's imperialism reached outside its own country, and it joined many other powers in Europe in claiming its share of Africa. The [[Berlin Conference]] divided Africa between the European powers. Germany owned several pieces of land in Africa including [[German East Africa]] , [[German South-West Africa <rtd>|</rtd> <text>South-West Africa</text> ]] , [[Togoland <rtd>|</rtd> <text>Togo</text> ]] , and [[Cameroon]] . The [[Scramble for Africa]] caused tension between the <text>great powers</text> [[great power]]s that may have contributed to the conditions that led to [[World War I]] .

      The [[Assassination in Sarajevo <rtd>|</rtd> <text>assassination</text> ]] of [[Archduke Franz Ferdinand of Austria <rtd>|</rtd> <text>Austria's crown prince</text> ]] on 28 June 1914 triggered [[World War I]] . Germany, as part of the unsuccessful [[Central Powers]] , suffered defeat against the [[Allies of World War I <rtd>|</rtd> <text>Allied Powers</text> ]] in [[World War I casualties <rtd>|</rtd> <text>one of the bloodiest</text> ]] conflicts of all time. An estimated two million German soldiers died in World War I. <ref> {{cite news | url = http://www.spiegel.de/international/germany/0,1518,530319,00.html | title = Last German World War I Veteran Believed to Have Died | newspaper = Spiegel Online | date = 22 January 2008 | first = David | last = Crossland }} </ref> The [[German Revolution]] broke out in November 1918, and Emperor William II and all German ruling princes [[abdication <rtd>|</rtd> <text>abdicated</text> ]] . An [[Armistice with Germany (Compiègne) <rtd>|</rtd> <text>armistice</text> ]] putting an end to the war was signed on 11 November, and Germany was forced to sign the [[Treaty of Versailles]] in June 1919. Its negotiation, contrary to traditional post-war diplomacy, excluded the defeated Central Powers. The treaty was perceived in Germany as a humiliating continuation of the war. The treaty's harshness is often cited as an influence toward the later rise of [[Nazism]] in the country. <ref name =" lee h " > {{cite book | first = Stephen J. | last = Lee | title = Europe, 1890–1945 | publisher = Routledge | year = 2003 | page = 131 | isbn = 0-415-25455-8 | location = London}} </ref>

      === Weimar Republic 1919–1933 ===

      {{ Main | Weimar Republic }}

      [[File:Ausrufung Republik Scheidemann.jpg|upright|thumb | [[Philipp Scheidemann]] proclaiming the German Republic in 1918. The [[Weimar Republic <rtd>|</rtd> <text>Weimar</text> ]] era was dominated by political unrest. ]]

      At the beginning of the German Revolution, Germany was declared a [[republic]] and the monarchy collapsed. However, the struggle for power continued, with radical-left communists [[Bavarian Socialist Republic <rtd>|</rtd> <text>seizing power in Bavaria</text> ]] , but failing to take control of all of Germany. The revolution came to an end in August 1919, when the [[Weimar Republic]] was formally established. The [[Weimar Constitution]] came into effect with its signing by [[President of Germany <rtd>|</rtd> <text>President</text> ]] [[Friedrich Ebert]] on 11 August 1919.

      Suffering from the [[Great Depression]] , the harsh peace conditions dictated by the [[Treaty of Versailles]] , and a long succession of more or less unstable governments, the people of Germany increasingly lacked identification with their political system and the "Establishment Parties" in their [[parliamentary democracy]] . This was exacerbated by a widespread right-wing ( [[monarchism <rtd>|</rtd> <text>monarchist</text> ]] , '' [[Völkisch movement <rtd>|</rtd> <text>völkisch</text> ]] '' , and Nazi) {{ lang | de | ''[[Dolchstoßlegende]]'' }} , which promoted the view that Germany had lost World War I because of the efforts and influence of those who wanted to overthrow the government. The top brass of the Weimar government was accused of betraying the German Nation by signing the Versailles Treaty, while the radical left-wing [[communism <rtd>|</rtd> <text>communists</text> ]] , such as the [[Spartacist League]] , had wanted a revolution to abolish " [[capitalism <rtd>|</rtd> <text>capitalist rule</text> ]] " in favour of a {{ lang | de | ''[[Council communism|Räterepublik]]'' }} , and were also targeted.

      Discontentment with the new Weimar government helped fuel the growth of the [[Communist Party of Germany <rtd>|</rtd> <text>German Communist Party</text> ]] . Many conservatives were drawn towards the reactionary/revolutionary right, particularly the National Socialist German Workers Party—the [[Nazi Party]] . By 1932, these two parties controlled the majority of parliament (296 total parliamentary seats by July 1932). After a series of unsuccessful cabinets, President [[Paul von Hindenburg]] made a crucial decision: on 30 January 1933, seeing little alternative and pushed by right-wing advisors, von Hindenburg appointed [[Adolf Hitler]] as [[Chancellor of Germany (German Reich) <rtd>|</rtd> <text>Chancellor of Germany</text> ]] , honouring Hitler's request.

      === Third Reich 1933–1945 ===

      {{ Main | Nazi Germany }}

      [[File:Bundesarchiv Bild 183-S33882, Adolf Hitler retouched.jpg|thumb|upright | [[Adolf Hitler]] , chancellor of the '' [[Nazi Germany <rtd>|</rtd> <text>Großdeutsches Reich</text> ]] '' ]]

      On 27 February 1933 the [[Reichstag fire <rtd>|</rtd> <text>Reichstag</text> ]] building went up in flames, and a consequent [[Reichstag Fire Decree <rtd>|</rtd> <text>emergency decree</text> ]] abrogated basic citizens' rights. An [[Enabling Act]] passed in parliament gave Hitler unrestricted legislative power. Only the [[Social Democratic Party of Germany <rtd>|</rtd> <text>Social Democratic Party</text> ]] voted against it, while [[KPD <rtd>|</rtd> <text>Communist</text> ]] [[Member of Parliament <rtd>|</rtd> <text>MPs</text> ]] had already been imprisoned. <ref> {{cite web |url=http://www.dhm.de/lemo/html/nazi/innenpolitik/ermaechtigungsgesetz/index.html |title=Das Ermächtigungsgesetz 1933 |accessdate=12 September 2008 |publisher=[[Deutsches Historisches Museum]]| language=German |quote=An der Abstimmung nicht teilnehmen konnten die 81 Abgeordneten der Kommunistischen Partei Deutschlands (KPD). Ihre Mandate waren auf Basis der Reichstagsbrandverordnung bereits am 8. März 1933 annulliert worden. }}<br />Stackelberg, Roderick (1999). ''Hitler's Germany: origins, interpretations, legacies''. Routledge. p. 103. ISBN 0-415-20114-4. <br />Scheck, Raffael. [http://www.colby.edu/personal/r/rmscheck/GermanyE1.html Establishing a Dictatorship: The Stabilization of Nazi Power] Colby College. Retrieved 12 July 2006. </ref> Using his powers to crush any actual or potential resistance, Hitler established a centralised [[totalitarian state]] within months. Industry was revitalised with a focus on military rearmament. <ref> {{cite web |url=http://www.dhm.de/lemo/html/nazi/wirtschaft/index.html|title=Industrie und Wirtschaft |accessdate=12 September 2008 |publisher=Deutsches Historisches Museum |language=German |quote=Der Vierjahresplan sollte ab 1936 die wirtschaftliche Kriegsfähigkeit Deutschlands herbeiführen. . . .Bereits im Februar 1933 erklärte Hitler, dass alle öffentlichen Maßnahmen zur Arbeitsbeschaffung zugleich der "Wehrhaftmachung" zu dienen hätten und den Interessen des Staates untergeordnet seien. . . .}} </ref> In 1935, Germany reacquired control of the [[Saar (League of Nations) <rtd>|</rtd> <text>Saar</text> ]] and in 1936 military control of the [[Rhineland]] , both of which had been lost in the [[Treaty of Versailles]] .

      Leading to [[World War II]] and roughly in parallel with military rearmament, German foreign policy became more aggressive and [[Lebensraum <rtd>|</rtd> <text>expansionistic</text> ]] . In 1938 and 1939, [[Anschluss <rtd>|</rtd> <text>Austria</text> ]] and [[German occupation of Czechoslovakia <rtd>|</rtd> <text>Czechoslovakia</text> ]] were brought under control and the [[invasion of Poland]] prepared through the [[Molotov–Ribbentrop pact]] and [[Operation Himmler]] . On 1 September 1939 the German [[Wehrmacht]] launched a [[blitzkrieg]] on [[Second Polish Republic <rtd>|</rtd> <text>Poland</text> ]] , which was swiftly occupied by Germany and by the Soviet [[Red Army]] . The UK and France declared war on Germany, marking the beginning of World War II in Europe. As the war progressed, Germany and its [[Axis powers <rtd>|</rtd> <text>allies</text> ]] quickly gained control of much of [[Occupied Europe <rtd>|</rtd> <text>continental Europe</text> ]] while the plan to [[Operation Sea Lion <rtd>|</rtd> <text>occupy the United Kingdom</text> ]] failed.

      [[File:Potsdamer Platz 1945.jpg|thumb|left | Berlin in ruins after [[World War II]] , [[Potsdamer Platz]] 1945 ]] On 22 June 1941, Germany broke the [[Molotov–Ribbentrop pact]] and [[Operation Barbarossa <rtd>|</rtd> <text>invaded the Soviet Union</text> ]] . The same year, [[Empire of Japan <rtd>|</rtd> <text>Japan</text> ]] [[Attack on Pearl Harbor <rtd>|</rtd> <text>attacked</text> ]] the American base at Pearl Harbor, and Germany declared war on the United States as a consequence of its alliance with Japan. Although the German army advanced into the Soviet Union quite rapidly, the [[Battle of Stalingrad]] marked a major turning point in the war. Subsequently, the German army started to retreat on the [[Eastern Front (World War II) <rtd>|</rtd> <text>Eastern front</text> ]] . In September 1943, Germany's ally Italy surrendered, and German forces were forced to defend an additional front in Italy. [[Normandy Landings <rtd>|</rtd> <text>D-Day</text> ]] marked another major turning point in the war, opening up a [[Western Front (World War II) <rtd>|</rtd> <text>Western front</text> ]] ; the Allied forces landed on the beaches of [[Normandy]] and made advances towards German territory. Germany's defeat soon followed. On 8 May 1945, [[Victory in Europe Day <rtd>|</rtd> <text>the German armed forces surrendered</text> ]] after the [[Red Army]] occupied Berlin. Approximately seven million German soldiers and civilians – including [[ethnic Germans]] from Eastern Europe – died during World War II. <ref> Steinberg, Heinz Günter. ''Die Bevölkerungsentwicklung in Deutschland im Zweiten Weltkrieg: mit einem Überblick über die Entwicklung von 1945 bis 1990.'' Bonn 1991. </ref>

      In what later became known as [[The Holocaust]] , the Third Reich regime enacted governmental policies directly subjugating many dissidents and minorities. About seventeen million people were murdered by the Nazis during the Holocaust, including six million [[Jews]] and a sizable number of [[Porajmos <rtd>|</rtd> <text>Gypsies</text> ]] , [[Jehovah's Witnesses]] , [[Generalplan Ost <rtd>|</rtd> <text>Poles and other Slavs</text> ]] , including [[Nazi crimes against Soviet POWs <rtd>|</rtd> <text>Soviet POWs</text> ]] , [[Action T4 <rtd>|</rtd> <text>people with mental and/or physical disabilities</text> ]] , homosexuals, and members of the political opposition. <ref> Niewyk, Donald L.; Nicosia, Francis R. [http://books.google.ca/books?id=lpDTIUklB2MC&pg=PP1&dq=Niewyk,+Donald+L.+The+Columbia+Guide+to+the+Holocaust&sig=4igufxQHRCNrkjwRuMt1if_mf5M#PPA45,M1 ''The Columbia Guide to the Holocaust''], [[Columbia University Press]], 2000, pp. 45–52. </ref> World War II and the Nazi genocide were responsible for more than 40   &nbsp; million dead in Europe. <ref> {{cite news | url = http://news.bbc.co.uk/2/hi/europe/4530565.stm | title = Leaders mourn Soviet wartime dead | work = BBC News Online |location = London | date = 9 May 2005 }} </ref> The [[Nuremberg trials]] of [[Nazi war criminals]] were held after World War II. <ref> "[http://www.bbc.co.uk/history/worldwars/wwtwo/nuremberg_article_01.shtml Nuremberg: Nazis On Trial]". Professor Richard Overy. BBC History. </ref> {{ Clear }}

      === Division and reunification 1945–1990 ===

      {{ Main | History of Germany (1945–1990) }}

      [[File:Map-Germany-1945.svg|thumb | Post-WWII [[Allied Occupation Zones in Germany <rtd>|</rtd> <text>occupation zones</text> ]] of Germany, in its 1937 borders, with territories east of the [[Oder-Neisse line]] shown as annexed by Poland and the Soviet Union, plus the [[Saar (protectorate) <rtd>|</rtd> <text>Saar protectorate</text> ]] and divided Berlin. [[East Germany]] was formed by the Soviet Zone, while West Germany was formed by the American, British, and French zones in 1949 and the Saar in 1957. ]]

      The war resulted in the [[World War II casualties <rtd>|</rtd> <text>death of over seven million German soldiers and civilians</text> ]] ; [[Oder-Neisse line <rtd>|</rtd> <text>large territorial losses</text> ]] ; [[Expulsion of Germans after World War II <rtd>|</rtd> <text>the expulsion of about 15</text> <subst> <repl> <text> </text> </repl> <for> <mww:xml-entity-ref name="nbsp"> <rtd>&nbsp;</rtd> </mww:xml-entity-ref> </for> </subst> <text>million Germans</text> ]] from [[Former eastern territories of Germany <rtd>|</rtd> <text>the eastern areas of Germany</text> ]] and other countries; [[Rape during the occupation of Germany <rtd>|</rtd> <text>mass rape of German women</text> ]] ; <ref> {{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 409–412 | quote = Altogether at least 2&nbsp;million German women are thought to have been raped . . . }}<br />{{cite book | last = Beevor | first = Antony | authorlink = Antony Beevor | title = Berlin: The downfall 1945 | origyear = 2002 | year = 2003 | publisher = Penguin | location = London | isbn =0-14-028696-9 | pages = 31–32 | quote =He [the Komsomol leader, Maltsev] went on to boast that '2&nbsp;million of our children were born in Germany.' }} </ref> and the destruction of multiple major cities. The remaining national territory and Berlin were partitioned by the [[Allies of World War II <rtd>|</rtd> <text>Allies</text> ]] into four military occupation zones.

      The western sectors, controlled by France, the United Kingdom, and the United States, were merged on 23 May 1949, to form the '' [[West Germany <rtd>|</rtd> <text>Federal Republic of Germany</text> ]] '' ( '' Bundesrepublik Deutschland '' ); on 7 October 1949, the Soviet Zone became the '' [[East Germany <rtd>|</rtd> <text>German Democratic Republic</text> ]] '' ( '' Deutsche Demokratische Republik '' , or DDR). They were, mainly outside Germany, informally known as "West Germany" and "East Germany", and the two parts of Berlin as " [[West Berlin]] " and " [[East Berlin]] ". East Germany selected East Berlin as its capital, while West Germany chose [[Bonn]] . However, West Germany declared the status of its capital Bonn as provisional, in order to emphasise its stance that the two-state solution was an artificial '' status quo '' that was to be overcome one day. <ref name =" provisional " > {{cite book | last = Wise | first = Michael Z. | title = Capital dilemma: Germany's search for a new architecture of democracy| year = 1998| publisher = Princeton Architectural Press | isbn =978-1-56898-134-5 | page = 23 | chapter = Bonn, Capital of Self-Effacement}} </ref>

      West Germany, established as a federal parliamentary republic with a " [[social market economy]] ", was allied with the United States, the UK and France. The country came to enjoy prolonged economic growth beginning in the early 1950s ( {{ lang | de | ''[[Wirtschaftswunder]]'' }} ). West Germany joined [[NATO]] in 1955 and was a founding member of the [[European Economic Community]] in 1957. On 1 January 1957, following a plebiscite, [[Saarland]] became part of West Germany by virtue of article 23 {{ lang | de | ''[[Grundgesetz]]'' }} , having been occupied by France since 1947.

      [[File:Thefalloftheberlinwall1989.JPG|thumb|left | The [[Berlin Wall]] in front of the [[Brandenburg Gate]] shortly after its opening in 1989 ]]

      East Germany was an [[Eastern bloc]] state under political and military control by the [[USSR]] via the latter's occupation forces and the [[Warsaw Pact]] . While claiming to be a democracy, political power was solely executed by leading members ( '' [[Politburo]] '' ) of the communist-controlled [[Socialist Unity Party of Germany <rtd>|</rtd> <text>SED (</text> <i> <rtd>''</rtd> <text>Socialist Unity Party of Germany</text> <rtd>''</rtd> </i> <text>)</text> ]] . Their power was ensured by the [[Stasi]] , a secret service of immense size, and a variety of SED suborganizations controlling every aspect of society. In return, the basic needs of the population were satisfied at low cost by the state. A Soviet-style [[command economy]] was set up; later, the GDR became a [[Comecon]] state. While [[Communist propaganda <rtd>|</rtd> <text>East German propaganda</text> ]] was based on the benefits of the GDR's social programs and the alleged constant threat of a West German invasion, many of her citizens looked to the West for political freedoms and economic prosperity. <ref> {{cite news | last = Colchester | first = Nico | url = http://www.ft.com/cms/s/504285c4-68b6-11da-bd30-0000779e2340,dwp_uuid=6f876a3c-e19f-11da-bf4c-0000779e2340.html | title = D-mark day dawns | newspaper = [[Financial Times]] | location = London | date = 1 January 2001 | accessdate = 7 December 2006 }} </ref> The [[Berlin Wall]] , built in 1961 to stop East Germans from escaping to West Germany, became a symbol of the [[Cold War]] .

      Tensions between East and West Germany were somewhat reduced in the early 1970s by Chancellor [[Willy Brandt]] 's {{ lang | de | ''[[Ostpolitik]]'' }} , which included the '' de facto '' acceptance of Germany's territorial losses in World War II.

      In summer 1989, Hungary decided (2 May) to dismantle the [[Iron Curtain]] and open the borders (23 August), causing an exodus of thousands of [[East Germans]] (11 September) to West Germany via Hungary. This had devastating effects on the [[GDR]] , with [[Monday demonstrations in East Germany <rtd>|</rtd> <text>mass demonstrations</text> ]] . The East German authorities unexpectedly eased the border restrictions in November, allowing East German citizens to travel to the West. Originally intended as a pressure valve to retain East Germany as a state, the opening of the border actually led to an acceleration of the [[Die Wende <rtd>|</rtd> <i> <rtd>''</rtd> <text>Wende</text> <rtd>''</rtd> </i> <text> reform process</text> ]] in East Germany, which finally concluded with the '' [[Treaty on the Final Settlement with Respect to Germany <rtd>|</rtd> <text>Two Plus Four Treaty</text> ]] '' a year later on 12 September 1990, under which the four occupying powers renounced their rights under the Instrument of Surrender, and Germany regained full [[sovereignty]] . This permitted [[German reunification]] on 3 October 1990, with the accession of the five re-established states in the former GDR ( [[New states of Germany <rtd>|</rtd> <text>new states</text> ]] or "neue Länder").

      === Berlin Republic and the EU 1990–present ===

      {{ Main | History of Germany since 1990 }}

      [[File:Euro banknotes.png|thumb | A new currency, the [[Euro]] , began circulating on 1 January 2002. <ref name = euroc /> ]]

      Based on the Bonn-Berlin Act, adopted by the parliament on 10 March 1994, Berlin once again became the capital of the reunified Germany, while Bonn obtained the unique status of a '' Bundesstadt '' (federal city) retaining some federal ministries. <ref> {{de icon}} [http://www.wdr.de/themen/politik/nrw03/bonn_berlin/060914.jhtml?rubrikenstyle=politik Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 14 September 2006. </ref> <ref> {{de icon}} [http://www.wdr.de/themen/politik/deutschland/bonn_berlin/060619.jhtml?rubrikenstyle=politik Deutschlands heimliche Hauptstadt Landtag einstimmig gegen Komplettumzug]{{dead link|date=September 2010}} WDR; 20 June 2006. </ref> The relocation of the government was completed in 1999.

      Since reunification, Germany has taken a more active role in the [[European Union]] and NATO. Germany sent a peacekeeping force to secure stability in the [[1999 NATO bombing in Yugoslavia <rtd>|</rtd> <text>Balkans</text> ]] and sent a force of [[Bundeswehr <rtd>|</rtd> <text>German troops</text> ]] to [[Afghanistan]] as part of a NATO effort to provide [[War in Afghanistan (2001–present) <rtd>|</rtd> <text>security in that country</text> ]] after the ousting of the [[Taliban]] . <ref name =" ARM " > Dempsey, Judy. [http://www.iht.com/articles/2006/10/31/news/germany.php Germany is planning a Bosnia withdrawal] International Herald Tribune. 31 October 2006. Retrieved 30 November 2006. </ref> These deployments were controversial, since after the war, Germany was bound by domestic law only to deploy troops for defence roles. Deployments to foreign territories were understood not to be covered by the defence provision; however, the parliamentary vote on the issue effectively legalised the participation in a peacekeeping context.

      In 2005, [[Angela Merkel]] was elected the first female Chancellor of Germany. From 2005 to 2009, she led a [[grand coalition (Germany) <rtd>|</rtd> <text>grand coalition</text> ]] supported by her own parliamentary group (consisting of [[Christian Democratic Union (Germany) <rtd>|</rtd> <text>CDU</text> ]] and [[Christian Social Union of Bavaria <rtd>|</rtd> <text>CSU</text> ]] ) and the [[Social Democratic Party of Germany <rtd>|</rtd> <text>Social Democratic Party (SPD)</text> ]] . Following general elections on 27 September 2009, Merkel built the current coalition government replacing the Social Democratic Party with the [[Free Democratic Party (Germany) <rtd>|</rtd> <text>Free Democratic Party (FDP)</text> ]] .

      == Geography ==

      {{ Main | Geography of Germany }}

      [[File:Deutschland topo.jpg|thumb|upright|right | Topographic map ]]

      Germany is located in the Central Europe, the territory covers {{ convert | 357021 | km2 | sqmi | 0 | abbr = on }} , consisting of {{ convert | 349223 | km2 | sqmi | 0 | abbr = on }} of land and {{ convert | 7798 | km2 | sqmi | 0 | abbr = on }} of water. It is the seventh largest country by area in Europe and the 63rd largest in the world. It lies mostly between latitudes [[47th parallel north <rtd>|</rtd> <text>47°</text> ]] and [[55th parallel north <rtd>|</rtd> <text>55° N</text> ]] (the tip of [[Sylt]] is just north of 55°), and longitudes [[5th meridian east <rtd>|</rtd> <text>5°</text> ]] and [[16th meridian east <rtd>|</rtd> <text>16° E</text> ]] .

      Elevation ranges from the mountains of the [[Alps]] (highest point: the [[Zugspitze]] at {{ convert | 2962 | m | ft | 0 | disp = s }} ) in the south to the shores of the [[North Sea]] (Nordsee) in the north-west and the [[Baltic Sea]] (Ostsee) in the north-east. Between lie the forested uplands of central Germany and the low-lying lands of northern Germany (lowest point: [[Wilstermarsch]] at {{ convert | 3.54 | m | ft | 1 | disp = s }} below sea level), traversed by some of Europe's major rivers such as the [[Rhine]] , [[Danube]] and [[Elbe]] . <ref name =" CIA " > {{Cite web| url = https://www.cia.gov/library/publications/the-world-factbook/geos/gm.html| title = CIA Factbook | accessdate = 23 October 2010| author=CIA | authorlink = Central Intelligence Agency}} </ref>

      Germany shares borders with more European countries than any other country on the continent. Its neighbours are Denmark in the north, Poland and the Czech Republic in the east, Austria and Switzerland in the south, France and [[Luxembourg]] in the south-west and Belgium and the Netherlands in the north-west.

      The most significant natural resources are iron ore, coal, [[potash]] , timber, [[lignite]] , [[uranium]] , copper, natural gas, [[salt]] , nickel, [[arable land]] and water.

      === Administrative divisions ===

      {{ Main | States of Germany | List of administrative divisions of Germany }}

      Germany comprises [[States of Germany <rtd>|</rtd> <text>16 states</text> ]] ( '' Bundesländer '' ), which are further subdivided into 439 [[Districts of Germany <rtd>|</rtd> <text>districts</text> ]] ( '' Kreise '' ) and cities ( '' kreisfreie Städte '' ).

      {{ German Federal States | options = float:left; font-size:90%; border:3px; max-width:480px; width:50%; }}

      {| style="background:none;" cellspacing="2px" |}
      | {| class="sortable wikitable" style="text-align:left; font-size:90%;" |- style="font-size:100%; text-align:right;" |- |- |- |- |- |- |- |- |- |- |- |- |- |- |- |- |}
      ! style="width:140px;"| [[States of Germany <rtd>|</rtd> <text>State</text> ]] !! style="width:85px;"| Capital !! style="width:85px;"| Area (km²) !! style="width:85px;"|

      Population

      | [[Baden-Württemberg]] || [[Stuttgart]] || style="text-align:right"| 35,752 || style="text-align:right"|

      10,717,000

      | [[Bavaria]] || [[Munich]] || style="text-align:right"| 70,549 || style="text-align:right"|

      12,444,000

      | Berlin || Berlin ||style="text-align:right"| 892 || style="text-align:right"|

      3,400,000

      | [[Brandenburg]] || [[Potsdam]] || style="text-align:right"| 29,477 || style="text-align:right"|

      2,568,000

      | [[Bremen (state) <rtd>|</rtd> <text>Bremen</text> ]] || [[Bremen]] || style="text-align:right"| 404 || style="text-align:right"|

      663,000

      | [[Hamburg]] || [[Hamburg]] ||style="text-align:right"| 755 || style="text-align:right"|

      1,735,000

      | [[Hesse]] || [[Wiesbaden]] || style="text-align:right"| 21,115 || style="text-align:right"|

      6,098,000

      | [[Mecklenburg-Vorpommern]] || [[Schwerin]] || style="text-align:right"| 23,174 || style="text-align:right"|

      1,720,000

      | [[Lower Saxony]] || [[Hanover]] || style="text-align:right"| 47,618 || style="text-align:right"|

      8,001,000

      | [[North Rhine-Westphalia]] || [[Düsseldorf]] || style="text-align:right"| 34,043 || style="text-align:right"|

      18,075,000

      | [[Rhineland-Palatinate]] || [[Mainz]] || style="text-align:right"| 19,847 || style="text-align:right"|

      4,061,000

      | [[Saarland]] || [[Saarbrücken]] || style="text-align:right"| 2,569 || style="text-align:right"|

      1,056,000

      | [[Saxony]] || [[Dresden]] || style="text-align:right"| 18,416 || style="text-align:right"|

      4,296,000

      | [[Saxony-Anhalt]] || [[Magdeburg]] || style="text-align:right"| 20,445 || style="text-align:right"|

      2,494,000

      | [[Schleswig-Holstein]] || [[Kiel]] || style="text-align:right"| 15,763 || style="text-align:right"|

      2,829,000

      | [[Thuringia]] || [[Erfurt]] || style="text-align:right"| 16,172 || style="text-align:right"|

      2,355,000

      === Climate ===

      {{ multiple image | align = right | image1 = Sylt Rotes Kliff.jpg | width1 = 177 | caption1 = Summer coastal climate on the island [[Sylt]] in [[Schleswig-Holstein]] | alt1 = Coastal dunes | image2 = Thüringerwald.JPG | width2 = 210 | caption2 = [[Thuringian Forest]]s during wintertime | alt2 = Thuringian Forest }}

      Most of Germany has a [[temperate <rtd>|</rtd> <text>temperate seasonal climate</text> ]] in which humid westerly winds predominate. The climate is moderated by the [[North Atlantic Current <rtd>|</rtd> <text>North Atlantic Drift</text> ]] , which is the northern extension of the [[Gulf Stream]] . This warmer water affects the areas bordering the North Sea including the area along the Rhine, which flows into the North Sea. Consequently in the north-west and the north, the climate is [[oceanic climate <rtd>|</rtd> <text>oceanic</text> ]] ; [[Precipitation (meteorology) <rtd>|</rtd> <text>rainfall</text> ]] occurs year round with a maximum during summer.

      Winters are mild and summers tend to be cool, though temperatures can exceed {{ convert | 30 | °C | °F | lk = on }} for prolonged periods. In the east, the climate is more [[continental climate <rtd>|</rtd> <text>continental</text> ]] ; winters can be very cold, summers can be very warm, and long dry periods are often recorded. Central and southern Germany are transition regions which vary from moderately oceanic to continental.

      In addition to the maritime and continental climates that predominate over most of the country, the Alpine regions in the extreme south and, to a lesser degree, some areas of the Central German Uplands have a so-called mountain climate. This climate is characterised by lower temperatures because of higher altitudes and greater precipitation caused by air becoming moisture-laden as it lifts over higher terrain. <ref> [http://www.germanculture.com.ua/library/facts/bl_climate.htm Climate In Germany] GermanCulture. Retrieved 2010-26-08. </ref>

      === Biodiversity ===

      {{ multiple image | align = right | width2 = 202 | image2 = Hintersee.jpg | caption2 = [[Alps|Alpine]] terrain in [[Bavaria]]. One third of the country's area is covered with woods. | alt2 = Alpine terrain | width1 = 180 | image1 = Cervus elaphus 11.jpg | caption1 = [[Red Deer|Deer]] are widespread species to be found in the wild. | alt1 = Red Deer }}

      [[Phytogeography <rtd>|</rtd> <text>Phytogeographically</text> ]] , Germany is shared between the Atlantic European and Central European provinces of the [[Circumboreal Region]] within the [[Boreal Kingdom]] . The territory of Germany can be subdivided into two <text>ecoregions</text> [[ecoregion]]s : European-Mediterranean montane mixed forests and Northeast-Atlantic shelf marine. <ref> [http://www.panda.org/about_our_earth/ecoregions/ecoregion_list/ List of Ecoregions: Terrestrial Ecoregions] WWF. Retrieved 21 November 2000. </ref> The majority of Germany is covered by either [[arable land]] (33%) or [[forestry]] and [[woodland]] (31%). Only 15% is covered by permanent pastures.

      Plants and animals are those generally common to middle Europe. Beeches, oaks, and other deciduous trees constitute one-third of the forests; conifers are increasing as a result of reforestation. Spruce and fir trees predominate in the upper mountains, while pine and larch are found in sandy soil. There are many species of ferns, flowers, fungi, and mosses. Fish abound in the rivers and the North Sea. Wild animals include deer, wild boar, mouflon, fox, badger, hare, and small numbers of beavers. Various migratory birds cross Germany in the spring and autumn.

      The [[List of national parks of Germany <rtd>|</rtd> <text>national parks in Germany</text> ]] include the [[Wadden Sea National Parks]] , the [[Jasmund National Park]] , the [[Vorpommern Lagoon Area National Park]] , the [[Müritz National Park]] , the [[Lower Oder Valley National Park]] , the [[Harz National Park]] , the [[Saxon Switzerland National Park]] and the [[Bavarian Forest National Park]] .

      Germany is known for its many <text>zoological gardens</text> [[zoological garden]]s , wildlife parks, aquaria, and bird parks. <ref> [http://www.eupedia.com/europe/zoological_gardens_europe.shtml List of famous Zoological gardens in European countries] www.eupedia.com. Retrieved 17 October 2008. </ref> More than 400 registered zoos and animal parks operate in Germany, which is believed to be the largest number in any single country of the world. <ref> [http://www.americanzoos.info/Zoofacts.html Some interesting zoo facts] www.americanzoos.info/. Retrieved 17 October 2008. </ref> The [[Berlin Zoological Garden <rtd>|</rtd> <text>Zoologischer Garten Berlin</text> ]] is the oldest zoo in Germany and presents the most comprehensive collection of species in the world. <ref> {{de icon}}[http://www.zoo-berlin.de/en/understand/zahlen-fakten.html Tierstatistik 2008]{{dead link|date=September 2010}}, Zoo Berlin. Retrieved 19 November 2009. </ref>

      === Environment ===

      {{ multiple image | align = right | width2 = 200 | image2 = Aquila chrysaetos Flickr.jpg | caption2 = The [[golden eagle|eagle]] is a protected bird of prey and the national [[heraldic animal]]. | alt2 = Eagle | width1 = 185 | image1 = HeideblueteTiefental.JPG | caption1 = The [[Lüneburg Heath Nature Reserve]] in [[Lower Saxony]] | alt1 = Lüneburg Heath }}

      Germany is known for its environmental consciousness. <ref> [http://docs.google.com/viewer?a=v&q=cache:ULS2JqlpDgEJ:dzforum.de/downloads/020101311.pdf+Starting+points+and+focus+of+environmental+communication+site:dzforum.de&hl=en&pid=bl&srcid=ADGEESiPmGynU-6SalJJqHpsYQsnf6um5_nPW6Wz6R3HgEOQZEV2kxltI0OWaCuWNrWugnjPki98ww1R0r_-VfGBYjxnfLY2Zg8tzzwsagtvTi-w1-FgqsPK-iEYJgRjRyvzIsVQJgrF&sig=AHIEtbTTWzlVX6stOR-oJP4FxK20wmyGmA Starting points and focus of environmental communication], German Federal Environmental Foundation, 16 October 2004. </ref> Most Germans consider [[anthropogenic]] causes to be a significant factor in [[global warming]] . <ref> {{Cite web| url = http://www.worldpublicopinion.org/pipa/pdf/sep07/BBCClimate_Sep07_rpt.pdf| title = All Countries Need to Take Major Steps on Climate Change: Global Poll| accessdate = 11 February 2008 | author=PIPA| date =24 September 2007| format = PDF|publisher=BBC World service Poll, carried out by Globescan| publisher=[[Program on International Policy Attitudes]] at the [[University of Maryland, College Park]]|quote=Eighty-seven percent of German respondents agree that human activity is a significant cause of climate change and 95 percent think it is necessary to take measures to deal with the problem.}} </ref> The state is committed to the [[Kyoto protocol]] and several other treaties promoting biodiversity, low emission standards, recycling, and the use of renewable energy, and supports sustainable development at a global level. <ref> [http://www.umweltbundesamt.de/uba-info-presse-e/2004/pe04-056.htm Reinforcing Germany's environmental protection industry]{{dead link|date=September 2010}} Umweltbundesamt. Retrieved 25 November 2007. </ref>

      The German government has initiated wide-ranging emission reduction activities and the country's overall emissions are falling. <ref> [http://timesofindia.indiatimes.com/Earth/Germany_greenest_country_in_the_world/articleshow/3151766.cms Germany greenest country in the world] ''Times of India''. Retrieved 25 November 2008. </ref> For example, since 1964, air pollution in Germany has been regulated by strict " [[TA Luft]] " legislation. Nevertheless Germany's [[List of countries by carbon dioxide emissions per capita <rtd>|</rtd> <text>carbon dioxide emissions per capita</text> ]] are among the highest in the EU, although they are significantly lower than those of Australia, Canada, Saudi Arabia and the United States.

      Emissions from coal-burning utilities and industries contribute to air pollution. Acid rain, resulting from sulphur dioxide emissions, continues to damage German forests. Pollution in the Baltic Sea from raw sewage and industrial effluents from rivers in former East Germany have been reduced. The government under Chancellor Schröder announced the intention to end the use of nuclear power for producing electricity. Germany is working to meet EU commitments to identify nature preservation areas in line with the EU's Flora, Fauna, and Habitat directive. Germany's last glaciers in the Alpine region are experiencing deglaciation. Natural hazards are river flooding in spring and stormy winds occurring in all regions.

      == Politics ==

      {{ Main | Politics of Germany }}

      [[File:Politisches System des Bundes und der Länder in Deutschland.svg|thumb|230px | The political system of Germany is written down in the [[Basic Law for the Federal Republic of Germany <rtd>|</rtd> <text>Basic Law (Grundgesetz)</text> ]] . ]]

      Germany is a [[federal republic <rtd>|</rtd> <text>federal</text> ]] , [[parliamentary democratic <rtd>|</rtd> <text>parliamentary</text> ]] , [[representative democracy <rtd>|</rtd> <text>representative democratic</text> ]] republic. The German political system operates under a framework laid out in the 1949 constitutional document known as the [[Basic Law for the Federal Republic of Germany <rtd>|</rtd> <i> <rtd>''</rtd> <text>Grundgesetz</text> <rtd>''</rtd> </i> ]] (Basic Law). By calling the document '' Grundgesetz '' , rather than '' Verfassung '' (constitution), the authors expressed the intention that it would be replaced by a proper constitution once Germany was reunited as one state.

      Amendments to the '' Grundgesetz '' generally require a two-thirds majority of both chambers of the parliament; the fundamental principles of the constitution, as expressed in the articles guaranteeing human dignity, the separation of powers, the federal structure, and the rule of law are valid in perpetuity. <ref name =" Art 79 " > {{Cite web|url=http://www.gesetze-im-internet.de/gg/art_79.html|title=Article 79 of the ''Grundgesetz''|work=Bundesministerium der Justiz|publisher=www.gesetze-im-internet.de|language=German|accessdate=7 December 2008}} </ref> Despite the initial intention, the '' Grundgesetz '' remained in effect after the [[German reunification]] in 1990, with only minor amendments.

      === Government === [[File:Christian Wulff 2008-04-17.jpg|thumb|left | [[Christian Wulff]] has been the [[President of Germany]] since June 2010. The head of state holds primarily representative powers. ]]

      The President, [[Christian Wulff]] , is the [[head of state]] and invested primarily with representative responsibilities and powers. He is elected by the '' [[Bundesversammlung (Germany) <rtd>|</rtd> <text>Bundesversammlung</text> ]] '' (federal convention), an institution consisting of the members of the '' Bundestag '' and an equal number of state delegates.

      The second highest official in the [[German order of precedence]] is the '' Bundestagspräsident '' ( [[President of the Bundestag <rtd>|</rtd> <text>President of the </text> <i> <rtd>''</rtd> <text>Bundestag</text> <rtd>''</rtd> </i> ]] ), who is elected by the '' Bundestag '' and responsible for overseeing the daily sessions of the body.

      The third-highest official and the [[head of government]] is the Chancellor, who is appointed by the '' Bundespräsident '' after being elected by the '' Bundestag '' . The Chancellor can be removed by a [[constructive vote of no confidence]] by the '' Bundestag '' , where constructive implies that the '' Bundestag '' simultaneously has to elect a successor.

      [[File:Reichstag building Berlin view from west before sunset.jpg|thumb|290px | The [[Reichstag (building) <rtd>|</rtd> <text>Reichstag</text> ]] in Berlin is the site of the German parliament (Bundestag) ]]

      The [[Chancellor of Germany <rtd>|</rtd> <text>Chancellor</text> ]] —currently [[Angela Merkel]] —is the [[head of government]] and exercises [[executive (government) <rtd>|</rtd> <text>executive power</text> ]] , similar to the role of a Prime Minister in other [[parliamentary system <rtd>|</rtd> <text>parliamentary democracies</text> ]] . Federal [[legislative power]] is vested in the parliament consisting of the '' [[Bundestag]] '' (Federal Diet) and '' [[Bundesrat of Germany <rtd>|</rtd> <text>Bundesrat</text> ]] '' (Federal Council), which together form a unique type of legislative body. The '' Bundestag '' is elected through <text>direct elections</text> [[direct election]]s , by [[proportional representation]] ( [[mixed member proportional representation <rtd>|</rtd> <text>mixed-member</text> ]] ). The members of the '' Bundesrat '' represent the governments of the [[States of Germany <rtd>|</rtd> <text>sixteen federated states</text> ]] and are members of the state cabinets. The respective state governments have the right to appoint and remove their envoys at any time.

      Since 1949, the party system has been dominated by the [[Christian Democratic Union (Germany) <rtd>|</rtd> <text>Christian Democratic Union</text> ]] and the [[Social Democratic Party of Germany]] with all chancellors hitherto being member of either party. However, the smaller liberal [[Free Democratic Party (Germany) <rtd>|</rtd> <text>Free Democratic Party</text> ]] (which has had members in the '' Bundestag '' since 1949) and the [[Alliance '90/The Greens]] (which has controlled seats in parliament since 1983) have also played important roles, <ref> [http://countrystudies.us/germany/159.htm Christian Democratic Union/Christian Social Union] U.S. Library of Congress. Retrieved 7 December 2006. </ref> as they are regularly the smaller partner of a [[coalition government]] .

      === Law ===

      {{ Main | Judiciary of Germany | Law enforcement in Germany }}

      [[File:Karlsruhe bundesverfassungsgericht.jpg|right|thumb | The [[Federal Constitutional Court of Germany <rtd>|</rtd> <text>Federal Constitutional Court</text> ]] (Bundesverfassungsgericht) in [[Karlsruhe]] ]]

      The [[Judiciary of Germany]] is independent of the executive and the legislative branches. Germany has a [[civil law (legal system) <rtd>|</rtd> <text>civil or statute law system</text> ]] that is based on [[Roman law]] with some references to [[Germanic law]] . The '' [[Federal Constitutional Court of Germany <rtd>|</rtd> <text>Bundesverfassungsgericht</text> ]] '' (Federal Constitutional Court), located in Karlsruhe, is the German Supreme Court responsible for constitutional matters, with power of [[judicial review]] . <ref> [http://www.bundesverfassungsgericht.de/en/index.html Federal Constitutional Court], Bundesverfassungsgericht.de. Retrieved 13 April 2007. </ref> It acts as the highest legal authority and ensures that legislative and judicial practice conforms to the [[Basic Law for the Federal Republic of Germany]] (Basic Law). It acts independently of the other state bodies, but cannot act on its own behalf.

      Germany's supreme court system, called '' Oberste Gerichtshöfe des Bundes '' , is specialised. For civil and criminal cases, the highest court of appeal is the [[Federal Court of Justice of Germany <rtd>|</rtd> <text>Federal Court of Justice</text> ]] , located in [[Karlsruhe]] and [[Leipzig]] . The courtroom style is [[inquisitorial system <rtd>|</rtd> <text>inquisitorial</text> ]] . Other Federal Courts are the [[Federal Labor Court of Germany <rtd>|</rtd> <text>Federal Labour Court</text> ]] in [[Erfurt]] , the [[Bundessozialgericht <rtd>|</rtd> <text>Federal Social Court</text> ]] in [[Kassel]] , the [[Federal Finance Court of Germany <rtd>|</rtd> <text>Federal Finance Court</text> ]] in [[Munich]] and the [[Federal Administrative Court of Germany <rtd>|</rtd> <text>Federal Administrative Court</text> ]] in Leipzig.

      [[File:HH Polizeihauptmeister MZ.jpg|thumb|150px|left | German [[Landespolizei <rtd>|</rtd> <text>state police</text> ]] officer in [[Hamburg]] ]]

      [[Criminal law]] and [[private law]] are codified on the national level in the '' [[Strafgesetzbuch]] '' and the '' [[Bürgerliches Gesetzbuch]] '' respectively. The German penal system is aimed towards rehabilitation of the criminal; its secondary goal is the protection of the general public. <ref> {{de icon}} [http://www.gesetze-im-internet.de/stvollzg/__2.html § 2 Strafvollzugsgesetz] Bundesministerium der Justiz. Retrieved 19 November 2009. </ref> To achieve the latter, a convicted criminal can be put in preventive detention ( '' Sicherungsverwahrung '' ) in addition to the regular sentence if he is considered to be a threat to the general public. The '' [[Völkerstrafgesetzbuch]] '' regulates the consequences of [[crimes against humanity]] , [[genocide]] and [[war crimes]] . It gives German courts [[universal jurisdiction]] if prosecution by a court of the country where the crime was committed, or by an international court, is not possible.

      Legislative power is divided between the federation and the state level. The Basic Law presumes that all legislative power remains at the state level unless otherwise designated by the Basic Law itself.

      Any federal law overrides state law if the legislative power lies at the federal level. A famous example is the purported Hessian provision for the death penalty, which goes against the ban on capital punishment under the Basic Law, rendering the Hessian provision invalid. The '' [[Bundesrat of Germany <rtd>|</rtd> <text>Bundesrat</text> ]] '' is the federal organ through which the states participate in national legislation. State participation in federal legislation is necessary if the law falls within the area of concurrent legislative power, requires states to administer federal regulations, or is so designated by the Basic Law. Every state has its own constitutional court. The '' <text>Amtsgerichte</text> [[Amtsgericht]]e '' , '' Landgerichte '' and '' Oberlandesgerichte '' are state courts of [[general jurisdiction]] . They are competent whether the action is based on federal or state law.

      Many of the fundamental matters of [[administrative law]] remain in the jurisdiction of the states, though most states base their own laws in that area on the 1976 '' Verwaltungsverfahrensgesetz '' (Administrative Proceedings Act) covering important points of administrative law. The '' Oberverwaltungsgerichte '' are the highest level of administrative jurisdiction concerning the state administrations, unless the question of law concerns federal law or state law identical to federal law. In such cases, final appeal to the Federal Administrative Court is possible.

      === Foreign relations ===

      {{ Main | Foreign relations of Germany }}

      [[File:33rdG8Leaders.jpg|thumb | Chancellor [[Angela Merkel]] , the head of government, hosting the [[G8]] summit in [[Heiligendamm]] . ]]

      Germany maintains a network of 229 diplomatic missions abroad and holds relations with more than 190 countries. <ref> [http://www.auswaertiges-amt.de/EN/AAmt/Auslandsvertretungen/Uebersicht_node.html German Missions Abroad] German Federal Foreign Office. Retrieved 31 December 2010. </ref> As member it is the largest contributor to the budget of the European Union (providing 20%) and third largest contributor to the United Nations (providing 8%). Germany is a member of the NATO defence alliance, the Organisation of Economic Co-operation and Development (OECD), the G8, the G20, the World Bank and the International Monetary Fund (IMF).

      Germany has played a leading role in the European Union since its inception and has maintained a [[Franco-German cooperation <rtd>|</rtd> <text>strong alliance with France</text> ]] since the end of World War II. The alliance was especially close in the late 1980s and early 1990s under the leadership of [[Christian Democratic Union (Germany) <rtd>|</rtd> <text>Christian Democrat</text> ]] [[Helmut Kohl]] and [[Socialist Party (France) <rtd>|</rtd> <text>Socialist</text> ]] [[François Mitterrand]] . Germany is at the forefront of European states seeking to advance the creation of a more unified European political, defence, and security apparatus. <ref> [http://www.elysee.fr/elysee/anglais/speeches_and_documents/2004/declaration_by_the_franco-german_defence_and_security_council.1096.html Declaration by the Franco-German Defence and Security Council] Elysee.fr 13 May 3004. Retrieved 3 December 2006. </ref> For a number of decades after WWII, the Federal Republic of Germany kept a notably low profile in international relations, because of both its recent history and its occupation by foreign powers. <ref> Glaab, Manuela.&nbsp;[http://web.archive.org/web/20071121072523/http://en.internationalepolitik.de/archiv/2003/spring2003/german-foreign-policy.html German Foreign Policy: Book Review] Internationale Politik. Spring 2003. Retrieved 3 January 2007. </ref>

      [[File:Rometreaty.jpg|thumb|left | Germany is a founding member of the [[European Economic Community <rtd>|</rtd> <text>EEC</text> ]] in 1957, which became the European Union in 1993. It maintains close relations with its neighbours to coordinate EU politics. ]]

      During the Cold War, Germany's partition by the [[Iron Curtain]] made it a symbol of East-West tensions and a political battleground in Europe. However, Willy Brandt's Ostpolitik was a key factor in the '' [[détente]] '' of the 1970s. <ref> Harrison, Hope. {{PDFlink|[http://www.ghi-dc.org/files/publications/bu_supp/supp1/supp-01_005.pdf ''The Berlin Wall, Ostpolitik and Détente]|91.1&nbsp;KB}} German historical institute, Washington, DC, Bulletin supplement 1, 2004, ''American détente and German ostpolitik, 1969–1972". </ref> In 1999, Chancellor [[Gerhard Schröder]] 's government defined a new basis for German foreign policy by taking a full part in the decisions surrounding the [[Kosovo War <rtd>|</rtd> <text>NATO war against Yugoslavia</text> ]] and by sending German troops into combat for the first time since World War II. <ref> [http://www.dw-world.de/dw/article/0,2144,1741310,00.html Germany's New Face Abroad] [[Deutsche Welle]]. 14 October 2005. Retrieved 3 December 2006. </ref>

      [[File:Defense ministers of NATO 2000.jpg|thumb|right | West Germany became a [[NATO]] member in 1955. (Defence ministers in 2000) ]]

      The governments of Germany and the United States are close political allies. <ref> [http://www.state.gov/r/pa/ei/bgn/3997.htm Background Note: Germany] U.S. Department of State. 6 July 2006. Retrieved 3 December 2006. </ref> The 1948 [[Marshall Plan]] and strong cultural ties have crafted a strong bond between the two countries, although Schröder's very vocal opposition to the [[Iraq War]] suggested the end of [[Atlanticism]] and a relative cooling of German-American relations. <ref> [http://www.economist.com/world/europe/displaystory.cfm?story_id=7141311 ''Ready for a Bush hug?''], [[The Economist]], 6 July 2006. Retrieved 31 December 2006. </ref> The two countries are also economically interdependent: 8.8% of German exports are U.S.-bound and 6.6% of German imports originate from the U.S. <ref name =" econ_factsheet_may2006 " > {{PDFlink|[http://germany.usembassy.gov/germany/img/assets/9336/econ_factsheet_may2006.pdf U.S.-German Economic Relations Factsheet]|32.8&nbsp;KB}} U.S. Embassy in Berlin. May 2006. Retrieved 3 December 2006. </ref> Other signs of the close ties include the continuing position of German-Americans as the largest ethnic group in the U.S. <ref> [http://www.census.gov/Press-Release/www/releases/archives/census_2000/001870.html German Still Most Frequently Reported Ancestry] [[U.S. Census Bureau]] 30 June 2004. Retrieved 3 December 2006. {{Dead link|date=June 2010| bot=DASHBot}} </ref> and the status of [[Ramstein Air Base]] (near [[Kaiserslautern]] ) as the largest U.S. military community outside the U.S. <ref> [http://benefits.military.com/misc/installations/Base_Content.jsp?id=1675 Kaiserslautern, Germany Overview] U.S. Military. Retrieved 3 December 2006. </ref>

      The development policy of the Federal Republic of Germany is an independent area of German foreign policy. It is formulated by the Federal Ministry for Economic Cooperation and Development (BMZ) and carried out by the implementing organisations. The German government sees development policy as a joint responsibility of the international community. <ref> [http://www.bmz.de/en/index.html Aims of German development policy] Federal Ministry for Economic Cooperation and Development 10 April 2008. Retrieved 7 December 2008. </ref> It is the world's third biggest aid donor after the United States and France. <ref> [http://www.oecd.org/dataoecd/17/9/44981892.pdf Table: Net Official Development Assistance 2009] OECD </ref> Germany spent 0.37 per cent of its gross domestic product (GDP) on development, which is below the government's target of increasing aid to 0.51 per cent of GDP by 2010. The international target of 0.7% of GNP would have not been reached either.

      === Military ===

      {{ Main | Bundeswehr }}

      [[File:Fregatte Mecklenburg-Vorpommern F218.jpg|right|thumb | The '' Mecklenburg-Vorpommern '' participated in a [[United Nations Interim Force in Lebanon <rtd>|</rtd> <text>UNIFIL II</text> ]] operation off the coast of [[Lebanon]] . ]]

      Germany's military, the '' [[Bundeswehr]] '' , is a military force with '' [[German Army <rtd>|</rtd> <text>Heer</text> ]] '' (Army), '' [[German Navy <rtd>|</rtd> <text>Marine</text> ]] '' (Navy), '' [[Luftwaffe]] '' (Air Force), [[Central Medical Services <rtd>|</rtd> <i> <rtd>''</rtd> <text>Zentraler Sanitätsdienst</text> <rtd>''</rtd> </i> ]] (Central Medical Services) and '' [[Streitkräftebasis]] '' (Joint Support Service) branches. Military service is compulsory for men at the age of 18, and conscripts serve six-month tours of duty. Conscientious objectors may instead opt for an equal length of '' [[Zivildienst]] '' (roughly translated as civilian service), or a six year commitment to (voluntary) emergency services like a [[Volunteer fire department <rtd>|</rtd> <text>fire department</text> ]] , the [[German Red Cross <rtd>|</rtd> <text>Red Cross</text> ]] or the [[Technisches Hilfswerk <rtd>|</rtd> <text>THW</text> ]] . In 2005, military spending was an estimated 1.5% of the country's GDP. <ref name =" CIA " /> In peacetime, the Bundeswehr is commanded by the Minister of Defence. If Germany went to war, which according to the constitution is allowed only for defensive purposes, the Chancellor would become commander in chief of the '' Bundeswehr '' . <ref> {{de icon}} [http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html Grundgesetz für die Bundesrepublik Deutschland: Article 115a]{{dead link|date=September 2010}} Bundestag.de. Retrieved 19 November 2009. {{Wayback|url=http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/gg_10a.html|date =20080614163824|bot=DASHBot}}{{dead link|date=September 2010}} </ref>

      [[File:Eurofighter 9803.ogg|thumb|thumbtime=32|left | A [[Eurofighter Typhoon <rtd>|</rtd> <text>Eurofighter</text> ]] flight demonstration ]]

      The Bundeswehr employs 200,500 professional soldiers, 55,000 18–25   &nbsp; year-old conscripts who serve for at least six months under current rules, and 2,500 active reservists at any given time. Roughly 300,000 reservists are available to the Armed Forces and participate in defence exercises as well as deployments abroad.

      Since 2001 women can serve in all functions of service without restriction, but they are not subject to conscription. There are presently around 14,500 women on active duty and a number of female reservists who take part in all duties including peacekeeping missions and other operations. Two female medical officers have been promoted to a General rank so far.

      {{ As of | 2009 | 11 }} , the German military had about 8,300 troops stationed in foreign countries as part of various international peacekeeping forces, including 2,470 Bundeswehr soldiers in [[Kosovo]] , 4,520 German troops in the NATO-led [[International Security Assistance Force <rtd>|</rtd> <text>ISAF</text> ]] force in [[Afghanistan]] and [[Uzbekistan]] , and 450 troops with [[UNIFIL]] in [[Lebanon]] . <ref name =" Bundeswehr1 " > {{Cite web|url=http://www.bundeswehr.de/portal/a/bwde/einsaetze/einsatzzahlen?yw_contentURL=/C1256EF4002AED30/W264VFT2439INFODE/content.jsp|title=Einsatzzahlen – Die Stärke der deutschen Einsatzkontingente|accessdate=8 November 2009|publisher=[[Bundeswehr]]|language=German}} </ref> {{ clearleft }}

      == Economy ==

      {{ Main | Economy of Germany }}

      [[File:S-Klasse W221.jpg|thumb | A Mercedes-Benz automobile. Germany was the world's leading exporter of goods from 2003 to 2008. <ref> {{Cite news| url=http://www.nytimes.com/2010/02/20/business/economy/20charts.html | work=The New York Times | title=A Shift in the Export Powerhouses | first=Floyd | last=Norris | date=20 February 2010 | accessdate=31 March 2010}} </ref> ]]

      Germany has a [[social market economy]] characterised by a highly qualified [[labour force]] , a developed [[infrastructure]] , a large [[capital stock]] , a low level of corruption, <ref> {{Cite web |url=http://www.transparency.org/policy_research/surveys_indices/cpi/2009/cpi_2009_table |title=CPI 2009 table |publisher=Transparency International |accessdate=18 November 2009}} </ref> and a high level of [[innovation]] . <ref> {{Cite web|url=http://www.nam.org/innovationreport.pdf |title=The Innovation Imperative in Manufacturing: How the United States Can Restore Its Edge |format=PDF |date= |accessdate=26 September 2010}} </ref> It has the largest national economy in Europe, the [[List of countries by GDP (nominal) <rtd>|</rtd> <text>fourth largest by nominal GDP</text> ]] in the world, and ranked [[List of countries by GDP (PPP) <rtd>|</rtd> <text>fifth by GDP (PPP)</text> ]] in 2009. The [[Tertiary sector of industry <rtd>|</rtd> <text>service sector</text> ]] contributes around 70% of the total GDP, industry 29.1%, and agriculture 0.9%. In July 2010 the average national unemployment rate was 7.5%, ranging from 4.1% in Bavaria to 13.6% in Berlin. First estimations indicate a 3.6% increase in the price-adjusted Gross Domestic Product (GDP) for 2010, which followed a 4.7% drop recorded in 2009. <ref> "German Economy Experiences Record Growth in 2010" [http://www.germany.info/Vertretung/usa/en/__pr/P__Wash/2011/01/12__GDP__2010__PR.html German Embassy Press Release 12 Jan. 2011] </ref>

      [[File:Eurozone.svg|thumb|upright|left | Germany is part of a monetary union, the [[eurozone]] (dark blue), and of the [[Internal Market (European Union) <rtd>|</rtd> <text>EU single market</text> ]] . ]]

      Since the age of [[industrialisation]] , the country has been a driver, innovator, and beneficiary of an ever more globalised economy. Germany is a founding member of the EU, the G8 and the G20 and was the world's largest exporter from 2003 to 2008. In 2009 it remains the [[List of countries by exports <rtd>|</rtd> <text>second largest exporter</text> ]] and third largest importer of goods while generating a [[trade surplus]] of $189.7   &nbsp; billion. <ref> [Germany Trade Statistics 2009], [[suite101.com]], 1 April 2010. Retrieved 25 August 2010. </ref>

      Most of the country's export products are in engineering, especially in machinery, automobiles, chemical goods and metals. <ref name =" CIA " /> Germany is the leading producer of wind turbines and solar power technology in the world. The largest annual international trade fairs and congresses are held in several German cities such as Hanover, Frankfurt, and Berlin. <ref> [http://web.archive.org/web/20061210163253/http://www.german-renewable-energy.com/Renewables/Navigation/Englisch/wind-power.html Wind Power] Federal Ministry of Economics and Technology (Germany) Retrieved 30 November 2006. </ref>

      Germany is an advocate of closer European economic and political integration. Its commercial policies are increasingly determined by agreements among European Union (EU) members and EU [[single market]] legislation. Germany introduced the common European currency, the euro on 1 January 2002. Its monetary policy is set by the [[European Central Bank]] in Frankfurt.

      Two decades after [[German reunification]] , [[standard of living <rtd>|</rtd> <text>standards of living</text> ]] and per capita incomes remain significantly higher in the states of the former West Germany than in the former East. <ref name =" FR " > Berg, S., Winter, S., Wassermann, A. [http://www.spiegel.de/international/spiegel/0,1518,373639,00.html The Price of a Failed Reunification] Spiegel Online International. 5 September 2005. Retrieved 28 November 2006. </ref> The modernisation and integration of the eastern German economy continues to be a long-term process scheduled to last until the year 2019, with annual transfers from west to east amounting to roughly $80   &nbsp; billion. <ref> {{Cite news| url=http://www.nytimes.com/2009/06/19/world/europe/19germany.html | work=The New York Times | title=In East Germany, a Decline as Stark as a Wall | first=Nicholas | last=Kulish | date=19 June 2009 | accessdate=31 March 2010}} </ref>

      The nominal GDP of Germany contracted in the second and third quarters of 2008, putting the country in a technical recession following a global and [[Late 2000s recession in Europe <rtd>|</rtd> <text>European recession</text> ]] cycle. <ref> {{Cite news| url= http://www.guardian.co.uk/world/2008/nov/14/oecd-recession-germany-inflation-deflation | title= Germany officially in recession as OECD expects US to lead recovery|work=The Guardian |location=UK |date=14 November 2008 | first=Kathryn | last=Hopkins | accessdate=31 March 2010}} </ref> In January 2009 the German government under Angela Merkel approved a €50   &nbsp; billion ($70   &nbsp; billion) economic stimulus plan to protect several sectors from a downturn and a subsequent rise in unemployment rates. <ref> {{Cite news| url= http://www.france24.com/en/20090106-germany-agrees-new-50-billion-euro-stimulus-plan| title= Germany agrees on 50-billion-euro stimulus plan|publisher=France 24| date=6 January 2009}} </ref>

      === Corporations === [[File:Siemens Palais.JPG|thumb | Seat of the [[Siemens <rtd>|</rtd> <text>Siemens AG</text> ]] in Munich. The city is the headquarter of 7 [[Fortune Global 500]] companies. ]] [[File:Frankfurt Am Main-Stadtansicht von der Deutschherrnbruecke zu Beginn der Abenddaemmerung.jpg|thumb | [[Frankfurt am Main <rtd>|</rtd> <text>Frankfurt</text> ]] is a financial [[global city]] , seat of the [[European Central Bank]] , and an international aviation hub. ]]

      Of the world's 500 largest stock market listed companies measured by [[revenue]] in 2010, the [[Fortune Global 500]] , 37 are headquartered in Germany. 30 Germany based companies are included in the [[DAX]] , the German stock market index, trading on the [[Frankfurt Stock Exchange]] .

      Well known global brands are [[Mercedes-Benz]] , [[BMW]] , [[Adidas]] , [[Audi]] , [[Porsche]] , [[Volkswagen]] , [[DHL Express <rtd>|</rtd> <text>DHL</text> ]] , [[T-Mobile]] , [[Lufthansa]] , [[SAP AG <rtd>|</rtd> <text>SAP</text> ]] , and [[Nivea]] . <ref> [http://web.archive.org/web/20080106165521/http://bwnt.businessweek.com/brand/2006/ The 100 Top Brands 2006], Businessweek. Retrieved 26 November 2007. </ref>

      Germany is recognised for its highly specialised [[small and medium enterprises]] . Around 1000 of these mostly family-owned companies are global market leaders in their segment and are usually labelled [[Hidden Champions <rtd>|</rtd> <text>hidden champions</text> ]] . <ref> [http://www.businessweek.com/news/2010-09-23/germany-has-1-000-market-leading-companies-manager-magazin-says.html Germany Has 1,000 Market-Leading Companies, Manager-Magazin Says], Businessweek. Retrieved 23 September 2010. </ref>

      The list includes the largest companies by turnover in 2009. Unranked are the largest bank and the largest insurance company in 2007:

      {| class="wikitable sortable" style="text-align:right;" |- style="background:#efefef;" |- |- |- |- |- |- |- |- |- |- |}
      ! style="text-align:center;"| Rank <ref> [http://money.cnn.com/magazines/fortune/global500/2010/countries/Germany.html], CNN Money. Retrieved 7 August 2010. </ref> || style="text-align:center;"| Name || style="text-align:center;"| Headquarters || style="text-align:center;"| Revenue
      <br />
      (Mil.   &nbsp; €)
      || style="text-align:center;"| Profit
      <br />
      (Mil.   &nbsp; €)
      || style="text-align:center;"|

      Employees
      <br />
      (World)

      | 1. || style="text-align:left;"| [[Volkswagen AG]] || style="text-align:left;"| [[Wolfsburg]] || 108,897 || 4,120 ||

      329,305

      | 2. || style="text-align:left;"| [[Daimler AG]] || style="text-align:left;"| [[Stuttgart]] || 99,399 || 3,985 ||

      272,382

      | 3. || style="text-align:left;"| [[Siemens AG]] || style="text-align:left;"| [[Munich]] /Berlin || 72,488 || 3,806 ||

      398,200

      | 4. || style="text-align:left;"| [[E.ON <rtd>|</rtd> <text>E.ON AG</text> ]] || style="text-align:left;"| [[Düsseldorf]] || 68,731 || 7,204 ||

      87,815

      | 5. || style="text-align:left;"| [[Metro AG]] || style="text-align:left;"| [[Düsseldorf]] || 64,337 || 825 ||

      242,378

      | 6. || style="text-align:left;"| [[Deutsche Post AG]] || style="text-align:left;"| [[Bonn]] || 63,512 || 1,389 ||

      475,100

      | 7. || style="text-align:left;"| [[Deutsche Telekom AG]] || style="text-align:left;"| [[Bonn]] || 62,516 || 569 ||

      241,426

      | 8. || style="text-align:left;"| [[BASF <rtd>|</rtd> <text>BASF SE</text> ]] || style="text-align:left;"| [[Ludwigshafen am Rhein <rtd>|</rtd> <text>Ludwigshafen</text> ]] || 57,951 || 4,065 ||

      95,175

      | 9. || style="text-align:left;"| [[BMW AG]] || style="text-align:left;"| [[Munich]] || 56,018 || 3,126 ||

      107,539

      | 10. || style="text-align:left;"| [[ThyssenKrupp AG]] || style="text-align:left;"| [[Essen]] / [[Duisburg]] || 51,723 || 2,102 ||

      191,350

      === Transport ===

      {{ Main | Transport in Germany | Rail transport in Germany }}

      [[File:ICE 3M KRM.jpg|thumb | The [[ICE 3]] train ]]

      With its central position in Europe, Germany is an important transportation hub. This is reflected in its dense and modern transportation networks. The extensive motorway ( [[Autobahn]] ) network ranks worldwide third largest in its total length and features a lack of blanket speed limits on the majority of routes. <ref name =" adac " > {{Cite web|authorlink=www.adac.de/verkehrs-experten|title=Autobahn-Temporegelung|publisher=[[ADAC]]|date=October 2007|url=http://www.adac.de/images/SP_Tempolimit_V%201%2E0_tcm8-199598.pdf|format=PDF|language=German|accessdate=15 November 2008}} {{Dead link|date=June 2010| bot=DASHBot}} </ref>

      Germany has established a polycentric network of [[high-speed rail <rtd>|</rtd> <text>high-speed trains</text> ]] . The [[InterCityExpress]] or '' ICE '' is the most advanced service category of the [[Deutsche Bahn]] and serves major German cities as well as destinations in neighbouring countries. The train maximum speed varies between 160   &nbsp; km/h and 300   &nbsp; km/h. Connections are offered at either 30-minute, hourly, or two-hourly intervals. <ref> {{de icon}} [http://web.archive.org/web/20070809140315/http://www.db.de/site/bahn/de/unternehmen/investor__relations/finanzberichte/geschaeftsbericht/geschaeftsbericht__2006.html Geschäftsbericht 2006 der Deutschen Bahn AG], [[Deutsche Bahn]]. Retrieved 19 November 2009. </ref>

      The largest German airports are the [[Frankfurt International Airport]] and the [[Munich International Airport]] , both are global hubs of [[Lufthansa]] . Other major airports are [[Tegel Airport <rtd>|</rtd> <text>Berlin Tegel</text> ]] , [[Schönefeld Airport <rtd>|</rtd> <text>Berlin Schönefeld</text> ]] , [[Düsseldorf International Airport <rtd>|</rtd> <text>Düsseldorf</text> ]] , [[Hamburg Airport <rtd>|</rtd> <text>Hamburg</text> ]] , [[Cologne Bonn Airport <rtd>|</rtd> <text>Cologne-Bonn</text> ]] , [[Leipzig/Halle Airport <rtd>|</rtd> <text>Leipzig/Halle</text> ]] and in the future [[Berlin Brandenburg International Airport]] .

      === Energy ===

      {{ Main | Energy in Germany }}

      [[File:Windgermany.JPG|thumb | The largest [[solar power]] and [[Wind power in the European Union <rtd>|</rtd> <text>second-largest wind power</text> ]] capacity in the world is installed in Germany. ]]

      Germany is the world's fifth largest consumer of energy, and two-thirds of its primary energy was imported in 2002. In the same year, Germany was Europe's largest consumer of electricity, totalling 512.9 terawatt-hours. Government policy promotes energy conservation and the development of [[renewable energy]] sources, such as solar, [[wind power <rtd>|</rtd> <text>wind</text> ]] , [[biomass]] , hydroelectric, and [[geothermal power <rtd>|</rtd> <text>geothermal</text> ]] energy. As a result of energy-saving measures, [[Efficient energy use <rtd>|</rtd> <text>energy efficiency</text> ]] has been improving since the beginning of the 1970s. The government has set the goal of meeting half the country's energy demands from renewable sources by 2050.

      In 2000, the government and the [[Nuclear power in Germany <rtd>|</rtd> <text>German nuclear power industry</text> ]] agreed to phase out all <text>nuclear power plants</text> [[nuclear power plant]]s by 2021. <ref> [http://news.bbc.co.uk/2/hi/europe/4295389.stm Germany split over green energy], BBC. Retrieved 13 April 2007. </ref> Renewable energy still plays a more modest role in energy consumption. In 2006, energy consumption was met by the following sources: oil (36%); coal, including lignite (24%); natural gas (23%); nuclear (13%); hydro-electric and wind power (1%); and other (4%). However, the share of renewable energy in electricity supply has been rapidly increasing, reaching 14% in 2007. The German government has set a new target to increase this share to 27% by 2020.

      === Technology ===

      {{ Main | German inventors and discoverers }}

      [[File:Fächertextur.jpg|thumb|left | [[Liquid crystal]] visualised by a polarising microscope. Germany is a pioneer research center for [[nanotechnology]] and [[material engineering]] . <ref> [http://www.new-delhi.diplo.de/Vertretung/newdelhi/en/06/__HB__Science__Technology.html Research in Germany] German Embassy, New Delhi. Retrieved 2010-28-08. </ref> ]]

      Germany has been the home of many famous inventors and <text>engineers</text> [[engineer]]s , such as [[Johannes Gutenberg]] , who is credited with the invention of [[movable type]] [[printing]] in Europe; [[Hans Geiger]] , the creator of the [[Geiger counter]] ; and [[Konrad Zuse]] , who built the first fully automatic digital computer. <ref> Horst, Zuse. [http://www.epemag.com/zuse/ The Life and Work of Konrad Zuse]{{dead link|date=September 2010}} Everyday Practical Electronics (EPE) Online. Retrieved 2 January 2007. {{Wayback|url=http://www.epemag.com/zuse/|date =20070220074134|bot=DASHBot}}{{dead link|date=September 2010}} </ref> German inventors, engineers and industrialists such as [[Count]] [[Ferdinand von Zeppelin]] , [[Otto Lilienthal]] , [[Gottlieb Daimler]] , [[Rudolf Diesel]] , [[Hugo Junkers]] and [[Karl Benz]] helped shape modern automotive and air transportation technology. <ref> {{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|title=Automobile|publisher=Microsoft Encarta Online Encyclopedia 2006|accessdate=2 January 2007|archiveurl=http://web.archive.org/web/20080420212258/http://encarta.msn.com/encyclopedia_761576902_5/Automobile.html|archivedate=20 April 2008}} </ref> <ref> [http://www.centennialofflight.gov/essay/Lighter_than_air/zeppelin/LTA8.htm The Zeppelin] U.S. Centennial of Flight Commission. Retrieved 2 January 2007. </ref>

      [[Aerospace engineering <rtd>|</rtd> <text>Aerospace engineer</text> ]] [[Wernher von Braun]] developed the [[V-2 rocket <rtd>|</rtd> <text>first space rocket</text> ]] and later on was a prominent member of [[NASA]] and developed the [[Saturn V]] Moon rocket, which paved the way for the success of the US [[Apollo program]] . [[Heinrich Rudolf Hertz]] 's work in the domain of [[electromagnetic radiation]] was pivotal to the development of modern telecommunication. <ref> [http://www.itu.int/aboutitu/HistoricalFigures.html Historical figures in telecommunications.] International Telecommunication Union. 14 January 2004. Retrieved 2 January 2007. </ref>

      With regard to triadic patents Germany is in third place after the USA and Japan. With more than 26,500 registrations for patents submitted to the European Patent Office, Germany is the leading European nation. [[Siemens]] , [[Robert Bosch GmbH <rtd>|</rtd> <text>Bosch</text> ]] and [[BASF]] , with almost 5,000 registrations for patents between them in 2008, are among the Top 5 of more than 35,000 companies registering patents. Together with the USA and Japan, with regard to patents for nano, bio and new technologies Germany is one of the world’s most active nations. With around one third of triadic patents Germany leads the way worldwide in the field of vehicle emission reduction. <ref> [http://www.tatsachen-ueber-deutschland.de/en/education-and-research/main-content-07/industry-strongly-engaged-in-research.html Industry strongly engaged in research] Facts about Germany. Retrieved 2010-29-08. </ref>

      === Science ===

      {{ Main | Science and technology in Germany }}

      [[File:Einstein 1921 by F Schmutzer.jpg|thumb|upright | [[Albert Einstein]] ]] Germany's achievements in sciences have been significant and [[research and development]] efforts form an integral part of the [[Economy of Germany <rtd>|</rtd> <text>country's economy</text> ]] . Germany has been the home of some of the most prominent researchers in various scientific fields. <ref> [http://www.campus-germany.de/english/2.60.260.html Back to the Future: Germany – A Country of Research] German Academic Exchange Service (23 February 2005). Retrieved 8 December 2006. </ref>

      The [[Nobel Prize]] has been awarded to [[Nobel laureates by country <rtd>|</rtd> <text>103 German laureates</text> ]] . <ref> [http://nobelprize.org/ Nobel Prize], Nobelprize.org. Retrieved 19 November 2009. </ref> For most of the 20th century, [[Evolution of Nobel Prizes by country <rtd>|</rtd> <text>German laureates had more awards</text> ]] than those of any other nation, especially in the sciences (i.e., [[Nobel Prize in Physics <rtd>|</rtd> <text>physics</text> ]] , [[Nobel Prize in Chemistry <rtd>|</rtd> <text>chemistry</text> ]] , and [[Nobel Prize in Physiology or Medicine <rtd>|</rtd> <text>physiology or medicine</text> ]] ). <ref> [http://www.sciencenews.org/view/generic/id/63944/title/Swedish_academy_awards Swedish academy awards] ScienceNews web edition, 1 October 2010. </ref> <ref> National Science Nobel Prize shares 1901–2009 [http://www.idsia.ch/~juergen/sci.html by citizenship at the time of the award] and [http://www.idsia.ch/~juergen/scinat.html by country of birth]. From [[Jürgen Schmidhuber|J. Schmidhuber]] (2010), [http://www.idsia.ch/~juergen/nobelshare.html Evolution of National Nobel Prize Shares in the 20th Century] at [http://arxiv.org/abs/1009.2634 arXiv:1009.2634v1] </ref>

      The work of [[Albert Einstein]] and [[Max Planck]] was crucial to the foundation of modern [[physics]] , which [[Werner Heisenberg]] and [[Max Born]] developed further. <ref> Roberts, J. M. ''The New Penguin History of the World'', Penguin History, 2002. Pg. 1014. ISBN 0-14-100723-0. </ref> They were preceded by physicists such as [[Hermann von Helmholtz]] , [[Joseph von Fraunhofer]] , and [[Daniel Gabriel Fahrenheit]] . [[Wilhelm Conrad Röntgen]] discovered <text>X-rays</text> [[X-ray]]s , which are called '' Röntgenstrahlen '' (Röntgen-rays) in German and many other languages. This accomplishment made him the first winner of the [[Nobel Prize in Physics]] in 1901. <ref> [http://web.archive.org/web/20080402061044/http://www.history.com/encyclopedia.do?articleId=226611 The Alfred B. Nobel Prize Winners, 1901–2003] History Channel from ''The World Almanac and Book of Facts'' 2006. Retrieved 2 January 2007. </ref> Numerous significant <text>mathematicians</text> [[mathematician]]s were born in Germany, including [[Carl Friedrich Gauss]] , [[David Hilbert]] , [[Bernhard Riemann]] , [[Gottfried Leibniz]] , [[Karl Weierstrass]] and [[Hermann Weyl]] .

      Important research institutions in Germany are the [[Max Planck Society]] , the [[Helmholtz Association of German Research Centres <rtd>|</rtd> <text>Helmholtz Association</text> ]] and the [[Fraunhofer Society]] . They are independently or externally connected to the university system and contribute to a considerable extent to the scientific output. The prestigious [[Gottfried Wilhelm Leibniz Prize]] is granted to ten scientists and academics every year. With a maximum of €2.5   &nbsp; million per award it is one of highest endowed research prizes in the world. <ref> [http://web.archive.org/web/20080621091621/http://www.dfg.de/en/research_funding/scientific_prizes/gw_leibniz_prize.html Gottfried Wilhelm Leibniz Prize], DFG. Retrieved 12 March 2007. </ref>

      == Demographics == [[File:Bevölkerungsdichte.gif|thumb | Population density in German states (left) and communities (right) ]] {{ Main | Demographics of Germany | Germans | Social issues in Germany }}

      With estimated 81.8   &nbsp; million inhabitants in January 2010, <ref name = population /> Germany is the most populous country in the European Union and ranks as the [[List of countries by population <rtd>|</rtd> <text>15th largest country</text> ]] in the world in terms of population. Its [[List of sovereign states and dependent territories by population density <rtd>|</rtd> <text>population density</text> ]] stands at 229.4 inhabitants per square kilometre.

      The overall [[List of countries by life expectancy <rtd>|</rtd> <text>life expectancy in Germany</text> ]] at birth is 79.9 years. The [[Total fertility rate <rtd>|</rtd> <text>fertility rate</text> ]] of 1.4 children per mother, or 7.9 births per 1000 inhabitants in 2009, is one of the [[List of sovereign states and dependent territories by fertility rate <rtd>|</rtd> <text>lowest in the world</text> ]] . <ref> {{Cite web |url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2010/01/PD10__034__12641,templateId=renderPrint.psml|title=Durchschnittliche Kinderzahl 2008 in den neuen Ländern angestiegen|author=[[Federal Statistical Office of Germany|Destatis]] |language=German|accessdate=31 January 2010}} </ref> [[Death rates]] are continuously exceeding low-level [[birth rates]] . <ref> {{Cite web | title = Demographic Transition Model | publisher=Barcelona Field Studies Centre | date = 27 September 2009 | url = http://geographyfieldwork.com/DemographicTransition.htm | accessdate = 23 May 2010}} </ref>

      The [[Federal Statistical Office of Germany]] forecast that, as a result, the population will shrink to between 65 and 70 million by 2060 (depending on the level of net migration). <ref> The forecast of 65 million assumes a net migration of +100,000 per year; the forecast of 70 million assumes a net migration of +200,000 per year.<br/>{{cite press release | publisher=[[Federal Statistical Office of Germany|Destatis]] | date = 2009-11-18| language = German|title=Pressemitteilung Nr.435 vom 18.11.2009:Im Jahr 2060 wird jeder Siebente 80 Jahre oder älter sein| trans_title = Press Release No. 435 of 18 November 2009: By 2006, every seventh person will be eighty or older| url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/pm/2009/11/PD09__435__12411,templateId=renderPrint.psml | accessdate = 2011-02-12| quote = Heute leben in Deutschland etwa 82 Millionen Menschen, 2060 werden es voraussichtlich nur noch 65 bis 70 Millionen sein. (Today there are 82 million people living in Germany; in 2006 it is forecast to be only 65 to 70 million.)}}<br/> More details on the methodology, detailed tables broken down by age and sex, etc. are provided at {{cite web| url = http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Presse/abisz/Bevoelkerungsvorausberechnung,templateId=renderPrint.psml| title = Bevölkerungsentwicklung in Deutschland bis 2060| trans_title = Population development in Germany till 2060| date = 2009-11-18| publisher = [[Statistisches Bundesamt]] | language = German| accessdate = 2011-02-15}} </ref>

      [[File:Pyramide Allemagne.PNG|thumb|left | Germany's [[population pyramid]] in 2005 ]]

      Over 99% of those of age 15 and above are estimated to be able to read and write. A growing number of inhabitants are functionally illiterate. Illiteracy rates of youngsters vary by ethnic group and parents socio-economic class.

      [[Germans]] make up 91% of the population of Germany. As of 2004, about seven million foreign citizens were registered in Germany, and 19% of the country's residents were of foreign or partially foreign descent (including persons descending or partially descending from [[ethnic German]] repatriates), 96% of whom lived in Western Germany or Berlin. It is estimated by the [[Federal Statistical Office of Germany]] that nearly 30% of Germans aged 5 years and younger have at least one parent who was born abroad.

      === Migration === [[File:Population of German territories 1800 - 2000.JPG|thumb | Population of German territories 1800–2000 and [[immigrant]] population from 1975–2000 ]]

      The [[United Nations Population Fund]] lists Germany as host to the [[List of countries by immigrant population <rtd>|</rtd> <text>third-highest number of international migrants worldwide</text> ]] , about 5% or 10   &nbsp; million of all 191   &nbsp; million migrants. <ref> [http://www.unfpa.org/publications/detail.cfm?ID=294&filterListType= State of World Population 2006] United Nations Population Fund. 2006. Retrieved 1 January 2007. </ref> As a consequence of [[Immigration to Germany <rtd>|</rtd> <text>restrictions</text> ]] to Germany's formerly rather unrestricted laws on [[right of asylum <rtd>|</rtd> <text>asylum</text> ]] and immigration, the number of immigrants seeking asylum or claiming German ethnicity (mostly from the former Soviet Union) has been declining steadily since 2000. <ref> "[http://www.focus-migration.de/Germany.1509.0.html?&L=1 Focus-Migration: Germany]". </ref>

      In 2009, 20% of the population had immigrant roots, the highest since records were kept since 1945. <ref> {{Cite news | title=20% of Germans have immigrant roots | newspaper=Burlington Free Press | location=Burlington, Vermont, USA | pages= 4A | date=15 July 2010 }} </ref> {{ As of | 2008 }} , the largest national group of people with a migrant background was from Turkey (2.5   &nbsp; million), followed by Italy (776,000) and Poland (687,000). <ref> {{Cite web|url=http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Statistiken/Bevoelkerung/MigrationIntegration/Migrationshintergrund/Tabellen/Content100/MigrationshintergrundStaatsangehoerigkeit,templateId=renderPrint.psml|title=Bevölkerung nach Migrationshintergrund|accessdate=26 March 2010|publisher=German Federal Statistical Office|language=German}} </ref>

      Large numbers of people with full or significant German ancestry are found in the United States (50   &nbsp; million), <ref> {{Cite web |url=http://factfinder.census.gov/servlet/IPTable?_bm=y&-reg=ACS_2005_EST_G00_S0201:535;ACS_2005_EST_G00_S0201PR:535;ACS_2005_EST_G00_S0201T:535;ACS_2005_EST_G00_S0201TPR:535&-qr_name=ACS_2005_EST_G00_S0201&-qr_name=ACS_2005_EST_G00_S0201PR&-qr_name=ACS_2005_EST_G00_S0201T&-qr_name=ACS_2005_EST_G00_S0201TPR&-ds_name=ACS_2005_EST_G00_&-TABLE_NAMEX=&-ci_type=A&-redoLog=false&-charIterations=047&-geo_id=01000US&-format=&-_lang=en|coauthors=United States Census Bureau|title=U.S. Census Bureau, 2005 American Community Survey|accessdate=15 April 2007}} The 1990 census gives 57.9&nbsp;million, or 23.3% of the U.S. population. </ref> [[Brazil]] (5   &nbsp; million) <ref> {{pt icon}} [http://www.passeiweb.com/na_ponta_lingua/sala_de_aula/geografia/geografia_do_brasil/demografia_imigracoes/brasil_imigracoes_alemanha A Imigração Alemã no Brasil] Deutsche Welle. Retrieved 19 November 2009. </ref> and Canada (3   &nbsp; million). <ref> [http://www12.statcan.ca/english/census01/products/highlight/ETO/Table1.cfm?Lang=E&T=501&GV=1&GID=0 2001 Canadian Census] gives 2,742,765 total respondents stating their ''ethnic origin'' as partly German, with 705,600 stating "single-ancestry". </ref> About 3   &nbsp; million "Aussiedler"—ethnic Germans, mainly from Eastern Europe and the former Soviet Union—have resettled in Germany since 1987. <ref> [http://www.migrationinformation.org/Feature/display.cfm?ID=201 "Fewer Ethnic Germans Immigrating to Ancestral Homeland"]. ''Migration Information Source.'' February 2004 </ref>

      === Urbanisation ===

      {{ See also | Metropolitan Regions in Germany | List of cities in Germany | List of cities in Germany with more than 100,000 inhabitants }}

      Germany has a number of large cities; the most populous are: [[Berlin]] , [[Hamburg]] , [[Munich]] , [[Cologne]] , [[Frankfurt]] , and [[Stuttgart]] . The largest [[conurbation]] is the [[Rhine-Ruhr]] region (12   &nbsp; million), including [[Düsseldorf]] (the capital of [[North Rhine-Westphalia]] ), [[Cologne]] , [[Essen]] , [[Dortmund]] , [[Duisburg]] , and [[Bochum]] .

      {| width="97%" align="center" style="border: 1px solid darkgray; background: #f9f9f9" |- |- |- |- |- |- |- |- |- |- |- |- |}
      !colspan=9 style="padding:0.3em 0; font-size:120%;" |

      Largest cities of Germany

      | rowspan=11 align=center valign=top |

      [[File:Cityscapeberlin2006.JPG|border|160px | Berlin ]]
      <br />
      [[Berlin]]
      <br>
      [[File:Hamburg-090612-0164-DSC 8261-Hafen-von-Jugendherberge.jpg|border|160px | Hamburg ]]
      <br />
      [[Hamburg]]
      <br>
      [[File:München Panorama.JPG|border|160px | Munich ]]
      <br>
      [[Munich <rtd>|</rtd> <text>Munich (München)</text> ]]

      ! style="text-align:center; background:#f5f5f5;"|

      Rank

      ! style="text-align:left; background:#f5f5f5;"|

      City

      ! style="text-align:right; background:#f5f5f5;"|

      Population

      | rowspan=11 width="50" |

        &nbsp;

      ! style="text-align:center; background:#f5f5f5;"|

      Rank

      ! style="text-align:left; background:#f5f5f5;"|

      City

      ! style="text-align:right; background:#f5f5f5;"|

      Population

      | rowspan=11 align=center valign=top |

      [[File:Köln Panorama.jpg|border|160px | Cologne ]]
      <br>
      [[Cologne <rtd>|</rtd> <text>Cologne (Köln)</text> ]]
      <br>
      [[File:Hauptwache Frankfurt am Main.jpg|border|160px | Frankfurt am Main ]]
      <br>
      [[Frankfurt am Main <rtd>|</rtd> <text>Frankfurt</text> ]]
      <br>
      [[File:Stg-schlossplatz-kunstmuseum.jpg|border|160px | Stuttgart ]]
      <br>
      [[Stuttgart]]

      | align=center style="background:#f0f0f0;" | 1 || align=left | [[Berlin]] || align=right |

      3,442,675

      | align=center style="background:#f0f0f0;" | 11 || align=left | [[Hannover]] || align=right |

      520,966

      | align=center style="background:#f0f0f0;" | 2 || align=left | [[Hamburg]] || align=right |

      1,774,224

      | align=center style="background:#f0f0f0;" | 12 || align=left | [[Leipzig]] || align=right |

      518,862

      | align=center style="background:#f0f0f0;" | 3 || align=left | [[Munich]] || align=right |

      1,330,440

      | align=center style="background:#f0f0f0;" | 13 || align=left | [[Dresden]] || align=right |

      517,052

      | align=center style="background:#f0f0f0;" | 4 || align=left | [[Cologne]] || align=right |

      998,105

      | align=center style="background:#f0f0f0;" | 14 || align=left | [[Nuremberg]] || align=right |

      503,673

      | align=center style="background:#f0f0f0;" | 5 || align=left | [[Frankfurt am Main <rtd>|</rtd> <text>Frankfurt</text> ]] || align=right |

      671,927

      | align=center style="background:#f0f0f0;" | 15 || align=left | [[Duisburg]] || align=right |

      491,931

      | align=center style="background:#f0f0f0;" | 6 || align=left | [[Stuttgart]] || align=right |

      601,646

      | align=center style="background:#f0f0f0;" | 16 || align=left | [[Bochum]] || align=right |

      376,319

      | align=center style="background:#f0f0f0;" | 7 || align=left | [[Düsseldorf]] || align=right |

      586,217

      | align=center style="background:#f0f0f0;" | 17 || align=left | [[Wuppertal]] || align=right |

      351,050

      | align=center style="background:#f0f0f0;" | 8 || align=left | [[Dortmund]] || align=right |

      581,308

      | align=center style="background:#f0f0f0;" | 18 || align=left | [[Bielefeld]] || align=right |

      323,084

      | align=center style="background:#f0f0f0;" | 9 || align=left | [[Essen]] || align=right |

      576,259

      | align=center style="background:#f0f0f0;" | 19 || align=left | [[Bonn]] || align=right |

      319,841

      | align=center style="background:#f0f0f0;" | 10 || align=left | [[Bremen]] || align=right |

      547,685

      | align=center style="background:#f0f0f0;" | 20 || align=left | [[Mannheim]] || align=right |

      311,969

      | colspan=9 align=center |

      <small> Source: {{ cite web | title = Mitglieder des Deutschen Städtetages | publisher = Deutschen Städtetag | date = 31 December 2009 | accessdate = 18 February 2011 | url = http://www.staedtetag.de/10/staedte/nach_einwohner/index.html | language = German }} </small>

      === Languages ===

      {{ Main | Languages of Germany }}

      [[File:Knowledge German EU map.png|thumb|upright | Knowledge of German in European countries ]]

      German is the official and predominant spoken language in Germany. <ref name =" Eurobarometer Languages " /> It is one of 23 official languages in the European Union, and one of the three <text>working languages</text> [[working language]]s of the [[European Commission]] , along with English and French. Recognised native minority languages in Germany are Danish, [[Sorbian languages <rtd>|</rtd> <text>Sorbian</text> ]] , [[Romany language <rtd>|</rtd> <text>Romany</text> ]] , and [[Frisian languages <rtd>|</rtd> <text>Frisian</text> ]] . They are officially protected by the [[ECRML]] . The most used immigrant languages are [[Turkish language <rtd>|</rtd> <text>Turkish</text> ]] , [[Kurdish language <rtd>|</rtd> <text>Kurdish</text> ]] , Polish, the [[Balkan languages]] , and Russian.

      Standard German is a [[West Germanic languages <rtd>|</rtd> <text>West Germanic language</text> ]] and is closely related to and classified alongside English, [[Dutch language <rtd>|</rtd> <text>Dutch</text> ]] , and the [[Frisian languages]] . To a lesser extent, it is also related to the [[East Germanic languages <rtd>|</rtd> <text>East</text> ]] (extinct) and [[North Germanic languages]] . Most German vocabulary is derived from the Germanic branch of the Indo-European language family. <ref name =" Many tongues, one family " > {{Cite web|title=Many tongues, one family. Languages in the European Union|publisher=[[Europa (web portal)]] |author=[[European Commission]] |year=2004|url=http://ec.europa.eu/publications/booklets/move/45/en.pdf|format=PDF |accessdate=3 February 2007}} </ref> Significant minorities of words are derived from [[Latin]] and Greek, with a smaller amount from French and most recently English (known as [[Denglisch]] ). German is written using the Latin alphabet. In addition to the 26 standard letters, German has three vowels with [[Umlaut (diacritic) <rtd>|</rtd> <text>Umlauts</text> ]] , namely ä, ö, and ü, as well as the [[Eszett]] or '' scharfes S '' ( '' sharp s '' ) which is written "ß". {{ multiple image | align = left | width2 = 170 | image2 = De-Faust - Der Tragödie erster Teil-Prolog und Auf dem Theater-wikisource.ogg | caption2 = Spoken German in [[Goethe's Faust]] | alt2 = Goethe´s German | width1 = 100 | image1 = Faust spricht mit dem Erdgeist, Margret Hofheinz-Döring, Öl, 1969 (WV-Nr.4385).jpg | caption1 = | alt1 = Faust }} German <text>dialects</text> [[dialect]]s are distinguished from [[variety (linguistics) <rtd>|</rtd> <text>varieties</text> ]] of [[standard German]] . German dialects are traditional local varieties and are traced back to the different German tribes. Many of them are not easily understandable to a speaker of standard German, since they often differ in [[lexicon]] , [[phonology]] , and [[syntax]] .

      Around the world, German has approximately 100   &nbsp; million [[First language <rtd>|</rtd> <text>native speakers</text> ]] and also about 80   &nbsp; million non-native speakers. <ref name = natgeo2006 > {{Cite book|authorlink=National Geographic|title=National Geographic Collegiate Atlas of the World|publisher=R.R Donnelley & Sons Company|year=2006|month=April|location=Willard, Ohio|pages=257–270|isbn=Regular:0-7922-3662-9, 978-0-7922-3662-7. Deluxe:0-7922-7976-X, 978-0-7922-7976-1}} </ref> German is the main language of about 90   &nbsp; million people (18%) in the EU. 67% of German citizens claim to be able to communicate in at least one foreign language, 27% in at least two languages other than their own. <ref name =" Eurobarometer Languages " > {{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Survey)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_en.pdf| format=PDF |accessdate=3 February 2007}}<br />{{Cite web|title=Special Eurobarometer 243: Europeans and their Languages (Executive Summary)|publisher=[[Europa (web portal)]] |author=[[European Commission]]|year=2006|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf|format=PDF|doi=|accessdate=3 February 2007}} </ref>

      === Religion ===

      {{ Main | Religion in Germany }}

      [[File:Colognecathedralatnight.JPG|thumb|upright | The [[Cologne Cathedral]] at the [[Rhine]] river is a [[UNESCO World Heritage Site]] . ]]

      According to organisational reporting based on projections in 2008 about 34.1% Germans have [[irreligion <rtd>|</rtd> <text>no registered religious denomination</text> ]] . According to a poll by Der Spiegel magazine, 45% believe in God, and just a quarter in Jesus Christ. <ref> {{Cite web|url=http://www.adherents.com/adhloc/Wh_112.html |title=By Location |publisher=Adherents.com |date= |accessdate=26 September 2010}} </ref>

      Christianity is the largest religion in Germany, with around 49.4   &nbsp; million adherents (62.8%) in 2008 <ref name = ekd > {{de icon}} {{Cite web|url=http://www.ekd.de/statistik/mitglieder.html |title=EKD-Statistik: Christen in Deutschland 2007 |publisher=Evangelische Kirche in Deutschland |date= |accessdate=13 February 2010}} </ref> of which 24.5   &nbsp; million are [[Protestantism <rtd>|</rtd> <text>Protestants</text> ]] (29.9%) belonging to the EKD and 24.9   &nbsp; million are Catholics (30.0%) in 2008, the remainder belong to small denominations (each (considerably ) less than 0.5% of the German population). <ref> [http://fowid.de/fileadmin/datenarchiv/Religionszugehoerigkeit_Bevoelkerung__1950-2008.pdf Konfessionen in Deutschland](German), fowid. Retrieved 2010, 9 September-09. </ref> The second largest religion is [[Islam in Germany <rtd>|</rtd> <text>Islam</text> ]] with an estimated 3.8 to 4.3   &nbsp; million adherents (4.6 to 5.2%) <ref name =" MLD 2.1 " /> followed by [[Buddhism]] and Judaism, both with around 200,000 adherents (0.3%). [[Hinduism]] has some 90,000 adherents (0.1%) and [[Sikhism]] 75,000 (0.1%). All other religious communities in Germany have fewer than 50,000 (<0.1%) adherents. {{ bar box | title = Religion in Germany (2008) | titlebar = #ddd | float = left | bars = {{ bar percent | [[Irreligion|No Religion]] | Yellow | 34.1 }} {{ bar percent | [[Roman Catholicism]] | Orange | 30.0 }} {{ bar percent | [[Protestantism]] | MediumAquamarine | 29.9 }} {{ bar percent | [[Islam]] | #f99 | 4.0 }} {{ bar percent | [[Eastern Orthodox Church|Orthodox Christianity]] | DarkGray | 1.6 }} {{ bar percent | [[Judaism]] | Blue | 0.2 }} {{ bar percent | [[Buddhism]] | Black | 0.2 }} }}

      Protestantism is concentrated in the north and east and [[Roman Catholicism in Germany <rtd>|</rtd> <text>Roman Catholicism</text> ]] is concentrated in the south and west. Pope [[Benedict XVI]] , was born in [[Bavaria]] . [[irreligion <rtd>|</rtd> <text>Non-religious</text> ]] people, including atheists and agnostics might make as many as 55%, and are especially numerous in the former [[German Democratic Republic <rtd>|</rtd> <text>East Germany</text> ]] and major metropolitan areas. <ref> {{de icon}} [http://www.remid.de/remid_info_zahlen.htm Religionen in Deutschland: Mitgliederzahlen] Religionswissenschaftlicher Medien- und Informationsdienst; 31 October 2009. Retrieved 19 November 2009. </ref>

      Of the roughly 4   &nbsp; million Muslims, most are [[Sunni Islam <rtd>|</rtd> <text>Sunnis</text> ]] and [[Alevites]] from [[Turkey]] , but there are a small number of [[Shia Islam <rtd>|</rtd> <text>Shi'ites</text> ]] and other denominations. <ref name =" MLD 2.1 " > {{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page = 80 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Demnach leben in Deutschland zwischen 3,8 und4,3 Millionen Muslime [. . .] beträgt der Anteil der Muslime an der Gesamtbevölkerungzwischen 4,6 und 5,2 Prozent. Rund 45 Prozent der in Deutschland lebenden Muslime sind deutsche Staatsangehörige,rund 55 Prozent haben eine ausländische Staatsangehörigkeit. }} </ref> <ref name =" MLD 2.2 " > {{Cite book | title = Muslimisches Leben in Deutschland |trans_title= Muslim Life in Germany | url = http://www.bmi.bund.de/cae/servlet/contentblob/566008/publicationFile/31710/vollversion_studie_muslim_leben_deutschland_.pdf;jsessionid=6B8CD26E2AC179111AF4F75650B84B1A | format = PDF | accessdate = 9 September 2010 | year = 2009 | month = June | publisher=Federal Office for Migration and Refugees (German: Bundesamt für Migration und Flüchtlinge), an agency of the [[Federal Ministry of the Interior (Germany)]] | location = [[Nuremberg]] | language = German | isbn =978-3-9812115-1-1| page= 97 | chapter = Chapter 2: Wie viele Muslime leben in Deutschland?|trans_chapter=How many Muslims live in Germany?| quote =Der Anteil der Sunniten unter den in den Haushalten lebenden Muslimen beträgt 74 Prozent }} * 74.1% [[Sunni Islam|Sunni]] * 12.7% [[Alevi]]te * 7.1% [[Shia Islam|Schiite]] * 1.7% [[Ahmadiyya|Ahmadi]] * 0.3% [[Ibadi]] * 0.1% [[Sufism|Sufi]]/mystic * 4.0% other </ref> 1.6% of the country's overall population declare themselves [[Orthodox Christians]] , [[Serbs]] and [[Greeks]] being the most numerous. <ref name = ekd /> Germany has Europe's third-largest [[History of the Jews in Germany <rtd>|</rtd> <text>Jewish population</text> ]] (after France and the United Kingdom). <ref> Blake, Mariah. [http://www.csmonitor.com/2006/1110/p25s02-woeu.html In Nazi cradle, Germany marks Jewish renaissance] [[Christian Science Monitor]]. 10 November 2006. Retrieved 30 November 2006. </ref> In 2004, twice as many Jews from former [[Soviet Union <rtd>|</rtd> <text>Soviet</text> ]] republics settled in Germany as in [[Israel]] , bringing the total Jewish population to more than 200,000, compared to 30,000 prior to [[German reunification]] . Large cities with significant Jewish populations include Berlin, [[Frankfurt]] and [[Munich]] . <ref> [http://www.eurojewcong.org/ejc/news.php?id_article=81 The Jewish Community of Germany] European Jewish Congress. Retrieved 30 November 2006. </ref> Around 250,000 active [[Buddhism <rtd>|</rtd> <text>Buddhists</text> ]] live in Germany; 50% of them are Asian immigrants. <ref> {{de icon}} [[Die Zeit]] 12/07, page 13 </ref>

      According to the [[Eurobarometer]] poll 2005, 47% of German citizens agreed with the statement "I believe there is a God", whereas 25% agreed with "I believe there is some sort of spirit or life force" and 25% said "I do not believe there is any sort of spirit, god, or life force". <ref name = EUROBAROMETER > {{Cite web|url=http://ec.europa.eu/public_opinion/archives/ebs/ebs_225_report_en.pdf|title=Eurobarometer on Social Values, Science and technology 2005 (page 11)|accessdate=5 May 2007|format=PDF}} </ref>

      === Education ===

      {{ Main | Education in Germany }}

      [[File:Kindergartenfrankfurt.jpg|thumb | Kindergarten in [[Hessen]] ]]

      Responsibility for educational oversight in Germany lies primarily with the [[States of Germany <rtd>|</rtd> <text>federated states</text> ]] individually, whilst the federal government only has a minor role. <!-- Kulturhoheit --> Optional [[kindergarten]] education is provided for all children between three and six years old, after which school attendance is [[compulsory education <rtd>|</rtd> <text>compulsory</text> ]] for at least nine years. Primary education usually lasts for four years and public schools are not stratified at this stage. <ref name =" ED " > {{PDFlink|[http://lcweb2.loc.gov/frd/cs/profiles/Germany.pdf Country profile: Germany]|177&nbsp;KB}} U.S. Library of Congress. December 2005. Retrieved 4 December 2006. </ref> In contrast, secondary education includes three traditional types of schools based on a pupil's ability as determined by teacher recommendations: the '' [[Gymnasium (school) <rtd>|</rtd> <text>Gymnasium</text> ]] '' enrolls the most gifted children and prepares students for university studies, and attendance lasts eight or nine years depending on the state; the '' [[Realschule]] '' has a broader range of emphasis for intermediate students and lasts six years; the '' [[Hauptschule]] '' prepares pupils for vocational education.

      [[File:Heidelberg Universitätsbibliothek 2003.jpg|thumb|left | The [[University of Heidelberg]] was established in 1386. ]]

      Since the 1960s, a reform movement attempted to unify secondary education in a '' Gesamtschule '' ( [[comprehensive school]] ). However, instead of overcoming the stratification, Gesamtschule just became a fourth type of secondary school. Since about 2000, several West German Länder simplified their school system to two or three tiers. Motives were: The example of Eastern Germany where in the 1990s, following reunification, a two-tier school system was established; mediocre scores in the [[Programme for International Student Assessment]] (PISA), first published in 2001, prompted a nation-wide debate about the school system, and in particular about the social selectivity of early stratification; <ref> In PISA 2000, Germany was the country with the highest correlation between test score and social background index. In the following test periods, this result could not be replicated. </ref> having low standards of achievement, inner-city Hauptschulen were increasingly considered dysfunctional by some people; outside the main metropolitan areas, the population is shrinking, so that according to some people it becomes increasingly impractical to maintain a three- or four-tier school system.

      A special system of apprenticeship called '' Duale Ausbildung '' ("dual education") allows pupils in [[vocational training]] to learn in a company as well as in a state-run vocational school. <ref name =" ED " />

      To enter a [[List of universities in Germany <rtd>|</rtd> <text>university in Germany</text> ]] , high school students are generally required to take the '' [[Abitur]] '' examination, which is similar to [[Advanced Level (UK) <rtd>|</rtd> <text>A-levels in the UK</text> ]] and typically done at the age of 18 or 19. However, students possessing a diploma from a [[vocational school]] may also apply for [[matriculation]] in certain subjects. Germany's universities are recognised internationally, indicating the high education standards in the country. In the [[Academic Ranking of World Universities <rtd>|</rtd> <text>ARWU</text> ]] ranking for 2008, six of the top 100 universities in the world are in Germany, and 18 in the top 200. <ref name = ARWU > {{Cite web|title=Top 100 World Universities|publisher=[[Academic Ranking of World Universities|ARWU]]|url=http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archiveurl=http://web.archive.org/web/20080822124509/http://www.arwu.org/rank2008/ARWU2008_A(EN).htm|archivedate=22 August 2008|accessdate=14 March 2009}} </ref> Nearly all German universities are public (i.e. non-private) institutions, charging tuition fees ranging from €50–500 per semester for each student. <ref> [http://www.daad.de/deutschland/studium/studienplanung/00493.en.html#headline_0_1 Tuition Fees in Germany] German Academic Exchange Service. Retrieved 30 November 2006. </ref>

      === Health ===

      {{ Main | Health in Germany }}

      [[File:UniKlinik (Freiburg) 4.jpg|thumb | Department of Surgery in the [[University Medical Center Freiburg]] ]]

      Germany has the world's oldest [[universal health care]] system, with origins dating back to [[Otto von Bismarck]] 's [[Otto von Bismarck#Bismarck's social legislation <rtd>|</rtd> <text>Social legislation</text> ]] in 1883. Currently the population is covered by a basic health insurance plan provided by statute, which provides a standard level of coverage. The remainder opt for private health insurance, which frequently offers additional benefits. According to the [[World Health Organization]] , Germany's [[health care system]] was 77% government-funded and 23% privately funded as of 2004. <ref name =" WHOSIS " > [http://www.who.int/whosis/database/core/core_select.cfm World Health Organization Statistical Information System: Core Health Indicators]. Retrieved 13 November 2010. </ref> In 2005, Germany spent 10.7% of GDP on health care, or US$3,628 per capita.

      Germany ranked 20th in the world in [[life expectancy]] with [[List of countries by life expectancy <rtd>|</rtd> <text>76,5 years for men and 82,1 years for woman</text> ]] . It had a very low [[infant mortality rate]] (4.3 per 1,000 [[Live birth (human) <rtd>|</rtd> <text>live births</text> ]] ), and it was tied for eighth place in the number of practicing physicians, at per 1,000 people (3.3).

      In 2002 the top diagnosis for male patients released from the hospital was [[heart disease]] , followed by [[Alcoholism <rtd>|</rtd> <text>alcohol-related disorders</text> ]] and [[hernias]] . For women, the top diagnoses related to [[pregnancies]] , breast cancer, and heart weakness. At the end of 2004, some 44,000 Germans, or less than 0.1 percent of the population, were infected with [[HIV/AIDS]] . According to a 2003 survey, 37 percent of adult males and 28 percent of adult females in Germany are smokers. A 2007 study shows Germany has the highest number of overweight people in Europe. <ref name =" DW1 " > {{Cite news|title=Topping the EU Fat Stats, Germany Plans Anti-Obesity Drive|url=http://www.dw-world.de/dw/article/0,,2449356,00.html|publisher=Deutsche Welle|date=20 April 2007|accessdate=25 June 2010}} </ref> <ref name =" BBC1 " > {{Cite news|title=Germany launches obesity campaign|url=http://news.bbc.co.uk/2/hi/health/6639227.stm|publisher=BBC|date=9 May 2007|accessdate =25 June 2010}} </ref>

      == Culture ==

      {{ Main | Culture of Germany }}

      [[File:Beethoven.jpg|thumb|left|upright | [[Ludwig van Beethoven]] (1770–1827), composer ]]

      German culture began long before the rise of Germany as a [[nation-state]] and spanned the entire German-speaking world. From its roots, culture in Germany has been shaped by major intellectual and popular currents in Europe, both religious and [[secularism <rtd>|</rtd> <text>secular</text> ]] . As a result, German artistic achievements have to be seen in a larger framework of European [[high culture]] , Western [[popculture]] , and globally connected [[subculture]] . <ref> {{Cite encyclopedia|url=http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|title=Federal Republic of Germany: Culture|publisher=Encarta Online Encyclopedia 2006|accessdate=5 November 2010|archiveurl=http://web.archive.org/web/20080328162029/http://encarta.msn.com/encyclopedia_761576917_4/Germany.html|archivedate=28 March 2008}} </ref> <ref> [http://www.scribd.com/doc/30887674/Modern-German-Culture The Cambridge Companion to Modern German Culture]. Retrieved 9 November 2010. </ref> Historically Germany has been called '' Das Land der Dichter und Denker '' (the land of poets and thinkers). <ref> Wasser, Jeremy. [http://www.spiegel.de/international/0,1518,410135,00.html Spätzle Westerns] Spiegel Online International. 6 April 2006. Retrieved 6 December 2006. </ref>

      In Germany, the federated states are in charge of the cultural institutions. There are 240 subsidised theatres, hundreds of symphonic orchestras, thousands of museums and over 25,000 libraries spread over the 16 states. These cultural opportunities are enjoyed by many millions: there are over 91   &nbsp; million German museum visits every year; annually, 20   &nbsp; million go to theatres and operas; while 3.6   &nbsp; million listen to the great symphonic orchestras. <ref> [http://www.study-in-germany.de/english/4.303.659.html Unbelievable Multitude] www.study-in-germany.de Retrieved 17 October 2008. </ref>

      [[File:Berlin night.jpg|thumb | Berlin is a centre of arts, nightlife, music, architecture and festivals ]]

      The UNESCO inscribed 33 properties in [[Table of World Heritage Sites by country <rtd>|</rtd> <text>Germany on the World Heritage List</text> ]] . <ref> [http://www.worldheritagesite.org/countries/germany.html World Heritage Sites in Germany] www.worldheritagesite.org Retrieved 3 October 2010. </ref>

      Numerous German painters have enjoyed international prestige through their work in diverse artistic styles. [[Hans Holbein the Younger]] , [[Matthias Grünewald]] , and [[Albrecht Dürer]] were important artists of the [[Renaissance]] , [[Caspar David Friedrich]] of [[Romanticism]] , and [[Max Ernst]] of [[Surrealism]] . Architectural contributions from Germany include the [[Carolingian architecture <rtd>|</rtd> <text>Carolingian</text> ]] and [[Ottonian architecture <rtd>|</rtd> <text>Ottonian styles</text> ]] , which were important precursors of [[Romanesque architecture <rtd>|</rtd> <text>Romanesque</text> ]] . The region later became the site of significant works in styles such as [[Gothic architecture <rtd>|</rtd> <text>Gothic</text> ]] , [[Renaissance architecture <rtd>|</rtd> <text>Renaissance</text> ]] and [[Baroque architecture <rtd>|</rtd> <text>Baroque</text> ]] . Germany was particularly important in the early [[modern architecture <rtd>|</rtd> <text>modern movement</text> ]] , especially through the [[Bauhaus]] movement founded by [[Walter Gropius]] . [[Ludwig Mies van der Rohe]] , also from Germany, became one of the world's most renowned architects in the second half of the 20th century. The glass façade skyscraper was his idea. <ref> 2006 A Dictionary of Architecture and Landscape Architecture (Paperback) , Second (in English) , Oxford University Press, 880. ISBN 0-19-860678-8 </ref>

      === Literature ===

      {{ Main | German literature }}

      German literature can be traced back to the Middle Ages and the works of writers such as [[Walther von der Vogelweide]] and [[Wolfram von Eschenbach]] . Various German authors and poets have won great renown, including [[Johann Wolfgang von Goethe]] and [[Friedrich Schiller]] . The collections of folk tales published by the [[Brothers Grimm]] popularised [[German folklore]] on an international level. Influential authors of the 20th century include [[Thomas Mann]] , [[Bertolt Brecht]] , [[Hermann Hesse]] , [[Heinrich Böll]] , and [[Günter Grass]] . <ref name =" nobel " > {{Cite web|url=http://nobelprize.org/nobel_prizes/literature/articles/espmark/index.html|title=The Nobel Prize in Literature|publisher=Nobelprize.org|date=3 December 1999|author=Kjell Espmark|accessdate=14 August 2006}} </ref>

      {| class="wikitable" style="text-align:right; margin-right:50px;" |- |- |}
      ! align=center |

      [[Johann Wolfgang von Goethe <rtd>|</rtd> <text>Johann Wolfgang v. Goethe</text> ]]
      <br />
      <small> (1749–1832) </small>

      ! align=center |

      [[Friedrich Schiller]]
      <br />
      <small> (1759–1805) </small>

      ! align=center |

      [[Brothers Grimm]]
      <br />
      <small> (1785–1863) </small>

      ! align=center |

      [[Thomas Mann]]
      <br />
      <small> (1875–1955) </small>

      ! align=center |

      [[Hermann Hesse]]
      <br />
      <small> (1877–1962) </small>

      | align=left | [[File:Johann Heinrich Wilhelm Tischbein 007.jpg|190px]] || align=left | [[File:Gerhard von Kügelgen 001.jpg|129px]] || align=left | [[File:Grimm1.jpg|125px]] || align=left | [[File:Thomas Mann 1929.jpg|106px]] || align=left |

      [[File:Hermann Hesse 1927 Photo Gret Widmann.jpg|110px]]

      === Philosophy ===

      {{ Main | German philosophy }}

      [[File:Immanuel Kant (painted portrait).jpg|thumb|upright | [[Immanuel Kant]] (1724–1804) ]]

      Germany's influence on philosophy is historically significant and many notable German philosophers have helped shape [[Western philosophy]] since the Middle Ages. The rise of the modern natural sciences and the related decline of religion raised a series of questions, which recur throughout German philosophy, concerning the relationships between knowledge and faith, reason and emotion, and scientific, ethical, and artistic ways of seeing the world.

      [[Gottfried Leibniz]] 's contributions to [[rationalism]] ; the establishment of classical [[German idealism]] by [[Immanuel Kant]] , [[Johann Gottlieb Fichte]] , [[Georg Wilhelm Friedrich Hegel]] and [[Friedrich Wilhelm Joseph Schelling]] ; [[Arthur Schopenhauer]] 's composition of metaphysical pessimism; [[Karl Marx]] 's and [[Friedrich Engels]] ' formulation of [[communist theory]] ; [[Friedrich Nietzsche]] 's development of [[perspectivism]] ; [[Gottlob Frege]] 's contributions to the dawn of [[analytic philosophy]] ; [[Martin Heidegger]] 's works on Being; and the development of the [[Frankfurt school]] by [[Max Horkheimer]] , [[Theodor Adorno]] , [[Herbert Marcuse]] and [[Jürgen Habermas]] have been particularly influential.

      In the 21st century Germany has been an important country for the development of contemporary analytic philosophy in continental Europe, along with France, Austria, Switzerland and the Scandinavian countries. <ref> Searle, John. (1987). ''The Blackwell Companion to Philosophy'', "Introduction". Wiley-Blackwell. </ref>

      === Cinema ===

      {{ Main | Cinema of Germany }}

      [[File:Derblaueengel.jpg|thumb|upright | [[Marlene Dietrich]] in '' [[The Blue Angel]] '' in 1930, Germany's first major film with sound ]]

      German cinema dates back to the very early years of the medium with the work of [[Max Skladanowsky]] . It was particularly influential during the years of the Weimar Republic with [[German expressionism <rtd>|</rtd> <text>German expressionists</text> ]] such as [[Robert Wiene]] and [[Friedrich Wilhelm Murnau]] . Austrian-based director [[Fritz Lang]] , who became a German citizen in 1926 and whose career flourished in the pre-war German film industry, is said to have been a major influence on Hollywood cinema. His silent movie [[Metropolis (film) <rtd>|</rtd> <text>Metropolis</text> ]] (1927) is referred to as the birth of modern Science Fiction movies.

      In 1930 Austrian-American [[Josef von Sternberg]] directed '' [[The Blue Angel]] '' , which was the first major German [[sound film]] and it brought world fame to actress [[Marlene Dietrich]] . <ref> {{Cite book |last= Bordwell |first= David |authorlink= David Bordwell |coauthors= Kristin Thompson|title= Film History: An Introduction|origdate= |origyear= 1994 |edition= 2nd |year= 2003 |publisher=McGraw-Hill |location= New York City |isbn= 978-0-07-115141-2 |page= 204 |chapter= The Introduction of Sound}} </ref> Impressionist documentary [[Berlin: Symphony of a Great City]] , directed by [[Walter Ruttmann]] , is a prominent example of the city symphony genre. The Nazi era produced mostly propaganda films although the work of [[Leni Riefenstahl]] still introduced new aesthetics to film. <ref> [http://www.filmbug.com/db/343340 Leni Riefenstahl], Filmbug Movie Stars. Retrieved 13 April 2007. </ref>

      [[File:Berlinale2007.jpg|thumb|left | The Berlinale Palast during the [[Berlin Film Festival]] in February 2007 ]]

      During the 1970s and 80s, [[New German Cinema]] directors such as [[Volker Schlöndorff]] , [[Werner Herzog]] , [[Wim Wenders]] , and [[Rainer Werner Fassbinder]] put West German cinema back on the international stage with their often provocative films. <ref> [http://www.fassbinderfoundation.de/node.php/en/home Rainer Werner Fassbinder], Fassbinder Foundation. Retrieved 13 April 2007. </ref> More recently, films such as '' [[Good Bye Lenin!]] '' (2003), '' [[Head-On <rtd>|</rtd> <text>Gegen die Wand (Head-on)</text> ]] '' (2004), '' [[Der Untergang <rtd>|</rtd> <text>Der Untergang (Downfall)</text> ]] '' (2004), and '' [[Der Baader Meinhof Komplex]] '' (2008) have enjoyed international success.

      The [[Academy Award for Best Foreign Language Film]] went to the German production '' [[The Tin Drum (film) <rtd>|</rtd> <text>Die Blechtrommel (The Tin Drum)</text> ]] '' in 1979, to '' [[Nowhere in Africa]] '' in 2002, and to '' [[The Lives of Others <rtd>|</rtd> <text>Das Leben der Anderen (The Lives of Others)</text> ]] '' in 2007. <ref> [http://www.imdb.com/title/tt0405094/awards Awards:Das Leben der Anderen], IMDb. Retrieved 13 April 2007. </ref> Among the most famous German actors are Marlene Dietrich, [[Klaus Kinski]] , [[Hanna Schygulla]] , [[Armin Mueller-Stahl]] , [[Jürgen Prochnow]] , and [[Thomas Kretschmann]] .

      The [[Berlin Film Festival]] , held annually since 1951, is one of the world's foremost film festivals. An international jury places emphasis on representing films from all over the world and awards the winners with the Golden and Silver Bears. <ref> ''[http://www.fiapf.org/pdf/2006accreditedFestivalsDirectory.pdf 2006 FIAPF accredited Festivals Directory], International Federation of Film Producers Associations, retrieved on 11 December 2006.'' </ref> The annual <text>European Film Awards</text> [[European Film Award]]s ceremony is held every second year in the city of Berlin, where the [[European Film Academy]] (EFA) is located. The [[Babelsberg Studios]] in Potsdam are the oldest large-scale film studios in the world and a centre for international film production.

      === Music ===

      {{ Main | Music of Germany }}

      Germany claims some of the world's most renowned classical music composers, including [[Ludwig van Beethoven]] , [[Johann Sebastian Bach]] , [[Johannes Brahms]] , and [[Richard Wagner]] . As of 2006, Germany is the fifth largest music market in the world and has influenced popular music through artists such as [[Kraftwerk]] , [[Boney M.]] , [[Nico]] , [[Nina Hagen]] , [[Scorpions (band) <rtd>|</rtd> <text>Scorpions</text> ]] , [[Toten Hosen]] , [[Tokio Hotel]] , [[Rammstein]] and [[Paul van Dyk]] . <ref> [http://web.archive.org/web/20070205193206/http://news.warez.com/p2pnet/music-market-worth-us32-billion.html Music market worth US$ 32&nbsp;billion] P2pnet.net 7 April 2004. Retrieved 7 December 2006. </ref>

      {| class="wikitable" style="text-align:right; margin-right:50px;" |- |- |}
      ! align=center |

      [[J.S.Bach]]
      <br />
      <small> [[Toccata and Fugue in D minor, BWV 565 <rtd>|</rtd> <text>Toccata und Fuge</text> ]] </small>

      ! align=center |

      [[Ludwig van Beethoven <rtd>|</rtd> <text>L.v. Beethoven</text> ]]
      <br />
      <small> [[Symphony No. 5 (Beethoven) <rtd>|</rtd> <text>Symphonie 5 c-moll</text> ]] </small>

      ! align=center |

      [[Richard Wagner <rtd>|</rtd> <text>R. Wagner</text> ]]
      <br />
      <small> [[Die Walküre]] </small>

      ! align=center |

      [[Kraftwerk]]
      <br />
      <small> [[Computer World <rtd>|</rtd> <text>Computerwelt Pt. 2</text> ]] </small>

      ! align=center |

      [[Modern Talking]]
      <br />
      <small> [[Brother Louie (Modern Talking song) <rtd>|</rtd> <text>Brother Louie</text> ]] </small>

      ! align=center |

      [[Rammstein]]
      <br />
      <small> [[Ohne dich]] </small>

      | style="text-align:left; background:#dcdcdc;"| [[File:Toccata et Fugue BWV565.ogg|110px]] || style="text-align:left; background:#d3d3d3;"| [[File:Ludwig van Beethoven - Symphonie 5 c-moll - 1. Allegro con brio.ogg|110px]] || style="text-align:left; background:silver;"| [[File:Wagner - die walkure fantasie.ogg|110px]] || style="text-align:left; background:darkGrey;"| [[File:Kraftwerk - computerwelt - computerwelt 2.ogg|110px]] || style="text-align:left; background:gray;"| [[File:Brother Louie MT.ogg|110px]] || style="text-align:left; background:dimGrey;"|

      [[File:Rammstein - Ohne dich (sample).ogg|110px]]

      === Media === [[File:FrankfurterBuchmesse2008.JPG|thumb | The [[Frankfurt Book Fair]] in 2008 ]]

      Germany's television market is the largest in Europe, with some 34   &nbsp; million TV households. The many regional and national public broadcasters are organised in line with the federal political structure. Around 90% of German households have cable or satellite TV, and viewers can choose from a variety of free-to-view public and commercial channels. Pay-TV services have not become popular or successful while public TV broadcasters [[ZDF]] and [[ARD (broadcaster) <rtd>|</rtd> <text>ARD</text> ]] offer a range of digital-only channels. <ref> [http://news.bbc.co.uk/2/hi/europe/country_profiles/1047864.stm Country profile: Germany], BBC News. Retrieved 7 December 2007. </ref>

      Germany is home to some of the world's largest media conglomerates, including [[Bertelsmann]] , the [[Axel Springer AG]] and [[ProSiebenSat.1 Media]] .

      The German-speaking book publishers produce about 700   &nbsp; million copies of books every year, with about 80,000 titles, nearly 60,000 of them new publications. Germany is in third place on international statistics after the English-speaking book market and the People’s Republic of China. <ref> [http://www.land-der-ideen.de/CDA/facts_printing,4563,0,,en.html Germany – Land of ideas], www.land-der-ideen.de Retrieved 12 December 2010. </ref> The [[Frankfurt Book Fair]] is considered to be the most important book fair in the world for international deals and trading and has a tradition that spans over 500 years.

      The country's news is provided for English speakers e.g. by news magazine [[Der Spiegel]] and state broadcaster [[Deutsche Welle]] .

      === Sports ===

      {{ Main | Sport in Germany }}

      [[File:Michael Schumacher 2010 Malaysia.jpg|thumb|upright|140px | [[Michael Schumacher]] has won seven [[Formula One]] championships. ]]

      Sport forms an integral part of German life. Twenty-seven million Germans are members of a sports club and an additional twelve million pursue such an activity individually. <ref name =" sports " > {{Cite web | url = http://www.germany.info/relaunch/culture/life/sports.html | title = Germany Info: Culture & Life: Sports | publisher=Germany Embassy in Washington, D.C | accessdate = 28 December 2006}} </ref> [[Association football]] is the most popular sport. With more than 6.3   &nbsp; million official members, the [[German Football Association]] ( '' Deutscher Fußball-Bund '' ) is the largest sports organisation of its kind worldwide. <ref name =" sports " /> The [[Fußball-Bundesliga <rtd>|</rtd> <text>Bundesliga</text> ]] attracts the second highest [[List of attendance figures at domestic professional sports leagues <rtd>|</rtd> <text>average attendance</text> ]] of any professional sports league in the world. The [[Germany national football team <rtd>|</rtd> <text>German national football team</text> ]] won the [[FIFA World Cup]] in 1954, 1974 and 1990 and the [[UEFA European Football Championship]] in 1972, 1980 and 1996. Germany has hosted the FIFA World Cup in [[FIFA World Cup 1974 <rtd>|</rtd> <text>1974</text> ]] and [[FIFA World Cup 2006 <rtd>|</rtd> <text>2006</text> ]] and the [[UEFA European Football Championship]] in [[UEFA Euro 1988 <rtd>|</rtd> <text>1988</text> ]] . Among the most successful and renowned footballers are [[Franz Beckenbauer]] , [[Gerd Müller]] , [[Jürgen Klinsmann]] , [[Lothar Matthäus]] , and [[Oliver Kahn]] . Other popular spectator sports include [[team handball <rtd>|</rtd> <text>handball</text> ]] , volleyball, basketball, [[ice hockey]] , and tennis. <ref name =" sports " />

      [[File:AllianzArenaSunset.jpg|thumb|left | The [[Allianz Arena]] is host to the football club [[Bayern Munich]] and was a venue for the [[2006 FIFA World Cup]] . ]]

      Germany is one of the leading motor sports countries in the world. Race-winning cars, teams and drivers have come from Germany. The most successful [[Formula One]] driver in history, [[Michael Schumacher]] , has set many significant motor sport records during his career, having won more [[List of Formula One World Drivers' Champions <rtd>|</rtd> <text>Formula One World Drivers' Championships</text> ]] and more Formula One races than any other driver since Formula One's debut season in 1950. He is one of the highest paid sportsmen in history and became a billionaire athlete. <ref> {{Cite news | url = http://sport.guardian.co.uk/formulaone/story/0,,1929091,00.html | title = What we will miss about Michael Schumacher | newspaper=The Guardian | date = 23 October 2006 | accessdate = 19 October 2007 | location=London | first=David | last=Ornstein }} </ref> Constructors like [[BMW]] and [[Mercedes-Benz <rtd>|</rtd> <text>Mercedes</text> ]] are among the leading manufacturers in motor sport. Additionally, [[Porsche]] has won the [[24 Hours of Le Mans]] , a prestigious annual endurance race held in France, 16 times, and [[Audi]] has won it 9 times. The [[Deutsche Tourenwagen Masters]] is a popular series in Germany.

      Historically, German sportsmen have been some of the most successful contenders in the Olympic Games, ranking third in an [[all-time Olympic Games medal count]] , combining East and West German medals. In the [[2008 Summer Olympics]] , Germany finished fifth in the medal count, <ref> {{Cite web | url = http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml | title = Beijing 2008 Medal Table | publisher=The Official Website of the Beijing 2008 Olympic Games | accessdate = 8 September 2008}} </ref> while in the [[2006 Winter Olympics]] they finished first. <ref> {{Cite web | url = http://www.olympic.org/uk/games/past/table_uk.asp?OLGT=2&OLGY=2006 | title = Turin 2006 Medal Table | publisher=International Olympic Committee | accessdate = 28 December 2006}} </ref> Germany has hosted the Summer Olympic Games twice, in Berlin in [[1936 Summer Olympics <rtd>|</rtd> <text>1936</text> ]] and in [[Munich]] in [[1972 Summer Olympics <rtd>|</rtd> <text>1972</text> ]] . The Winter Olympic Games took place in Germany once in [[1936 Winter Olympics <rtd>|</rtd> <text>1936</text> ]] when they were staged in the <text>Bavarian</text> [[Bavaria]]n twin towns of [[Garmisch]] and [[Partenkirchen]] .

      === Cuisine ===

      {{ Main | German cuisine }}

      [[File:144215094 be5e39f10f b.jpg|thumb | A '' [[Schwarzwälder Kirschtorte]] '' (Black Forest cake) ]]

      German cuisine varies from region to region. The southern regions of [[Bavarian cuisine <rtd>|</rtd> <text>Bavaria</text> ]] and Swabia, for instance, share a culinary culture with Switzerland and Austria. Pork, beef, and poultry are the main varieties of meat consumed in Germany, with pork being the most popular. <ref> {{Cite web | url = http://www.nationmaster.com/country/gm-germany/foo-food | title = German food stats | publisher=www.nationmaster.com | accessdate = 26 November 2007}} </ref> Throughout all regions, meat is often eaten in sausage form. More than 1500 different types of [[sausage]] are produced in Germany. [[Organic food]] has gained a market share of around 3.0%, and is predicted to increase further. <ref> {{Cite web | url = http://www.organic-europe.net/country_reports/germany/default.asp | title = Organic Agriculture in Germany | publisher=organic-Europe | accessdate = 26 November 2007}} </ref>

      A popular German saying has the meaning: "Breakfast like an emperor, lunch like a king, and dine like a beggar." Breakfast is usually a selection of breads and rolls with jam and honey or cold meats and cheese, sometimes accompanied by a boiled egg. Cereals or muesli with milk or [[yoghurt]] is less common but widespread. <ref> [http://www.cp-pc.ca/english/germany/eating.html Eating the German way], Cultural Profiles Project. Retrieved 2007, 26 November. </ref> More than 300 types of bread are sold in bakery shops across the country. <ref> [http://www.germany-tourism.de/ENG/culture_and_events/culinary_germany_brot.htm 300 Types of Bread], www.germany-tourism.de. Retrieved 2007, 26 November. </ref>

      [[File:Buffet Germany.jpg|thumb|left | A typical cheese and cold meat [[buffet]] served at private festivities ]]

      As a country with many immigrants, Germany has adopted many international dishes into its cuisine and daily eating habits. [[Italian cuisine <rtd>|</rtd> <text>Italian</text> ]] dishes like pizza and pasta, [[Turkish cuisine <rtd>|</rtd> <text>Turkish</text> ]] and [[Arab]] dishes like [[Doner kebab <rtd>|</rtd> <text>Döner Kebab</text> ]] and [[Falafel]] are well established, especially in bigger cities. International [[Hamburger <rtd>|</rtd> <text>burger</text> ]] chains, as well as [[Chinese cuisine <rtd>|</rtd> <text>Chinese</text> ]] and [[Greek cuisine <rtd>|</rtd> <text>Greek</text> ]] restaurants, are widespread. [[Indian cuisine <rtd>|</rtd> <text>Indian</text> ]] , [[Thai cuisine <rtd>|</rtd> <text>Thai</text> ]] , [[Japanese cuisine <rtd>|</rtd> <text>Japanese</text> ]] , and other Asian cuisines have gained popularity in recent decades. Among high-profile restaurants in Germany, the [[Michelin guide]] has awarded nine restaurants three stars, the highest designation, while 15 more received two stars. <ref> [http://www.dw-world.de/dw/article/0,2144,2914502,00.html Schnitzel Outcooks Spaghetti in Michelin Guide], Deutsche Welle. Retrieved 2007, 26 November. </ref> German restaurants have become the world's second most decorated eateries after France. <ref> [http://in.reuters.com/article/lifestyleMolt/idINL1447732320071114 German cuisine beats Italy, Spain in gourmet stars], Reuters India. Retrieved 2007, 26 November. </ref>

      Although wine is becoming more popular in many parts of Germany, the national alcoholic drink is beer. German beer consumption per person is declining but—at 116 litres annually—it is still among the highest in the world. <ref> [http://www.royalunibrew.com/Default.aspx?ID=266 Europe's largest beer market], royalunibrew.com. Retrieved 2007, 26 November. </ref> Beer varieties include [[Altbier <rtd>|</rtd> <text>Alt</text> ]] , [[Bock]] , [[Dunkel]] , [[Kölsch (beer) <rtd>|</rtd> <text>Kölsch</text> ]] , [[Lager]] , [[Malzbier]] , [[Pilsener <rtd>|</rtd> <text>Pils</text> ]] , and [[Weizenbier]] . Among 18 surveyed western countries, Germany ranked 14th in the list of per capita consumption of soft drinks in general, while it ranked third in the consumption of fruit juices. <ref> [http://www.nationmaster.com/graph/foo_sof_dri_con-food-soft-drink-consumption Soft drink consumption], www.nationmaster.com. Retrieved 2007, 26 November. </ref> Furthermore, carbonated mineral water and '' [[Spritzer#Non-alcoholic spritzer <rtd>|</rtd> <text>Schorle</text> ]] '' (its mixture with fruit juice) are very popular in Germany.

      === Society === [[File:Schloss-Neuschwanstein.jpg|thumb|right | Tourism is an important industry in parts of Germany( [[Neuschwanstein Castle]] ) ]]

      Germany is a modern, cosmopolitan, creative society, shaped by a plurality of lifestyles and regional identities. <ref> [http://www.germany.info/Vertretung/usa/en/07__Culture__Lifestyle__Travel/01/__Society.html Society] The German Mission to the United states. Retrieved 16 October 2010. </ref> The country has established a high level of [[gender equality]] , promotes [[Disability rights movement <rtd>|</rtd> <text>disability rights</text> ]] , and is legally and socially tolerant towards homosexuals. Gays and lesbians can legally adopt their partner's biological children, and <text>civil unions</text> [[civil union]]s have been permitted since 2001. <ref> [http://www.news24.com/News24/World/News/0,,2-10-1462_1613010,00.html Germany extends gay rights]{{dead link|date=September 2010}} News24.com. Retrieved 25 November 2007. </ref> The Vice-Chancellor [[Guido Westerwelle]] and the mayor of Berlin, [[Klaus Wowereit]] , are openly gay. <ref name = gayscity > {{Cite news |last=Weinthal |first=Benjamin |title=He's Gay, and That's Okay |newspaper=[[Gay City News]] | location = New York |date=31 August 2006 |url=http://www.gaycitynews.com/articles/2006/08/31/gay_city_news_archives/past%20issues/17334472.txt |accessdate=3 September 2009}} </ref> {{ Update after | 2011 | 09 | reason = elections in Berlin }}

      During the last decade of the 20th century, Germany changed its attitude towards immigrants. Until the mid-1990s the opinion was widespread that Germany is not a country of immigration, even though about 20% of the population were of non-German origin. Today the government and a majority of the German society are acknowledging that immigrants from diverse ethnocultural backgrounds are part of the German society and that controlled immigration should be initiated based on qualification standards. <ref> {{Cite book | first = Friedrich | last = Heckmann | url = http://books.google.com/?id=l9yTtCAnQWwC&pg=PA53&lpg=PA53&dq=cdu+immigrant+einwanderungsland#PPA53,M1 | title = The Integration of Immigrants in European Societies: national differences and trends of convergence| publisher=Lucius & Lucius | location = Stuttgart | pages = 51 ff. | year = 2003 | isbn = 978-3-8282-0181-1 | accessdate = 28 October 2010 }} </ref>

      Since the 2006 FIFA World Cup, the internal and external evaluation of Germany's national image has changed. <ref> [http://www.brandovation.net/ How Germany won the World Cup of Nation Branding] BrandOvation. Retrieved 25 November 2007. </ref> In annually conducted global surveys known as [[Nation Brands Index]] , Germany became significantly and repeatedly more highly ranked after the tournament. People in 20 different states assessed the country's reputation in terms of culture, politics, exports, its people and its attractiveness to tourists, immigrants and investments. Germany has been named the world's second most valued nation among 50 countries in 2010. <ref> {{Cite press release | title = 2010 Anholt-GfK Roper Nation Brands Index | publisher=[[GfK]] | date = 12 October 2010 | url = http://www.gfk.com/group/press_information/press_releases/006688/index.en.html | accessdate = 15 October 2010 }} </ref> Another global opinion poll, for the [[BBC]] , revealed that Germany is recognised for the most positive influence in the world in 2010. A majority of 59% have a positive view of the country, while 14% have a negative view. <ref> {{Cite news | url = http://news.bbc.co.uk/2/hi/8626041.stm | title = World warming to US under Obama, BBC poll suggests |publisher=BBC News Online | location = London | date = 19 April 2010 |accessdate = 28 October 2010 }} </ref> <ref> [http://news.bbc.co.uk/2/shared/bsp/hi/pdfs/160410bbcwspoll.pdf BBC World Service Poll], BBC News. Retrieved 19 April 2010. </ref>

      With an expenditure of €67   &nbsp; billion on international travel in 2008, Germans spent more money on travel than any other country. The most visited destinations were Spain, Italy and Austria. <ref> {{Cite news | url = http://economictimes.indiatimes.com/ET-Cetera/Germans-spend-most-on-foreign-trips-Industry-group/articleshow/4250332.cms | title = Germans spend most on foreign trips: Industry group] | date = 10 March 2009 | location = New Delhi | newspaper=The Economic Times |accessdate = 15 March 2009 }} </ref> {{ - }}

      == See also ==

      {{ Portal box | Germany | European Union }}

      • * [[Outline of Germany]]

      {{ Template group | title = Articles Related to Germany | list = {{ Germany topics }} {{ States of Germany | titlestyle = background:#ddf; }} {{ Template group | title = Geographic locale | list = {{ Geographic location | Northwest = ''[[North Sea]]'' <br /> {{ Flag | The Netherlands }} | North = {{ Flag | Denmark }} | Northeast = ''[[Baltic Sea]]'' | West = {{ Flag | Belgium }} <br /> {{ Flag | Luxembourg }} | Centre = {{ Flagicon | Germany }} [[Outline of Germany|Germany]] | East = {{ Flag | Poland }} <br /> {{ Flag | Czech Republic }} | Southwest = {{ Flag | France }} | South = {{ Flag | Switzerland }} {{ Flag | Austria }} | Southeast = {{ Flag | Austria }} }} {{ Sovereign states of Europe }} {{ Countries bordering the Baltic Sea }} }} {{ Template group | title = International membership | list = {{ EU members }} {{ North Atlantic Treaty Organisation (NATO) }} {{ Organisation for Economic Co-operation and Development }} {{ G8 nations }} {{ G20 }} {{ WTO members }} {{ Council of Europe }} {{ OSCE }} }} {{ National personifications }} }}

      == Notes ==

      {{ Reflist | group = note }}

      == References ==

      {{ Reflist | colwidth = 30em }}

      == External links ==

      {{ Spoken Wikipedia-2 | 2008-06-24 | Germany (Spoken Article) Part 1.ogg | Germany (Spoken Article) Part 2.ogg }} {{ Sister project links | Germany }}

      • <!-- Wikipedia is not a link list nor a Web directory. If your link points to a site that does not cover many subjects about Germany, it's most likely in the wrong place here and you should go and search for a more specific article. --> * [http://www.deutschland.de/ <text>Deutschland.de</text> ] – Official Germany portal (non-profit)
      • * [http://www.bundeskanzlerin.de/ <text>Official site of German Chancellor</text> ] (German and English)
      • * [http://www.dw-world.de/ <text>Deutsche Welle</text> ] – Germany's international broadcaster
      • * [https://www.cia.gov/library/publications/world-leaders-1/world-leaders-g/germany.html <text>Chief of State and Cabinet Members</text> ]
      • * {{ CIA World Factbook link | gm | Germany }}
      • * [http://www.britannica.com/EBchecked/topic/231186/Germany <text>Germany</text> ] entry at '' [[Encyclopædia Britannica]] ''
      • * [http://ucblibraries.colorado.edu/govpubs/for/germany.htm <text>Germany</text> ] at '' UCB Libraries GovPubs ''
      • * {{ dmoz | Regional/Europe/Germany }}

      {{ Wikiatlas | Germany }}

      • * [http://www.tatsachen-ueber-deutschland.de/en/ <text>Facts about Germany</text> ] – by the German Federal Foreign Office
      • * [http://www.destatis.de/e_home.htm <text>Destatis.de</text> ] – Federal Statistical Office Germany {{ en icon }}

      {{ osmrelation-inline | 51477 }}

      [[Category:Germany <rtd>|</rtd> <text> </text> ]] [[Category:European countries]] [[Category:Member states of the European Union]] [[Category:Alpine countries]] [[Category:Countries bordering the Atlantic Ocean]] [[Category:Countries bordering the Baltic Sea]] [[Category:Republics]] [[Category:Federal countries]] [[Category:German-speaking countries]] [[Category:G8 nations]] [[Category:G20 nations]] [[Category:Liberal democracies]] [[Category:Western Europe]] [[Category:Member states of the Union for the Mediterranean]] [[Category:States and territories established in 1871]] [[Category:Members of the North Atlantic Treaty Organization]]

      {{ Link GA | da }} {{ Link GA | de }} {{ Link GA | eo }} {{ Link GA | es }} {{ Link GA | lt }} {{ Link GA | zh }} {{ Link FA | af }} {{ Link FA | gv }} {{ Link FA | hr }} {{ Link FA | lv }} {{ Link FA | mr }} {{ Link FA | nah }} {{ Link FA | pt }} {{ Link FA | sq }} {{ Link FA | tr }} {{ Link FA | yi }} [[ace:Jeureuman]] [[af:Duitsland]] [[als:Deutschland]] [[am:ጀርመን]] [[ang:Þēodscland]] [[ab:Алмантәыла]] [[ar:ألمانيا]] [[an:Alemanya]] [[arc:ܓܪܡܢ]] [[roa-rup:Ghermãnia]] [[frp:Alemagne]] [[ast:Alemaña]] [[gn:Alemaña]] [[ay:Alimaña]] [[az:Almaniya]] [[bm:Jermani]] [[bn:জার্মানি]] [[zh-min-nan:Tek-kok]] [[ba:Германия]] [[be:Германія]] [[be-x-old:Нямеччына]] [[bcl:Alemanya]] [[bi:Germany]] [[bar:Deitschland]] [[bo:འཇར་མན།]] [[bs:Njemačka]] [[br:Alamagn]] [[bg:Германия]] [[ca:Alemanya]] [[cv:Германи]] [[ceb:Alemanya]] [[cs:Německo]] [[cbk-zam:Alemania]] [[tum:Germany]] [[co:Germania]] [[cy:Yr Almaen]] [[da:Tyskland]] [[pdc:Deitschland]] [[de:Deutschland]] [[dv:ޖަރުމަނުވިލާތް]] [[nv:Béésh Bichʼahii Bikéyah]] [[dsb:Nimska]] [[dz:ཇཱར་མ་ནི་]] [[et:Saksamaa]] [[el:Γερμανία]] [[eml:Germâgna]] [[myv:Германия Мастор]] [[es:Alemania]] [[eo:Germanio]] [[ext:Alemaña]] [[eu:Alemania]] [[ee:Germany]] [[fa:آلمان]] [[hif:Germany]] [[fo:Týskland]] [[fr:Allemagne]] [[fy:Dútslân]] [[fur:Gjermanie]] [[ga:An Ghearmáin]] [[gv:Yn Ghermaan]] [[gd:A' Ghearmailt]] [[gl:Alemaña - Deutschland]] [[frr:Tjüschlönj]] [[gan:德國]] [[gag:Germaniya]] [[got:𐌸𐌹𐌿𐌳𐌹𐍃𐌺𐌰𐌻𐌰𐌽𐌳]] [[hak:Tet-koet]] [[xal:Ниицәтә Немшин Орн]] [[ko:독일]] [[haw:Kelemānia]] [[hy:Գերմանիա]] [[hi:जर्मनी]] [[hsb:Němska]] [[hr:Njemačka]] [[io:Germania]] [[ig:Jémanị]] [[ilo:Alemania]] [[bpy:জার্মানি]] [[id:Jerman]] [[ia:Germania]] [[ie:Germania]] [[iu:ᔮᒪᓂ/jaamani]] [[os:Герман]] [[xh:IJamani]] [[zu:IJalimani]] [[is:Þýskaland]] [[it:Germania]] [[he:גרמניה]] [[jv:Jerman]] [[kl:Tysklandi]] [[kn:ಜರ್ಮನಿ]] [[pam:Alemania]] [[ka:გერმანია]] [[ks:जर्मनी]] [[csb:Miemieckô]] [[kk:Алмания]] [[kw:Almayn]] [[rw:Ubudage]] [[ky:Германия]] [[rn:Ubudagi]] [[sw:Ujerumani]] [[kv:Германия]] [[kg:Alemanyi]] [[ht:Almay]] [[ku:Almanya]] [[koi:Немечму]] [[lad:Almania]] [[krc:Германия]] [[lo:ປະເທດເຢັຽລະມັນ]] [[la:Germania]] [[lv:Vācija]] [[lb:Däitschland]] [[lt:Vokietija]] [[lij:Germania]] [[li:Duutsjlandj]] [[ln:Alémani]] [[jbo:dotygu'e]] [[lg:Girimane]] [[lmo:Germania]] [[hu:Németország]] [[mk:Германија]] [[mg:Alemaina]] [[ml:ജർമ്മനി]] [[mt:Ġermanja]] [[mi:Tiamana]] [[mr:जर्मनी]] [[arz:المانيا]] [[mzn:آلمان]] [[ms:Jerman]] [[cdo:Dáik-guók]] [[mdf:Германие мастор]] [[mn:Герман]] [[my:ဂျာမနီနိုင်ငံ]] [[nah:Teutontlālpan]] [[na:Germany]] [[nl:Duitsland]] [[nds-nl:Duutslaand]] [[ne:जर्मनी]] [[new:जर्मनी]] [[ja:ドイツ]] [[nap:Germania]] [[ce:Германи]] [[pih:Doichland]] [[no:Tyskland]] [[nn:Tyskland]] [[nrm:Allemangne]] [[nov:Germania]] [[oc:Alemanha]] [[mhr:Немыч Эл]] [[uz:Olmoniya]] [[pa:ਜਰਮਨੀ]] [[pag:Germany]] [[pnb:جرمنی]] [[pap:Alemania]] [[ps:آلمان]] [[km:អាល្លឺម៉ង់]] [[pcd:Alemanne]] [[pfl:Daitschlond]] [[pms:Gërmania]] [[tpi:Siamani]] [[nds:Düütschland]] [[pl:Niemcy]] [[pnt:Γερμανία]] [[pt:Alemanha]] [[kaa:Germaniya]] [[crh:Almaniya]] [[ty:Heremani]] [[ksh:Dütschland]] [[ro:Germania]] [[rmy:Jermaniya]] [[rm:Germania]] [[qu:Alimanya]] [[ru:Германия]] [[rue:Нїмецько]] [[sah:Германия]] [[se:Duiska]] [[sm:Siamani]] [[sa:जर्मनी]] [[sc:Germània]] [[sco:Germany]] [[stq:Düütsklound]] [[sq:Gjermania]] [[scn:Girmania]] [[simple:Germany]] [[ss:IJalimane]] [[sk:Nemecko]] [[cu:Нѣ́мьци]] [[sl:Nemčija]] [[szl:Mjymcy]] [[so:Jarmalka]] [[ckb:ئاڵمانیا]] [[srn:Doysrikondre]] [[sr:Немачка]] [[sh:Nemačka]] [[su:Jérman]] [[fi:Saksa]] [[sv:Tyskland]] [[tl:Alemanya]] [[ta:செருமனி]] [[kab:Lalman]] [[tt:Алмания]] [[te:జర్మనీ]] [[tet:Alemaña]] [[th:ประเทศเยอรมนี]] [[ti:ጀርመን]] [[tg:Олмон]] [[chr:ᎠᏛᏥ]] [[tr:Almanya]] [[tk:Germaniýa]] [[udm:Германия]] [[uk:Німеччина]] [[ur:جرمنی]] [[ug:گېرمانىيە]] [[za:Dwzgoz]] [[vec:Germania]] [[vi:Đức]] [[vo:Deutän]] [[fiu-vro:S'aksamaa]] [[wa:Almagne]] [[zh-classical:德國]] [[vls:Duutsland]] [[war:Alemanya]] [[wo:Almaañ]] [[wuu:德国]] [[ts:Jarimani]] [[yi:דייטשלאנד]] [[yo:Jẹ́mánì]] [[zh-yue:德國]] [[diq:Almanya]] [[zea:Duutsland]] [[bat-smg:Vuokītėjė]] [[zh:德国]]

      nopkg-custom/000077500000000000000000000000001335270560400361435ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resourceswom/000077500000000000000000000000001335270560400367455ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/nopkg-customillegal-url-syntax.wom.xml000066400000000000000000000003641335270560400440300ustar00rootroot00000000000000sweble-wikitext-sweble-wikitext-3.1.9/sweble-wom3-parent/sweble-wom3-swc-adapter/src/test/resources/nopkg-custom/wom